code: func AsPartialObjectMetadata(m metav1.Object) *metav1beta1.PartialObjectMetadata {
  	switch t := m.(type) {
  	case *metav1.ObjectMeta:
  		return &metav1beta1.PartialObjectMetadata{ObjectMeta: *t}
  	default:
  		return &metav1beta1.PartialObjectMetadata{
  			ObjectMeta: metav1.ObjectMeta{
  				Name:                       m.GetName(),
  				GenerateName:               m.GetGenerateName(),
  				Namespace:                  m.GetNamespace(),
  				SelfLink:                   m.GetSelfLink(),
  				UID:                        m.GetUID(),
  				ResourceVersion:            m.GetResourceVersion(),
  				Generation:                 m.GetGeneration(),
  				CreationTimestamp:          m.GetCreationTimestamp(),
  				DeletionTimestamp:          m.GetDeletionTimestamp(),
  				DeletionGracePeriodSeconds: m.GetDeletionGracePeriodSeconds(),
  				Labels:                     m.GetLabels(),
  				Annotations:                m.GetAnnotations(),
  				OwnerReferences:            m.GetOwnerReferences(),
  				Finalizers:                 m.GetFinalizers(),
  				ClusterName:                m.GetClusterName(),
  				Initializers:               m.GetInitializers(),
  				ManagedFields:              m.GetManagedFields(),
  			},
  		}
  	}
  }
docs: // AsPartialObjectMetadata takes the metav1 interface and returns a partial object.
  // TODO: consider making this solely a conversion action.