cue.dev/x/k8s.io@v0.12.0

apimachinery/pkg/apis/meta/v1/schema.cue raw

  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}