123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- /*
- Copyright 2016 The Kubernetes Authors.
- 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.
- */
- // This file was autogenerated by go-to-protobuf. Do not edit it manually!
- syntax = 'proto2';
- package k8s.io.kubernetes.pkg.runtime;
- import "k8s.io/kubernetes/pkg/api/resource/generated.proto";
- import "k8s.io/kubernetes/pkg/util/intstr/generated.proto";
- // Package-wide variables from generator "generated".
- option go_package = "runtime";
- // RawExtension is used to hold extensions in external versions.
- //
- // To use this, make a field which has RawExtension as its type in your external, versioned
- // struct, and Object in your internal struct. You also need to register your
- // various plugin types.
- //
- // // Internal package:
- // type MyAPIObject struct {
- // runtime.TypeMeta `json:",inline"`
- // MyPlugin runtime.Object `json:"myPlugin"`
- // }
- // type PluginA struct {
- // AOption string `json:"aOption"`
- // }
- //
- // // External package:
- // type MyAPIObject struct {
- // runtime.TypeMeta `json:",inline"`
- // MyPlugin runtime.RawExtension `json:"myPlugin"`
- // }
- // type PluginA struct {
- // AOption string `json:"aOption"`
- // }
- //
- // // On the wire, the JSON will look something like this:
- // {
- // "kind":"MyAPIObject",
- // "apiVersion":"v1",
- // "myPlugin": {
- // "kind":"PluginA",
- // "aOption":"foo",
- // },
- // }
- //
- // So what happens? Decode first uses json or yaml to unmarshal the serialized data into
- // your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked.
- // The next step is to copy (using pkg/conversion) into the internal struct. The runtime
- // package's DefaultScheme has conversion functions installed which will unpack the
- // JSON stored in RawExtension, turning it into the correct object type, and storing it
- // in the Object. (TODO: In the case where the object is of an unknown type, a
- // runtime.Unknown object will be created and stored.)
- //
- // +k8s:deepcopy-gen=true
- // +protobuf=true
- message RawExtension {
- // Raw is the underlying serialization of this object.
- //
- // TODO: Determine how to detect ContentType and ContentEncoding of 'Raw' data.
- optional bytes raw = 1;
- }
- // TypeMeta is shared by all top level objects. The proper way to use it is to inline it in your type,
- // like this:
- // type MyAwesomeAPIObject struct {
- // runtime.TypeMeta `json:",inline"`
- // ... // other fields
- // }
- // func (obj *MyAwesomeAPIObject) SetGroupVersionKind(gvk *unversioned.GroupVersionKind) { unversioned.UpdateTypeMeta(obj,gvk) }; GroupVersionKind() *GroupVersionKind
- //
- // TypeMeta is provided here for convenience. You may use it directly from this package or define
- // your own with the same fields.
- //
- // +k8s:deepcopy-gen=true
- // +protobuf=true
- message TypeMeta {
- optional string apiVersion = 1;
- optional string kind = 2;
- }
- // Unknown allows api objects with unknown types to be passed-through. This can be used
- // to deal with the API objects from a plug-in. Unknown objects still have functioning
- // TypeMeta features-- kind, version, etc.
- // TODO: Make this object have easy access to field based accessors and settors for
- // metadata and field mutatation.
- //
- // +k8s:deepcopy-gen=true
- // +protobuf=true
- message Unknown {
- optional TypeMeta typeMeta = 1;
- // Raw will hold the complete serialized object which couldn't be matched
- // with a registered type. Most likely, nothing should be done with this
- // except for passing it through the system.
- optional bytes raw = 2;
- // ContentEncoding is encoding used to encode 'Raw' data.
- // Unspecified means no encoding.
- optional string contentEncoding = 3;
- // ContentType is serialization method used to serialize 'Raw'.
- // Unspecified means ContentTypeJSON.
- optional string contentType = 4;
- }
|