1package v1
2
3import (
4 "time"
5 "cue.dev/x/k8s.io/apimachinery/pkg/runtime"
6)
7
8// APIGroup contains the name, the supported versions, and the preferred version of a group.
9#APIGroup: {
10 // APIVersion defines the versioned schema of this representation of an object.
11 // Servers should convert recognized schemas to the latest internal value, and
12 // may reject unrecognized values. More info:
13 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
14 "apiVersion": "v1"
15
16 // Kind is a string value representing the REST resource this object represents.
17 // Servers may infer this from the endpoint the client submits requests to.
18 // Cannot be updated. In CamelCase. More info:
19 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
20 "kind": "APIGroup"
21
22 // name is the name of the group.
23 "name"!: string
24
25 // preferredVersion is the version preferred by the API server, which probably
26 // is the storage version.
27 "preferredVersion"?: #GroupVersionForDiscovery
28
29 // a map of client CIDR to server address that is serving this group. This is to
30 // help clients reach servers in the most network-efficient way possible.
31 // Clients can use the appropriate server address as per the CIDR that they
32 // match. In case of multiple matches, clients should use the longest matching
33 // CIDR. The server returns only those CIDRs that it thinks that the client can
34 // match. For example: the master will return an internal IP CIDR only, if the
35 // client reaches the server using an internal IP. Server looks at
36 // X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that
37 // order) to get the client IP.
38 "serverAddressByClientCIDRs"?: [...#ServerAddressByClientCIDR]
39
40 // versions are the versions supported in this group.
41 "versions"!: [...#GroupVersionForDiscovery]
42}
43
44// APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.
45#APIGroupList: {
46 // APIVersion defines the versioned schema of this representation of an object.
47 // Servers should convert recognized schemas to the latest internal value, and
48 // may reject unrecognized values. More info:
49 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
50 "apiVersion": "v1"
51
52 // groups is a list of APIGroup.
53 "groups"!: [...#APIGroup]
54
55 // Kind is a string value representing the REST resource this object represents.
56 // Servers may infer this from the endpoint the client submits requests to.
57 // Cannot be updated. In CamelCase. More info:
58 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
59 "kind": "APIGroupList"
60}
61
62// APIResource specifies the name of a resource and whether it is namespaced.
63#APIResource: {
64 // categories is a list of the grouped resources this resource belongs to (e.g. 'all')
65 "categories"?: [...string]
66
67 // group is the preferred group of the resource. Empty implies the group of the
68 // containing resource list. For subresources, this may have a different value,
69 // for example: Scale".
70 "group"?: string
71
72 // kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')
73 "kind"!: string
74
75 // name is the plural name of the resource.
76 "name"!: string
77
78 // namespaced indicates if a resource is namespaced or not.
79 "namespaced"!: bool
80
81 // shortNames is a list of suggested short names of the resource.
82 "shortNames"?: [...string]
83
84 // singularName is the singular name of the resource. This allows clients to
85 // handle plural and singular opaquely. The singularName is more correct for
86 // reporting status on a single item and both singular and plural are allowed
87 // from the kubectl CLI interface.
88 "singularName"!: string
89
90 // The hash value of the storage version, the version this resource is converted
91 // to when written to the data store. Value must be treated as opaque by
92 // clients. Only equality comparison on the value is valid. This is an alpha
93 // feature and may change or be removed in the future. The field is populated
94 // by the apiserver only if the StorageVersionHash feature gate is enabled.
95 // This field will remain optional even if it graduates.
96 "storageVersionHash"?: string
97
98 // verbs is a list of supported kube verbs (this includes get, list, watch,
99 // create, update, patch, delete, deletecollection, and proxy)
100 "verbs"!: [...string]
101
102 // version is the preferred version of the resource. Empty implies the version
103 // of the containing resource list For subresources, this may have a different
104 // value, for example: v1 (while inside a v1beta1 version of the core
105 // resource's group)".
106 "version"?: string
107}
108
109// APIResourceList is a list of APIResource, it is used to expose the name of
110// the resources supported in a specific group and version, and if the resource
111// is namespaced.
112#APIResourceList: {
113 // APIVersion defines the versioned schema of this representation of an object.
114 // Servers should convert recognized schemas to the latest internal value, and
115 // may reject unrecognized values. More info:
116 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
117 "apiVersion": "v1"
118
119 // groupVersion is the group and version this APIResourceList is for.
120 "groupVersion"!: string
121
122 // Kind is a string value representing the REST resource this object represents.
123 // Servers may infer this from the endpoint the client submits requests to.
124 // Cannot be updated. In CamelCase. More info:
125 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
126 "kind": "APIResourceList"
127
128 // resources contains the name of the resources and if they are namespaced.
129 "resources"!: [...#APIResource]
130}
131
132// APIVersions lists the versions that are available, to allow clients to
133// discover the API at /api, which is the root path of the legacy v1 API.
134#APIVersions: {
135 // APIVersion defines the versioned schema of this representation of an object.
136 // Servers should convert recognized schemas to the latest internal value, and
137 // may reject unrecognized values. More info:
138 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
139 "apiVersion": "v1"
140
141 // Kind is a string value representing the REST resource this object represents.
142 // Servers may infer this from the endpoint the client submits requests to.
143 // Cannot be updated. In CamelCase. More info:
144 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
145 "kind": "APIVersions"
146
147 // a map of client CIDR to server address that is serving this group. This is to
148 // help clients reach servers in the most network-efficient way possible.
149 // Clients can use the appropriate server address as per the CIDR that they
150 // match. In case of multiple matches, clients should use the longest matching
151 // CIDR. The server returns only those CIDRs that it thinks that the client can
152 // match. For example: the master will return an internal IP CIDR only, if the
153 // client reaches the server using an internal IP. Server looks at
154 // X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that
155 // order) to get the client IP.
156 "serverAddressByClientCIDRs"!: [...#ServerAddressByClientCIDR]
157
158 // versions are the api versions that are available.
159 "versions"!: [...string]
160}
161
162// Condition contains details for one aspect of the current state of this API Resource.
163#Condition: {
164 // lastTransitionTime is the last time the condition transitioned from one
165 // status to another. This should be when the underlying condition changed. If
166 // that is not known, then using the time when the API field changed is
167 // acceptable.
168 "lastTransitionTime"!: #Time
169
170 // message is a human readable message indicating details about the transition.
171 // This may be an empty string.
172 "message"!: string
173
174 // observedGeneration represents the .metadata.generation that the condition was
175 // set based upon. For instance, if .metadata.generation is currently 12, but
176 // the .status.conditions[x].observedGeneration is 9, the condition is out of
177 // date with respect to the current state of the instance.
178 "observedGeneration"?: int64 & int
179
180 // reason contains a programmatic identifier indicating the reason for the
181 // condition's last transition. Producers of specific condition types may
182 // define expected values and meanings for this field, and whether the values
183 // are considered a guaranteed API. The value should be a CamelCase string.
184 // This field may not be empty.
185 "reason"!: string
186
187 // status of the condition, one of True, False, Unknown.
188 "status"!: string
189
190 // type of condition in CamelCase or in foo.example.com/CamelCase.
191 "type"!: string
192}
193
194// DeleteOptions may be provided when deleting an API object.
195#DeleteOptions: {
196 // APIVersion defines the versioned schema of this representation of an object.
197 // Servers should convert recognized schemas to the latest internal value, and
198 // may reject unrecognized values. More info:
199 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
200 "apiVersion"?: string
201
202 // When present, indicates that modifications should not be persisted. An
203 // invalid or unrecognized dryRun directive will result in an error response
204 // and no further processing of the request. Valid values are: - All: all dry
205 // run stages will be processed
206 "dryRun"?: [...string]
207
208 // The duration in seconds before the object should be deleted. Value must be
209 // non-negative integer. The value zero indicates delete immediately. If this
210 // value is nil, the default grace period for the specified type will be used.
211 // Defaults to a per object value if not specified. zero means delete
212 // immediately.
213 "gracePeriodSeconds"?: int64 & int
214
215 // if set to true, it will trigger an unsafe deletion of the resource in case
216 // the normal deletion flow fails with a corrupt object error. A resource is
217 // considered corrupt if it can not be retrieved from the underlying storage
218 // successfully because of a) its data can not be transformed e.g. decryption
219 // failure, or b) it fails to decode into an object. NOTE: unsafe deletion
220 // ignores finalizer constraints, skips precondition checks, and removes the
221 // object from the storage. WARNING: This may potentially break the cluster if
222 // the workload associated with the resource being unsafe-deleted relies on
223 // normal deletion flow. Use only if you REALLY know what you are doing. The
224 // default value is false, and the user must opt in to enable it
225 "ignoreStoreReadErrorWithClusterBreakingPotential"?: bool
226
227 // Kind is a string value representing the REST resource this object represents.
228 // Servers may infer this from the endpoint the client submits requests to.
229 // Cannot be updated. In CamelCase. More info:
230 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
231 "kind"?: string
232
233 // Deprecated: please use the PropagationPolicy, this field will be deprecated
234 // in 1.7. Should the dependent objects be orphaned. If true/false, the
235 // "orphan" finalizer will be added to/removed from the object's finalizers
236 // list. Either this field or PropagationPolicy may be set, but not both.
237 "orphanDependents"?: bool
238
239 // Must be fulfilled before a deletion is carried out. If not possible, a 409
240 // Conflict status will be returned.
241 "preconditions"?: #Preconditions
242
243 // Whether and how garbage collection will be performed. Either this field or
244 // OrphanDependents may be set, but not both. The default policy is decided by
245 // the existing finalizer set in the metadata.finalizers and the
246 // resource-specific default policy. Acceptable values are: 'Orphan' - orphan
247 // the dependents; 'Background' - allow the garbage collector to delete the
248 // dependents in the background; 'Foreground' - a cascading policy that deletes
249 // all dependents in the foreground.
250 "propagationPolicy"?: string
251}
252
253// FieldSelectorRequirement is a selector that contains values, a key, and an
254// operator that relates the key and values.
255#FieldSelectorRequirement: {
256 // key is the field selector key that the requirement applies to.
257 "key"!: string
258
259 // operator represents a key's relationship to a set of values. Valid operators
260 // are In, NotIn, Exists, DoesNotExist. The list of operators may grow in the
261 // future.
262 "operator"!: string
263
264 // values is an array of string values. If the operator is In or NotIn, the
265 // values array must be non-empty. If the operator is Exists or DoesNotExist,
266 // the values array must be empty.
267 "values"?: [...string]
268}
269
270// FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.
271//
272// Each key is either a '.' representing the field itself, and will always map
273// to an empty set, or a string representing a sub-field or item. The string
274// will follow one of these four formats: 'f:<name>', where <name> is the name
275// of a field in a struct, or key in a map 'v:<value>', where <value> is the
276// exact json formatted value of a list item 'i:<index>', where <index> is
277// position of a item in a list 'k:<keys>', where <keys> is a map of a list
278// item's key fields to their unique values If a key maps to an empty Fields
279// value, the field that key represents is part of the set.
280//
281// The exact format is defined in sigs.k8s.io/structured-merge-diff
282#FieldsV1: {}
283
284// GroupResource specifies a Group and a Resource, but does not force a version.
285// This is useful for identifying concepts during lookup stages without having
286// partially valid types
287#GroupResource: {
288 "group"!: string
289 "resource"!: string
290}
291
292// GroupVersion contains the "group/version" and "version" string of a version.
293// It is made a struct to keep extensibility.
294#GroupVersionForDiscovery: {
295 // groupVersion specifies the API group and version in the form "group/version"
296 "groupVersion"!: string
297
298 // version specifies the version in the form of "version". This is to save the
299 // clients the trouble of splitting the GroupVersion.
300 "version"!: string
301}
302
303// A label selector is a label query over a set of resources. The result of
304// matchLabels and matchExpressions are ANDed. An empty label selector matches
305// all objects. A null label selector matches no objects.
306#LabelSelector: {
307 // matchExpressions is a list of label selector requirements. The requirements are ANDed.
308 "matchExpressions"?: [...#LabelSelectorRequirement]
309
310 // matchLabels is a map of {key,value} pairs. A single {key,value} in the
311 // matchLabels map is equivalent to an element of matchExpressions, whose key
312 // field is "key", the operator is "In", and the values array contains only
313 // "value". The requirements are ANDed.
314 "matchLabels"?: [string]: string
315}
316
317// A label selector requirement is a selector that contains values, a key, and
318// an operator that relates the key and values.
319#LabelSelectorRequirement: {
320 // key is the label key that the selector applies to.
321 "key"!: string
322
323 // operator represents a key's relationship to a set of values. Valid operators
324 // are In, NotIn, Exists and DoesNotExist.
325 "operator"!: string
326
327 // values is an array of string values. If the operator is In or NotIn, the
328 // values array must be non-empty. If the operator is Exists or DoesNotExist,
329 // the values array must be empty. This array is replaced during a strategic
330 // merge patch.
331 "values"?: [...string]
332}
333
334// ListMeta describes metadata that synthetic resources must have, including
335// lists and various status objects. A resource may have only one of
336// {ObjectMeta, ListMeta}.
337#ListMeta: {
338 // continue may be set if the user set a limit on the number of items returned,
339 // and indicates that the server has more data available. The value is opaque
340 // and may be used to issue another request to the endpoint that served this
341 // list to retrieve the next set of available objects. Continuing a consistent
342 // list may not be possible if the server configuration has changed or more
343 // than a few minutes have passed. The resourceVersion field returned when
344 // using this continue value will be identical to the value in the first
345 // response, unless you have received this token from an error message.
346 "continue"?: string
347
348 // remainingItemCount is the number of subsequent items in the list which are
349 // not included in this list response. If the list request contained label or
350 // field selectors, then the number of remaining items is unknown and the field
351 // will be left unset and omitted during serialization. If the list is complete
352 // (either because it is not chunking or because this is the last chunk), then
353 // there are no more remaining items and this field will be left unset and
354 // omitted during serialization. Servers older than v1.15 do not set this
355 // field. The intended use of the remainingItemCount is *estimating* the size
356 // of a collection. Clients should not rely on the remainingItemCount to be set
357 // or to be exact.
358 "remainingItemCount"?: int64 & int
359
360 // String that identifies the server's internal version of this object that can
361 // be used by clients to determine when objects have changed. Value must be
362 // treated as opaque by clients and passed unmodified back to the server.
363 // Populated by the system. Read-only. More info:
364 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
365 "resourceVersion"?: string
366
367 // Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.
368 "selfLink"?: string
369
370 // shardInfo is set when the list is a filtered subset of the full collection,
371 // as selected by a shard selector on the request. It echoes back the selector
372 // so clients can verify which shard they received and merge sharded responses.
373 // Clients should not cache sharded list responses as a full representation of
374 // the collection.
375 //
376 // This is an alpha field and requires enabling the ShardedListAndWatch feature gate.
377 "shardInfo"?: #ShardInfo
378}
379
380// ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the
381// resource that the fieldset applies to.
382#ManagedFieldsEntry: {
383 // APIVersion defines the version of this resource that this field set applies
384 // to. The format is "group/version" just like the top-level APIVersion field.
385 // It is necessary to track the version of a field set because it cannot be
386 // automatically converted.
387 "apiVersion"?: string
388
389 // FieldsType is the discriminator for the different fields format and version.
390 // There is currently only one possible value: "FieldsV1"
391 "fieldsType"?: string
392
393 // FieldsV1 holds the first JSON version format as described in the "FieldsV1" type.
394 "fieldsV1"?: #FieldsV1
395
396 // Manager is an identifier of the workflow managing these fields.
397 "manager"?: string
398
399 // Operation is the type of operation which lead to this ManagedFieldsEntry
400 // being created. The only valid values for this field are 'Apply' and
401 // 'Update'.
402 "operation"?: string
403
404 // Subresource is the name of the subresource used to update that object, or
405 // empty string if the object was updated through the main resource. The value
406 // of this field is used to distinguish between managers, even if they share
407 // the same name. For example, a status update will be distinct from a regular
408 // update using the same manager name. Note that the APIVersion field is not
409 // related to the Subresource field and it always corresponds to the version of
410 // the main resource.
411 "subresource"?: string
412
413 // Time is the timestamp of when the ManagedFields entry was added. The
414 // timestamp will also be updated if a field is added, the manager changes any
415 // of the owned fields value or removes a field. The timestamp does not update
416 // when a field is removed from the entry because another manager took it over.
417 "time"?: #Time
418}
419
420// MicroTime is version of Time with microsecond level precision.
421#MicroTime: time.Time
422
423// ObjectMeta is metadata that all persisted resources must have, which includes
424// all objects users must create.
425#ObjectMeta: {
426 // Annotations is an unstructured key value map stored with a resource that may
427 // be set by external tools to store and retrieve arbitrary metadata. They are
428 // not queryable and should be preserved when modifying objects. More info:
429 // https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations
430 "annotations"?: [string]: string
431
432 // CreationTimestamp is a timestamp representing the server time when this
433 // object was created. It is not guaranteed to be set in happens-before order
434 // across separate operations. Clients may not set this value. It is
435 // represented in RFC3339 form and is in UTC.
436 //
437 // Populated by the system. Read-only. Null for lists. More info:
438 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
439 "creationTimestamp"?: #Time
440
441 // Number of seconds allowed for this object to gracefully terminate before it
442 // will be removed from the system. Only set when deletionTimestamp is also
443 // set. May only be shortened. Read-only.
444 "deletionGracePeriodSeconds"?: int64 & int
445
446 // DeletionTimestamp is RFC 3339 date and time at which this resource will be
447 // deleted. This field is set by the server when a graceful deletion is
448 // requested by the user, and is not directly settable by a client. The
449 // resource is expected to be deleted (no longer visible from resource lists,
450 // and not reachable by name) after the time in this field, once the finalizers
451 // list is empty. As long as the finalizers list contains items, deletion is
452 // blocked. Once the deletionTimestamp is set, this value may not be unset or
453 // be set further into the future, although it may be shortened or the resource
454 // may be deleted prior to this time. For example, a user may request that a
455 // pod is deleted in 30 seconds. The Kubelet will react by sending a graceful
456 // termination signal to the containers in the pod. After that 30 seconds, the
457 // Kubelet will send a hard termination signal (SIGKILL) to the container and
458 // after cleanup, remove the pod from the API. In the presence of network
459 // partitions, this object may still exist after this timestamp, until an
460 // administrator or automated process can determine the resource is fully
461 // terminated. If not set, graceful deletion of the object has not been
462 // requested.
463 //
464 // Populated by the system when a graceful deletion is requested. Read-only.
465 // More info:
466 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
467 "deletionTimestamp"?: #Time
468
469 // Must be empty before the object is deleted from the registry. Each entry is
470 // an identifier for the responsible component that will remove the entry from
471 // the list. If the deletionTimestamp of the object is non-nil, entries in this
472 // list can only be removed. Finalizers may be processed and removed in any
473 // order. Order is NOT enforced because it introduces significant risk of stuck
474 // finalizers. finalizers is a shared field, any actor with permission can
475 // reorder it. If the finalizer list is processed in order, then this can lead
476 // to a situation in which the component responsible for the first finalizer in
477 // the list is waiting for a signal (field value, external system, or other)
478 // produced by a component responsible for a finalizer later in the list,
479 // resulting in a deadlock. Without enforced ordering finalizers are free to
480 // order amongst themselves and are not vulnerable to ordering changes in the
481 // list.
482 "finalizers"?: [...string]
483
484 // GenerateName is an optional prefix, used by the server, to generate a unique
485 // name ONLY IF the Name field has not been provided. If this field is used,
486 // the name returned to the client will be different than the name passed. This
487 // value will also be combined with a unique suffix. The provided value has the
488 // same validation rules as the Name field, and may be truncated by the length
489 // of the suffix required to make the value unique on the server.
490 //
491 // If this field is specified and the generated name exists, the server will return a 409.
492 //
493 // Applied only if Name is not specified. More info:
494 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency
495 "generateName"?: string
496
497 // A sequence number representing a specific generation of the desired state.
498 // Populated by the system. Read-only.
499 "generation"?: int64 & int
500
501 // Map of string keys and values that can be used to organize and categorize
502 // (scope and select) objects. May match selectors of replication controllers
503 // and services. More info:
504 // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
505 "labels"?: [string]: string
506
507 // ManagedFields maps workflow-id and version to the set of fields that are
508 // managed by that workflow. This is mostly for internal housekeeping, and
509 // users typically shouldn't need to set or understand this field. A workflow
510 // can be the user's name, a controller's name, or the name of a specific apply
511 // path like "ci-cd". The set of fields is always in the version that the
512 // workflow used when modifying the object.
513 "managedFields"?: [...#ManagedFieldsEntry]
514
515 // Name must be unique within a namespace. Is required when creating resources,
516 // although some resources may allow a client to request the generation of an
517 // appropriate name automatically. Name is primarily intended for creation
518 // idempotence and configuration definition. Cannot be updated. More info:
519 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names
520 "name"?: string
521
522 // Namespace defines the space within which each name must be unique. An empty
523 // namespace is equivalent to the "default" namespace, but "default" is the
524 // canonical representation. Not all objects are required to be scoped to a
525 // namespace - the value of this field for those objects will be empty.
526 //
527 // Must be a DNS_LABEL. Cannot be updated. More info:
528 // https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces
529 "namespace"?: string
530
531 // List of objects depended by this object. If ALL objects in the list have been
532 // deleted, this object will be garbage collected. If this object is managed by
533 // a controller, then an entry in this list will point to this controller, with
534 // the controller field set to true. There cannot be more than one managing
535 // controller.
536 "ownerReferences"?: [...#OwnerReference]
537
538 // An opaque value that represents the internal version of this object that can
539 // be used by clients to determine when objects have changed. May be used for
540 // optimistic concurrency, change detection, and the watch operation on a
541 // resource or set of resources. Clients must treat these values as opaque and
542 // passed unmodified back to the server. They may only be valid for a
543 // particular resource or set of resources.
544 //
545 // Populated by the system. Read-only. Value must be treated as opaque by
546 // clients and . More info:
547 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
548 "resourceVersion"?: string
549
550 // Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.
551 "selfLink"?: string
552
553 // UID is the unique in time and space value for this object. It is typically
554 // generated by the server on successful creation of a resource and is not
555 // allowed to change on PUT operations.
556 //
557 // Populated by the system. Read-only. More info:
558 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids
559 "uid"?: string
560}
561
562// OwnerReference contains enough information to let you identify an owning
563// object. An owning object must be in the same namespace as the dependent, or
564// be cluster-scoped, so there is no namespace field.
565#OwnerReference: {
566 // API version of the referent.
567 "apiVersion"!: string
568
569 // If true, AND if the owner has the "foregroundDeletion" finalizer, then the
570 // owner cannot be deleted from the key-value store until this reference is
571 // removed. See
572 // https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion
573 // for how the garbage collector interacts with this field and enforces the
574 // foreground deletion. Defaults to false. To set this field, a user needs
575 // "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will
576 // be returned.
577 "blockOwnerDeletion"?: bool
578
579 // If true, this reference points to the managing controller.
580 "controller"?: bool
581
582 // Kind of the referent. More info:
583 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
584 "kind"!: string
585
586 // Name of the referent. More info:
587 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names
588 "name"!: string
589
590 // UID of the referent. More info:
591 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids
592 "uid"!: string
593}
594
595// Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.
596#Patch: {}
597
598// Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.
599#Preconditions: {
600 // Specifies the target ResourceVersion
601 "resourceVersion"?: string
602
603 // Specifies the target UID.
604 "uid"?: string
605}
606
607// ServerAddressByClientCIDR helps the client to determine the server address
608// that they should use, depending on the clientCIDR that they match.
609#ServerAddressByClientCIDR: {
610 // The CIDR with which clients can match their IP to figure out the server
611 // address that they should use.
612 "clientCIDR"!: string
613
614 // Address of this server, suitable for a client that matches the above CIDR.
615 // This can be a hostname, hostname:port, IP or IP:port.
616 "serverAddress"!: string
617}
618
619// ShardInfo describes the shard selector that was applied to produce a list
620// response. Its presence on a list response indicates the list is a filtered
621// subset.
622#ShardInfo: {
623 // selector is the shard selector string from the request, echoed back so
624 // clients can verify which shard they received and merge responses from
625 // multiple shards.
626 "selector"!: string
627}
628
629// Status is a return value for calls that don't return other objects.
630#Status: {
631 // APIVersion defines the versioned schema of this representation of an object.
632 // Servers should convert recognized schemas to the latest internal value, and
633 // may reject unrecognized values. More info:
634 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
635 "apiVersion": "v1"
636
637 // Suggested HTTP return code for this status, 0 if not set.
638 "code"?: int32 & int
639
640 // Extended data associated with the reason. Each reason may define its own
641 // extended details. This field is optional and the data returned is not
642 // guaranteed to conform to any schema except that defined by the reason type.
643 "details"?: #StatusDetails
644
645 // Kind is a string value representing the REST resource this object represents.
646 // Servers may infer this from the endpoint the client submits requests to.
647 // Cannot be updated. In CamelCase. More info:
648 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
649 "kind": "Status"
650
651 // A human-readable description of the status of this operation.
652 "message"?: string
653
654 // Standard list metadata. More info:
655 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
656 "metadata"?: #ListMeta
657
658 // A machine-readable description of why this operation is in the "Failure"
659 // status. If this value is empty there is no information available. A Reason
660 // clarifies an HTTP status code but does not override it.
661 "reason"?: string
662
663 // Status of the operation. One of: "Success" or "Failure". More info:
664 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
665 "status"?: string
666}
667
668// StatusCause provides more information about an api.Status failure, including
669// cases when multiple errors are encountered.
670#StatusCause: {
671 // The field of the resource that has caused this error, as named by its JSON
672 // serialization. May include dot and postfix notation for nested attributes.
673 // Arrays are zero-indexed. Fields may appear more than once in an array of
674 // causes due to fields having multiple errors. Optional.
675 //
676 // Examples:
677 // "name" - the field "name" on the current resource
678 // "items[0].name" - the field "name" on the first array entry in "items"
679 "field"?: string
680
681 // A human-readable description of the cause of the error. This field may be
682 // presented as-is to a reader.
683 "message"?: string
684
685 // A machine-readable description of the cause of the error. If this value is
686 // empty there is no information available.
687 "reason"?: string
688}
689
690// StatusDetails is a set of additional properties that MAY be set by the server
691// to provide additional information about a response. The Reason field of a
692// Status object defines what attributes will be set. Clients must ignore
693// fields that do not match the defined type of each attribute, and should
694// assume that any attribute may be empty, invalid, or under defined.
695#StatusDetails: {
696 // The Causes array includes more details associated with the StatusReason
697 // failure. Not all StatusReasons may provide detailed causes.
698 "causes"?: [...#StatusCause]
699
700 // The group attribute of the resource associated with the status StatusReason.
701 "group"?: string
702
703 // The kind attribute of the resource associated with the status StatusReason.
704 // On some operations may differ from the requested resource Kind. More info:
705 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
706 "kind"?: string
707
708 // The name attribute of the resource associated with the status StatusReason
709 // (when there is a single name which can be described).
710 "name"?: string
711
712 // If specified, the time in seconds before the operation should be retried.
713 // Some errors may indicate the client must take an alternate action - for
714 // those errors this field may indicate how long to wait before taking the
715 // alternate action.
716 "retryAfterSeconds"?: int32 & int
717
718 // UID of the resource. (when there is a single resource which can be
719 // described). More info:
720 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids
721 "uid"?: string
722}
723
724// Time is a wrapper around time.Time which supports correct marshaling to YAML
725// and JSON. Wrappers are provided for many of the factory methods that the
726// time package offers.
727#Time: time.Time
728
729// Event represents a single event to a watched resource.
730#WatchEvent: {
731 // Object is:
732 // * If Type is Added or Modified: the new state of the object.
733 // * If Type is Deleted: the state of the object immediately before deletion.
734 // * If Type is Error: *Status is recommended; other types may make sense
735 // depending on context.
736 "object"!: runtime.#RawExtension
737 "type"!: string
738}