github.com/spotmaxtech/k8s-apimachinery-v0260@v0.0.1/pkg/apis/meta/v1/meta.go (about)

     1  /*
     2  Copyright 2016 The Kubernetes Authors.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  package v1
    18  
    19  import (
    20  	"github.com/spotmaxtech/k8s-apimachinery-v0260/pkg/runtime/schema"
    21  	"github.com/spotmaxtech/k8s-apimachinery-v0260/pkg/types"
    22  )
    23  
    24  // TODO: move this, Object, List, and Type to a different package
    25  type ObjectMetaAccessor interface {
    26  	GetObjectMeta() Object
    27  }
    28  
    29  // Object lets you work with object metadata from any of the versioned or
    30  // internal API objects. Attempting to set or retrieve a field on an object that does
    31  // not support that field (Name, UID, Namespace on lists) will be a no-op and return
    32  // a default value.
    33  type Object interface {
    34  	GetNamespace() string
    35  	SetNamespace(namespace string)
    36  	GetName() string
    37  	SetName(name string)
    38  	GetGenerateName() string
    39  	SetGenerateName(name string)
    40  	GetUID() types.UID
    41  	SetUID(uid types.UID)
    42  	GetResourceVersion() string
    43  	SetResourceVersion(version string)
    44  	GetGeneration() int64
    45  	SetGeneration(generation int64)
    46  	GetSelfLink() string
    47  	SetSelfLink(selfLink string)
    48  	GetCreationTimestamp() Time
    49  	SetCreationTimestamp(timestamp Time)
    50  	GetDeletionTimestamp() *Time
    51  	SetDeletionTimestamp(timestamp *Time)
    52  	GetDeletionGracePeriodSeconds() *int64
    53  	SetDeletionGracePeriodSeconds(*int64)
    54  	GetLabels() map[string]string
    55  	SetLabels(labels map[string]string)
    56  	GetAnnotations() map[string]string
    57  	SetAnnotations(annotations map[string]string)
    58  	GetFinalizers() []string
    59  	SetFinalizers(finalizers []string)
    60  	GetOwnerReferences() []OwnerReference
    61  	SetOwnerReferences([]OwnerReference)
    62  	GetManagedFields() []ManagedFieldsEntry
    63  	SetManagedFields(managedFields []ManagedFieldsEntry)
    64  }
    65  
    66  // ListMetaAccessor retrieves the list interface from an object
    67  type ListMetaAccessor interface {
    68  	GetListMeta() ListInterface
    69  }
    70  
    71  // Common lets you work with core metadata from any of the versioned or
    72  // internal API objects. Attempting to set or retrieve a field on an object that does
    73  // not support that field will be a no-op and return a default value.
    74  // TODO: move this, and TypeMeta and ListMeta, to a different package
    75  type Common interface {
    76  	GetResourceVersion() string
    77  	SetResourceVersion(version string)
    78  	GetSelfLink() string
    79  	SetSelfLink(selfLink string)
    80  }
    81  
    82  // ListInterface lets you work with list metadata from any of the versioned or
    83  // internal API objects. Attempting to set or retrieve a field on an object that does
    84  // not support that field will be a no-op and return a default value.
    85  // TODO: move this, and TypeMeta and ListMeta, to a different package
    86  type ListInterface interface {
    87  	GetResourceVersion() string
    88  	SetResourceVersion(version string)
    89  	GetSelfLink() string
    90  	SetSelfLink(selfLink string)
    91  	GetContinue() string
    92  	SetContinue(c string)
    93  	GetRemainingItemCount() *int64
    94  	SetRemainingItemCount(c *int64)
    95  }
    96  
    97  // Type exposes the type and APIVersion of versioned or internal API objects.
    98  // TODO: move this, and TypeMeta and ListMeta, to a different package
    99  type Type interface {
   100  	GetAPIVersion() string
   101  	SetAPIVersion(version string)
   102  	GetKind() string
   103  	SetKind(kind string)
   104  }
   105  
   106  var _ ListInterface = &ListMeta{}
   107  
   108  func (meta *ListMeta) GetResourceVersion() string        { return meta.ResourceVersion }
   109  func (meta *ListMeta) SetResourceVersion(version string) { meta.ResourceVersion = version }
   110  func (meta *ListMeta) GetSelfLink() string               { return meta.SelfLink }
   111  func (meta *ListMeta) SetSelfLink(selfLink string)       { meta.SelfLink = selfLink }
   112  func (meta *ListMeta) GetContinue() string               { return meta.Continue }
   113  func (meta *ListMeta) SetContinue(c string)              { meta.Continue = c }
   114  func (meta *ListMeta) GetRemainingItemCount() *int64     { return meta.RemainingItemCount }
   115  func (meta *ListMeta) SetRemainingItemCount(c *int64)    { meta.RemainingItemCount = c }
   116  
   117  func (obj *TypeMeta) GetObjectKind() schema.ObjectKind { return obj }
   118  
   119  // SetGroupVersionKind satisfies the ObjectKind interface for all objects that embed TypeMeta
   120  func (obj *TypeMeta) SetGroupVersionKind(gvk schema.GroupVersionKind) {
   121  	obj.APIVersion, obj.Kind = gvk.ToAPIVersionAndKind()
   122  }
   123  
   124  // GroupVersionKind satisfies the ObjectKind interface for all objects that embed TypeMeta
   125  func (obj *TypeMeta) GroupVersionKind() schema.GroupVersionKind {
   126  	return schema.FromAPIVersionAndKind(obj.APIVersion, obj.Kind)
   127  }
   128  
   129  func (obj *ListMeta) GetListMeta() ListInterface { return obj }
   130  
   131  func (obj *ObjectMeta) GetObjectMeta() Object { return obj }
   132  
   133  // Namespace implements metav1.Object for any object with an ObjectMeta typed field. Allows
   134  // fast, direct access to metadata fields for API objects.
   135  func (meta *ObjectMeta) GetNamespace() string                { return meta.Namespace }
   136  func (meta *ObjectMeta) SetNamespace(namespace string)       { meta.Namespace = namespace }
   137  func (meta *ObjectMeta) GetName() string                     { return meta.Name }
   138  func (meta *ObjectMeta) SetName(name string)                 { meta.Name = name }
   139  func (meta *ObjectMeta) GetGenerateName() string             { return meta.GenerateName }
   140  func (meta *ObjectMeta) SetGenerateName(generateName string) { meta.GenerateName = generateName }
   141  func (meta *ObjectMeta) GetUID() types.UID                   { return meta.UID }
   142  func (meta *ObjectMeta) SetUID(uid types.UID)                { meta.UID = uid }
   143  func (meta *ObjectMeta) GetResourceVersion() string          { return meta.ResourceVersion }
   144  func (meta *ObjectMeta) SetResourceVersion(version string)   { meta.ResourceVersion = version }
   145  func (meta *ObjectMeta) GetGeneration() int64                { return meta.Generation }
   146  func (meta *ObjectMeta) SetGeneration(generation int64)      { meta.Generation = generation }
   147  func (meta *ObjectMeta) GetSelfLink() string                 { return meta.SelfLink }
   148  func (meta *ObjectMeta) SetSelfLink(selfLink string)         { meta.SelfLink = selfLink }
   149  func (meta *ObjectMeta) GetCreationTimestamp() Time          { return meta.CreationTimestamp }
   150  func (meta *ObjectMeta) SetCreationTimestamp(creationTimestamp Time) {
   151  	meta.CreationTimestamp = creationTimestamp
   152  }
   153  func (meta *ObjectMeta) GetDeletionTimestamp() *Time { return meta.DeletionTimestamp }
   154  func (meta *ObjectMeta) SetDeletionTimestamp(deletionTimestamp *Time) {
   155  	meta.DeletionTimestamp = deletionTimestamp
   156  }
   157  func (meta *ObjectMeta) GetDeletionGracePeriodSeconds() *int64 {
   158  	return meta.DeletionGracePeriodSeconds
   159  }
   160  func (meta *ObjectMeta) SetDeletionGracePeriodSeconds(deletionGracePeriodSeconds *int64) {
   161  	meta.DeletionGracePeriodSeconds = deletionGracePeriodSeconds
   162  }
   163  func (meta *ObjectMeta) GetLabels() map[string]string                 { return meta.Labels }
   164  func (meta *ObjectMeta) SetLabels(labels map[string]string)           { meta.Labels = labels }
   165  func (meta *ObjectMeta) GetAnnotations() map[string]string            { return meta.Annotations }
   166  func (meta *ObjectMeta) SetAnnotations(annotations map[string]string) { meta.Annotations = annotations }
   167  func (meta *ObjectMeta) GetFinalizers() []string                      { return meta.Finalizers }
   168  func (meta *ObjectMeta) SetFinalizers(finalizers []string)            { meta.Finalizers = finalizers }
   169  func (meta *ObjectMeta) GetOwnerReferences() []OwnerReference         { return meta.OwnerReferences }
   170  func (meta *ObjectMeta) SetOwnerReferences(references []OwnerReference) {
   171  	meta.OwnerReferences = references
   172  }
   173  func (meta *ObjectMeta) GetManagedFields() []ManagedFieldsEntry { return meta.ManagedFields }
   174  func (meta *ObjectMeta) SetManagedFields(managedFields []ManagedFieldsEntry) {
   175  	meta.ManagedFields = managedFields
   176  }