Skip to content

Commit 7ea11a7

Browse files
authored
Add IKubernetesObject<TMetadata> (#404)
1 parent e90be77 commit 7ea11a7

File tree

3 files changed

+197
-191
lines changed

3 files changed

+197
-191
lines changed

Diff for: gen/KubernetesWatchGenerator/Program.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,8 @@
33
using Nustache.Core;
44
using System;
55
using System.Collections.Generic;
6-
using System.Collections.ObjectModel;
7-
using System.Diagnostics;
86
using System.IO;
97
using System.Linq;
10-
using System.Net.Http;
118
using System.Threading.Tasks;
129

1310
namespace KubernetesWatchGenerator
@@ -227,10 +224,13 @@ static string GetInterfaceName(JsonSchema4 definition)
227224
var kind = groupVersionKind["kind"] as string;
228225
var className = GetClassName(definition);
229226
var interfaces = new List<string>();
230-
interfaces.Add("IKubernetesObject");
231227
if (definition.Properties.TryGetValue("metadata", out var metadataProperty))
232228
{
233-
interfaces.Add($"IMetadata<{GetClassNameForSchemaDefinition(metadataProperty.Reference)}>");
229+
interfaces.Add($"IKubernetesObject<{GetClassNameForSchemaDefinition(metadataProperty.Reference)}>");
230+
}
231+
else
232+
{
233+
interfaces.Add("IKubernetesObject");
234234
}
235235

236236
if (definition.Properties.TryGetValue("items", out var itemsProperty))

Diff for: src/KubernetesClient/IKubernetesObject.cs

+6
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,10 @@ public interface IKubernetesObject
3333
[JsonProperty(PropertyName = "kind")]
3434
string Kind { get; set; }
3535
}
36+
37+
/// <summary>Represents a generic Kubernetes object that has an API version, a kind, and metadata.</summary>
38+
/// <typeparam name="TMetadata"></typeparam>
39+
public interface IKubernetesObject<TMetadata> : IKubernetesObject, IMetadata<TMetadata>
40+
{
41+
}
3642
}

0 commit comments

Comments
 (0)