mirror of https://github.com/dexidp/dex.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
8.9 KiB
162 lines
8.9 KiB
/* |
|
Copyright 2015 The Kubernetes Authors All rights reserved. |
|
|
|
Licensed under the Apache License, Version 2.0 (the "License"); |
|
you may not use this file except in compliance with the License. |
|
You may obtain a copy of the License at |
|
|
|
http://www.apache.org/licenses/LICENSE-2.0 |
|
|
|
Unless required by applicable law or agreed to in writing, software |
|
distributed under the License is distributed on an "AS IS" BASIS, |
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
See the License for the specific language governing permissions and |
|
limitations under the License. |
|
*/ |
|
|
|
package k8sapi |
|
|
|
// ObjectMeta is metadata that all persisted resources must have, which includes all objects |
|
// users must create. |
|
type ObjectMeta struct { |
|
// Name must be unique within a namespace. Is required when creating resources, although |
|
// some resources may allow a client to request the generation of an appropriate name |
|
// automatically. Name is primarily intended for creation idempotence and configuration |
|
// definition. |
|
// Cannot be updated. |
|
// More info: http://releases.k8s.io/release-1.3/docs/user-guide/identifiers.md#names |
|
Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` |
|
|
|
// GenerateName is an optional prefix, used by the server, to generate a unique |
|
// name ONLY IF the Name field has not been provided. |
|
// If this field is used, the name returned to the client will be different |
|
// than the name passed. This value will also be combined with a unique suffix. |
|
// The provided value has the same validation rules as the Name field, |
|
// and may be truncated by the length of the suffix required to make the value |
|
// unique on the server. |
|
// |
|
// If this field is specified and the generated name exists, the server will |
|
// NOT return a 409 - instead, it will either return 201 Created or 500 with Reason |
|
// ServerTimeout indicating a unique name could not be found in the time allotted, and the client |
|
// should retry (optionally after the time indicated in the Retry-After header). |
|
// |
|
// Applied only if Name is not specified. |
|
// More info: http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#idempotency |
|
GenerateName string `json:"generateName,omitempty" protobuf:"bytes,2,opt,name=generateName"` |
|
|
|
// Namespace defines the space within each name must be unique. An empty namespace is |
|
// equivalent to the "default" namespace, but "default" is the canonical representation. |
|
// Not all objects are required to be scoped to a namespace - the value of this field for |
|
// those objects will be empty. |
|
// |
|
// Must be a DNS_LABEL. |
|
// Cannot be updated. |
|
// More info: http://releases.k8s.io/release-1.3/docs/user-guide/namespaces.md |
|
Namespace string `json:"namespace,omitempty" protobuf:"bytes,3,opt,name=namespace"` |
|
|
|
// SelfLink is a URL representing this object. |
|
// Populated by the system. |
|
// Read-only. |
|
SelfLink string `json:"selfLink,omitempty" protobuf:"bytes,4,opt,name=selfLink"` |
|
|
|
// UID is the unique in time and space value for this object. It is typically generated by |
|
// the server on successful creation of a resource and is not allowed to change on PUT |
|
// operations. |
|
// |
|
// Populated by the system. |
|
// Read-only. |
|
// More info: http://releases.k8s.io/release-1.3/docs/user-guide/identifiers.md#uids |
|
UID string `json:"uid,omitempty" protobuf:"bytes,5,opt,name=uid,casttype=k8s.io/kubernetes/pkg/types.UID"` |
|
|
|
// An opaque value that represents the internal version of this object that can |
|
// be used by clients to determine when objects have changed. May be used for optimistic |
|
// concurrency, change detection, and the watch operation on a resource or set of resources. |
|
// Clients must treat these values as opaque and passed unmodified back to the server. |
|
// They may only be valid for a particular resource or set of resources. |
|
// |
|
// Populated by the system. |
|
// Read-only. |
|
// Value must be treated as opaque by clients and . |
|
// More info: http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#concurrency-control-and-consistency |
|
ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,6,opt,name=resourceVersion"` |
|
|
|
// A sequence number representing a specific generation of the desired state. |
|
// Populated by the system. Read-only. |
|
Generation int64 `json:"generation,omitempty" protobuf:"varint,7,opt,name=generation"` |
|
|
|
// CreationTimestamp is a timestamp representing the server time when this object was |
|
// created. It is not guaranteed to be set in happens-before order across separate operations. |
|
// Clients may not set this value. It is represented in RFC3339 form and is in UTC. |
|
// |
|
// Populated by the system. |
|
// Read-only. |
|
// Null for lists. |
|
// More info: http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#metadata |
|
CreationTimestamp Time `json:"creationTimestamp,omitempty" protobuf:"bytes,8,opt,name=creationTimestamp"` |
|
|
|
// DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This |
|
// field is set by the server when a graceful deletion is requested by the user, and is not |
|
// directly settable by a client. The resource will be deleted (no longer visible from |
|
// resource lists, and not reachable by name) after the time in this field. Once set, this |
|
// value may not be unset or be set further into the future, although it may be shortened |
|
// or the resource may be deleted prior to this time. For example, a user may request that |
|
// a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination |
|
// signal to the containers in the pod. Once the resource is deleted in the API, the Kubelet |
|
// will send a hard termination signal to the container. |
|
// If not set, graceful deletion of the object has not been requested. |
|
// |
|
// Populated by the system when a graceful deletion is requested. |
|
// Read-only. |
|
// More info: http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#metadata |
|
DeletionTimestamp *Time `json:"deletionTimestamp,omitempty" protobuf:"bytes,9,opt,name=deletionTimestamp"` |
|
|
|
// Number of seconds allowed for this object to gracefully terminate before |
|
// it will be removed from the system. Only set when deletionTimestamp is also set. |
|
// May only be shortened. |
|
// Read-only. |
|
DeletionGracePeriodSeconds *int64 `json:"deletionGracePeriodSeconds,omitempty" protobuf:"varint,10,opt,name=deletionGracePeriodSeconds"` |
|
|
|
// Map of string keys and values that can be used to organize and categorize |
|
// (scope and select) objects. May match selectors of replication controllers |
|
// and services. |
|
// More info: http://releases.k8s.io/release-1.3/docs/user-guide/labels.md |
|
// TODO: replace map[string]string with labels.LabelSet type |
|
Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,11,rep,name=labels"` |
|
|
|
// Annotations is an unstructured key value map stored with a resource that may be |
|
// set by external tools to store and retrieve arbitrary metadata. They are not |
|
// queryable and should be preserved when modifying objects. |
|
// More info: http://releases.k8s.io/release-1.3/docs/user-guide/annotations.md |
|
Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,12,rep,name=annotations"` |
|
|
|
// List of objects depended by this object. If ALL objects in the list have |
|
// been deleted, this object will be garbage collected. If this object is managed by a controller, |
|
// then an entry in this list will point to this controller, with the controller field set to true. |
|
// There cannot be more than one managing controller. |
|
OwnerReferences []OwnerReference `json:"ownerReferences,omitempty" patchStrategy:"merge" patchMergeKey:"uid" protobuf:"bytes,13,rep,name=ownerReferences"` |
|
|
|
// Must be empty before the object is deleted from the registry. Each entry |
|
// is an identifier for the responsible component that will remove the entry |
|
// from the list. If the deletionTimestamp of the object is non-nil, entries |
|
// in this list can only be removed. |
|
Finalizers []string `json:"finalizers,omitempty" patchStrategy:"merge" protobuf:"bytes,14,rep,name=finalizers"` |
|
} |
|
|
|
// OwnerReference contains enough information to let you identify an owning |
|
// object. Currently, an owning object must be in the same namespace, so there |
|
// is no namespace field. |
|
type OwnerReference struct { |
|
// API version of the referent. |
|
APIVersion string `json:"apiVersion" protobuf:"bytes,5,opt,name=apiVersion"` |
|
// Kind of the referent. |
|
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds |
|
Kind string `json:"kind" protobuf:"bytes,1,opt,name=kind"` |
|
// Name of the referent. |
|
// More info: http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#names |
|
Name string `json:"name" protobuf:"bytes,3,opt,name=name"` |
|
// UID of the referent. |
|
// More info: http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#uids |
|
UID string `json:"uid" protobuf:"bytes,4,opt,name=uid,casttype=k8s.io/kubernetes/pkg/types.UID"` |
|
// If true, this reference points to the managing controller. |
|
Controller *bool `json:"controller,omitempty" protobuf:"varint,6,opt,name=controller"` |
|
}
|
|
|