Add Apply functions to client-gen

This commit is contained in:
Joe Betz 2020-11-06 10:14:12 -08:00
parent a44db4f9ef
commit 293e07a836
22 changed files with 1063 additions and 269 deletions

View File

@ -6,6 +6,7 @@ API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIRe
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIResourceList,APIResources
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIVersions,ServerAddressByClientCIDRs
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIVersions,Versions
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,ApplyOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,CreateOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,DeleteOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,FieldsV1,Raw

View File

@ -6,6 +6,7 @@ API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIRe
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIResourceList,APIResources
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIVersions,ServerAddressByClientCIDRs
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIVersions,Versions
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,ApplyOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,CreateOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,DeleteOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,FieldsV1,Raw

View File

@ -6,6 +6,7 @@ API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIRe
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIResourceList,APIResources
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIVersions,ServerAddressByClientCIDRs
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIVersions,Versions
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,ApplyOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,CreateOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,DeleteOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,FieldsV1,Raw

View File

@ -6,6 +6,7 @@ API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIRe
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIResourceList,APIResources
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIVersions,ServerAddressByClientCIDRs
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIVersions,Versions
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,ApplyOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,CreateOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,DeleteOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,FieldsV1,Raw

View File

@ -311,6 +311,7 @@ API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIRe
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIResourceList,APIResources
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIVersions,ServerAddressByClientCIDRs
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIVersions,Versions
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,ApplyOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,CreateOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,DeleteOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,FieldsV1,Raw

View File

@ -74,7 +74,7 @@ ${applyconfigurationgen} \
# This can be called with one flag, --verify-only, so it works for both the
# update- and verify- scripts.
${clientgen} --output-base "${KUBE_ROOT}/vendor" --output-package="k8s.io/client-go" --clientset-name="kubernetes" --input-base="k8s.io/api" --input="${GV_DIRS_CSV}" --go-header-file "${KUBE_ROOT}/hack/boilerplate/boilerplate.generatego.txt" "$@"
${clientgen} --output-base "${KUBE_ROOT}/vendor" --output-package="k8s.io/client-go" --clientset-name="kubernetes" --input-base="k8s.io/api" --input="${GV_DIRS_CSV}" --apply-configuration-package "${applyconfigurations_package}" --go-header-file "${KUBE_ROOT}/hack/boilerplate/boilerplate.generatego.txt" "$@"
listergen_external_apis=()
kube::util::read-array listergen_external_apis < <(

View File

@ -36,6 +36,7 @@ import (
"k8s.io/apimachinery/pkg/types"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/apimachinery/pkg/watch"
appsv1apply "k8s.io/client-go/applyconfigurations/apps/v1"
coreinformers "k8s.io/client-go/informers/core/v1"
clientset "k8s.io/client-go/kubernetes"
appsv1client "k8s.io/client-go/kubernetes/typed/apps/v1"
@ -247,6 +248,14 @@ func (c conversionClient) Patch(ctx context.Context, name string, pt types.Patch
return nil, errors.New("Patch() is not implemented for conversionClient")
}
func (c conversionClient) Apply(ctx context.Context, rs *appsv1apply.ReplicaSetApplyConfiguration, opts metav1.ApplyOptions) (*apps.ReplicaSet, error) {
return nil, errors.New("Apply() is not implemented for conversionClient")
}
func (c conversionClient) ApplyStatus(ctx context.Context, rs *appsv1apply.ReplicaSetApplyConfiguration, opts metav1.ApplyOptions) (*apps.ReplicaSet, error) {
return nil, errors.New("ApplyStatus() is not implemented for conversionClient")
}
func (c conversionClient) GetScale(ctx context.Context, name string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {
// This is not used by RSC.
return nil, errors.New("GetScale() is not implemented for conversionClient")

View File

@ -36,6 +36,7 @@ import (
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/strategicpatch"
"k8s.io/apimachinery/pkg/watch"
v1apply "k8s.io/client-go/applyconfigurations/core/v1"
"k8s.io/client-go/kubernetes/fake"
v1core "k8s.io/client-go/kubernetes/typed/core/v1"
"k8s.io/client-go/tools/cache"
@ -349,6 +350,36 @@ func (m *FakeNodeHandler) Patch(_ context.Context, name string, pt types.PatchTy
return &updatedNode, nil
}
// Apply applies a NodeApplyConfiguration to a Node in the fake store.
func (m *FakeNodeHandler) Apply(ctx context.Context, node *v1apply.NodeApplyConfiguration, opts metav1.ApplyOptions) (*v1.Node, error) {
patchOpts := opts.ToPatchOptions()
data, err := json.Marshal(node)
if err != nil {
return nil, err
}
name := node.Name
if name == nil {
return nil, fmt.Errorf("deployment.Name must be provided to Apply")
}
return m.Patch(ctx, *name, types.ApplyPatchType, data, patchOpts)
}
// ApplyStatus applies a status of a Node in the fake store.
func (m *FakeNodeHandler) ApplyStatus(ctx context.Context, node *v1apply.NodeApplyConfiguration, opts metav1.ApplyOptions) (*v1.Node, error) {
patchOpts := opts.ToPatchOptions()
data, err := json.Marshal(node)
if err != nil {
return nil, err
}
name := node.Name
if name == nil {
return nil, fmt.Errorf("deployment.Name must be provided to Apply")
}
return m.Patch(ctx, *name, types.ApplyPatchType, data, patchOpts, "status")
}
// FakeRecorder is used as a fake during testing.
type FakeRecorder struct {
sync.Mutex

View File

@ -56,6 +56,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"k8s.io/apimachinery/pkg/apis/meta/v1.APIResource": schema_pkg_apis_meta_v1_APIResource(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.APIResourceList": schema_pkg_apis_meta_v1_APIResourceList(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.APIVersions": schema_pkg_apis_meta_v1_APIVersions(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.ApplyOptions": schema_pkg_apis_meta_v1_ApplyOptions(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.Condition": schema_pkg_apis_meta_v1_Condition(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.CreateOptions": schema_pkg_apis_meta_v1_CreateOptions(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.DeleteOptions": schema_pkg_apis_meta_v1_DeleteOptions(ref),
@ -1365,6 +1366,65 @@ func schema_pkg_apis_meta_v1_APIVersions(ref common.ReferenceCallback) common.Op
}
}
func schema_pkg_apis_meta_v1_ApplyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "ApplyOptions may be provided when applying an API object. FieldManager is required for apply requests. ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation that speaks specifically to how the options fields relate to apply.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
SchemaProps: spec.SchemaProps{
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type: []string{"string"},
Format: "",
},
},
"apiVersion": {
SchemaProps: spec.SchemaProps{
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Type: []string{"string"},
Format: "",
},
},
"dryRun": {
SchemaProps: spec.SchemaProps{
Description: "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",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
},
},
"force": {
SchemaProps: spec.SchemaProps{
Description: "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people.",
Default: false,
Type: []string{"boolean"},
Format: "",
},
},
"fieldManager": {
SchemaProps: spec.SchemaProps{
Description: "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.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"force", "fieldManager"},
},
},
}
}
func schema_pkg_apis_meta_v1_Condition(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{

View File

@ -189,10 +189,38 @@ func (m *APIVersions) XXX_DiscardUnknown() {
var xxx_messageInfo_APIVersions proto.InternalMessageInfo
func (m *ApplyOptions) Reset() { *m = ApplyOptions{} }
func (*ApplyOptions) ProtoMessage() {}
func (*ApplyOptions) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{5}
}
func (m *ApplyOptions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *ApplyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
func (m *ApplyOptions) XXX_Merge(src proto.Message) {
xxx_messageInfo_ApplyOptions.Merge(m, src)
}
func (m *ApplyOptions) XXX_Size() int {
return m.Size()
}
func (m *ApplyOptions) XXX_DiscardUnknown() {
xxx_messageInfo_ApplyOptions.DiscardUnknown(m)
}
var xxx_messageInfo_ApplyOptions proto.InternalMessageInfo
func (m *Condition) Reset() { *m = Condition{} }
func (*Condition) ProtoMessage() {}
func (*Condition) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{5}
return fileDescriptor_cf52fa777ced5367, []int{6}
}
func (m *Condition) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -220,7 +248,7 @@ var xxx_messageInfo_Condition proto.InternalMessageInfo
func (m *CreateOptions) Reset() { *m = CreateOptions{} }
func (*CreateOptions) ProtoMessage() {}
func (*CreateOptions) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{6}
return fileDescriptor_cf52fa777ced5367, []int{7}
}
func (m *CreateOptions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -248,7 +276,7 @@ var xxx_messageInfo_CreateOptions proto.InternalMessageInfo
func (m *DeleteOptions) Reset() { *m = DeleteOptions{} }
func (*DeleteOptions) ProtoMessage() {}
func (*DeleteOptions) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{7}
return fileDescriptor_cf52fa777ced5367, []int{8}
}
func (m *DeleteOptions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -276,7 +304,7 @@ var xxx_messageInfo_DeleteOptions proto.InternalMessageInfo
func (m *Duration) Reset() { *m = Duration{} }
func (*Duration) ProtoMessage() {}
func (*Duration) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{8}
return fileDescriptor_cf52fa777ced5367, []int{9}
}
func (m *Duration) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -304,7 +332,7 @@ var xxx_messageInfo_Duration proto.InternalMessageInfo
func (m *FieldsV1) Reset() { *m = FieldsV1{} }
func (*FieldsV1) ProtoMessage() {}
func (*FieldsV1) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{9}
return fileDescriptor_cf52fa777ced5367, []int{10}
}
func (m *FieldsV1) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -332,7 +360,7 @@ var xxx_messageInfo_FieldsV1 proto.InternalMessageInfo
func (m *GetOptions) Reset() { *m = GetOptions{} }
func (*GetOptions) ProtoMessage() {}
func (*GetOptions) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{10}
return fileDescriptor_cf52fa777ced5367, []int{11}
}
func (m *GetOptions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -360,7 +388,7 @@ var xxx_messageInfo_GetOptions proto.InternalMessageInfo
func (m *GroupKind) Reset() { *m = GroupKind{} }
func (*GroupKind) ProtoMessage() {}
func (*GroupKind) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{11}
return fileDescriptor_cf52fa777ced5367, []int{12}
}
func (m *GroupKind) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -388,7 +416,7 @@ var xxx_messageInfo_GroupKind proto.InternalMessageInfo
func (m *GroupResource) Reset() { *m = GroupResource{} }
func (*GroupResource) ProtoMessage() {}
func (*GroupResource) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{12}
return fileDescriptor_cf52fa777ced5367, []int{13}
}
func (m *GroupResource) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -416,7 +444,7 @@ var xxx_messageInfo_GroupResource proto.InternalMessageInfo
func (m *GroupVersion) Reset() { *m = GroupVersion{} }
func (*GroupVersion) ProtoMessage() {}
func (*GroupVersion) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{13}
return fileDescriptor_cf52fa777ced5367, []int{14}
}
func (m *GroupVersion) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -444,7 +472,7 @@ var xxx_messageInfo_GroupVersion proto.InternalMessageInfo
func (m *GroupVersionForDiscovery) Reset() { *m = GroupVersionForDiscovery{} }
func (*GroupVersionForDiscovery) ProtoMessage() {}
func (*GroupVersionForDiscovery) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{14}
return fileDescriptor_cf52fa777ced5367, []int{15}
}
func (m *GroupVersionForDiscovery) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -472,7 +500,7 @@ var xxx_messageInfo_GroupVersionForDiscovery proto.InternalMessageInfo
func (m *GroupVersionKind) Reset() { *m = GroupVersionKind{} }
func (*GroupVersionKind) ProtoMessage() {}
func (*GroupVersionKind) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{15}
return fileDescriptor_cf52fa777ced5367, []int{16}
}
func (m *GroupVersionKind) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -500,7 +528,7 @@ var xxx_messageInfo_GroupVersionKind proto.InternalMessageInfo
func (m *GroupVersionResource) Reset() { *m = GroupVersionResource{} }
func (*GroupVersionResource) ProtoMessage() {}
func (*GroupVersionResource) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{16}
return fileDescriptor_cf52fa777ced5367, []int{17}
}
func (m *GroupVersionResource) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -528,7 +556,7 @@ var xxx_messageInfo_GroupVersionResource proto.InternalMessageInfo
func (m *LabelSelector) Reset() { *m = LabelSelector{} }
func (*LabelSelector) ProtoMessage() {}
func (*LabelSelector) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{17}
return fileDescriptor_cf52fa777ced5367, []int{18}
}
func (m *LabelSelector) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -556,7 +584,7 @@ var xxx_messageInfo_LabelSelector proto.InternalMessageInfo
func (m *LabelSelectorRequirement) Reset() { *m = LabelSelectorRequirement{} }
func (*LabelSelectorRequirement) ProtoMessage() {}
func (*LabelSelectorRequirement) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{18}
return fileDescriptor_cf52fa777ced5367, []int{19}
}
func (m *LabelSelectorRequirement) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -584,7 +612,7 @@ var xxx_messageInfo_LabelSelectorRequirement proto.InternalMessageInfo
func (m *List) Reset() { *m = List{} }
func (*List) ProtoMessage() {}
func (*List) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{19}
return fileDescriptor_cf52fa777ced5367, []int{20}
}
func (m *List) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -612,7 +640,7 @@ var xxx_messageInfo_List proto.InternalMessageInfo
func (m *ListMeta) Reset() { *m = ListMeta{} }
func (*ListMeta) ProtoMessage() {}
func (*ListMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{20}
return fileDescriptor_cf52fa777ced5367, []int{21}
}
func (m *ListMeta) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -640,7 +668,7 @@ var xxx_messageInfo_ListMeta proto.InternalMessageInfo
func (m *ListOptions) Reset() { *m = ListOptions{} }
func (*ListOptions) ProtoMessage() {}
func (*ListOptions) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{21}
return fileDescriptor_cf52fa777ced5367, []int{22}
}
func (m *ListOptions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -668,7 +696,7 @@ var xxx_messageInfo_ListOptions proto.InternalMessageInfo
func (m *ManagedFieldsEntry) Reset() { *m = ManagedFieldsEntry{} }
func (*ManagedFieldsEntry) ProtoMessage() {}
func (*ManagedFieldsEntry) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{22}
return fileDescriptor_cf52fa777ced5367, []int{23}
}
func (m *ManagedFieldsEntry) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -696,7 +724,7 @@ var xxx_messageInfo_ManagedFieldsEntry proto.InternalMessageInfo
func (m *MicroTime) Reset() { *m = MicroTime{} }
func (*MicroTime) ProtoMessage() {}
func (*MicroTime) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{23}
return fileDescriptor_cf52fa777ced5367, []int{24}
}
func (m *MicroTime) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MicroTime.Unmarshal(m, b)
@ -719,7 +747,7 @@ var xxx_messageInfo_MicroTime proto.InternalMessageInfo
func (m *ObjectMeta) Reset() { *m = ObjectMeta{} }
func (*ObjectMeta) ProtoMessage() {}
func (*ObjectMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{24}
return fileDescriptor_cf52fa777ced5367, []int{25}
}
func (m *ObjectMeta) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -747,7 +775,7 @@ var xxx_messageInfo_ObjectMeta proto.InternalMessageInfo
func (m *OwnerReference) Reset() { *m = OwnerReference{} }
func (*OwnerReference) ProtoMessage() {}
func (*OwnerReference) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{25}
return fileDescriptor_cf52fa777ced5367, []int{26}
}
func (m *OwnerReference) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -775,7 +803,7 @@ var xxx_messageInfo_OwnerReference proto.InternalMessageInfo
func (m *PartialObjectMetadata) Reset() { *m = PartialObjectMetadata{} }
func (*PartialObjectMetadata) ProtoMessage() {}
func (*PartialObjectMetadata) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{26}
return fileDescriptor_cf52fa777ced5367, []int{27}
}
func (m *PartialObjectMetadata) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -803,7 +831,7 @@ var xxx_messageInfo_PartialObjectMetadata proto.InternalMessageInfo
func (m *PartialObjectMetadataList) Reset() { *m = PartialObjectMetadataList{} }
func (*PartialObjectMetadataList) ProtoMessage() {}
func (*PartialObjectMetadataList) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{27}
return fileDescriptor_cf52fa777ced5367, []int{28}
}
func (m *PartialObjectMetadataList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -831,7 +859,7 @@ var xxx_messageInfo_PartialObjectMetadataList proto.InternalMessageInfo
func (m *Patch) Reset() { *m = Patch{} }
func (*Patch) ProtoMessage() {}
func (*Patch) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{28}
return fileDescriptor_cf52fa777ced5367, []int{29}
}
func (m *Patch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -859,7 +887,7 @@ var xxx_messageInfo_Patch proto.InternalMessageInfo
func (m *PatchOptions) Reset() { *m = PatchOptions{} }
func (*PatchOptions) ProtoMessage() {}
func (*PatchOptions) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{29}
return fileDescriptor_cf52fa777ced5367, []int{30}
}
func (m *PatchOptions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -887,7 +915,7 @@ var xxx_messageInfo_PatchOptions proto.InternalMessageInfo
func (m *Preconditions) Reset() { *m = Preconditions{} }
func (*Preconditions) ProtoMessage() {}
func (*Preconditions) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{30}
return fileDescriptor_cf52fa777ced5367, []int{31}
}
func (m *Preconditions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -915,7 +943,7 @@ var xxx_messageInfo_Preconditions proto.InternalMessageInfo
func (m *RootPaths) Reset() { *m = RootPaths{} }
func (*RootPaths) ProtoMessage() {}
func (*RootPaths) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{31}
return fileDescriptor_cf52fa777ced5367, []int{32}
}
func (m *RootPaths) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -943,7 +971,7 @@ var xxx_messageInfo_RootPaths proto.InternalMessageInfo
func (m *ServerAddressByClientCIDR) Reset() { *m = ServerAddressByClientCIDR{} }
func (*ServerAddressByClientCIDR) ProtoMessage() {}
func (*ServerAddressByClientCIDR) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{32}
return fileDescriptor_cf52fa777ced5367, []int{33}
}
func (m *ServerAddressByClientCIDR) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -971,7 +999,7 @@ var xxx_messageInfo_ServerAddressByClientCIDR proto.InternalMessageInfo
func (m *Status) Reset() { *m = Status{} }
func (*Status) ProtoMessage() {}
func (*Status) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{33}
return fileDescriptor_cf52fa777ced5367, []int{34}
}
func (m *Status) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -999,7 +1027,7 @@ var xxx_messageInfo_Status proto.InternalMessageInfo
func (m *StatusCause) Reset() { *m = StatusCause{} }
func (*StatusCause) ProtoMessage() {}
func (*StatusCause) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{34}
return fileDescriptor_cf52fa777ced5367, []int{35}
}
func (m *StatusCause) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1027,7 +1055,7 @@ var xxx_messageInfo_StatusCause proto.InternalMessageInfo
func (m *StatusDetails) Reset() { *m = StatusDetails{} }
func (*StatusDetails) ProtoMessage() {}
func (*StatusDetails) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{35}
return fileDescriptor_cf52fa777ced5367, []int{36}
}
func (m *StatusDetails) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1055,7 +1083,7 @@ var xxx_messageInfo_StatusDetails proto.InternalMessageInfo
func (m *TableOptions) Reset() { *m = TableOptions{} }
func (*TableOptions) ProtoMessage() {}
func (*TableOptions) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{36}
return fileDescriptor_cf52fa777ced5367, []int{37}
}
func (m *TableOptions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1083,7 +1111,7 @@ var xxx_messageInfo_TableOptions proto.InternalMessageInfo
func (m *Time) Reset() { *m = Time{} }
func (*Time) ProtoMessage() {}
func (*Time) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{37}
return fileDescriptor_cf52fa777ced5367, []int{38}
}
func (m *Time) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Time.Unmarshal(m, b)
@ -1106,7 +1134,7 @@ var xxx_messageInfo_Time proto.InternalMessageInfo
func (m *Timestamp) Reset() { *m = Timestamp{} }
func (*Timestamp) ProtoMessage() {}
func (*Timestamp) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{38}
return fileDescriptor_cf52fa777ced5367, []int{39}
}
func (m *Timestamp) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1134,7 +1162,7 @@ var xxx_messageInfo_Timestamp proto.InternalMessageInfo
func (m *TypeMeta) Reset() { *m = TypeMeta{} }
func (*TypeMeta) ProtoMessage() {}
func (*TypeMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{39}
return fileDescriptor_cf52fa777ced5367, []int{40}
}
func (m *TypeMeta) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1162,7 +1190,7 @@ var xxx_messageInfo_TypeMeta proto.InternalMessageInfo
func (m *UpdateOptions) Reset() { *m = UpdateOptions{} }
func (*UpdateOptions) ProtoMessage() {}
func (*UpdateOptions) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{40}
return fileDescriptor_cf52fa777ced5367, []int{41}
}
func (m *UpdateOptions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1190,7 +1218,7 @@ var xxx_messageInfo_UpdateOptions proto.InternalMessageInfo
func (m *Verbs) Reset() { *m = Verbs{} }
func (*Verbs) ProtoMessage() {}
func (*Verbs) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{41}
return fileDescriptor_cf52fa777ced5367, []int{42}
}
func (m *Verbs) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1218,7 +1246,7 @@ var xxx_messageInfo_Verbs proto.InternalMessageInfo
func (m *WatchEvent) Reset() { *m = WatchEvent{} }
func (*WatchEvent) ProtoMessage() {}
func (*WatchEvent) Descriptor() ([]byte, []int) {
return fileDescriptor_cf52fa777ced5367, []int{42}
return fileDescriptor_cf52fa777ced5367, []int{43}
}
func (m *WatchEvent) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1249,6 +1277,7 @@ func init() {
proto.RegisterType((*APIResource)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.APIResource")
proto.RegisterType((*APIResourceList)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList")
proto.RegisterType((*APIVersions)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions")
proto.RegisterType((*ApplyOptions)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.ApplyOptions")
proto.RegisterType((*Condition)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.Condition")
proto.RegisterType((*CreateOptions)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.CreateOptions")
proto.RegisterType((*DeleteOptions)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions")
@ -1297,182 +1326,183 @@ func init() {
}
var fileDescriptor_cf52fa777ced5367 = []byte{
// 2790 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x1a, 0xcd, 0x6f, 0x23, 0x57,
0x3d, 0x63, 0xc7, 0x89, 0xfd, 0x73, 0x9c, 0x8f, 0xb7, 0x59, 0xf0, 0x06, 0x11, 0xa7, 0x53, 0x54,
0xa5, 0xd0, 0x3a, 0x4d, 0x28, 0xd5, 0x76, 0x4b, 0x0b, 0x71, 0xbc, 0xd9, 0x86, 0x26, 0x4d, 0xf4,
0xb2, 0xbb, 0x40, 0xa9, 0x50, 0x27, 0x9e, 0x17, 0x67, 0xc8, 0x78, 0xc6, 0x7d, 0x6f, 0x9c, 0xd4,
0x70, 0xa0, 0x07, 0x10, 0x20, 0x41, 0xd5, 0x23, 0xe2, 0x80, 0x5a, 0xc1, 0x5f, 0xc0, 0x05, 0xfe,
0x00, 0x24, 0x7a, 0xac, 0xc4, 0xa5, 0x12, 0xc8, 0xea, 0x86, 0x03, 0x47, 0xc4, 0x35, 0x17, 0xd0,
0xfb, 0x98, 0x99, 0x37, 0xfe, 0xd8, 0x8c, 0xbb, 0xa5, 0xe2, 0xe6, 0xf9, 0x7d, 0xbf, 0xf7, 0x7e,
0xef, 0xf7, 0xf5, 0x0c, 0x7b, 0xa7, 0x37, 0x59, 0xd5, 0xf1, 0xd7, 0x4e, 0x3b, 0x47, 0x84, 0x7a,
0x24, 0x20, 0x6c, 0xed, 0x8c, 0x78, 0xb6, 0x4f, 0xd7, 0x14, 0xc2, 0x6a, 0x3b, 0x2d, 0xab, 0x71,
0xe2, 0x78, 0x84, 0x76, 0xd7, 0xda, 0xa7, 0x4d, 0x0e, 0x60, 0x6b, 0x2d, 0x12, 0x58, 0x6b, 0x67,
0xeb, 0x6b, 0x4d, 0xe2, 0x11, 0x6a, 0x05, 0xc4, 0xae, 0xb6, 0xa9, 0x1f, 0xf8, 0xe8, 0x4b, 0x92,
0xab, 0xaa, 0x73, 0x55, 0xdb, 0xa7, 0x4d, 0x0e, 0x60, 0x55, 0xce, 0x55, 0x3d, 0x5b, 0x5f, 0x7a,
0xba, 0xe9, 0x04, 0x27, 0x9d, 0xa3, 0x6a, 0xc3, 0x6f, 0xad, 0x35, 0xfd, 0xa6, 0xbf, 0x26, 0x98,
0x8f, 0x3a, 0xc7, 0xe2, 0x4b, 0x7c, 0x88, 0x5f, 0x52, 0xe8, 0xd2, 0x48, 0x53, 0x68, 0xc7, 0x0b,
0x9c, 0x16, 0xe9, 0xb7, 0x62, 0xe9, 0xb9, 0xab, 0x18, 0x58, 0xe3, 0x84, 0xb4, 0xac, 0x7e, 0x3e,
0xf3, 0x2f, 0x59, 0xc8, 0x6f, 0x1e, 0xec, 0xdc, 0xa1, 0x7e, 0xa7, 0x8d, 0x56, 0x60, 0xd2, 0xb3,
0x5a, 0xa4, 0x6c, 0xac, 0x18, 0xab, 0x85, 0xda, 0xcc, 0x07, 0xbd, 0xca, 0xc4, 0x45, 0xaf, 0x32,
0xf9, 0xaa, 0xd5, 0x22, 0x58, 0x60, 0x90, 0x0b, 0xf9, 0x33, 0x42, 0x99, 0xe3, 0x7b, 0xac, 0x9c,
0x59, 0xc9, 0xae, 0x16, 0x37, 0x5e, 0xaa, 0xa6, 0x59, 0x7f, 0x55, 0x28, 0xb8, 0x2f, 0x59, 0xb7,
0x7d, 0x5a, 0x77, 0x58, 0xc3, 0x3f, 0x23, 0xb4, 0x5b, 0x9b, 0x57, 0x5a, 0xf2, 0x0a, 0xc9, 0x70,
0xa4, 0x01, 0xfd, 0xc4, 0x80, 0xf9, 0x36, 0x25, 0xc7, 0x84, 0x52, 0x62, 0x2b, 0x7c, 0x39, 0xbb,
0x62, 0x7c, 0x0a, 0x6a, 0xcb, 0x4a, 0xed, 0xfc, 0x41, 0x9f, 0x7c, 0x3c, 0xa0, 0x11, 0xfd, 0xce,
0x80, 0x25, 0x46, 0xe8, 0x19, 0xa1, 0x9b, 0xb6, 0x4d, 0x09, 0x63, 0xb5, 0xee, 0x96, 0xeb, 0x10,
0x2f, 0xd8, 0xda, 0xa9, 0x63, 0x56, 0x9e, 0x14, 0xfb, 0xf0, 0x8d, 0x74, 0x06, 0x1d, 0x8e, 0x92,
0x53, 0x33, 0x95, 0x45, 0x4b, 0x23, 0x49, 0x18, 0x7e, 0x88, 0x19, 0xe6, 0x31, 0xcc, 0x84, 0x07,
0xb9, 0xeb, 0xb0, 0x00, 0xdd, 0x87, 0xa9, 0x26, 0xff, 0x60, 0x65, 0x43, 0x18, 0x58, 0x4d, 0x67,
0x60, 0x28, 0xa3, 0x36, 0xab, 0xec, 0x99, 0x12, 0x9f, 0x0c, 0x2b, 0x69, 0xe6, 0x2f, 0x26, 0xa1,
0xb8, 0x79, 0xb0, 0x83, 0x09, 0xf3, 0x3b, 0xb4, 0x41, 0x52, 0x38, 0xcd, 0x4d, 0x98, 0x61, 0x8e,
0xd7, 0xec, 0xb8, 0x16, 0xe5, 0xd0, 0xf2, 0x94, 0xa0, 0x5c, 0x54, 0x94, 0x33, 0x87, 0x1a, 0x0e,
0x27, 0x28, 0xd1, 0x06, 0x00, 0x97, 0xc0, 0xda, 0x56, 0x83, 0xd8, 0xe5, 0xcc, 0x8a, 0xb1, 0x9a,
0xaf, 0x21, 0xc5, 0x07, 0xaf, 0x46, 0x18, 0xac, 0x51, 0xa1, 0xc7, 0x21, 0x27, 0x2c, 0x2d, 0xe7,
0x85, 0x9a, 0x92, 0x22, 0xcf, 0x89, 0x65, 0x60, 0x89, 0x43, 0x4f, 0xc2, 0xb4, 0xf2, 0xb2, 0x72,
0x41, 0x90, 0xcd, 0x29, 0xb2, 0xe9, 0xd0, 0x0d, 0x42, 0x3c, 0x5f, 0xdf, 0xa9, 0xe3, 0xd9, 0xc2,
0xef, 0xb4, 0xf5, 0xbd, 0xe2, 0x78, 0x36, 0x16, 0x18, 0xb4, 0x0b, 0xb9, 0x33, 0x42, 0x8f, 0xb8,
0x27, 0x70, 0xd7, 0xfc, 0x4a, 0xba, 0x8d, 0xbe, 0xcf, 0x59, 0x6a, 0x05, 0x6e, 0x9a, 0xf8, 0x89,
0xa5, 0x10, 0x54, 0x05, 0x60, 0x27, 0x3e, 0x0d, 0xc4, 0xf2, 0xca, 0xb9, 0x95, 0xec, 0x6a, 0xa1,
0x36, 0xcb, 0xd7, 0x7b, 0x18, 0x41, 0xb1, 0x46, 0xc1, 0xe9, 0x1b, 0x56, 0x40, 0x9a, 0x3e, 0x75,
0x08, 0x2b, 0x4f, 0xc7, 0xf4, 0x5b, 0x11, 0x14, 0x6b, 0x14, 0xe8, 0x5b, 0x80, 0x58, 0xe0, 0x53,
0xab, 0x49, 0xd4, 0x52, 0x5f, 0xb6, 0xd8, 0x49, 0x19, 0xc4, 0xea, 0x96, 0xd4, 0xea, 0xd0, 0xe1,
0x00, 0x05, 0x1e, 0xc2, 0x65, 0xfe, 0xc1, 0x80, 0x39, 0xcd, 0x17, 0x84, 0xdf, 0xdd, 0x84, 0x99,
0xa6, 0x76, 0xeb, 0x94, 0x5f, 0x44, 0xa7, 0xad, 0xdf, 0x48, 0x9c, 0xa0, 0x44, 0x04, 0x0a, 0x54,
0x49, 0x0a, 0xa3, 0xcb, 0x7a, 0x6a, 0xa7, 0x0d, 0x6d, 0x88, 0x35, 0x69, 0x40, 0x86, 0x63, 0xc9,
0xe6, 0x3f, 0x0d, 0xe1, 0xc0, 0x61, 0xbc, 0x41, 0xab, 0x5a, 0x4c, 0x33, 0xc4, 0xf6, 0xcd, 0x8c,
0x88, 0x47, 0x57, 0x04, 0x82, 0xcc, 0xff, 0x45, 0x20, 0xb8, 0x95, 0xff, 0xf5, 0x7b, 0x95, 0x89,
0xb7, 0xff, 0xbe, 0x32, 0x61, 0xfe, 0x27, 0x03, 0x85, 0x2d, 0xdf, 0xb3, 0x9d, 0x40, 0x39, 0x72,
0xd0, 0x6d, 0x0f, 0x5c, 0xd4, 0xbb, 0xdd, 0x36, 0xc1, 0x02, 0x83, 0x9e, 0x87, 0x29, 0x16, 0x58,
0x41, 0x87, 0x89, 0xab, 0x56, 0xa8, 0x3d, 0x16, 0x86, 0x80, 0x43, 0x01, 0xbd, 0xec, 0x55, 0xe6,
0x22, 0x71, 0x12, 0x84, 0x15, 0x03, 0xf7, 0x2a, 0xff, 0x48, 0x18, 0x65, 0xdf, 0x91, 0x29, 0x26,
0x8c, 0xd5, 0xd9, 0xd8, 0xab, 0xf6, 0x07, 0x28, 0xf0, 0x10, 0x2e, 0x74, 0x06, 0xc8, 0xb5, 0x58,
0x70, 0x97, 0x5a, 0x1e, 0x13, 0xba, 0xee, 0x3a, 0x2d, 0xa2, 0x2e, 0xd7, 0x97, 0xd3, 0xed, 0x2e,
0xe7, 0x88, 0xf5, 0xee, 0x0e, 0x48, 0xc3, 0x43, 0x34, 0xa0, 0x27, 0x60, 0x8a, 0x12, 0x8b, 0xf9,
0x5e, 0x39, 0x27, 0x96, 0x1f, 0x45, 0x40, 0x2c, 0xa0, 0x58, 0x61, 0x79, 0xf0, 0x68, 0x11, 0xc6,
0xac, 0x66, 0x18, 0xca, 0xa2, 0xe0, 0xb1, 0x27, 0xc1, 0x38, 0xc4, 0x9b, 0x2d, 0x28, 0x6d, 0x51,
0x62, 0x05, 0x64, 0xbf, 0x1d, 0x08, 0x17, 0x32, 0x61, 0xca, 0xa6, 0x5d, 0xdc, 0xf1, 0x94, 0xab,
0x01, 0x97, 0x5f, 0x17, 0x10, 0xac, 0x30, 0xfc, 0x06, 0x1d, 0x3b, 0xc4, 0xb5, 0xf7, 0x2c, 0xcf,
0x6a, 0x12, 0xaa, 0x22, 0x4f, 0xe4, 0xd7, 0xdb, 0x1a, 0x0e, 0x27, 0x28, 0xcd, 0x9f, 0x65, 0xa1,
0x54, 0x27, 0x2e, 0x89, 0xf5, 0x6d, 0x03, 0x6a, 0x52, 0xab, 0x41, 0x0e, 0x08, 0x75, 0x7c, 0xfb,
0x90, 0x34, 0x7c, 0xcf, 0x66, 0xc2, 0x05, 0xb2, 0xb5, 0xcf, 0xf1, 0xbd, 0xb9, 0x33, 0x80, 0xc5,
0x43, 0x38, 0x90, 0x0b, 0xa5, 0x36, 0x15, 0xbf, 0xc5, 0x7e, 0x49, 0x0f, 0x29, 0x6e, 0x7c, 0x35,
0xdd, 0x71, 0x1c, 0xe8, 0xac, 0xb5, 0x85, 0x8b, 0x5e, 0xa5, 0x94, 0x00, 0xe1, 0xa4, 0x70, 0xf4,
0x4d, 0x98, 0xf7, 0x69, 0xfb, 0xc4, 0xf2, 0xea, 0xa4, 0x4d, 0x3c, 0x9b, 0x78, 0x01, 0x13, 0xbb,
0x90, 0xaf, 0x2d, 0xf2, 0x9c, 0xbd, 0xdf, 0x87, 0xc3, 0x03, 0xd4, 0xe8, 0x35, 0x58, 0x68, 0x53,
0xbf, 0x6d, 0x35, 0x85, 0x4b, 0x1d, 0xf8, 0xae, 0xd3, 0xe8, 0x0a, 0x17, 0x2a, 0xd4, 0x9e, 0xba,
0xe8, 0x55, 0x16, 0x0e, 0xfa, 0x91, 0x97, 0xbd, 0xca, 0x35, 0xb1, 0x75, 0x1c, 0x12, 0x23, 0xf1,
0xa0, 0x18, 0xed, 0x0c, 0x73, 0xa3, 0xce, 0xd0, 0xdc, 0x81, 0x7c, 0xbd, 0xa3, 0xfc, 0xf9, 0x45,
0xc8, 0xdb, 0xea, 0xb7, 0xda, 0xf9, 0xf0, 0x62, 0x45, 0x34, 0x97, 0xbd, 0x4a, 0x89, 0x97, 0x69,
0xd5, 0x10, 0x80, 0x23, 0x16, 0xf3, 0x09, 0xc8, 0x8b, 0x23, 0x67, 0xf7, 0xd7, 0xd1, 0x3c, 0x64,
0xb1, 0x75, 0x2e, 0xa4, 0xcc, 0x60, 0xfe, 0x53, 0xbb, 0xed, 0xfb, 0x00, 0x77, 0x48, 0x10, 0x1e,
0xfc, 0x26, 0xcc, 0x85, 0x21, 0x2f, 0x19, 0x89, 0x3f, 0xaf, 0x74, 0xcf, 0xe1, 0x24, 0x1a, 0xf7,
0xd3, 0x9b, 0xaf, 0x43, 0x41, 0x44, 0x6b, 0x9e, 0xea, 0xe2, 0xb4, 0x6a, 0x3c, 0x24, 0xad, 0x86,
0xb9, 0x32, 0x33, 0x2a, 0x57, 0x6a, 0xe6, 0xba, 0x50, 0x92, 0xbc, 0x61, 0x21, 0x91, 0x4a, 0xc3,
0x53, 0x90, 0x0f, 0xcd, 0x54, 0x5a, 0xa2, 0x02, 0x32, 0x14, 0x84, 0x23, 0x0a, 0x4d, 0xdb, 0x09,
0x24, 0x32, 0x4f, 0x3a, 0x65, 0x5a, 0x95, 0x90, 0x79, 0x78, 0x95, 0xa0, 0x69, 0xfa, 0x31, 0x94,
0x47, 0x55, 0x9d, 0x8f, 0x90, 0x1b, 0xd3, 0x9b, 0x62, 0xbe, 0x63, 0xc0, 0xbc, 0x2e, 0x29, 0xfd,
0xf1, 0xa5, 0x57, 0x72, 0x75, 0x55, 0xa4, 0xed, 0xc8, 0x6f, 0x0d, 0x58, 0x4c, 0x2c, 0x6d, 0xac,
0x13, 0x1f, 0xc3, 0x28, 0xdd, 0x39, 0xb2, 0x63, 0x38, 0xc7, 0x5f, 0x33, 0x50, 0xda, 0xb5, 0x8e,
0x88, 0x7b, 0x48, 0x5c, 0xd2, 0x08, 0x7c, 0x8a, 0x7e, 0x04, 0xc5, 0x96, 0x15, 0x34, 0x4e, 0x04,
0x34, 0xac, 0xa0, 0xeb, 0xe9, 0x82, 0x5d, 0x42, 0x52, 0x75, 0x2f, 0x16, 0x73, 0xdb, 0x0b, 0x68,
0xb7, 0x76, 0x4d, 0x99, 0x54, 0xd4, 0x30, 0x58, 0xd7, 0x26, 0xda, 0x1e, 0xf1, 0x7d, 0xfb, 0xad,
0x36, 0x4f, 0xef, 0xe3, 0x77, 0x5b, 0x09, 0x13, 0x30, 0x79, 0xb3, 0xe3, 0x50, 0xd2, 0x22, 0x5e,
0x10, 0xb7, 0x3d, 0x7b, 0x7d, 0xf2, 0xf1, 0x80, 0xc6, 0xa5, 0x97, 0x60, 0xbe, 0xdf, 0x78, 0x1e,
0x7f, 0x4e, 0x49, 0x57, 0x9e, 0x17, 0xe6, 0x3f, 0xd1, 0x22, 0xe4, 0xce, 0x2c, 0xb7, 0xa3, 0x6e,
0x23, 0x96, 0x1f, 0xb7, 0x32, 0x37, 0x0d, 0xf3, 0xf7, 0x06, 0x94, 0x47, 0x19, 0x82, 0xbe, 0xa8,
0x09, 0xaa, 0x15, 0x95, 0x55, 0xd9, 0x57, 0x48, 0x57, 0x4a, 0xbd, 0x0d, 0x79, 0xbf, 0xcd, 0xeb,
0x01, 0x9f, 0xaa, 0x53, 0x7f, 0x32, 0x3c, 0xc9, 0x7d, 0x05, 0xbf, 0xec, 0x55, 0xae, 0x27, 0xc4,
0x87, 0x08, 0x1c, 0xb1, 0xf2, 0x48, 0x2d, 0xec, 0xe1, 0xd9, 0x23, 0x8a, 0xd4, 0xf7, 0x05, 0x04,
0x2b, 0x8c, 0xf9, 0x27, 0x03, 0x26, 0x45, 0xe1, 0xfa, 0x3a, 0xe4, 0xf9, 0xfe, 0xd9, 0x56, 0x60,
0x09, 0xbb, 0x52, 0xb7, 0x4c, 0x9c, 0x7b, 0x8f, 0x04, 0x56, 0xec, 0x6d, 0x21, 0x04, 0x47, 0x12,
0x11, 0x86, 0x9c, 0x13, 0x90, 0x56, 0x78, 0x90, 0x4f, 0x8f, 0x14, 0xad, 0x1a, 0xf6, 0x2a, 0xb6,
0xce, 0x6f, 0xbf, 0x15, 0x10, 0x8f, 0x1f, 0x46, 0x7c, 0x35, 0x76, 0xb8, 0x0c, 0x2c, 0x45, 0x99,
0xff, 0x36, 0x20, 0x52, 0xc5, 0x9d, 0x9f, 0x11, 0xf7, 0x78, 0xd7, 0xf1, 0x4e, 0xd5, 0xb6, 0x46,
0xe6, 0x1c, 0x2a, 0x38, 0x8e, 0x28, 0x86, 0xa5, 0x87, 0xcc, 0x78, 0xe9, 0x81, 0x2b, 0x6c, 0xf8,
0x5e, 0xe0, 0x78, 0x9d, 0x81, 0xdb, 0xb6, 0xa5, 0xe0, 0x38, 0xa2, 0xe0, 0x85, 0x08, 0x25, 0x2d,
0xcb, 0xf1, 0x1c, 0xaf, 0xc9, 0x17, 0xb1, 0xe5, 0x77, 0xbc, 0x40, 0x64, 0x64, 0x55, 0x88, 0xe0,
0x01, 0x2c, 0x1e, 0xc2, 0x61, 0xfe, 0x71, 0x12, 0x8a, 0x7c, 0xcd, 0x61, 0x9e, 0x7b, 0x01, 0x4a,
0xae, 0xee, 0x05, 0x6a, 0xed, 0xd7, 0x95, 0x29, 0xc9, 0x7b, 0x8d, 0x93, 0xb4, 0x9c, 0x59, 0xd4,
0x4f, 0x11, 0x73, 0x26, 0xc9, 0xbc, 0xad, 0x23, 0x71, 0x92, 0x96, 0x47, 0xaf, 0x73, 0x7e, 0x3f,
0x54, 0x65, 0x12, 0x1d, 0xd1, 0xb7, 0x39, 0x10, 0x4b, 0x1c, 0xda, 0x83, 0x6b, 0x96, 0xeb, 0xfa,
0xe7, 0x02, 0x58, 0xf3, 0xfd, 0xd3, 0x96, 0x45, 0x4f, 0x99, 0x68, 0x3a, 0xf3, 0xb5, 0x2f, 0x28,
0x96, 0x6b, 0x9b, 0x83, 0x24, 0x78, 0x18, 0xdf, 0xb0, 0x63, 0x9b, 0x1c, 0xf3, 0xd8, 0x4e, 0x60,
0xb1, 0x0f, 0x24, 0x6e, 0xb9, 0xea, 0x00, 0x9f, 0x55, 0x72, 0x16, 0xf1, 0x10, 0x9a, 0xcb, 0x11,
0x70, 0x3c, 0x54, 0x22, 0xba, 0x05, 0xb3, 0xdc, 0x93, 0xfd, 0x4e, 0x10, 0xd6, 0x9d, 0x39, 0x71,
0xdc, 0xe8, 0xa2, 0x57, 0x99, 0xbd, 0x9b, 0xc0, 0xe0, 0x3e, 0x4a, 0xbe, 0xb9, 0xae, 0xd3, 0x72,
0x82, 0xf2, 0xb4, 0x60, 0x89, 0x36, 0x77, 0x97, 0x03, 0xb1, 0xc4, 0x25, 0x3c, 0x30, 0x7f, 0x95,
0x07, 0x9a, 0xbf, 0xc9, 0x02, 0x92, 0x85, 0xb2, 0x2d, 0xeb, 0x29, 0x19, 0xd2, 0x78, 0x35, 0xaf,
0x0a, 0x6d, 0xa3, 0xaf, 0x9a, 0x57, 0x35, 0x76, 0x88, 0x47, 0x7b, 0x50, 0x90, 0xa1, 0x25, 0xbe,
0x2e, 0x6b, 0x8a, 0xb8, 0xb0, 0x1f, 0x22, 0x2e, 0x7b, 0x95, 0xa5, 0x84, 0x9a, 0x08, 0x23, 0x3a,
0xad, 0x58, 0x02, 0xda, 0x00, 0xb0, 0xda, 0x8e, 0x3e, 0xd7, 0x2a, 0xc4, 0xd3, 0x8d, 0xb8, 0x43,
0xc5, 0x1a, 0x15, 0x7a, 0x19, 0x26, 0x83, 0x4f, 0xd6, 0x0d, 0xe5, 0x45, 0xb3, 0xc7, 0x7b, 0x1f,
0x21, 0x81, 0x6b, 0x17, 0xfe, 0xcc, 0xb8, 0x59, 0xaa, 0x91, 0x89, 0xb4, 0x6f, 0x47, 0x18, 0xac,
0x51, 0xa1, 0xef, 0x40, 0xfe, 0x58, 0x95, 0xa2, 0xe2, 0x60, 0x52, 0x87, 0xc8, 0xb0, 0x80, 0x95,
0xad, 0x75, 0xf8, 0x85, 0x23, 0x69, 0xe6, 0x9b, 0x50, 0xd8, 0x73, 0x1a, 0xd4, 0x17, 0x8d, 0xd8,
0x93, 0x30, 0xcd, 0x12, 0x9d, 0x4a, 0x74, 0x24, 0xa1, 0xbb, 0x84, 0x78, 0xee, 0x27, 0x9e, 0xe5,
0xf9, 0xb2, 0x1f, 0xc9, 0xc5, 0x7e, 0xf2, 0x2a, 0x07, 0x62, 0x89, 0xbb, 0xb5, 0xc8, 0x33, 0xfd,
0xcf, 0xdf, 0xaf, 0x4c, 0xbc, 0xfb, 0x7e, 0x65, 0xe2, 0xbd, 0xf7, 0x55, 0xd6, 0xbf, 0x04, 0x80,
0xfd, 0xa3, 0x1f, 0x90, 0x86, 0x8c, 0x9f, 0xa9, 0xe6, 0x58, 0xe1, 0xf8, 0x54, 0xcc, 0xb1, 0x32,
0x7d, 0xd5, 0x9b, 0x86, 0xc3, 0x09, 0x4a, 0xb4, 0x06, 0x85, 0x68, 0x42, 0xa5, 0x0e, 0x7a, 0x21,
0x74, 0x9c, 0x68, 0x8c, 0x85, 0x63, 0x9a, 0x44, 0x30, 0x9f, 0xbc, 0x32, 0x98, 0xd7, 0x20, 0xdb,
0x71, 0x6c, 0xd5, 0xb5, 0x3e, 0x13, 0x26, 0xd3, 0x7b, 0x3b, 0xf5, 0xcb, 0x5e, 0xe5, 0xb1, 0x51,
0x83, 0x61, 0xde, 0xf1, 0xb3, 0xea, 0xbd, 0x9d, 0x3a, 0xe6, 0xcc, 0xc3, 0x22, 0xcb, 0xd4, 0x98,
0x91, 0x65, 0x03, 0xa0, 0x19, 0xf7, 0xfe, 0xf2, 0xe2, 0x46, 0x1e, 0xa5, 0xf5, 0xfc, 0x1a, 0x15,
0x62, 0xb0, 0xd0, 0xe0, 0x0d, 0xb2, 0xea, 0xc1, 0x59, 0x60, 0xb5, 0xe4, 0xe4, 0x6e, 0x3c, 0xe7,
0xbe, 0xa1, 0xd4, 0x2c, 0x6c, 0xf5, 0x0b, 0xc3, 0x83, 0xf2, 0x91, 0x0f, 0x0b, 0xb6, 0x6a, 0xf5,
0x62, 0xa5, 0x85, 0xb1, 0x95, 0x5e, 0xe7, 0x0a, 0xeb, 0xfd, 0x82, 0xf0, 0xa0, 0x6c, 0xf4, 0x7d,
0x58, 0x0a, 0x81, 0x83, 0xfd, 0xb6, 0x88, 0xbc, 0xd9, 0xda, 0xf2, 0x45, 0xaf, 0xb2, 0x54, 0x1f,
0x49, 0x85, 0x1f, 0x22, 0x01, 0xd9, 0x30, 0xe5, 0xca, 0x4a, 0xb5, 0x28, 0xaa, 0x8b, 0xaf, 0xa7,
0x5b, 0x45, 0xec, 0xfd, 0x55, 0xbd, 0x42, 0x8d, 0xe6, 0x1e, 0xaa, 0x38, 0x55, 0xb2, 0xd1, 0x5b,
0x50, 0xb4, 0x3c, 0xcf, 0x0f, 0x2c, 0x39, 0x01, 0x98, 0x11, 0xaa, 0x36, 0xc7, 0x56, 0xb5, 0x19,
0xcb, 0xe8, 0xab, 0x88, 0x35, 0x0c, 0xd6, 0x55, 0xa1, 0x73, 0x98, 0xf3, 0xcf, 0x3d, 0x42, 0x31,
0x39, 0x26, 0x94, 0x78, 0x0d, 0xc2, 0xca, 0x25, 0xa1, 0xfd, 0xd9, 0x94, 0xda, 0x13, 0xcc, 0xb1,
0x4b, 0x27, 0xe1, 0x0c, 0xf7, 0x6b, 0x41, 0x55, 0x1e, 0x24, 0x3d, 0xcb, 0x75, 0x7e, 0x48, 0x28,
0x2b, 0xcf, 0xc6, 0xc3, 0xd5, 0xed, 0x08, 0x8a, 0x35, 0x0a, 0xf4, 0x35, 0x28, 0x36, 0xdc, 0x0e,
0x0b, 0x88, 0x9c, 0x74, 0xcf, 0x89, 0x1b, 0x14, 0xad, 0x6f, 0x2b, 0x46, 0x61, 0x9d, 0x0e, 0x75,
0xa0, 0xd4, 0xd2, 0x53, 0x46, 0x79, 0x41, 0xac, 0xee, 0x66, 0xba, 0xd5, 0x0d, 0x26, 0xb5, 0xb8,
0x82, 0x49, 0xe0, 0x70, 0x52, 0xcb, 0xd2, 0xf3, 0x50, 0xfc, 0x84, 0xc5, 0x3d, 0x6f, 0x0e, 0xfa,
0xcf, 0x71, 0xac, 0xe6, 0xe0, 0xcf, 0x19, 0x98, 0x4d, 0xee, 0x7e, 0x5f, 0x3a, 0xcc, 0xa5, 0x4a,
0x87, 0x61, 0x1b, 0x6a, 0x8c, 0x1c, 0xce, 0x87, 0x61, 0x3d, 0x3b, 0x32, 0xac, 0xab, 0xe8, 0x39,
0xf9, 0x28, 0xd1, 0xb3, 0x0a, 0xc0, 0xeb, 0x0c, 0xea, 0xbb, 0x2e, 0xa1, 0x22, 0x70, 0xe6, 0xd5,
0x10, 0x3e, 0x82, 0x62, 0x8d, 0x82, 0x57, 0xc3, 0x47, 0xae, 0xdf, 0x38, 0x15, 0x5b, 0x10, 0x5e,
0x7a, 0x11, 0x32, 0xf3, 0xb2, 0x1a, 0xae, 0x0d, 0x60, 0xf1, 0x10, 0x0e, 0xb3, 0x0b, 0xd7, 0x0f,
0x2c, 0x1a, 0x38, 0x96, 0x1b, 0x5f, 0x30, 0xd1, 0x6e, 0xbc, 0x31, 0xd0, 0xcc, 0x3c, 0x33, 0xee,
0x45, 0x8d, 0x37, 0x3f, 0x86, 0xc5, 0x0d, 0x8d, 0xf9, 0x37, 0x03, 0x6e, 0x0c, 0xd5, 0xfd, 0x19,
0x34, 0x53, 0x6f, 0x24, 0x9b, 0xa9, 0x17, 0x52, 0x4e, 0x21, 0x87, 0x59, 0x3b, 0xa2, 0xb5, 0x9a,
0x86, 0xdc, 0x01, 0x2f, 0x62, 0xcd, 0x5f, 0x19, 0x30, 0x23, 0x7e, 0x8d, 0x33, 0xc1, 0xad, 0x40,
0xee, 0xd8, 0x0f, 0x47, 0x54, 0x79, 0xf9, 0xc8, 0xb3, 0xcd, 0x01, 0x58, 0xc2, 0x1f, 0x61, 0xc4,
0xfb, 0x8e, 0x01, 0xc9, 0xd9, 0x29, 0x7a, 0x49, 0xfa, 0xaf, 0x11, 0x0d, 0x37, 0xc7, 0xf4, 0xdd,
0x17, 0x47, 0xb5, 0x82, 0xd7, 0x52, 0x4d, 0x09, 0x9f, 0x82, 0x02, 0xf6, 0xfd, 0xe0, 0xc0, 0x0a,
0x4e, 0x18, 0x5f, 0x78, 0x9b, 0xff, 0x50, 0x7b, 0x23, 0x16, 0x2e, 0x30, 0x58, 0xc2, 0xcd, 0x5f,
0x1a, 0x70, 0x63, 0xe4, 0xbb, 0x06, 0x0f, 0x01, 0x8d, 0xe8, 0x4b, 0xad, 0x28, 0xf2, 0xc2, 0x98,
0x0e, 0x6b, 0x54, 0xbc, 0x87, 0x4b, 0x3c, 0x86, 0xf4, 0xf7, 0x70, 0x09, 0x6d, 0x38, 0x49, 0x6b,
0xfe, 0x2b, 0x03, 0xea, 0x71, 0xe3, 0x7f, 0xec, 0xb1, 0x4f, 0xf4, 0x3d, 0xad, 0xcc, 0x26, 0x9f,
0x56, 0xa2, 0x77, 0x14, 0xed, 0x6d, 0x21, 0xfb, 0xf0, 0xb7, 0x05, 0xf4, 0x5c, 0xf4, 0x5c, 0x21,
0x43, 0xd7, 0x72, 0xf2, 0xb9, 0xe2, 0xb2, 0x57, 0x99, 0x51, 0xc2, 0x93, 0xcf, 0x17, 0xaf, 0xc1,
0xb4, 0x4d, 0x02, 0xcb, 0x71, 0x65, 0x3f, 0x96, 0x7a, 0x88, 0x2f, 0x85, 0xd5, 0x25, 0x6b, 0xad,
0xc8, 0x6d, 0x52, 0x1f, 0x38, 0x14, 0xc8, 0xa3, 0x6d, 0xc3, 0xb7, 0x65, 0x3b, 0x91, 0x8b, 0xa3,
0xed, 0x96, 0x6f, 0x13, 0x2c, 0x30, 0xe6, 0xbb, 0x06, 0x14, 0xa5, 0xa4, 0x2d, 0xab, 0xc3, 0x08,
0x5a, 0x8f, 0x56, 0x21, 0x8f, 0xfb, 0x86, 0xfe, 0x2e, 0x75, 0xd9, 0xab, 0x14, 0x04, 0x99, 0xe8,
0x44, 0x86, 0xbc, 0xbf, 0x64, 0xae, 0xd8, 0xa3, 0xc7, 0x21, 0x27, 0x6e, 0x8f, 0xda, 0xcc, 0xe8,
0xae, 0x8b, 0x0b, 0x86, 0x25, 0xce, 0xfc, 0x38, 0x03, 0xa5, 0xc4, 0xe2, 0x52, 0xf4, 0x02, 0xd1,
0xe8, 0x32, 0x93, 0x62, 0x1c, 0x3e, 0xfa, 0xe9, 0x58, 0xe5, 0x9e, 0xa9, 0x47, 0xc9, 0x3d, 0xdf,
0x85, 0xa9, 0x06, 0xdf, 0xa3, 0xf0, 0x9f, 0x08, 0xeb, 0xe3, 0x1c, 0xa7, 0xd8, 0xdd, 0xd8, 0x1b,
0xc5, 0x27, 0xc3, 0x4a, 0x20, 0xba, 0x03, 0x0b, 0x94, 0x04, 0xb4, 0xbb, 0x79, 0x1c, 0x10, 0xaa,
0x37, 0xf1, 0xb9, 0xb8, 0xe2, 0xc6, 0xfd, 0x04, 0x78, 0x90, 0xc7, 0x3c, 0x82, 0x99, 0xbb, 0xd6,
0x91, 0x1b, 0x3d, 0x4b, 0x61, 0x28, 0x39, 0x5e, 0xc3, 0xed, 0xd8, 0x44, 0x46, 0xe3, 0x30, 0x7a,
0x85, 0x97, 0x76, 0x47, 0x47, 0x5e, 0xf6, 0x2a, 0xd7, 0x12, 0x00, 0xf9, 0x0e, 0x83, 0x93, 0x22,
0x4c, 0x17, 0x26, 0x3f, 0xc3, 0xee, 0xf1, 0x7b, 0x50, 0x88, 0xeb, 0xfb, 0x4f, 0x59, 0xa5, 0xf9,
0x06, 0xe4, 0xb9, 0xc7, 0x87, 0x7d, 0xe9, 0x15, 0x25, 0x4e, 0xb2, 0x70, 0xca, 0xa4, 0x29, 0x9c,
0xcc, 0x16, 0x94, 0xee, 0xb5, 0xed, 0x47, 0x7c, 0x98, 0xcc, 0xa4, 0xce, 0x5a, 0x1b, 0x20, 0xff,
0xe4, 0xc0, 0x13, 0x84, 0xcc, 0xdc, 0x5a, 0x82, 0xd0, 0x13, 0xaf, 0x36, 0x95, 0xff, 0xa9, 0x01,
0x20, 0xc6, 0x5f, 0xb7, 0xcf, 0x88, 0x17, 0xa4, 0x78, 0xbe, 0xbe, 0x07, 0x53, 0xbe, 0xf4, 0x26,
0xf9, 0x38, 0x39, 0xe6, 0x8c, 0x35, 0xba, 0x04, 0xd2, 0x9f, 0xb0, 0x12, 0x56, 0x5b, 0xfd, 0xe0,
0xc1, 0xf2, 0xc4, 0x87, 0x0f, 0x96, 0x27, 0x3e, 0x7a, 0xb0, 0x3c, 0xf1, 0xf6, 0xc5, 0xb2, 0xf1,
0xc1, 0xc5, 0xb2, 0xf1, 0xe1, 0xc5, 0xb2, 0xf1, 0xd1, 0xc5, 0xb2, 0xf1, 0xf1, 0xc5, 0xb2, 0xf1,
0xee, 0x3f, 0x96, 0x27, 0x5e, 0xcb, 0x9c, 0xad, 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0xbf, 0x3c,
0xc6, 0xe5, 0x5a, 0x26, 0x00, 0x00,
// 2813 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x3a, 0xcb, 0x6f, 0x24, 0x47,
0xf9, 0xee, 0x19, 0x8f, 0x3d, 0xf3, 0x8d, 0xc7, 0x8f, 0x5a, 0xef, 0xef, 0x37, 0x6b, 0x84, 0xc7,
0xe9, 0xa0, 0x68, 0x03, 0xc9, 0x38, 0x5e, 0x42, 0xb4, 0xd9, 0x90, 0x80, 0xc7, 0xb3, 0xde, 0x98,
0xac, 0x63, 0xab, 0xbc, 0xbb, 0x40, 0x88, 0x50, 0xda, 0xdd, 0xe5, 0x71, 0xe3, 0x9e, 0xee, 0x49,
0x55, 0x8f, 0x37, 0x03, 0x07, 0x72, 0x00, 0x01, 0x12, 0x44, 0xe1, 0x86, 0x38, 0xa0, 0x44, 0xf0,
0x17, 0x70, 0x81, 0x3f, 0x00, 0x89, 0x1c, 0x23, 0x71, 0x89, 0x04, 0x1a, 0x25, 0xe6, 0xc0, 0x11,
0x71, 0xf5, 0x05, 0x54, 0x8f, 0xee, 0xae, 0x9e, 0xc7, 0xba, 0x27, 0xbb, 0x44, 0xdc, 0xa6, 0xbf,
0x77, 0x55, 0x7d, 0xf5, 0xbd, 0x6a, 0x60, 0xf7, 0xe4, 0x3a, 0xab, 0xbb, 0xc1, 0xfa, 0x49, 0xf7,
0x90, 0x50, 0x9f, 0x84, 0x84, 0xad, 0x9f, 0x12, 0xdf, 0x09, 0xe8, 0xba, 0x42, 0x58, 0x1d, 0xb7,
0x6d, 0xd9, 0xc7, 0xae, 0x4f, 0x68, 0x6f, 0xbd, 0x73, 0xd2, 0xe2, 0x00, 0xb6, 0xde, 0x26, 0xa1,
0xb5, 0x7e, 0xba, 0xb1, 0xde, 0x22, 0x3e, 0xa1, 0x56, 0x48, 0x9c, 0x7a, 0x87, 0x06, 0x61, 0x80,
0xbe, 0x20, 0xb9, 0xea, 0x3a, 0x57, 0xbd, 0x73, 0xd2, 0xe2, 0x00, 0x56, 0xe7, 0x5c, 0xf5, 0xd3,
0x8d, 0x95, 0xa7, 0x5b, 0x6e, 0x78, 0xdc, 0x3d, 0xac, 0xdb, 0x41, 0x7b, 0xbd, 0x15, 0xb4, 0x82,
0x75, 0xc1, 0x7c, 0xd8, 0x3d, 0x12, 0x5f, 0xe2, 0x43, 0xfc, 0x92, 0x42, 0x57, 0xc6, 0x9a, 0x42,
0xbb, 0x7e, 0xe8, 0xb6, 0xc9, 0xa0, 0x15, 0x2b, 0xcf, 0x5d, 0xc4, 0xc0, 0xec, 0x63, 0xd2, 0xb6,
0x06, 0xf9, 0xcc, 0x3f, 0xe7, 0xa1, 0xb8, 0xb9, 0xbf, 0x73, 0x8b, 0x06, 0xdd, 0x0e, 0x5a, 0x83,
0x69, 0xdf, 0x6a, 0x93, 0xaa, 0xb1, 0x66, 0x5c, 0x2d, 0x35, 0xe6, 0x3e, 0xe8, 0xd7, 0xa6, 0xce,
0xfa, 0xb5, 0xe9, 0x57, 0xad, 0x36, 0xc1, 0x02, 0x83, 0x3c, 0x28, 0x9e, 0x12, 0xca, 0xdc, 0xc0,
0x67, 0xd5, 0xdc, 0x5a, 0xfe, 0x6a, 0xf9, 0xda, 0x4b, 0xf5, 0x2c, 0xeb, 0xaf, 0x0b, 0x05, 0xf7,
0x24, 0xeb, 0x76, 0x40, 0x9b, 0x2e, 0xb3, 0x83, 0x53, 0x42, 0x7b, 0x8d, 0x45, 0xa5, 0xa5, 0xa8,
0x90, 0x0c, 0xc7, 0x1a, 0xd0, 0x8f, 0x0c, 0x58, 0xec, 0x50, 0x72, 0x44, 0x28, 0x25, 0x8e, 0xc2,
0x57, 0xf3, 0x6b, 0xc6, 0x23, 0x50, 0x5b, 0x55, 0x6a, 0x17, 0xf7, 0x07, 0xe4, 0xe3, 0x21, 0x8d,
0xe8, 0xb7, 0x06, 0xac, 0x30, 0x42, 0x4f, 0x09, 0xdd, 0x74, 0x1c, 0x4a, 0x18, 0x6b, 0xf4, 0xb6,
0x3c, 0x97, 0xf8, 0xe1, 0xd6, 0x4e, 0x13, 0xb3, 0xea, 0xb4, 0xd8, 0x87, 0xaf, 0x65, 0x33, 0xe8,
0x60, 0x9c, 0x9c, 0x86, 0xa9, 0x2c, 0x5a, 0x19, 0x4b, 0xc2, 0xf0, 0x03, 0xcc, 0x30, 0x8f, 0x60,
0x2e, 0x3a, 0xc8, 0xdb, 0x2e, 0x0b, 0xd1, 0x3d, 0x98, 0x69, 0xf1, 0x0f, 0x56, 0x35, 0x84, 0x81,
0xf5, 0x6c, 0x06, 0x46, 0x32, 0x1a, 0xf3, 0xca, 0x9e, 0x19, 0xf1, 0xc9, 0xb0, 0x92, 0x66, 0xfe,
0x6c, 0x1a, 0xca, 0x9b, 0xfb, 0x3b, 0x98, 0xb0, 0xa0, 0x4b, 0x6d, 0x92, 0xc1, 0x69, 0xae, 0xc3,
0x1c, 0x73, 0xfd, 0x56, 0xd7, 0xb3, 0x28, 0x87, 0x56, 0x67, 0x04, 0xe5, 0xb2, 0xa2, 0x9c, 0x3b,
0xd0, 0x70, 0x38, 0x45, 0x89, 0xae, 0x01, 0x70, 0x09, 0xac, 0x63, 0xd9, 0xc4, 0xa9, 0xe6, 0xd6,
0x8c, 0xab, 0xc5, 0x06, 0x52, 0x7c, 0xf0, 0x6a, 0x8c, 0xc1, 0x1a, 0x15, 0x7a, 0x1c, 0x0a, 0xc2,
0xd2, 0x6a, 0x51, 0xa8, 0xa9, 0x28, 0xf2, 0x82, 0x58, 0x06, 0x96, 0x38, 0xf4, 0x24, 0xcc, 0x2a,
0x2f, 0xab, 0x96, 0x04, 0xd9, 0x82, 0x22, 0x9b, 0x8d, 0xdc, 0x20, 0xc2, 0xf3, 0xf5, 0x9d, 0xb8,
0xbe, 0x23, 0xfc, 0x4e, 0x5b, 0xdf, 0x2b, 0xae, 0xef, 0x60, 0x81, 0x41, 0xb7, 0xa1, 0x70, 0x4a,
0xe8, 0x21, 0xf7, 0x04, 0xee, 0x9a, 0x5f, 0xca, 0xb6, 0xd1, 0xf7, 0x38, 0x4b, 0xa3, 0xc4, 0x4d,
0x13, 0x3f, 0xb1, 0x14, 0x82, 0xea, 0x00, 0xec, 0x38, 0xa0, 0xa1, 0x58, 0x5e, 0xb5, 0xb0, 0x96,
0xbf, 0x5a, 0x6a, 0xcc, 0xf3, 0xf5, 0x1e, 0xc4, 0x50, 0xac, 0x51, 0x70, 0x7a, 0xdb, 0x0a, 0x49,
0x2b, 0xa0, 0x2e, 0x61, 0xd5, 0xd9, 0x84, 0x7e, 0x2b, 0x86, 0x62, 0x8d, 0x02, 0x7d, 0x03, 0x10,
0x0b, 0x03, 0x6a, 0xb5, 0x88, 0x5a, 0xea, 0xcb, 0x16, 0x3b, 0xae, 0x82, 0x58, 0xdd, 0x8a, 0x5a,
0x1d, 0x3a, 0x18, 0xa2, 0xc0, 0x23, 0xb8, 0xcc, 0xdf, 0x1b, 0xb0, 0xa0, 0xf9, 0x82, 0xf0, 0xbb,
0xeb, 0x30, 0xd7, 0xd2, 0x6e, 0x9d, 0xf2, 0x8b, 0xf8, 0xb4, 0xf5, 0x1b, 0x89, 0x53, 0x94, 0x88,
0x40, 0x89, 0x2a, 0x49, 0x51, 0x74, 0xd9, 0xc8, 0xec, 0xb4, 0x91, 0x0d, 0x89, 0x26, 0x0d, 0xc8,
0x70, 0x22, 0xd9, 0xfc, 0x87, 0x21, 0x1c, 0x38, 0x8a, 0x37, 0xe8, 0xaa, 0x16, 0xd3, 0x0c, 0xb1,
0x7d, 0x73, 0x63, 0xe2, 0xd1, 0x05, 0x81, 0x20, 0xf7, 0x3f, 0x11, 0x08, 0x6e, 0x14, 0x7f, 0xf5,
0x5e, 0x6d, 0xea, 0xed, 0xbf, 0xad, 0x4d, 0x99, 0xbf, 0x34, 0x60, 0x6e, 0xb3, 0xd3, 0xf1, 0x7a,
0x7b, 0x9d, 0x50, 0x2c, 0xc0, 0x84, 0x19, 0x87, 0xf6, 0x70, 0xd7, 0x57, 0x0b, 0x05, 0x7e, 0xbf,
0x9b, 0x02, 0x82, 0x15, 0x86, 0xdf, 0x9f, 0xa3, 0x80, 0xda, 0x44, 0x5d, 0xb7, 0xf8, 0xfe, 0x6c,
0x73, 0x20, 0x96, 0x38, 0x7e, 0xc8, 0x47, 0x2e, 0xf1, 0x9c, 0x5d, 0xcb, 0xb7, 0x5a, 0x84, 0xaa,
0xcb, 0x11, 0x6f, 0xfd, 0xb6, 0x86, 0xc3, 0x29, 0x4a, 0xf3, 0xdf, 0x39, 0x28, 0x6d, 0x05, 0xbe,
0xe3, 0x86, 0xea, 0x72, 0x85, 0xbd, 0xce, 0x50, 0xf0, 0xb8, 0xd3, 0xeb, 0x10, 0x2c, 0x30, 0xe8,
0x79, 0x98, 0x61, 0xa1, 0x15, 0x76, 0x99, 0xb0, 0xa7, 0xd4, 0x78, 0x2c, 0x0a, 0x4b, 0x07, 0x02,
0x7a, 0xde, 0xaf, 0x2d, 0xc4, 0xe2, 0x24, 0x08, 0x2b, 0x06, 0xee, 0xe9, 0xc1, 0xa1, 0xd8, 0x28,
0xe7, 0x96, 0x4c, 0x7b, 0x51, 0xfe, 0xc8, 0x27, 0x9e, 0xbe, 0x37, 0x44, 0x81, 0x47, 0x70, 0xa1,
0x53, 0x40, 0x9e, 0xc5, 0xc2, 0x3b, 0xd4, 0xf2, 0x99, 0xd0, 0x75, 0xc7, 0x6d, 0x13, 0x75, 0xe1,
0xbf, 0x98, 0xed, 0xc4, 0x39, 0x47, 0xa2, 0xf7, 0xf6, 0x90, 0x34, 0x3c, 0x42, 0x03, 0x7a, 0x02,
0x66, 0x28, 0xb1, 0x58, 0xe0, 0x57, 0x0b, 0x62, 0xf9, 0x71, 0x54, 0xc6, 0x02, 0x8a, 0x15, 0x96,
0x07, 0xb4, 0x36, 0x61, 0xcc, 0x6a, 0x45, 0xe1, 0x35, 0x0e, 0x68, 0xbb, 0x12, 0x8c, 0x23, 0xbc,
0xd9, 0x86, 0xca, 0x16, 0x25, 0x56, 0x48, 0x26, 0xf1, 0x8a, 0x4f, 0x7f, 0xe0, 0x3f, 0xc9, 0x43,
0xa5, 0x49, 0x3c, 0x92, 0xe8, 0xdb, 0x06, 0xd4, 0xa2, 0x96, 0x4d, 0xf6, 0x09, 0x75, 0x03, 0xe7,
0x80, 0xd8, 0x81, 0xef, 0x30, 0xe1, 0x02, 0xf9, 0xc6, 0xff, 0xf1, 0xbd, 0xb9, 0x35, 0x84, 0xc5,
0x23, 0x38, 0x90, 0x07, 0x95, 0x0e, 0x15, 0xbf, 0xc5, 0x7e, 0x49, 0x0f, 0x29, 0x5f, 0xfb, 0x72,
0xb6, 0xe3, 0xd8, 0xd7, 0x59, 0x1b, 0x4b, 0x67, 0xfd, 0x5a, 0x25, 0x05, 0xc2, 0x69, 0xe1, 0xe8,
0xeb, 0xb0, 0x18, 0xd0, 0xce, 0xb1, 0xe5, 0x37, 0x49, 0x87, 0xf8, 0x0e, 0xf1, 0x43, 0x26, 0x76,
0xa1, 0xd8, 0x58, 0xe6, 0x75, 0xc4, 0xde, 0x00, 0x0e, 0x0f, 0x51, 0xa3, 0xd7, 0x60, 0xa9, 0x43,
0x83, 0x8e, 0xd5, 0x12, 0x2e, 0xb5, 0x1f, 0x78, 0xae, 0xdd, 0x13, 0x2e, 0x54, 0x6a, 0x3c, 0x75,
0xd6, 0xaf, 0x2d, 0xed, 0x0f, 0x22, 0xcf, 0xfb, 0xb5, 0x4b, 0x62, 0xeb, 0x38, 0x24, 0x41, 0xe2,
0x61, 0x31, 0xda, 0x19, 0x16, 0xc6, 0x9d, 0xa1, 0xb9, 0x03, 0xc5, 0x66, 0x57, 0xf9, 0xf3, 0x8b,
0x50, 0x74, 0xd4, 0x6f, 0xb5, 0xf3, 0xd1, 0xc5, 0x8a, 0x69, 0xce, 0xfb, 0xb5, 0x0a, 0x2f, 0x1d,
0xeb, 0x11, 0x00, 0xc7, 0x2c, 0xe6, 0x13, 0x50, 0x14, 0x47, 0xce, 0xee, 0x6d, 0xa0, 0x45, 0xc8,
0x63, 0xeb, 0xbe, 0x90, 0x32, 0x87, 0xf9, 0x4f, 0x2d, 0x02, 0xed, 0x01, 0xdc, 0x22, 0x61, 0x74,
0xf0, 0x9b, 0xb0, 0x10, 0x85, 0xe1, 0x74, 0x76, 0xf8, 0x7f, 0xa5, 0x7b, 0x01, 0xa7, 0xd1, 0x78,
0x90, 0xde, 0x7c, 0x1d, 0x4a, 0x22, 0x83, 0xf0, 0xf4, 0x9b, 0xa4, 0x7a, 0xe3, 0x01, 0xa9, 0x3e,
0xca, 0xdf, 0xb9, 0x71, 0xf9, 0x5b, 0x33, 0xd7, 0x83, 0x8a, 0xe4, 0x8d, 0x8a, 0x9b, 0x4c, 0x1a,
0x9e, 0x82, 0x62, 0x64, 0xa6, 0xd2, 0x12, 0x17, 0xb5, 0x91, 0x20, 0x1c, 0x53, 0x68, 0xda, 0x8e,
0x21, 0x95, 0x0d, 0xb3, 0x29, 0xd3, 0x2a, 0x97, 0xdc, 0x83, 0x2b, 0x17, 0x4d, 0xd3, 0x0f, 0xa1,
0x3a, 0xae, 0x12, 0x7e, 0x88, 0x7c, 0x9d, 0xdd, 0x14, 0xf3, 0x1d, 0x03, 0x16, 0x75, 0x49, 0xd9,
0x8f, 0x2f, 0xbb, 0x92, 0x8b, 0x2b, 0x35, 0x6d, 0x47, 0x7e, 0x63, 0xc0, 0x72, 0x6a, 0x69, 0x13,
0x9d, 0xf8, 0x04, 0x46, 0xe9, 0xce, 0x91, 0x9f, 0xc0, 0x39, 0xfe, 0x92, 0x83, 0xca, 0x6d, 0xeb,
0x90, 0x78, 0x07, 0xc4, 0x23, 0x76, 0x18, 0x50, 0xf4, 0x03, 0x28, 0xb7, 0xad, 0xd0, 0x3e, 0x16,
0xd0, 0xa8, 0xaa, 0x6f, 0x66, 0x0b, 0x76, 0x29, 0x49, 0xf5, 0xdd, 0x44, 0xcc, 0x4d, 0x3f, 0xa4,
0xbd, 0xc6, 0x25, 0x65, 0x52, 0x59, 0xc3, 0x60, 0x5d, 0x9b, 0x68, 0xc5, 0xc4, 0xf7, 0xcd, 0xb7,
0x3a, 0xbc, 0xe4, 0x98, 0xbc, 0x03, 0x4c, 0x99, 0x80, 0xc9, 0x9b, 0x5d, 0x97, 0x92, 0x36, 0xf1,
0xc3, 0xa4, 0x15, 0xdb, 0x1d, 0x90, 0x8f, 0x87, 0x34, 0xae, 0xbc, 0x04, 0x8b, 0x83, 0xc6, 0xf3,
0xf8, 0x73, 0x42, 0x7a, 0xf2, 0xbc, 0x30, 0xff, 0x89, 0x96, 0xa1, 0x70, 0x6a, 0x79, 0x5d, 0x75,
0x1b, 0xb1, 0xfc, 0xb8, 0x91, 0xbb, 0x6e, 0x98, 0xbf, 0x33, 0xa0, 0x3a, 0xce, 0x10, 0xf4, 0x79,
0x4d, 0x50, 0xa3, 0xac, 0xac, 0xca, 0xbf, 0x42, 0x7a, 0x52, 0xea, 0x4d, 0x28, 0x06, 0x1d, 0x5e,
0x0f, 0x04, 0x54, 0x9d, 0xfa, 0x93, 0xd1, 0x49, 0xee, 0x29, 0xf8, 0x79, 0xbf, 0x76, 0x39, 0x25,
0x3e, 0x42, 0xe0, 0x98, 0x95, 0x47, 0x6a, 0x61, 0x0f, 0xcf, 0x1e, 0x71, 0xa4, 0xbe, 0x27, 0x20,
0x58, 0x61, 0xcc, 0x3f, 0x1a, 0x30, 0x2d, 0x8a, 0xe9, 0xd7, 0xa1, 0xc8, 0xf7, 0xcf, 0xb1, 0x42,
0x4b, 0xd8, 0x95, 0xb9, 0x8d, 0xe3, 0xdc, 0xbb, 0x24, 0xb4, 0x12, 0x6f, 0x8b, 0x20, 0x38, 0x96,
0x88, 0x30, 0x14, 0xdc, 0x90, 0xb4, 0xa3, 0x83, 0x7c, 0x7a, 0xac, 0x68, 0x35, 0x44, 0xa8, 0x63,
0xeb, 0xfe, 0xcd, 0xb7, 0x42, 0xe2, 0xf3, 0xc3, 0x48, 0xae, 0xc6, 0x0e, 0x97, 0x81, 0xa5, 0x28,
0xf3, 0x5f, 0x06, 0xc4, 0xaa, 0xb8, 0xf3, 0x33, 0xe2, 0x1d, 0xdd, 0x76, 0xfd, 0x13, 0xb5, 0xad,
0xb1, 0x39, 0x07, 0x0a, 0x8e, 0x63, 0x8a, 0x51, 0xe9, 0x21, 0x37, 0x59, 0x7a, 0xe0, 0x0a, 0xed,
0xc0, 0x0f, 0x5d, 0xbf, 0x3b, 0x74, 0xdb, 0xb6, 0x14, 0x1c, 0xc7, 0x14, 0xbc, 0x10, 0xa1, 0xa4,
0x6d, 0xb9, 0xbe, 0xeb, 0xb7, 0xf8, 0x22, 0xb6, 0x82, 0xae, 0x1f, 0x8a, 0x8c, 0xac, 0x0a, 0x11,
0x3c, 0x84, 0xc5, 0x23, 0x38, 0xcc, 0x3f, 0x4c, 0x43, 0x99, 0xaf, 0x39, 0xca, 0x73, 0x2f, 0x40,
0xc5, 0xd3, 0xbd, 0x40, 0xad, 0xfd, 0xb2, 0x32, 0x25, 0x7d, 0xaf, 0x71, 0x9a, 0x96, 0x33, 0x8b,
0xfa, 0x29, 0x66, 0xce, 0xa5, 0x99, 0xb7, 0x75, 0x24, 0x4e, 0xd3, 0xf2, 0xe8, 0x75, 0x9f, 0xdf,
0x0f, 0x55, 0x99, 0xc4, 0x47, 0xf4, 0x4d, 0x0e, 0xc4, 0x12, 0x87, 0x76, 0xe1, 0x92, 0xe5, 0x79,
0xc1, 0x7d, 0x01, 0x6c, 0x04, 0xc1, 0x49, 0xdb, 0xa2, 0x27, 0x4c, 0x34, 0xc2, 0xc5, 0xc6, 0xe7,
0x14, 0xcb, 0xa5, 0xcd, 0x61, 0x12, 0x3c, 0x8a, 0x6f, 0xd4, 0xb1, 0x4d, 0x4f, 0x78, 0x6c, 0xc7,
0xb0, 0x3c, 0x00, 0x12, 0xb7, 0x5c, 0x75, 0xa5, 0xcf, 0x2a, 0x39, 0xcb, 0x78, 0x04, 0xcd, 0xf9,
0x18, 0x38, 0x1e, 0x29, 0x11, 0xdd, 0x80, 0x79, 0xee, 0xc9, 0x41, 0x37, 0x8c, 0xea, 0xce, 0x82,
0x38, 0x6e, 0x74, 0xd6, 0xaf, 0xcd, 0xdf, 0x49, 0x61, 0xf0, 0x00, 0x25, 0xdf, 0x5c, 0xcf, 0x6d,
0xbb, 0x61, 0x75, 0x56, 0xb0, 0xc4, 0x9b, 0x7b, 0x9b, 0x03, 0xb1, 0xc4, 0xa5, 0x3c, 0xb0, 0x78,
0x91, 0x07, 0x9a, 0xbf, 0xce, 0x03, 0x92, 0x85, 0xb2, 0x23, 0xeb, 0x29, 0x19, 0xd2, 0x78, 0x35,
0xaf, 0x0a, 0x6d, 0x63, 0xa0, 0x9a, 0x57, 0x35, 0x76, 0x84, 0x47, 0xbb, 0x50, 0x92, 0xa1, 0x25,
0xb9, 0x2e, 0xeb, 0x8a, 0xb8, 0xb4, 0x17, 0x21, 0xce, 0xfb, 0xb5, 0x95, 0x94, 0x9a, 0x18, 0x23,
0x3a, 0xad, 0x44, 0x02, 0xba, 0x06, 0x60, 0x75, 0x5c, 0x7d, 0xd6, 0x56, 0x4a, 0x26, 0x2e, 0x49,
0xd7, 0x8c, 0x35, 0x2a, 0xf4, 0x32, 0x4c, 0x87, 0x9f, 0xae, 0x1b, 0x2a, 0x8a, 0x66, 0x8f, 0xf7,
0x3e, 0x42, 0x02, 0xd7, 0x2e, 0xfc, 0x99, 0x71, 0xb3, 0x54, 0x23, 0x13, 0x6b, 0xdf, 0x8e, 0x31,
0x58, 0xa3, 0x42, 0xdf, 0x82, 0xe2, 0x91, 0x2a, 0x45, 0xc5, 0xc1, 0x64, 0x0e, 0x91, 0x51, 0x01,
0x2b, 0xdb, 0xfd, 0xe8, 0x0b, 0xc7, 0xd2, 0xcc, 0x37, 0xa1, 0xb4, 0xeb, 0xda, 0x34, 0x10, 0x8d,
0xd8, 0x93, 0x30, 0xcb, 0x52, 0x9d, 0x4a, 0x7c, 0x24, 0x91, 0xbb, 0x44, 0x78, 0xee, 0x27, 0xbe,
0xe5, 0x07, 0xb2, 0x1f, 0x29, 0x24, 0x7e, 0xf2, 0x2a, 0x07, 0x62, 0x89, 0xbb, 0xb1, 0xcc, 0x33,
0xfd, 0x4f, 0xdf, 0xaf, 0x4d, 0xbd, 0xfb, 0x7e, 0x6d, 0xea, 0xbd, 0xf7, 0x55, 0xd6, 0x3f, 0x07,
0x80, 0xbd, 0xc3, 0xef, 0x11, 0x5b, 0xc6, 0xcf, 0x4c, 0xb3, 0xb5, 0x68, 0xa4, 0x2b, 0x66, 0x6b,
0xb9, 0x81, 0xea, 0x4d, 0xc3, 0xe1, 0x14, 0x25, 0x5a, 0x87, 0x52, 0x3c, 0x35, 0x53, 0x07, 0xbd,
0x14, 0x39, 0x4e, 0x3c, 0x5a, 0xc3, 0x09, 0x4d, 0x2a, 0x98, 0x4f, 0x5f, 0x18, 0xcc, 0x1b, 0x90,
0xef, 0xba, 0x8e, 0xea, 0x5a, 0x9f, 0x89, 0x92, 0xe9, 0xdd, 0x9d, 0xe6, 0x79, 0xbf, 0xf6, 0xd8,
0xb8, 0x61, 0x35, 0xef, 0xf8, 0x59, 0xfd, 0xee, 0x4e, 0x13, 0x73, 0xe6, 0x51, 0x91, 0x65, 0x66,
0xc2, 0xc8, 0x72, 0x0d, 0xa0, 0x95, 0xf4, 0xfe, 0xf2, 0xe2, 0xc6, 0x1e, 0xa5, 0xf5, 0xfc, 0x1a,
0x15, 0x62, 0xb0, 0x64, 0xf3, 0x06, 0x59, 0xf5, 0xe0, 0x2c, 0xb4, 0xda, 0x72, 0x9a, 0x38, 0x99,
0x73, 0x5f, 0x51, 0x6a, 0x96, 0xb6, 0x06, 0x85, 0xe1, 0x61, 0xf9, 0x28, 0x80, 0x25, 0x47, 0xb5,
0x7a, 0x89, 0xd2, 0xd2, 0xc4, 0x4a, 0x2f, 0x73, 0x85, 0xcd, 0x41, 0x41, 0x78, 0x58, 0x36, 0xfa,
0x2e, 0xac, 0x44, 0xc0, 0xe1, 0x7e, 0x5b, 0x44, 0xde, 0x7c, 0x63, 0xf5, 0xac, 0x5f, 0x5b, 0x69,
0x8e, 0xa5, 0xc2, 0x0f, 0x90, 0x80, 0x1c, 0x98, 0xf1, 0x64, 0xa5, 0x5a, 0x16, 0xd5, 0xc5, 0x57,
0xb3, 0xad, 0x22, 0xf1, 0xfe, 0xba, 0x5e, 0xa1, 0xc6, 0x73, 0x0f, 0x55, 0x9c, 0x2a, 0xd9, 0xe8,
0x2d, 0x28, 0x5b, 0xbe, 0x1f, 0x84, 0x96, 0x9c, 0x00, 0xcc, 0x09, 0x55, 0x9b, 0x13, 0xab, 0xda,
0x4c, 0x64, 0x0c, 0x54, 0xc4, 0x1a, 0x06, 0xeb, 0xaa, 0xd0, 0x7d, 0x58, 0x08, 0xee, 0xfb, 0x84,
0x62, 0x72, 0x44, 0x28, 0xf1, 0x6d, 0xc2, 0xaa, 0x15, 0xa1, 0xfd, 0xd9, 0x8c, 0xda, 0x53, 0xcc,
0x89, 0x4b, 0xa7, 0xe1, 0x0c, 0x0f, 0x6a, 0x41, 0x75, 0x1e, 0x24, 0x7d, 0xcb, 0x73, 0xbf, 0x4f,
0x28, 0xab, 0xce, 0x27, 0x03, 0xdf, 0xed, 0x18, 0x8a, 0x35, 0x0a, 0xf4, 0x15, 0x28, 0xdb, 0x5e,
0x97, 0x85, 0x44, 0x4e, 0xdf, 0x17, 0xc4, 0x0d, 0x8a, 0xd7, 0xb7, 0x95, 0xa0, 0xb0, 0x4e, 0x87,
0xba, 0x50, 0x69, 0xeb, 0x29, 0xa3, 0xba, 0x24, 0x56, 0x77, 0x3d, 0xdb, 0xea, 0x86, 0x93, 0x5a,
0x52, 0xc1, 0xa4, 0x70, 0x38, 0xad, 0x65, 0xe5, 0x79, 0x28, 0x7f, 0xca, 0xe2, 0x9e, 0x37, 0x07,
0x83, 0xe7, 0x38, 0x51, 0x73, 0xf0, 0xa7, 0x1c, 0xcc, 0xa7, 0x77, 0x7f, 0x20, 0x1d, 0x16, 0x32,
0xa5, 0xc3, 0xa8, 0x0d, 0x35, 0xc6, 0x3e, 0x18, 0x44, 0x61, 0x3d, 0x3f, 0x36, 0xac, 0xab, 0xe8,
0x39, 0xfd, 0x30, 0xd1, 0xb3, 0x0e, 0xc0, 0xeb, 0x0c, 0x1a, 0x78, 0x1e, 0xa1, 0x22, 0x70, 0x16,
0xd5, 0xc3, 0x40, 0x0c, 0xc5, 0x1a, 0x05, 0xaf, 0x86, 0x0f, 0xbd, 0xc0, 0x3e, 0x11, 0x5b, 0x10,
0x5d, 0x7a, 0x11, 0x32, 0x8b, 0xb2, 0x1a, 0x6e, 0x0c, 0x61, 0xf1, 0x08, 0x0e, 0xb3, 0x07, 0x97,
0xf7, 0x2d, 0x1a, 0xba, 0x96, 0x97, 0x5c, 0x30, 0xd1, 0x6e, 0xbc, 0x31, 0xd4, 0xcc, 0x3c, 0x33,
0xe9, 0x45, 0x4d, 0x36, 0x3f, 0x81, 0x25, 0x0d, 0x8d, 0xf9, 0x57, 0x03, 0xae, 0x8c, 0xd4, 0xfd,
0x19, 0x34, 0x53, 0x6f, 0xa4, 0x9b, 0xa9, 0x17, 0x32, 0x4e, 0x21, 0x47, 0x59, 0x3b, 0xa6, 0xb5,
0x9a, 0x85, 0xc2, 0x3e, 0x2f, 0x62, 0xcd, 0x5f, 0x18, 0x30, 0x27, 0x7e, 0x4d, 0x32, 0xc1, 0xad,
0xa5, 0xe7, 0xfa, 0xa5, 0x47, 0x38, 0xd3, 0x7f, 0xc7, 0x80, 0xf4, 0xec, 0x14, 0xbd, 0x24, 0xfd,
0xd7, 0x88, 0x87, 0x9b, 0x13, 0xfa, 0xee, 0x8b, 0xe3, 0x5a, 0xc1, 0x4b, 0x99, 0xa6, 0x84, 0x4f,
0x41, 0x09, 0x07, 0x41, 0xb8, 0x6f, 0x85, 0xc7, 0x8c, 0x2f, 0xbc, 0xc3, 0x7f, 0xa8, 0xbd, 0x11,
0x0b, 0x17, 0x18, 0x2c, 0xe1, 0xe6, 0xcf, 0x0d, 0xb8, 0x32, 0xf6, 0xad, 0x85, 0x87, 0x00, 0x3b,
0xfe, 0x52, 0x2b, 0x8a, 0xbd, 0x30, 0xa1, 0xc3, 0x1a, 0x15, 0xef, 0xe1, 0x52, 0x0f, 0x34, 0x83,
0x3d, 0x5c, 0x4a, 0x1b, 0x4e, 0xd3, 0x9a, 0xff, 0xcc, 0x81, 0x7a, 0xdc, 0xf8, 0x2f, 0x7b, 0xec,
0x13, 0x03, 0x4f, 0x2b, 0xf3, 0xe9, 0xa7, 0x95, 0xf8, 0x1d, 0x45, 0x7b, 0x5b, 0xc8, 0x3f, 0xf8,
0x6d, 0x01, 0x3d, 0x17, 0x3f, 0x57, 0xc8, 0xd0, 0xb5, 0x9a, 0x7e, 0xae, 0x38, 0xef, 0xd7, 0xe6,
0x94, 0xf0, 0xf4, 0xf3, 0xc5, 0x6b, 0x30, 0xeb, 0x90, 0xd0, 0x72, 0x3d, 0xd9, 0x8f, 0x65, 0x1e,
0xe2, 0x4b, 0x61, 0x4d, 0xc9, 0xda, 0x28, 0x73, 0x9b, 0xd4, 0x07, 0x8e, 0x04, 0xf2, 0x68, 0x6b,
0x07, 0x8e, 0x6c, 0x27, 0x0a, 0x49, 0xb4, 0xdd, 0x0a, 0x1c, 0x82, 0x05, 0xc6, 0x7c, 0xd7, 0x80,
0xb2, 0x94, 0xb4, 0x65, 0x75, 0x19, 0x41, 0x1b, 0xf1, 0x2a, 0xe4, 0x71, 0x5f, 0xd1, 0xdf, 0xa5,
0xce, 0xfb, 0xb5, 0x92, 0x20, 0x13, 0x9d, 0xc8, 0x88, 0xf7, 0x97, 0xdc, 0x05, 0x7b, 0xf4, 0x38,
0x14, 0xc4, 0xed, 0x51, 0x9b, 0x99, 0x3c, 0xb0, 0x71, 0x20, 0x96, 0x38, 0xf3, 0xe3, 0x1c, 0x54,
0x52, 0x8b, 0xcb, 0xd0, 0x0b, 0xc4, 0xa3, 0xcb, 0x5c, 0x86, 0x71, 0xf8, 0xf8, 0xe7, 0x6c, 0x95,
0x7b, 0x66, 0x1e, 0x26, 0xf7, 0x7c, 0x1b, 0x66, 0x6c, 0xbe, 0x47, 0xd1, 0xbf, 0x23, 0x36, 0x26,
0x39, 0x4e, 0xb1, 0xbb, 0x89, 0x37, 0x8a, 0x4f, 0x86, 0x95, 0x40, 0x74, 0x0b, 0x96, 0x28, 0x09,
0x69, 0x6f, 0xf3, 0x28, 0x24, 0x54, 0x6f, 0xe2, 0x0b, 0x49, 0xc5, 0x8d, 0x07, 0x09, 0xf0, 0x30,
0x8f, 0x79, 0x08, 0x73, 0x77, 0xac, 0x43, 0x2f, 0x7e, 0x96, 0xc2, 0x50, 0x71, 0x7d, 0xdb, 0xeb,
0x3a, 0x44, 0x46, 0xe3, 0x28, 0x7a, 0x45, 0x97, 0x76, 0x47, 0x47, 0x9e, 0xf7, 0x6b, 0x97, 0x52,
0x00, 0xf9, 0x0e, 0x83, 0xd3, 0x22, 0x4c, 0x0f, 0xa6, 0x3f, 0xc3, 0xee, 0xf1, 0x3b, 0x50, 0x4a,
0xea, 0xfb, 0x47, 0xac, 0xd2, 0x7c, 0x03, 0x8a, 0xdc, 0xe3, 0xa3, 0xbe, 0xf4, 0x82, 0x12, 0x27,
0x5d, 0x38, 0xe5, 0xb2, 0x14, 0x4e, 0x66, 0x1b, 0x2a, 0x77, 0x3b, 0xce, 0x43, 0x3e, 0x4c, 0xe6,
0x32, 0x67, 0xad, 0x6b, 0x20, 0xff, 0x78, 0xc1, 0x13, 0x84, 0xcc, 0xdc, 0x5a, 0x82, 0xd0, 0x13,
0xaf, 0x36, 0x95, 0xff, 0xb1, 0x01, 0x20, 0xc6, 0x5f, 0x37, 0x4f, 0x89, 0x1f, 0x66, 0x78, 0xbe,
0xbe, 0x0b, 0x33, 0x81, 0xf4, 0x26, 0xf9, 0x38, 0x39, 0xe1, 0x8c, 0x35, 0xbe, 0x04, 0xd2, 0x9f,
0xb0, 0x12, 0xd6, 0xb8, 0xfa, 0xc1, 0x27, 0xab, 0x53, 0x1f, 0x7e, 0xb2, 0x3a, 0xf5, 0xd1, 0x27,
0xab, 0x53, 0x6f, 0x9f, 0xad, 0x1a, 0x1f, 0x9c, 0xad, 0x1a, 0x1f, 0x9e, 0xad, 0x1a, 0x1f, 0x9d,
0xad, 0x1a, 0x1f, 0x9f, 0xad, 0x1a, 0xef, 0xfe, 0x7d, 0x75, 0xea, 0xb5, 0xdc, 0xe9, 0xc6, 0x7f,
0x02, 0x00, 0x00, 0xff, 0xff, 0xf8, 0xee, 0x35, 0x7b, 0xee, 0x26, 0x00, 0x00,
}
func (m *APIGroup) Marshal() (dAtA []byte, err error) {
@ -1757,6 +1787,51 @@ func (m *APIVersions) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *ApplyOptions) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *ApplyOptions) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *ApplyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
i -= len(m.FieldManager)
copy(dAtA[i:], m.FieldManager)
i = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldManager)))
i--
dAtA[i] = 0x1a
i--
if m.Force {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i--
dAtA[i] = 0x10
if len(m.DryRun) > 0 {
for iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- {
i -= len(m.DryRun[iNdEx])
copy(dAtA[i:], m.DryRun[iNdEx])
i = encodeVarintGenerated(dAtA, i, uint64(len(m.DryRun[iNdEx])))
i--
dAtA[i] = 0xa
}
}
return len(dAtA) - i, nil
}
func (m *Condition) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@ -3515,6 +3590,24 @@ func (m *APIVersions) Size() (n int) {
return n
}
func (m *ApplyOptions) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if len(m.DryRun) > 0 {
for _, s := range m.DryRun {
l = len(s)
n += 1 + l + sovGenerated(uint64(l))
}
}
n += 2
l = len(m.FieldManager)
n += 1 + l + sovGenerated(uint64(l))
return n
}
func (m *Condition) Size() (n int) {
if m == nil {
return 0
@ -4236,6 +4329,18 @@ func (this *APIResourceList) String() string {
}, "")
return s
}
func (this *ApplyOptions) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&ApplyOptions{`,
`DryRun:` + fmt.Sprintf("%v", this.DryRun) + `,`,
`Force:` + fmt.Sprintf("%v", this.Force) + `,`,
`FieldManager:` + fmt.Sprintf("%v", this.FieldManager) + `,`,
`}`,
}, "")
return s
}
func (this *Condition) String() string {
if this == nil {
return "nil"
@ -5526,6 +5631,140 @@ func (m *APIVersions) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *ApplyOptions) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: ApplyOptions: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: ApplyOptions: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field DryRun", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.DryRun = append(m.DryRun, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
case 2:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Force", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.Force = bool(v != 0)
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field FieldManager", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.FieldManager = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthGenerated
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *Condition) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0

View File

@ -134,6 +134,31 @@ message APIVersions {
repeated ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;
}
// ApplyOptions may be provided when applying an API object.
// FieldManager is required for apply requests.
// ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation
// that speaks specifically to how the options fields relate to apply.
message ApplyOptions {
// 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.
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.
optional string fieldManager = 3;
}
// Condition contains details for one aspect of the current state of this API Resource.
// ---
// This struct is intended for direct use as an array at the field path .status.conditions. For example,

View File

@ -580,6 +580,37 @@ type PatchOptions struct {
FieldManager string `json:"fieldManager,omitempty" protobuf:"bytes,3,name=fieldManager"`
}
// ApplyOptions may be provided when applying an API object.
// FieldManager is required for apply requests.
// ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation
// that speaks specifically to how the options fields relate to apply.
type ApplyOptions struct {
TypeMeta `json:",inline"`
// 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
DryRun []string `json:"dryRun,omitempty" protobuf:"bytes,1,rep,name=dryRun"`
// Force is going to "force" Apply requests. It means user will
// re-acquire conflicting fields owned by other people.
Force bool `json:"force" protobuf:"varint,2,opt,name=force"`
// 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.
FieldManager string `json:"fieldManager" protobuf:"bytes,3,name=fieldManager"`
}
func (o ApplyOptions) ToPatchOptions() PatchOptions {
return PatchOptions{DryRun: o.DryRun, Force: &o.Force, FieldManager: o.FieldManager}
}
// +k8s:conversion-gen:explicit-from=net/url.Values
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

View File

@ -86,6 +86,17 @@ func (APIVersions) SwaggerDoc() map[string]string {
return map_APIVersions
}
var map_ApplyOptions = map[string]string{
"": "ApplyOptions may be provided when applying an API object. FieldManager is required for apply requests. ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation that speaks specifically to how the options fields relate to apply.",
"dryRun": "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",
"force": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people.",
"fieldManager": "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.",
}
func (ApplyOptions) SwaggerDoc() map[string]string {
return map_ApplyOptions
}
var map_Condition = map[string]string{
"": "Condition contains details for one aspect of the current state of this API Resource.",
"type": "type of condition in CamelCase or in foo.example.com/CamelCase.",

View File

@ -191,6 +191,28 @@ func (in *APIVersions) DeepCopyObject() runtime.Object {
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ApplyOptions) DeepCopyInto(out *ApplyOptions) {
*out = *in
out.TypeMeta = in.TypeMeta
if in.DryRun != nil {
in, out := &in.DryRun, &out.DryRun
*out = make([]string, len(*in))
copy(*out, *in)
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplyOptions.
func (in *ApplyOptions) DeepCopy() *ApplyOptions {
if in == nil {
return nil
}
out := new(ApplyOptions)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Condition) DeepCopyInto(out *Condition) {
*out = *in

View File

@ -52,16 +52,22 @@ type CustomArgs struct {
// PluralExceptions specify list of exceptions used when pluralizing certain types.
// For example 'Endpoints:Endpoints', otherwise the pluralizer will generate 'Endpointes'.
PluralExceptions []string
// ApplyConfigurationPackage is the package of apply builders generated by typebuilder-gen.
// If non-empty, Apply functions are generated for each type and reference the apply builders.
// If empty (""), Apply functions are not generated.
ApplyConfigurationPackage string
}
func NewDefaults() (*args.GeneratorArgs, *CustomArgs) {
genericArgs := args.Default().WithoutDefaultFlagParsing()
customArgs := &CustomArgs{
ClientsetName: "internalclientset",
ClientsetAPIPath: "/apis",
ClientsetOnly: false,
FakeClient: true,
PluralExceptions: []string{"Endpoints:Endpoints"},
ClientsetName: "internalclientset",
ClientsetAPIPath: "/apis",
ClientsetOnly: false,
FakeClient: true,
PluralExceptions: []string{"Endpoints:Endpoints"},
ApplyConfigurationPackage: "",
}
genericArgs.CustomArgs = customArgs
genericArgs.InputDirs = DefaultInputDirs
@ -84,6 +90,7 @@ func (ca *CustomArgs) AddFlags(fs *pflag.FlagSet, inputBase string) {
pflag.BoolVar(&ca.FakeClient, "fake-clientset", ca.FakeClient, "when set, client-gen will generate the fake clientset that can be used in tests")
fs.StringSliceVar(&ca.PluralExceptions, "plural-exceptions", ca.PluralExceptions, "list of comma separated plural exception definitions in Type:PluralizedType form")
fs.StringVar(&ca.ApplyConfigurationPackage, "apply-configuration-package", ca.ApplyConfigurationPackage, "optional package of apply configurations, generated by applyconfiguration-gen, that are required to generate Apply functions for each type in the clientset. By default Apply functions are not generated.")
// support old flags
fs.SetNormalizeFunc(mapFlagName("clientset-path", "output-package", fs.GetNormalizeFunc()))

View File

@ -128,7 +128,7 @@ func DefaultNameSystem() string {
return "public"
}
func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, groupPackageName string, groupGoName string, apiPath string, srcTreePath string, inputPackage string, boilerplate []byte) generator.Package {
func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, groupPackageName string, groupGoName string, apiPath string, srcTreePath string, inputPackage string, applyBuilderPackage string, boilerplate []byte) generator.Package {
groupVersionClientPackage := filepath.Join(clientsetPackage, "typed", strings.ToLower(groupPackageName), strings.ToLower(gv.Version.NonEmpty()))
return &generator.DefaultPackage{
PackageName: strings.ToLower(gv.Version.NonEmpty()),
@ -151,13 +151,15 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli
DefaultGen: generator.DefaultGen{
OptionalName: strings.ToLower(c.Namers["private"].Name(t)),
},
outputPackage: groupVersionClientPackage,
clientsetPackage: clientsetPackage,
group: gv.Group.NonEmpty(),
version: gv.Version.String(),
groupGoName: groupGoName,
typeToMatch: t,
imports: generator.NewImportTracker(),
outputPackage: groupVersionClientPackage,
inputPackage: inputPackage,
clientsetPackage: clientsetPackage,
applyConfigurationPackage: applyBuilderPackage,
group: gv.Group.NonEmpty(),
version: gv.Version.String(),
groupGoName: groupGoName,
typeToMatch: t,
imports: generator.NewImportTracker(),
})
}
@ -390,9 +392,9 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
gv := clientgentypes.GroupVersion{Group: group.Group, Version: version.Version}
types := gvToTypes[gv]
inputPath := gvPackages[gv]
packageList = append(packageList, packageForGroup(gv, orderer.OrderTypes(types), clientsetPackage, group.PackageName, groupGoNames[gv], customArgs.ClientsetAPIPath, arguments.OutputBase, inputPath, boilerplate))
packageList = append(packageList, packageForGroup(gv, orderer.OrderTypes(types), clientsetPackage, group.PackageName, groupGoNames[gv], customArgs.ClientsetAPIPath, arguments.OutputBase, inputPath, customArgs.ApplyConfigurationPackage, boilerplate))
if customArgs.FakeClient {
packageList = append(packageList, fake.PackageForGroup(gv, orderer.OrderTypes(types), clientsetPackage, group.PackageName, groupGoNames[gv], inputPath, boilerplate))
packageList = append(packageList, fake.PackageForGroup(gv, orderer.OrderTypes(types), clientsetPackage, group.PackageName, groupGoNames[gv], inputPath, customArgs.ApplyConfigurationPackage, boilerplate))
}
}
}

View File

@ -29,7 +29,7 @@ import (
clientgentypes "k8s.io/code-generator/cmd/client-gen/types"
)
func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, groupPackageName string, groupGoName string, inputPackage string, boilerplate []byte) generator.Package {
func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, groupPackageName string, groupGoName string, inputPackage string, applyBuilderPackage string, boilerplate []byte) generator.Package {
outputPackage := filepath.Join(clientsetPackage, "typed", strings.ToLower(groupPackageName), strings.ToLower(gv.Version.NonEmpty()), "fake")
// TODO: should make this a function, called by here and in client-generator.go
realClientPackage := filepath.Join(clientsetPackage, "typed", strings.ToLower(groupPackageName), strings.ToLower(gv.Version.NonEmpty()))
@ -54,13 +54,14 @@ func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli
DefaultGen: generator.DefaultGen{
OptionalName: "fake_" + strings.ToLower(c.Namers["private"].Name(t)),
},
outputPackage: outputPackage,
inputPackage: inputPackage,
group: gv.Group.NonEmpty(),
version: gv.Version.String(),
groupGoName: groupGoName,
typeToMatch: t,
imports: generator.NewImportTracker(),
outputPackage: outputPackage,
inputPackage: inputPackage,
group: gv.Group.NonEmpty(),
version: gv.Version.String(),
groupGoName: groupGoName,
typeToMatch: t,
imports: generator.NewImportTracker(),
applyBuilderPackage: applyBuilderPackage,
})
}

View File

@ -18,6 +18,7 @@ package fake
import (
"io"
gopath "path"
"path/filepath"
"strings"
@ -32,13 +33,14 @@ import (
// genFakeForType produces a file for each top-level type.
type genFakeForType struct {
generator.DefaultGen
outputPackage string
group string
version string
groupGoName string
inputPackage string
typeToMatch *types.Type
imports namer.ImportTracker
outputPackage string
group string
version string
groupGoName string
inputPackage string
typeToMatch *types.Type
imports namer.ImportTracker
applyBuilderPackage string
}
var _ generator.Generator = &genFakeForType{}
@ -127,12 +129,15 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
"GetOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "GetOptions"}),
"ListOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ListOptions"}),
"PatchOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "PatchOptions"}),
"ApplyOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ApplyOptions"}),
"UpdateOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "UpdateOptions"}),
"Everything": c.Universe.Function(types.Name{Package: "k8s.io/apimachinery/pkg/labels", Name: "Everything"}),
"GroupVersionResource": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupVersionResource"}),
"GroupVersionKind": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupVersionKind"}),
"PatchType": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/types", Name: "PatchType"}),
"ApplyPatchType": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/types", Name: "ApplyPatchType"}),
"watchInterface": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/watch", Name: "Interface"}),
"jsonMarshal": c.Universe.Type(types.Name{Package: "encoding/json", Name: "Marshal"}),
"NewRootListAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootListAction"}),
"NewListAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewListAction"}),
@ -161,6 +166,13 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
"ExtractFromListOptions": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "ExtractFromListOptions"}),
}
generateApply := len(g.applyBuilderPackage) > 0
if generateApply {
// Generated apply builder type references required for generated Apply function
_, gvString := util.ParsePathGroupVersion(g.inputPackage)
m["applyConfig"] = types.Ref(gopath.Join(g.applyBuilderPackage, gvString), t.Name.Name+"ApplyConfiguration")
}
if tags.NonNamespaced {
sw.Do(structNonNamespaced, m)
} else {
@ -205,6 +217,12 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
if tags.HasVerb("patch") {
sw.Do(patchTemplate, m)
}
if tags.HasVerb("apply") && generateApply {
sw.Do(applyTemplate, m)
}
if tags.HasVerb("applyStatus") && generateApply && genStatus(t) {
sw.Do(applyStatusTemplate, m)
}
// generate extended client methods
for _, e := range tags.Extensions {
@ -273,6 +291,11 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
if e.HasVerb("patch") {
sw.Do(adjustTemplate(e.VerbName, e.VerbType, patchTemplate), m)
}
if e.HasVerb("apply") && generateApply {
// TODO: Support apply on arbitrary subresource once it is supported by the api-server.
sw.Do(adjustTemplate(e.VerbName, e.VerbType, applyTemplate), m)
}
}
return sw.Error()
@ -480,3 +503,52 @@ func (c *Fake$.type|publicPlural$) Patch(ctx context.Context, name string, pt $.
return obj.(*$.resultType|raw$), err
}
`
var applyTemplate = `
// Apply takes the given apply declarative configuration, applies it and returns the applied $.resultType|private$.
func (c *Fake$.type|publicPlural$) Apply(ctx context.Context, $.inputType|private$ *$.applyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) {
if $.inputType|private$ == nil {
return nil, fmt.Errorf("$.inputType|private$ provided to Apply must not be nil")
}
data, err := $.jsonMarshal|raw$($.inputType|private$)
if err != nil {
return nil, err
}
name := $.inputType|private$.Name
if name == nil {
return nil, fmt.Errorf("$.inputType|private$.Name must be provided to Apply")
}
obj, err := c.Fake.
$if .namespaced$Invokes($.NewPatchSubresourceAction|raw$($.type|allLowercasePlural$Resource, c.ns, *name, $.ApplyPatchType|raw$, data), &$.resultType|raw${})
$else$Invokes($.NewRootPatchSubresourceAction|raw$($.type|allLowercasePlural$Resource, *name, $.ApplyPatchType|raw$, data), &$.resultType|raw${})$end$
if obj == nil {
return nil, err
}
return obj.(*$.resultType|raw$), err
}
`
var applyStatusTemplate = `
// ApplyStatus was generated because the type contains a Status member.
// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
func (c *Fake$.type|publicPlural$) ApplyStatus(ctx context.Context, $.inputType|private$ *$.applyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) {
if $.inputType|private$ == nil {
return nil, fmt.Errorf("$.inputType|private$ provided to Apply must not be nil")
}
data, err := $.jsonMarshal|raw$($.inputType|private$)
if err != nil {
return nil, err
}
name := $.inputType|private$.Name
if name == nil {
return nil, fmt.Errorf("$.inputType|private$.Name must be provided to Apply")
}
obj, err := c.Fake.
$if .namespaced$Invokes($.NewPatchSubresourceAction|raw$($.type|allLowercasePlural$Resource, c.ns, *name, $.ApplyPatchType|raw$, data, "status"), &$.resultType|raw${})
$else$Invokes($.NewRootPatchSubresourceAction|raw$($.type|allLowercasePlural$Resource, *name, $.ApplyPatchType|raw$, data, "status"), &$.resultType|raw${})$end$
if obj == nil {
return nil, err
}
return obj.(*$.resultType|raw$), err
}
`

View File

@ -18,6 +18,7 @@ package generators
import (
"io"
"path"
"path/filepath"
"strings"
@ -31,13 +32,15 @@ import (
// genClientForType produces a file for each top-level type.
type genClientForType struct {
generator.DefaultGen
outputPackage string
clientsetPackage string
group string
version string
groupGoName string
typeToMatch *types.Type
imports namer.ImportTracker
outputPackage string
inputPackage string
clientsetPackage string
applyConfigurationPackage string
group string
version string
groupGoName string
typeToMatch *types.Type
imports namer.ImportTracker
}
var _ generator.Generator = &genClientForType{}
@ -74,6 +77,9 @@ func genStatus(t *types.Type) bool {
// GenerateType makes the body of a file implementing the individual typed client for type t.
func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
generateApply := len(g.applyConfigurationPackage) > 0
defaultVerbTemplates := buildDefaultVerbTemplates(generateApply)
subresourceDefaultVerbTemplates := buildSubresourceDefaultVerbTemplates(generateApply)
sw := generator.NewSnippetWriter(w, c, "$", "$")
pkg := filepath.Base(t.Name.Package)
tags, err := util.ParseClientGenTags(append(t.SecondClosestCommentLines, t.CommentLines...))
@ -143,11 +149,20 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i
"GetOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "GetOptions"}),
"ListOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ListOptions"}),
"PatchOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "PatchOptions"}),
"ApplyOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ApplyOptions"}),
"UpdateOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "UpdateOptions"}),
"PatchType": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/types", Name: "PatchType"}),
"ApplyPatchType": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/types", Name: "ApplyPatchType"}),
"watchInterface": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/watch", Name: "Interface"}),
"RESTClientInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Interface"}),
"schemeParameterCodec": c.Universe.Variable(types.Name{Package: filepath.Join(g.clientsetPackage, "scheme"), Name: "ParameterCodec"}),
"jsonMarshal": c.Universe.Type(types.Name{Package: "encoding/json", Name: "Marshal"}),
}
if generateApply {
// Generated apply configuration type references required for generated Apply function
_, gvString := util.ParsePathGroupVersion(g.inputPackage)
m["applyConfig"] = types.Ref(path.Join(g.applyConfigurationPackage, gvString), t.Name.Name+"ApplyConfiguration")
}
sw.Do(getterComment, m)
@ -161,12 +176,13 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i
if !tags.NoVerbs {
if !genStatus(t) {
tags.SkipVerbs = append(tags.SkipVerbs, "updateStatus")
tags.SkipVerbs = append(tags.SkipVerbs, "applyStatus")
}
interfaceSuffix := ""
if len(extendedMethods) > 0 {
interfaceSuffix = "\n"
}
sw.Do("\n"+generateInterface(tags)+interfaceSuffix, m)
sw.Do("\n"+generateInterface(defaultVerbTemplates, tags)+interfaceSuffix, m)
// add extended verbs into interface
for _, v := range extendedMethods {
sw.Do(v.template+interfaceSuffix, v.args)
@ -215,6 +231,13 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i
if tags.HasVerb("patch") {
sw.Do(patchTemplate, m)
}
if tags.HasVerb("apply") && generateApply {
sw.Do(applyTemplate, m)
}
if tags.HasVerb("applyStatus") && generateApply {
sw.Do(applyStatusTemplate, m)
}
// TODO: Add subresource support once apply subresources are supported on the server side
// generate expansion methods
for _, e := range tags.Extensions {
@ -286,6 +309,11 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i
if e.HasVerb("patch") {
sw.Do(adjustTemplate(e.VerbName, e.VerbType, patchTemplate), m)
}
if e.HasVerb("apply") && generateApply {
// TODO: Support apply on arbitrary subresource once it is supported by the api-server.
sw.Do(adjustTemplate(e.VerbName, e.VerbType, applyTemplate), m)
}
}
return sw.Error()
@ -298,7 +326,7 @@ func adjustTemplate(name, verbType, template string) string {
return strings.Replace(template, " "+strings.Title(verbType), " "+name, -1)
}
func generateInterface(tags util.Tags) string {
func generateInterface(defaultVerbTemplates map[string]string, tags util.Tags) string {
// need an ordered list here to guarantee order of generated methods.
out := []string{}
for _, m := range util.SupportedVerbs {
@ -309,23 +337,34 @@ func generateInterface(tags util.Tags) string {
return strings.Join(out, "\n")
}
var subresourceDefaultVerbTemplates = map[string]string{
"create": `Create(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (*$.resultType|raw$, error)`,
"list": `List(ctx context.Context, $.type|private$Name string, opts $.ListOptions|raw$) (*$.resultType|raw$List, error)`,
"update": `Update(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (*$.resultType|raw$, error)`,
"get": `Get(ctx context.Context, $.type|private$Name string, options $.GetOptions|raw$) (*$.resultType|raw$, error)`,
func buildSubresourceDefaultVerbTemplates(generateApply bool) map[string]string {
m := map[string]string{
"create": `Create(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (*$.resultType|raw$, error)`,
"list": `List(ctx context.Context, $.type|private$Name string, opts $.ListOptions|raw$) (*$.resultType|raw$List, error)`,
"update": `Update(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (*$.resultType|raw$, error)`,
"get": `Get(ctx context.Context, $.type|private$Name string, options $.GetOptions|raw$) (*$.resultType|raw$, error)`,
}
// TODO: Support apply on arbitrary subresource once it is supported by the api-server.
return m
}
var defaultVerbTemplates = map[string]string{
"create": `Create(ctx context.Context, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (*$.resultType|raw$, error)`,
"update": `Update(ctx context.Context, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (*$.resultType|raw$, error)`,
"updateStatus": `UpdateStatus(ctx context.Context, $.inputType|private$ *$.type|raw$, opts $.UpdateOptions|raw$) (*$.type|raw$, error)`,
"delete": `Delete(ctx context.Context, name string, opts $.DeleteOptions|raw$) error`,
"deleteCollection": `DeleteCollection(ctx context.Context, opts $.DeleteOptions|raw$, listOpts $.ListOptions|raw$) error`,
"get": `Get(ctx context.Context, name string, opts $.GetOptions|raw$) (*$.resultType|raw$, error)`,
"list": `List(ctx context.Context, opts $.ListOptions|raw$) (*$.resultType|raw$List, error)`,
"watch": `Watch(ctx context.Context, opts $.ListOptions|raw$) ($.watchInterface|raw$, error)`,
"patch": `Patch(ctx context.Context, name string, pt $.PatchType|raw$, data []byte, opts $.PatchOptions|raw$, subresources ...string) (result *$.resultType|raw$, err error)`,
func buildDefaultVerbTemplates(generateApply bool) map[string]string {
m := map[string]string{
"create": `Create(ctx context.Context, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (*$.resultType|raw$, error)`,
"update": `Update(ctx context.Context, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (*$.resultType|raw$, error)`,
"updateStatus": `UpdateStatus(ctx context.Context, $.inputType|private$ *$.type|raw$, opts $.UpdateOptions|raw$) (*$.type|raw$, error)`,
"delete": `Delete(ctx context.Context, name string, opts $.DeleteOptions|raw$) error`,
"deleteCollection": `DeleteCollection(ctx context.Context, opts $.DeleteOptions|raw$, listOpts $.ListOptions|raw$) error`,
"get": `Get(ctx context.Context, name string, opts $.GetOptions|raw$) (*$.resultType|raw$, error)`,
"list": `List(ctx context.Context, opts $.ListOptions|raw$) (*$.resultType|raw$List, error)`,
"watch": `Watch(ctx context.Context, opts $.ListOptions|raw$) ($.watchInterface|raw$, error)`,
"patch": `Patch(ctx context.Context, name string, pt $.PatchType|raw$, data []byte, opts $.PatchOptions|raw$, subresources ...string) (result *$.resultType|raw$, err error)`,
}
if generateApply {
m["apply"] = `Apply(ctx context.Context, $.inputType|private$ *$.applyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error)`
m["applyStatus"] = `ApplyStatus(ctx context.Context, $.inputType|private$ *$.applyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error)`
}
return m
}
// group client will implement this interface.
@ -608,3 +647,63 @@ func (c *$.type|privatePlural$) Patch(ctx context.Context, name string, pt $.Pat
return
}
`
var applyTemplate = `
// Apply takes the given apply declarative configuration, applies it and returns the applied $.resultType|private$.
func (c *$.type|privatePlural$) Apply(ctx context.Context, $.inputType|private$ *$.applyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) {
if $.inputType|private$ == nil {
return nil, fmt.Errorf("$.inputType|private$ provided to Apply must not be nil")
}
patchOpts := opts.ToPatchOptions()
data, err := $.jsonMarshal|raw$($.inputType|private$)
if err != nil {
return nil, err
}
name := $.inputType|private$.Name
if name == nil {
return nil, fmt.Errorf("$.inputType|private$.Name must be provided to Apply")
}
result = &$.resultType|raw${}
err = c.client.Patch($.ApplyPatchType|raw$).
$if .namespaced$Namespace(c.ns).$end$
Resource("$.type|resource$").
Name(*name).
VersionedParams(&patchOpts, $.schemeParameterCodec|raw$).
Body(data).
Do(ctx).
Into(result)
return
}
`
var applyStatusTemplate = `
// ApplyStatus was generated because the type contains a Status member.
// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
func (c *$.type|privatePlural$) ApplyStatus(ctx context.Context, $.inputType|private$ *$.applyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) {
if $.inputType|private$ == nil {
return nil, fmt.Errorf("$.inputType|private$ provided to Apply must not be nil")
}
patchOpts := opts.ToPatchOptions()
data, err := $.jsonMarshal|raw$($.inputType|private$)
if err != nil {
return nil, err
}
name := $.inputType|private$.Name
if name == nil {
return nil, fmt.Errorf("$.inputType|private$.Name must be provided to Apply")
}
result = &$.resultType|raw${}
err = c.client.Patch($.ApplyPatchType|raw$).
$if .namespaced$Namespace(c.ns).$end$
Resource("$.type|resource$").
Name(*name).
SubResource("status").
VersionedParams(&patchOpts, $.schemeParameterCodec|raw$).
Body(data).
Do(ctx).
Into(result)
return
}
`

View File

@ -35,6 +35,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"k8s.io/apimachinery/pkg/apis/meta/v1.APIResource": schema_pkg_apis_meta_v1_APIResource(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.APIResourceList": schema_pkg_apis_meta_v1_APIResourceList(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.APIVersions": schema_pkg_apis_meta_v1_APIVersions(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.ApplyOptions": schema_pkg_apis_meta_v1_ApplyOptions(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.Condition": schema_pkg_apis_meta_v1_Condition(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.CreateOptions": schema_pkg_apis_meta_v1_CreateOptions(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.DeleteOptions": schema_pkg_apis_meta_v1_DeleteOptions(ref),
@ -433,6 +434,65 @@ func schema_pkg_apis_meta_v1_APIVersions(ref common.ReferenceCallback) common.Op
}
}
func schema_pkg_apis_meta_v1_ApplyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "ApplyOptions may be provided when applying an API object. FieldManager is required for apply requests. ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation that speaks specifically to how the options fields relate to apply.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
SchemaProps: spec.SchemaProps{
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type: []string{"string"},
Format: "",
},
},
"apiVersion": {
SchemaProps: spec.SchemaProps{
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Type: []string{"string"},
Format: "",
},
},
"dryRun": {
SchemaProps: spec.SchemaProps{
Description: "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",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
},
},
"force": {
SchemaProps: spec.SchemaProps{
Description: "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people.",
Default: false,
Type: []string{"boolean"},
Format: "",
},
},
"fieldManager": {
SchemaProps: spec.SchemaProps{
Description: "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.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"force", "fieldManager"},
},
},
}
}
func schema_pkg_apis_meta_v1_Condition(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{

View File

@ -35,6 +35,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"k8s.io/apimachinery/pkg/apis/meta/v1.APIResource": schema_pkg_apis_meta_v1_APIResource(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.APIResourceList": schema_pkg_apis_meta_v1_APIResourceList(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.APIVersions": schema_pkg_apis_meta_v1_APIVersions(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.ApplyOptions": schema_pkg_apis_meta_v1_ApplyOptions(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.Condition": schema_pkg_apis_meta_v1_Condition(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.CreateOptions": schema_pkg_apis_meta_v1_CreateOptions(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.DeleteOptions": schema_pkg_apis_meta_v1_DeleteOptions(ref),
@ -436,6 +437,65 @@ func schema_pkg_apis_meta_v1_APIVersions(ref common.ReferenceCallback) common.Op
}
}
func schema_pkg_apis_meta_v1_ApplyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "ApplyOptions may be provided when applying an API object. FieldManager is required for apply requests. ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation that speaks specifically to how the options fields relate to apply.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
SchemaProps: spec.SchemaProps{
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type: []string{"string"},
Format: "",
},
},
"apiVersion": {
SchemaProps: spec.SchemaProps{
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Type: []string{"string"},
Format: "",
},
},
"dryRun": {
SchemaProps: spec.SchemaProps{
Description: "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",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
},
},
"force": {
SchemaProps: spec.SchemaProps{
Description: "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people.",
Default: false,
Type: []string{"boolean"},
Format: "",
},
},
"fieldManager": {
SchemaProps: spec.SchemaProps{
Description: "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.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"force", "fieldManager"},
},
},
}
}
func schema_pkg_apis_meta_v1_Condition(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{

View File

@ -35,6 +35,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"k8s.io/apimachinery/pkg/apis/meta/v1.APIResource": schema_pkg_apis_meta_v1_APIResource(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.APIResourceList": schema_pkg_apis_meta_v1_APIResourceList(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.APIVersions": schema_pkg_apis_meta_v1_APIVersions(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.ApplyOptions": schema_pkg_apis_meta_v1_ApplyOptions(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.Condition": schema_pkg_apis_meta_v1_Condition(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.CreateOptions": schema_pkg_apis_meta_v1_CreateOptions(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.DeleteOptions": schema_pkg_apis_meta_v1_DeleteOptions(ref),
@ -434,6 +435,65 @@ func schema_pkg_apis_meta_v1_APIVersions(ref common.ReferenceCallback) common.Op
}
}
func schema_pkg_apis_meta_v1_ApplyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "ApplyOptions may be provided when applying an API object. FieldManager is required for apply requests. ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation that speaks specifically to how the options fields relate to apply.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
SchemaProps: spec.SchemaProps{
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type: []string{"string"},
Format: "",
},
},
"apiVersion": {
SchemaProps: spec.SchemaProps{
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Type: []string{"string"},
Format: "",
},
},
"dryRun": {
SchemaProps: spec.SchemaProps{
Description: "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",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
},
},
"force": {
SchemaProps: spec.SchemaProps{
Description: "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people.",
Default: false,
Type: []string{"boolean"},
Format: "",
},
},
"fieldManager": {
SchemaProps: spec.SchemaProps{
Description: "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.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"force", "fieldManager"},
},
},
}
}
func schema_pkg_apis_meta_v1_Condition(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{