VOL-1917 move to go mod

Change-Id: Ia8de8bd8a4f4d908cc1fa745f6f4ec949629017b
diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto
index eb3237f..cc9099a 100644
--- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto
+++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto
@@ -92,6 +92,16 @@
 
   // categories is a list of the grouped resources this resource belongs to (e.g. 'all')
   repeated string categories = 7;
+
+  // 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.
+  // +optional
+  optional string storageVersionHash = 10;
 }
 
 // APIResourceList is a list of APIResource, it is used to expose the name of the
@@ -107,7 +117,7 @@
 
 // APIVersions lists the versions that are available, to allow clients to
 // discover the API at /api, which is the root path of the legacy v1 API.
-// 
+//
 // +protobuf.options.(gogoproto.goproto_stringer)=false
 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
 message APIVersions {
@@ -134,9 +144,12 @@
   // +optional
   repeated string dryRun = 1;
 
-  // If IncludeUninitialized is specified, the object may be
-  // returned without completing initialization.
-  optional bool includeUninitialized = 2;
+  // fieldManager is a name associated with the actor or entity
+  // that is making these changes. The value must be less than or
+  // 128 characters long, and only contain printable characters,
+  // as defined by https://golang.org/pkg/unicode/#IsPrint.
+  // +optional
+  optional string fieldManager = 3;
 }
 
 // DeleteOptions may be provided when deleting an API object.
@@ -188,14 +201,34 @@
 }
 
 // ExportOptions is the query options to the standard REST get call.
+// Deprecated. Planned for removal in 1.18.
 message ExportOptions {
   // Should this value be exported.  Export strips fields that a user can not specify.
+  // Deprecated. Planned for removal in 1.18.
   optional bool export = 1;
 
   // Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.
+  // Deprecated. Planned for removal in 1.18.
   optional bool exact = 2;
 }
 
+// Fields stores a set of fields in a data structure like a Trie.
+// To understand how this is used, see: https://github.com/kubernetes-sigs/structured-merge-diff
+message Fields {
+  // Map stores a set of fields in a data structure like a Trie.
+  //
+  // Each key is either a '.' representing the field itself, and will always map to an empty set,
+  // or a string representing a sub-field or item. The string will follow one of these four formats:
+  // 'f:<name>', where <name> is the name of a field in a struct, or key in a map
+  // 'v:<value>', where <value> is the exact json formatted value of a list item
+  // 'i:<index>', where <index> is position of a item in a list
+  // 'k:<keys>', where <keys> is a map of  a list item's key fields to their unique values
+  // If a key maps to an empty Fields value, the field that key represents is part of the set.
+  //
+  // The exact format is defined in k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal
+  map<string, Fields> map = 1;
+}
+
 // GetOptions is the standard query options to the standard REST get call.
 message GetOptions {
   // When specified:
@@ -203,15 +236,11 @@
   // - if it's 0, then we simply return what we currently have in cache, no guarantee;
   // - if set to non zero, then the result is at least as fresh as given rv.
   optional string resourceVersion = 1;
-
-  // If true, partially initialized resources are included in the response.
-  // +optional
-  optional bool includeUninitialized = 2;
 }
 
 // GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying
 // concepts during lookup stages without having partially valid types
-// 
+//
 // +protobuf.options.(gogoproto.goproto_stringer)=false
 message GroupKind {
   optional string group = 1;
@@ -221,7 +250,7 @@
 
 // GroupResource specifies a Group and a Resource, but does not force a version.  This is useful for identifying
 // concepts during lookup stages without having partially valid types
-// 
+//
 // +protobuf.options.(gogoproto.goproto_stringer)=false
 message GroupResource {
   optional string group = 1;
@@ -230,7 +259,7 @@
 }
 
 // GroupVersion contains the "group" and the "version", which uniquely identifies the API.
-// 
+//
 // +protobuf.options.(gogoproto.goproto_stringer)=false
 message GroupVersion {
   optional string group = 1;
@@ -251,7 +280,7 @@
 
 // GroupVersionKind unambiguously identifies a kind.  It doesn't anonymously include GroupVersion
 // to avoid automatic coersion.  It doesn't use a GroupVersion to avoid custom marshalling
-// 
+//
 // +protobuf.options.(gogoproto.goproto_stringer)=false
 message GroupVersionKind {
   optional string group = 1;
@@ -263,7 +292,7 @@
 
 // GroupVersionResource unambiguously identifies a resource.  It doesn't anonymously include GroupVersion
 // to avoid automatic coersion.  It doesn't use a GroupVersion to avoid custom marshalling
-// 
+//
 // +protobuf.options.(gogoproto.goproto_stringer)=false
 message GroupVersionResource {
   optional string group = 1;
@@ -366,6 +395,21 @@
   // identical to the value in the first response, unless you have received this token from an error
   // message.
   optional string continue = 3;
+
+  // remainingItemCount is the number of subsequent items in the list which are not included in this
+  // list response. If the list request contained label or field selectors, then the number of
+  // remaining items is unknown and the field will be left unset and omitted during serialization.
+  // If the list is complete (either because it is not chunking or because this is the last chunk),
+  // then there are no more remaining items and this field will be left unset and omitted during
+  // serialization.
+  // Servers older than v1.15 do not set this field.
+  // The intended use of the remainingItemCount is *estimating* the size of a collection. Clients
+  // should not rely on the remainingItemCount to be set or to be exact.
+  //
+  // This field is alpha and can be changed or removed without notice.
+  //
+  // +optional
+  optional int64 remainingItemCount = 4;
 }
 
 // ListOptions is the query options to a standard REST list call.
@@ -380,15 +424,25 @@
   // +optional
   optional string fieldSelector = 2;
 
-  // If true, partially initialized resources are included in the response.
-  // +optional
-  optional bool includeUninitialized = 6;
-
   // Watch for changes to the described resources and return them as a stream of
   // add, update, and remove notifications. Specify resourceVersion.
   // +optional
   optional bool watch = 3;
 
+  // allowWatchBookmarks requests watch events with type "BOOKMARK".
+  // Servers that do not implement bookmarks may ignore this flag and
+  // bookmarks are sent at the server's discretion. Clients should not
+  // assume bookmarks are returned at any specific interval, nor may they
+  // assume the server will send any BOOKMARK event during a session.
+  // If this is not a watch, this field is ignored.
+  // If the feature gate WatchBookmarks is not enabled in apiserver,
+  // this field is ignored.
+  //
+  // This field is alpha and can be changed or removed without notice.
+  //
+  // +optional
+  optional bool allowWatchBookmarks = 9;
+
   // When specified with a watch call, shows changes that occur after that particular version of a resource.
   // Defaults to changes from the beginning of history.
   // When specified for list:
@@ -411,7 +465,7 @@
   // more results are available. Servers may choose not to support the limit argument and will return
   // all of the available results. If limit is specified and the continue field is empty, clients may
   // assume that no more results are available. This field is not supported if watch is true.
-  // 
+  //
   // The server guarantees that the objects returned when using continue will be identical to issuing
   // a single list call without a limit - that is, no objects created, modified, or deleted after the
   // first request is issued will be included in any subsequent continued requests. This is sometimes
@@ -432,14 +486,39 @@
   // a list starting from the next key, but from the latest snapshot, which is inconsistent from the
   // previous list results - objects that are created, modified, or deleted after the first list request
   // will be included in the response, as long as their keys are after the "next key".
-  // 
+  //
   // This field is not supported when watch is true. Clients may start a watch from the last
   // resourceVersion value returned by the server and not miss any modifications.
   optional string continue = 8;
 }
 
+// ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource
+// that the fieldset applies to.
+message ManagedFieldsEntry {
+  // Manager is an identifier of the workflow managing these fields.
+  optional string manager = 1;
+
+  // Operation is the type of operation which lead to this ManagedFieldsEntry being created.
+  // The only valid values for this field are 'Apply' and 'Update'.
+  optional string operation = 2;
+
+  // APIVersion defines the version of this resource that this field set
+  // applies to. The format is "group/version" just like the top-level
+  // APIVersion field. It is necessary to track the version of a field
+  // set because it cannot be automatically converted.
+  optional string apiVersion = 3;
+
+  // Time is timestamp of when these fields were set. It should always be empty if Operation is 'Apply'
+  // +optional
+  optional Time time = 4;
+
+  // Fields identifies a set of fields.
+  // +optional
+  optional Fields fields = 5;
+}
+
 // MicroTime is version of Time with microsecond level precision.
-// 
+//
 // +protobuf.options.marshal=false
 // +protobuf.as=Timestamp
 // +protobuf.options.(gogoproto.goproto_stringer)=false
@@ -475,12 +554,12 @@
   // 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: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency
   // +optional
@@ -490,7 +569,7 @@
   // 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://kubernetes.io/docs/user-guide/namespaces
@@ -506,7 +585,7 @@
   // 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://kubernetes.io/docs/user-guide/identifiers#uids
@@ -518,7 +597,7 @@
   // 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 .
@@ -534,7 +613,7 @@
   // 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.
@@ -556,7 +635,7 @@
   // exist after this timestamp, until an administrator or automated process can determine the
   // resource is fully terminated.
   // 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: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
@@ -598,10 +677,12 @@
   // this object has been completely initialized. Otherwise, the object is considered uninitialized
   // and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
   // observe uninitialized objects.
-  // 
+  //
   // When an object is created, the system will populate this list with the current set of initializers.
   // Only privileged users may set or modify this list. Once it is empty, it may not be modified further
   // by any user.
+  //
+  // DEPRECATED - initializers are an alpha field and will be removed in v1.15.
   optional Initializers initializers = 16;
 
   // Must be empty before the object is deleted from the registry. Each entry
@@ -617,11 +698,24 @@
   // This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
   // +optional
   optional string clusterName = 15;
+
+  // ManagedFields maps workflow-id and version to the set of fields
+  // that are managed by that workflow. This is mostly for internal
+  // housekeeping, and users typically shouldn't need to set or
+  // understand this field. A workflow can be the user's name, a
+  // controller's name, or the name of a specific apply path like
+  // "ci-cd". The set of fields is always in the version that the
+  // workflow used when modifying the object.
+  //
+  // This field is alpha and can be changed or removed without notice.
+  //
+  // +optional
+  repeated ManagedFieldsEntry managedFields = 17;
 }
 
 // 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.
+// object. An owning object must be in the same namespace as the dependent, or
+// be cluster-scoped, so there is no namespace field.
 message OwnerReference {
   // API version of the referent.
   optional string apiVersion = 5;
@@ -652,15 +746,69 @@
   optional bool blockOwnerDeletion = 7;
 }
 
+// PartialObjectMetadata is a generic representation of any object with ObjectMeta. It allows clients
+// to get access to a particular ObjectMeta schema without knowing the details of the version.
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+message PartialObjectMetadata {
+  // Standard object's metadata.
+  // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
+  // +optional
+  optional ObjectMeta metadata = 1;
+}
+
+// PartialObjectMetadataList contains a list of objects containing only their metadata
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+message PartialObjectMetadataList {
+  // Standard list metadata.
+  // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
+  // +optional
+  optional ListMeta metadata = 1;
+
+  // items contains each of the included items.
+  repeated PartialObjectMetadata items = 2;
+}
+
 // Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.
 message Patch {
 }
 
+// PatchOptions may be provided when patching an API object.
+// PatchOptions is meant to be a superset of UpdateOptions.
+message PatchOptions {
+  // When present, indicates that modifications should not be
+  // persisted. An invalid or unrecognized dryRun directive will
+  // result in an error response and no further processing of the
+  // request. Valid values are:
+  // - All: all dry run stages will be processed
+  // +optional
+  repeated string dryRun = 1;
+
+  // Force is going to "force" Apply requests. It means user will
+  // re-acquire conflicting fields owned by other people. Force
+  // flag must be unset for non-apply patch requests.
+  // +optional
+  optional bool force = 2;
+
+  // fieldManager is a name associated with the actor or entity
+  // that is making these changes. The value must be less than or
+  // 128 characters long, and only contain printable characters,
+  // as defined by https://golang.org/pkg/unicode/#IsPrint. This
+  // field is required for apply requests
+  // (application/apply-patch) but optional for non-apply patch
+  // types (JsonPatch, MergePatch, StrategicMergePatch).
+  // +optional
+  optional string fieldManager = 3;
+}
+
 // Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.
 message Preconditions {
   // Specifies the target UID.
   // +optional
   optional string uid = 1;
+
+  // Specifies the target ResourceVersion
+  // +optional
+  optional string resourceVersion = 2;
 }
 
 // RootPaths lists the paths available at root.
@@ -734,7 +882,7 @@
   // Arrays are zero-indexed.  Fields may appear more than once in an array of
   // causes due to fields having multiple errors.
   // Optional.
-  // 
+  //
   // Examples:
   //   "name" - the field "name" on the current resource
   //   "items[0].name" - the field "name" on the first array entry in "items"
@@ -782,10 +930,20 @@
   optional int32 retryAfterSeconds = 5;
 }
 
+// TableOptions are used when a Table is requested by the caller.
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+message TableOptions {
+  // includeObject decides whether to include each object along with its columnar information.
+  // Specifying "None" will return no object, specifying "Object" will return the full object contents, and
+  // specifying "Metadata" (the default) will return the object's metadata in the PartialObjectMetadata kind
+  // in version v1beta1 of the meta.k8s.io API group.
+  optional string includeObject = 1;
+}
+
 // Time is a wrapper around time.Time which supports correct
 // marshaling to YAML and JSON.  Wrappers are provided for many
 // of the factory methods that the time package offers.
-// 
+//
 // +protobuf.options.marshal=false
 // +protobuf.as=Timestamp
 // +protobuf.options.(gogoproto.goproto_stringer)=false
@@ -821,7 +979,7 @@
 // TypeMeta describes an individual object in an API response or request
 // with strings representing the type of the object and its API schema version.
 // Structures that are versioned or persisted should inline TypeMeta.
-// 
+//
 // +k8s:deepcopy-gen=false
 message TypeMeta {
   // Kind is a string value representing the REST resource this object represents.
@@ -841,6 +999,7 @@
 }
 
 // UpdateOptions may be provided when updating an API object.
+// All fields in UpdateOptions should also be present in PatchOptions.
 message UpdateOptions {
   // When present, indicates that modifications should not be
   // persisted. An invalid or unrecognized dryRun directive will
@@ -849,10 +1008,17 @@
   // - All: all dry run stages will be processed
   // +optional
   repeated string dryRun = 1;
+
+  // fieldManager is a name associated with the actor or entity
+  // that is making these changes. The value must be less than or
+  // 128 characters long, and only contain printable characters,
+  // as defined by https://golang.org/pkg/unicode/#IsPrint.
+  // +optional
+  optional string fieldManager = 2;
 }
 
 // Verbs masks the value so protobuf can generate
-// 
+//
 // +protobuf.nullable=true
 // +protobuf.options.(gogoproto.goproto_stringer)=false
 message Verbs {
@@ -862,7 +1028,7 @@
 }
 
 // Event represents a single event to a watched resource.
-// 
+//
 // +protobuf=true
 // +k8s:deepcopy-gen=true
 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object