-
Notifications
You must be signed in to change notification settings - Fork 301
/
Copy pathIKubernetesObject.cs
40 lines (38 loc) · 1.75 KB
/
IKubernetesObject.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
namespace k8s
{
/// <summary>
/// Represents a generic Kubernetes object.
/// </summary>
/// <remarks>
/// You can use the <see cref="KubernetesObject"/> if you receive JSON from a Kubernetes API server but
/// are unsure which object the API server is about to return. You can parse the JSON as a <see cref="KubernetesObject"/>
/// and use the <see cref="ApiVersion"/> and <see cref="Kind"/> properties to get basic metadata about any Kubernetes object.
/// You can then
/// </remarks>
public interface IKubernetesObject
{
/// <summary>
/// Gets or sets 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/api-conventions.md#resources
/// </summary>
[JsonPropertyName("apiVersion")]
string ApiVersion { get; set; }
/// <summary>
/// Gets or sets 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/api-conventions.md#types-kinds
/// </summary>
[JsonPropertyName("kind")]
string Kind { get; set; }
}
/// <summary>Represents a generic Kubernetes object that has an API version, a kind, and metadata.</summary>
/// <typeparam name="TMetadata">type of metadata</typeparam>
public interface IKubernetesObject<TMetadata> : IKubernetesObject, IMetadata<TMetadata>
{
}
}