| /* |
| Copyright 2019 The Kubernetes Authors. |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| */ |
| |
| package rest |
| |
| import ( |
| "context" |
| |
| "k8s.io/apimachinery/pkg/runtime" |
| "k8s.io/apimachinery/pkg/util/validation/field" |
| ) |
| |
| // RESTCreateUpdateStrategy is a union of RESTUpdateStrategy and RESTCreateStrategy, |
| // and it defines the minimum validation, accepted input, and name generation |
| // behavior to create and update an object that follows Kubernetes API conventions. |
| type RESTCreateUpdateStrategy interface { |
| RESTCreateStrategy |
| // AllowCreateOnUpdate returns true if the object can be created by a PUT. |
| AllowCreateOnUpdate() bool |
| // PrepareForUpdate is invoked on update before validation to normalize |
| // the object. For example: remove fields that are not to be persisted, |
| // sort order-insensitive list fields, etc. This should not remove fields |
| // whose presence would be considered a validation error. |
| PrepareForUpdate(ctx context.Context, obj, old runtime.Object) |
| // ValidateUpdate is invoked after default fields in the object have been |
| // filled in before the object is persisted. This method should not mutate |
| // the object. |
| ValidateUpdate(ctx context.Context, obj, old runtime.Object) field.ErrorList |
| // AllowUnconditionalUpdate returns true if the object can be updated |
| // unconditionally (irrespective of the latest resource version), when |
| // there is no resource version specified in the object. |
| AllowUnconditionalUpdate() bool |
| } |
| |
| // Ensure that RESTCreateUpdateStrategy extends RESTCreateStrategy |
| var _ RESTCreateStrategy = (RESTCreateUpdateStrategy)(nil) |
| |
| // Ensure that RESTCreateUpdateStrategy extends RESTUpdateStrategy |
| var _ RESTUpdateStrategy = (RESTCreateUpdateStrategy)(nil) |