<p dir="auto">Using this example:<br>
<a href="https://github.com/GoogleCloudPlatform/kubernetes/blob/master/examples/guestbook-go/v1beta3/guestbook-service.json">https://github.com/GoogleCloudPlatform/kubernetes/blob/master/examples/guestbook-go/v1beta3/guestbook-service.json</a></p>
<p dir="auto">When created "as is", it works, however doing the same but omitting the 'kind' and 'apiversion'  causes it to fail with 422 with the following message:<br>
""Service "guestbook2" is invalid: spec.sessionAffinity: required value""</p>
<ol dir="auto">
<li>If it already knows it's a service (based on resource name and returned error msg), why there was a need to specify its kind in the first place from client side? Namespaces for example can be created np without those 2 properties.</li>
<li>why kind and api version removal causes an error regarding session affinity ? when they are in the input json, it is created successfully without specifying session affinity and its value is set to "None".</li>
</ol>
<p dir="auto">Why is there a need in 'apiVersion' property in all REST entities?<br>
The client accesses the api already when specifying the version in the url so the client is fully aware which api version was called.<br>
Will there be cases when user approaches v1beta3 and will receive entities with apiVersion=v1beta1 ?<br>
In other words - what's the reason/use case for this attribute?</p>