diff --git a/.github/workflows/draft.yaml b/.github/workflows/draft.yaml
index e946830..742a4bf 100644
--- a/.github/workflows/draft.yaml
+++ b/.github/workflows/draft.yaml
@@ -1,4 +1,4 @@
-name: Nuget
+name: Draft Release
on:
push:
@@ -35,13 +35,13 @@ jobs:
- name: dotnet test
run: dotnet test
- - name: dotnet pack
- run: dotnet pack -c Release src/KubernetesClient -o pkg --include-symbols
+ - uses: dotnet/nbgv@master
+ with:
+ setAllVars: true
- name: create release
shell: pwsh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
- $VERSION = Get-ChildItem -Path pkg/*.nupkg -Name | Select-String -Pattern '\d+.\d+.\d+' | foreach {$_.Matches.Value}
- gh release create -d --generate-notes v$VERSION
+ gh release create -d --generate-notes v$env:NBGV_NuGetPackageVersion
\ No newline at end of file
diff --git a/.github/workflows/nuget.yaml b/.github/workflows/nuget.yaml
index c5e167e..be09bc2 100644
--- a/.github/workflows/nuget.yaml
+++ b/.github/workflows/nuget.yaml
@@ -36,7 +36,7 @@ jobs:
run: dotnet test
- name: dotnet pack
- run: dotnet pack -c Release src/KubernetesClient -o pkg --include-symbols
+ run: dotnet pack -c Release src/nuget.proj -o pkg --include-symbols
- name: dotnet nuget push
run: dotnet nuget push pkg\*.nupkg -s https://www.nuget.org/ -k ${{ secrets.nuget_api_key }}
diff --git a/Directory.Build.props b/Directory.Build.props
index a2a68f7..440a63a 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -5,4 +5,35 @@
true
true
+
+
+ The Kubernetes Project Authors
+ 2017 The Kubernetes Project Authors
+ Client library for the Kubernetes open source container orchestrator.
+
+ Apache-2.0
+ https://github.com/kubernetes-client/csharp
+ https://raw.githubusercontent.com/kubernetes/kubernetes/master/logo/logo.png
+ logo.png
+ kubernetes;docker;containers;
+ true
+
+
+ true
+
+
+ true
+ snupkg
+ true
+ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
+ 10.0
+
+
+
+ true
+
+
+
+
+
diff --git a/Directory.Build.targets b/Directory.Build.targets
index ac1a4f0..c6cb986 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -1,12 +1,9 @@
-
- All
-
-
-
- All
-
+
+
+
+
diff --git a/examples/attach/Attach.cs b/examples/attach/Attach.cs
index d15d7fe..26aeb16 100755
--- a/examples/attach/Attach.cs
+++ b/examples/attach/Attach.cs
@@ -2,7 +2,6 @@ using System;
using System.Threading.Tasks;
using k8s;
using k8s.Models;
-using k8s.Autorest;
namespace attach
{
diff --git a/examples/watch/Program.cs b/examples/watch/Program.cs
index fff0bbb..d16a5fb 100644
--- a/examples/watch/Program.cs
+++ b/examples/watch/Program.cs
@@ -3,7 +3,6 @@ using System.Threading;
using System.Threading.Tasks;
using k8s;
using k8s.Models;
-using k8s.Autorest;
namespace watch
{
diff --git a/examples/yaml/Program.cs b/examples/yaml/Program.cs
index 06185f1..b15e295 100644
--- a/examples/yaml/Program.cs
+++ b/examples/yaml/Program.cs
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
-using System.IO;
using System.Threading.Tasks;
using k8s;
using k8s.Models;
diff --git a/global.json b/global.json
index 66e7197..125707b 100644
--- a/global.json
+++ b/global.json
@@ -3,5 +3,8 @@
"sdk": {
"version": "6.0.100",
"rollForward": "latestMajor"
+ },
+ "msbuild-sdks": {
+ "Microsoft.Build.Traversal" : "3.1.6"
}
}
diff --git a/kubernetes-client.sln b/kubernetes-client.sln
index 2d7eec7..af88113 100644
--- a/kubernetes-client.sln
+++ b/kubernetes-client.sln
@@ -49,6 +49,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "prometheus", "examples\prom
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "yaml", "examples\yaml\yaml.csproj", "{17AB0AD8-6C90-42DD-880C-16B5AC4A373F}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubernetesClient.Models", "src\KubernetesClient.Models\KubernetesClient.Models.csproj", "{F066A4D8-2EF0-4C07-AC0D-BD325DE3FFA8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KubernetesClient.Basic", "src\KubernetesClient.Basic\KubernetesClient.Basic.csproj", "{927995F5-05CC-4078-8805-8E6CC06914D8}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -299,6 +303,30 @@ Global
{17AB0AD8-6C90-42DD-880C-16B5AC4A373F}.Release|x64.Build.0 = Release|Any CPU
{17AB0AD8-6C90-42DD-880C-16B5AC4A373F}.Release|x86.ActiveCfg = Release|Any CPU
{17AB0AD8-6C90-42DD-880C-16B5AC4A373F}.Release|x86.Build.0 = Release|Any CPU
+ {F066A4D8-2EF0-4C07-AC0D-BD325DE3FFA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F066A4D8-2EF0-4C07-AC0D-BD325DE3FFA8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F066A4D8-2EF0-4C07-AC0D-BD325DE3FFA8}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F066A4D8-2EF0-4C07-AC0D-BD325DE3FFA8}.Debug|x64.Build.0 = Debug|Any CPU
+ {F066A4D8-2EF0-4C07-AC0D-BD325DE3FFA8}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F066A4D8-2EF0-4C07-AC0D-BD325DE3FFA8}.Debug|x86.Build.0 = Debug|Any CPU
+ {F066A4D8-2EF0-4C07-AC0D-BD325DE3FFA8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F066A4D8-2EF0-4C07-AC0D-BD325DE3FFA8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F066A4D8-2EF0-4C07-AC0D-BD325DE3FFA8}.Release|x64.ActiveCfg = Release|Any CPU
+ {F066A4D8-2EF0-4C07-AC0D-BD325DE3FFA8}.Release|x64.Build.0 = Release|Any CPU
+ {F066A4D8-2EF0-4C07-AC0D-BD325DE3FFA8}.Release|x86.ActiveCfg = Release|Any CPU
+ {F066A4D8-2EF0-4C07-AC0D-BD325DE3FFA8}.Release|x86.Build.0 = Release|Any CPU
+ {927995F5-05CC-4078-8805-8E6CC06914D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {927995F5-05CC-4078-8805-8E6CC06914D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {927995F5-05CC-4078-8805-8E6CC06914D8}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {927995F5-05CC-4078-8805-8E6CC06914D8}.Debug|x64.Build.0 = Debug|Any CPU
+ {927995F5-05CC-4078-8805-8E6CC06914D8}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {927995F5-05CC-4078-8805-8E6CC06914D8}.Debug|x86.Build.0 = Debug|Any CPU
+ {927995F5-05CC-4078-8805-8E6CC06914D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {927995F5-05CC-4078-8805-8E6CC06914D8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {927995F5-05CC-4078-8805-8E6CC06914D8}.Release|x64.ActiveCfg = Release|Any CPU
+ {927995F5-05CC-4078-8805-8E6CC06914D8}.Release|x64.Build.0 = Release|Any CPU
+ {927995F5-05CC-4078-8805-8E6CC06914D8}.Release|x86.ActiveCfg = Release|Any CPU
+ {927995F5-05CC-4078-8805-8E6CC06914D8}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -324,6 +352,8 @@ Global
{DFBB1025-BD22-459D-A04D-E2AB31E129E2} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
{682B94E4-1761-48FF-B5D0-87B45DC0C735} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
{17AB0AD8-6C90-42DD-880C-16B5AC4A373F} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
+ {F066A4D8-2EF0-4C07-AC0D-BD325DE3FFA8} = {3D1864AA-1FFC-4512-BB13-46055E410F73}
+ {927995F5-05CC-4078-8805-8E6CC06914D8} = {3D1864AA-1FFC-4512-BB13-46055E410F73}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {049A763A-C891-4E8D-80CF-89DD3E22ADC7}
diff --git a/src/KubernetesClient.Basic/AbstractKubernetes.cs b/src/KubernetesClient.Basic/AbstractKubernetes.cs
new file mode 100644
index 0000000..c5f7348
--- /dev/null
+++ b/src/KubernetesClient.Basic/AbstractKubernetes.cs
@@ -0,0 +1,72 @@
+using System.Net.Http;
+using System.Threading;
+using System.Threading.Tasks;
+using k8s.Autorest;
+using System.Net.Http.Headers;
+
+
+namespace k8s
+{
+ public abstract partial class AbstractKubernetes
+ {
+ private sealed class QueryBuilder
+ {
+ private List parameters = new List();
+
+ public void Append(string key, params object[] values)
+ {
+ foreach (var value in values)
+ {
+ switch (value)
+ {
+ case int intval:
+ parameters.Add($"{key}={intval}");
+ break;
+ case string strval:
+ parameters.Add($"{key}={Uri.EscapeDataString(strval)}");
+ break;
+ case bool boolval:
+ parameters.Add($"{key}={(boolval ? "true" : "false")}");
+ break;
+ default:
+ // null
+ break;
+ }
+ }
+ }
+
+ public override string ToString()
+ {
+ if (parameters.Count > 0)
+ {
+ return "?" + string.Join("&", parameters);
+ }
+
+ return "";
+ }
+ }
+
+ private Task SendRequest(T body, HttpRequestMessage httpRequest, CancellationToken cancellationToken)
+ {
+ if (body != null)
+ {
+ var requestContent = KubernetesJson.Serialize(body);
+ httpRequest.Content = new StringContent(requestContent, System.Text.Encoding.UTF8);
+ httpRequest.Content.Headers.ContentType = GetHeader(body);
+ return SendRequestRaw(requestContent, httpRequest, cancellationToken);
+ }
+
+ return SendRequestRaw("", httpRequest, cancellationToken);
+ }
+
+ public virtual TimeSpan HttpClientTimeout { get; set; } = TimeSpan.FromSeconds(100);
+
+ protected abstract Task> CreateResultAsync(HttpRequestMessage httpRequest, HttpResponseMessage httpResponse, bool? watch, CancellationToken cancellationToken);
+
+ protected abstract HttpRequestMessage CreateRequest(string relativeUri, string method, IDictionary> customHeaders);
+
+ protected abstract MediaTypeHeaderValue GetHeader(object body);
+
+ protected abstract Task SendRequestRaw(string requestContent, HttpRequestMessage httpRequest, CancellationToken cancellationToken);
+ }
+}
diff --git a/src/KubernetesClient.Basic/AssemblyInfo.cs b/src/KubernetesClient.Basic/AssemblyInfo.cs
new file mode 100644
index 0000000..2c93bfa
--- /dev/null
+++ b/src/KubernetesClient.Basic/AssemblyInfo.cs
@@ -0,0 +1,5 @@
+using System.Runtime.CompilerServices;
+
+[assembly: InternalsVisibleTo("KubernetesClient")]
+[assembly: InternalsVisibleTo("KubernetesClient.VanillaRest")]
+[assembly: InternalsVisibleTo("KubernetesClient.Tests")]
diff --git a/src/KubernetesClient/Autorest/BasicAuthenticationCredentials.cs b/src/KubernetesClient.Basic/Autorest/BasicAuthenticationCredentials.cs
similarity index 100%
rename from src/KubernetesClient/Autorest/BasicAuthenticationCredentials.cs
rename to src/KubernetesClient.Basic/Autorest/BasicAuthenticationCredentials.cs
diff --git a/src/KubernetesClient/Autorest/HttpExtensions.cs b/src/KubernetesClient.Basic/Autorest/HttpExtensions.cs
similarity index 100%
rename from src/KubernetesClient/Autorest/HttpExtensions.cs
rename to src/KubernetesClient.Basic/Autorest/HttpExtensions.cs
diff --git a/src/KubernetesClient/Autorest/HttpMessageWrapper.cs b/src/KubernetesClient.Basic/Autorest/HttpMessageWrapper.cs
similarity index 100%
rename from src/KubernetesClient/Autorest/HttpMessageWrapper.cs
rename to src/KubernetesClient.Basic/Autorest/HttpMessageWrapper.cs
diff --git a/src/KubernetesClient/Autorest/HttpOperationException.cs b/src/KubernetesClient.Basic/Autorest/HttpOperationException.cs
similarity index 100%
rename from src/KubernetesClient/Autorest/HttpOperationException.cs
rename to src/KubernetesClient.Basic/Autorest/HttpOperationException.cs
diff --git a/src/KubernetesClient/Autorest/HttpOperationResponse.cs b/src/KubernetesClient.Basic/Autorest/HttpOperationResponse.cs
similarity index 100%
rename from src/KubernetesClient/Autorest/HttpOperationResponse.cs
rename to src/KubernetesClient.Basic/Autorest/HttpOperationResponse.cs
diff --git a/src/KubernetesClient/Autorest/HttpRequestMessageWrapper.cs b/src/KubernetesClient.Basic/Autorest/HttpRequestMessageWrapper.cs
similarity index 100%
rename from src/KubernetesClient/Autorest/HttpRequestMessageWrapper.cs
rename to src/KubernetesClient.Basic/Autorest/HttpRequestMessageWrapper.cs
diff --git a/src/KubernetesClient/Autorest/HttpResponseMessageWrapper.cs b/src/KubernetesClient.Basic/Autorest/HttpResponseMessageWrapper.cs
similarity index 100%
rename from src/KubernetesClient/Autorest/HttpResponseMessageWrapper.cs
rename to src/KubernetesClient.Basic/Autorest/HttpResponseMessageWrapper.cs
diff --git a/src/KubernetesClient/Autorest/ITokenProvider.cs b/src/KubernetesClient.Basic/Autorest/ITokenProvider.cs
similarity index 100%
rename from src/KubernetesClient/Autorest/ITokenProvider.cs
rename to src/KubernetesClient.Basic/Autorest/ITokenProvider.cs
diff --git a/src/KubernetesClient/Autorest/RestException.cs b/src/KubernetesClient.Basic/Autorest/RestException.cs
similarity index 100%
rename from src/KubernetesClient/Autorest/RestException.cs
rename to src/KubernetesClient.Basic/Autorest/RestException.cs
diff --git a/src/KubernetesClient/Autorest/ServiceClientCredentials.cs b/src/KubernetesClient.Basic/Autorest/ServiceClientCredentials.cs
similarity index 100%
rename from src/KubernetesClient/Autorest/ServiceClientCredentials.cs
rename to src/KubernetesClient.Basic/Autorest/ServiceClientCredentials.cs
diff --git a/src/KubernetesClient/Autorest/StringTokenProvider.cs b/src/KubernetesClient.Basic/Autorest/StringTokenProvider.cs
similarity index 100%
rename from src/KubernetesClient/Autorest/StringTokenProvider.cs
rename to src/KubernetesClient.Basic/Autorest/StringTokenProvider.cs
diff --git a/src/KubernetesClient/Autorest/TokenCredentials.cs b/src/KubernetesClient.Basic/Autorest/TokenCredentials.cs
similarity index 100%
rename from src/KubernetesClient/Autorest/TokenCredentials.cs
rename to src/KubernetesClient.Basic/Autorest/TokenCredentials.cs
diff --git a/src/KubernetesClient.Basic/Global.cs b/src/KubernetesClient.Basic/Global.cs
new file mode 100644
index 0000000..70b3700
--- /dev/null
+++ b/src/KubernetesClient.Basic/Global.cs
@@ -0,0 +1,5 @@
+global using System;
+global using System.Collections.Generic;
+global using System.Linq;
+global using System.Text.Json;
+global using System.Text.Json.Serialization;
diff --git a/src/KubernetesClient.Basic/KubernetesClient.Basic.csproj b/src/KubernetesClient.Basic/KubernetesClient.Basic.csproj
new file mode 100644
index 0000000..d38f5ec
--- /dev/null
+++ b/src/KubernetesClient.Basic/KubernetesClient.Basic.csproj
@@ -0,0 +1,18 @@
+
+
+
+ netstandard2.0
+ k8s
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/KubernetesClient/KubernetesJson.cs b/src/KubernetesClient.Basic/KubernetesJson.cs
similarity index 97%
rename from src/KubernetesClient/KubernetesJson.cs
rename to src/KubernetesClient.Basic/KubernetesJson.cs
index 4690a80..5a66b8c 100644
--- a/src/KubernetesClient/KubernetesJson.cs
+++ b/src/KubernetesClient.Basic/KubernetesJson.cs
@@ -32,7 +32,7 @@ namespace k8s
public override DateTimeOffset Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var str = reader.GetString();
- return DateTimeOffset.ParseExact(str, new[] { Iso8601Format, SerializeFormat }, CultureInfo.InvariantCulture);
+ return DateTimeOffset.ParseExact(str, new[] { Iso8601Format, SerializeFormat }, CultureInfo.InvariantCulture, DateTimeStyles.None);
}
public override void Write(Utf8JsonWriter writer, DateTimeOffset value, JsonSerializerOptions options)
diff --git a/src/KubernetesClient.Models/AssemblyInfo.cs b/src/KubernetesClient.Models/AssemblyInfo.cs
new file mode 100644
index 0000000..d4ad31b
--- /dev/null
+++ b/src/KubernetesClient.Models/AssemblyInfo.cs
@@ -0,0 +1,5 @@
+using System.Runtime.CompilerServices;
+
+[assembly: InternalsVisibleTo("KubernetesClient")]
+[assembly: InternalsVisibleTo("KubernetesClient.Basic")]
+[assembly: InternalsVisibleTo("KubernetesClient.Tests")]
diff --git a/src/KubernetesClient/Extensions.cs b/src/KubernetesClient.Models/Extensions.cs
similarity index 100%
rename from src/KubernetesClient/Extensions.cs
rename to src/KubernetesClient.Models/Extensions.cs
diff --git a/src/KubernetesClient.Models/Global.cs b/src/KubernetesClient.Models/Global.cs
new file mode 100644
index 0000000..70b3700
--- /dev/null
+++ b/src/KubernetesClient.Models/Global.cs
@@ -0,0 +1,5 @@
+global using System;
+global using System.Collections.Generic;
+global using System.Linq;
+global using System.Text.Json;
+global using System.Text.Json.Serialization;
diff --git a/src/KubernetesClient/IItems.cs b/src/KubernetesClient.Models/IItems.cs
similarity index 100%
rename from src/KubernetesClient/IItems.cs
rename to src/KubernetesClient.Models/IItems.cs
diff --git a/src/KubernetesClient/IKubernetesObject.cs b/src/KubernetesClient.Models/IKubernetesObject.cs
similarity index 100%
rename from src/KubernetesClient/IKubernetesObject.cs
rename to src/KubernetesClient.Models/IKubernetesObject.cs
diff --git a/src/KubernetesClient/IMetadata.cs b/src/KubernetesClient.Models/IMetadata.cs
similarity index 100%
rename from src/KubernetesClient/IMetadata.cs
rename to src/KubernetesClient.Models/IMetadata.cs
diff --git a/src/KubernetesClient/ISpec.cs b/src/KubernetesClient.Models/ISpec.cs
similarity index 100%
rename from src/KubernetesClient/ISpec.cs
rename to src/KubernetesClient.Models/ISpec.cs
diff --git a/src/KubernetesClient/IStatus.cs b/src/KubernetesClient.Models/IStatus.cs
similarity index 100%
rename from src/KubernetesClient/IStatus.cs
rename to src/KubernetesClient.Models/IStatus.cs
diff --git a/src/KubernetesClient/IValidate.cs b/src/KubernetesClient.Models/IValidate.cs
similarity index 100%
rename from src/KubernetesClient/IValidate.cs
rename to src/KubernetesClient.Models/IValidate.cs
diff --git a/src/KubernetesClient/IntOrStringConverter.cs b/src/KubernetesClient.Models/IntOrStringConverter.cs
similarity index 88%
rename from src/KubernetesClient/IntOrStringConverter.cs
rename to src/KubernetesClient.Models/IntOrStringConverter.cs
index 5ad4ad6..b2b2fd3 100644
--- a/src/KubernetesClient/IntOrStringConverter.cs
+++ b/src/KubernetesClient.Models/IntOrStringConverter.cs
@@ -19,6 +19,11 @@ namespace k8s.Models
public override void Write(Utf8JsonWriter writer, IntstrIntOrString value, JsonSerializerOptions options)
{
+ if (writer == null)
+ {
+ throw new ArgumentNullException(nameof(writer));
+ }
+
var s = value?.Value;
if (long.TryParse(s, out var intv))
diff --git a/src/KubernetesClient/IntstrIntOrString.cs b/src/KubernetesClient.Models/IntstrIntOrString.cs
similarity index 100%
rename from src/KubernetesClient/IntstrIntOrString.cs
rename to src/KubernetesClient.Models/IntstrIntOrString.cs
diff --git a/src/KubernetesClient.Models/KubernetesClient.Models.csproj b/src/KubernetesClient.Models/KubernetesClient.Models.csproj
new file mode 100644
index 0000000..a3cf59a
--- /dev/null
+++ b/src/KubernetesClient.Models/KubernetesClient.Models.csproj
@@ -0,0 +1,18 @@
+
+
+ netstandard2.0
+ k8s.Models
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/KubernetesClient/KubernetesEntityAttribute.cs b/src/KubernetesClient.Models/KubernetesEntityAttribute.cs
similarity index 100%
rename from src/KubernetesClient/KubernetesEntityAttribute.cs
rename to src/KubernetesClient.Models/KubernetesEntityAttribute.cs
diff --git a/src/KubernetesClient/QuantityConverter.cs b/src/KubernetesClient.Models/QuantityConverter.cs
similarity index 80%
rename from src/KubernetesClient/QuantityConverter.cs
rename to src/KubernetesClient.Models/QuantityConverter.cs
index 13a583a..1dacd5b 100644
--- a/src/KubernetesClient/QuantityConverter.cs
+++ b/src/KubernetesClient.Models/QuantityConverter.cs
@@ -9,6 +9,11 @@ namespace k8s.Models
public override void Write(Utf8JsonWriter writer, ResourceQuantity value, JsonSerializerOptions options)
{
+ if (writer == null)
+ {
+ throw new ArgumentNullException(nameof(writer));
+ }
+
writer.WriteStringValue(value?.ToString());
}
}
diff --git a/src/KubernetesClient/ResourceQuantity.cs b/src/KubernetesClient.Models/ResourceQuantity.cs
similarity index 94%
rename from src/KubernetesClient/ResourceQuantity.cs
rename to src/KubernetesClient.Models/ResourceQuantity.cs
index 0de0053..9d179c7 100644
--- a/src/KubernetesClient/ResourceQuantity.cs
+++ b/src/KubernetesClient.Models/ResourceQuantity.cs
@@ -1,9 +1,6 @@
using System.Globalization;
using System.Numerics;
using Fractions;
-using YamlDotNet.Core;
-using YamlDotNet.Core.Events;
-using YamlDotNet.Serialization;
namespace k8s.Models
{
@@ -57,7 +54,7 @@ namespace k8s.Models
/// cause implementors to also use a fixed point implementation.
///
[JsonConverter(typeof(QuantityConverter))]
- public partial class ResourceQuantity : IYamlConvertible
+ public partial class ResourceQuantity
{
public enum SuffixFormat
{
@@ -201,28 +198,6 @@ namespace k8s.Models
return BigInteger.Remainder(value.Numerator, value.Denominator) > 0;
}
- ///
- public void Read(IParser parser, Type expectedType, ObjectDeserializer nestedObjectDeserializer)
- {
- if (expectedType != typeof(ResourceQuantity))
- {
- throw new ArgumentOutOfRangeException(nameof(expectedType));
- }
-
- if (parser?.Current is Scalar)
- {
- Value = ((Scalar)parser.Current).Value;
- parser.MoveNext();
- CustomInit();
- }
- }
-
- ///
- public void Write(IEmitter emitter, ObjectSerializer nestedObjectSerializer)
- {
- emitter?.Emit(new Scalar(ToString()));
- }
-
public static implicit operator decimal(ResourceQuantity v)
{
return v?.ToDecimal() ?? 0;
diff --git a/src/KubernetesClient/V1Patch.cs b/src/KubernetesClient.Models/V1Patch.cs
similarity index 100%
rename from src/KubernetesClient/V1Patch.cs
rename to src/KubernetesClient.Models/V1Patch.cs
diff --git a/src/KubernetesClient/V1PatchJsonConverter.cs b/src/KubernetesClient.Models/V1PatchJsonConverter.cs
similarity index 83%
rename from src/KubernetesClient/V1PatchJsonConverter.cs
rename to src/KubernetesClient.Models/V1PatchJsonConverter.cs
index 88702c3..a8db069 100644
--- a/src/KubernetesClient/V1PatchJsonConverter.cs
+++ b/src/KubernetesClient.Models/V1PatchJsonConverter.cs
@@ -9,6 +9,11 @@ namespace k8s.Models
public override void Write(Utf8JsonWriter writer, V1Patch value, JsonSerializerOptions options)
{
+ if (writer == null)
+ {
+ throw new ArgumentNullException(nameof(writer));
+ }
+
var content = value?.Content;
if (content is string s)
{
diff --git a/src/KubernetesClient/V1Status.ObjectView.cs b/src/KubernetesClient.Models/V1Status.ObjectView.cs
similarity index 100%
rename from src/KubernetesClient/V1Status.ObjectView.cs
rename to src/KubernetesClient.Models/V1Status.ObjectView.cs
diff --git a/src/KubernetesClient/V1Status.cs b/src/KubernetesClient.Models/V1Status.cs
similarity index 100%
rename from src/KubernetesClient/V1Status.cs
rename to src/KubernetesClient.Models/V1Status.cs
diff --git a/src/KubernetesClient/Versioning/KubernetesVersionComparer.cs b/src/KubernetesClient.Models/Versioning/KubernetesVersionComparer.cs
similarity index 100%
rename from src/KubernetesClient/Versioning/KubernetesVersionComparer.cs
rename to src/KubernetesClient.Models/Versioning/KubernetesVersionComparer.cs
diff --git a/src/KubernetesClient/Versioning/VersionConverter.cs b/src/KubernetesClient.Models/Versioning/VersionConverter.cs
similarity index 100%
rename from src/KubernetesClient/Versioning/VersionConverter.cs
rename to src/KubernetesClient.Models/Versioning/VersionConverter.cs
diff --git a/src/KubernetesClient/IKubernetes.cs b/src/KubernetesClient/IKubernetes.cs
index 5fa42e9..c3f871d 100644
--- a/src/KubernetesClient/IKubernetes.cs
+++ b/src/KubernetesClient/IKubernetes.cs
@@ -1,6 +1,6 @@
namespace k8s;
-public partial interface IKubernetes : IDisposable
+public partial interface IKubernetes : IBasicKubernetes, IDisposable
{
///
/// The base URI of the service.
diff --git a/src/KubernetesClient/Kubernetes.ConfigInit.cs b/src/KubernetesClient/Kubernetes.ConfigInit.cs
index 7a09cff..e6a8bbf 100644
--- a/src/KubernetesClient/Kubernetes.ConfigInit.cs
+++ b/src/KubernetesClient/Kubernetes.ConfigInit.cs
@@ -9,13 +9,6 @@ namespace k8s
{
public partial class Kubernetes
{
- ///
- /// Timeout of REST calls to Kubernetes server
- /// Does not apply to watch related api
- ///
- /// timeout
- public TimeSpan HttpClientTimeout { get; set; } = TimeSpan.FromSeconds(100);
-
///
/// Initializes a new instance of the class.
///
diff --git a/src/KubernetesClient/Kubernetes.Header.cs b/src/KubernetesClient/Kubernetes.Header.cs
index af6e538..598e0da 100644
--- a/src/KubernetesClient/Kubernetes.Header.cs
+++ b/src/KubernetesClient/Kubernetes.Header.cs
@@ -5,7 +5,7 @@ namespace k8s
{
public partial class Kubernetes
{
- public virtual MediaTypeHeaderValue GetHeader(object body)
+ protected override MediaTypeHeaderValue GetHeader(object body)
{
if (body == null)
{
@@ -21,7 +21,7 @@ namespace k8s
}
- public virtual MediaTypeHeaderValue GetHeader(V1Patch body)
+ private MediaTypeHeaderValue GetHeader(V1Patch body)
{
if (body == null)
{
diff --git a/src/KubernetesClient/Kubernetes.cs b/src/KubernetesClient/Kubernetes.cs
index 2a0275e..506d7a4 100644
--- a/src/KubernetesClient/Kubernetes.cs
+++ b/src/KubernetesClient/Kubernetes.cs
@@ -7,7 +7,7 @@ using k8s.Autorest;
namespace k8s
{
- public partial class Kubernetes
+ public partial class Kubernetes : AbstractKubernetes, IKubernetes
{
private Uri baseuri;
@@ -47,7 +47,6 @@ namespace k8s
private HttpClientHandler HttpClientHandler { get; set; }
#endif
-
///
/// Initializes client properties.
///
@@ -56,8 +55,18 @@ namespace k8s
BaseUri = new Uri("http://localhost");
}
- private async Task> CreateResultAsync(HttpRequestMessage httpRequest, HttpResponseMessage httpResponse, bool? watch, CancellationToken cancellationToken)
+ protected override async Task> CreateResultAsync(HttpRequestMessage httpRequest, HttpResponseMessage httpResponse, bool? watch, CancellationToken cancellationToken)
{
+ if (httpRequest == null)
+ {
+ throw new ArgumentNullException(nameof(httpRequest));
+ }
+
+ if (httpResponse == null)
+ {
+ throw new ArgumentNullException(nameof(httpResponse));
+ }
+
var result = new HttpOperationResponse() { Request = httpRequest, Response = httpResponse };
if (watch == true)
@@ -86,48 +95,11 @@ namespace k8s
return result;
}
- private sealed class QueryBuilder
- {
- private List parameters = new List();
-
- public void Append(string key, params object[] values)
- {
- foreach (var value in values)
- {
- switch (value)
- {
- case int intval:
- parameters.Add($"{key}={intval}");
- break;
- case string strval:
- parameters.Add($"{key}={Uri.EscapeDataString(strval)}");
- break;
- case bool boolval:
- parameters.Add($"{key}={(boolval ? "true" : "false")}");
- break;
- default:
- // null
- break;
- }
- }
- }
-
- public override string ToString()
- {
- if (parameters.Count > 0)
- {
- return "?" + string.Join("&", parameters);
- }
-
- return "";
- }
- }
-
- private HttpRequestMessage CreateRequest(string url, HttpMethod method, IDictionary> customHeaders)
+ protected override HttpRequestMessage CreateRequest(string relativeUri, string method, IDictionary> customHeaders)
{
var httpRequest = new HttpRequestMessage();
- httpRequest.Method = method;
- httpRequest.RequestUri = new Uri(url);
+ httpRequest.Method = new HttpMethod(method);
+ httpRequest.RequestUri = new Uri(BaseUri, relativeUri);
httpRequest.Version = HttpVersion.Version20;
// Set Headers
if (customHeaders != null)
@@ -142,21 +114,13 @@ namespace k8s
return httpRequest;
}
- private Task SendRequest(T body, HttpRequestMessage httpRequest, CancellationToken cancellationToken)
+ protected override async Task SendRequestRaw(string requestContent, HttpRequestMessage httpRequest, CancellationToken cancellationToken)
{
- if (body != null)
+ if (httpRequest == null)
{
- var requestContent = KubernetesJson.Serialize(body);
- httpRequest.Content = new StringContent(requestContent, System.Text.Encoding.UTF8);
- httpRequest.Content.Headers.ContentType = GetHeader(body);
- return SendRequestRaw(requestContent, httpRequest, cancellationToken);
+ throw new ArgumentNullException(nameof(httpRequest));
}
- return SendRequestRaw("", httpRequest, cancellationToken);
- }
-
- private async Task SendRequestRaw(string requestContent, HttpRequestMessage httpRequest, CancellationToken cancellationToken)
- {
// Set Credentials
if (Credentials != null)
{
diff --git a/src/KubernetesClient/KubernetesClient.csproj b/src/KubernetesClient/KubernetesClient.csproj
index d24a124..f0a3b5e 100644
--- a/src/KubernetesClient/KubernetesClient.csproj
+++ b/src/KubernetesClient/KubernetesClient.csproj
@@ -1,60 +1,27 @@
- The Kubernetes Project Authors
- 2017 The Kubernetes Project Authors
- Client library for the Kubernetes open source container orchestrator.
-
- Apache-2.0
- https://github.com/kubernetes-client/csharp
- https://raw.githubusercontent.com/kubernetes/kubernetes/master/logo/logo.png
- logo.png
- kubernetes;docker;containers;
-
netstandard2.1;net5;net6
k8s
- true
- true
-
-
- true
-
-
- true
- snupkg
- true
- $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
- 10.0
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/src/KubernetesClient/ResourceQuantityYamlConverter.cs b/src/KubernetesClient/ResourceQuantityYamlConverter.cs
new file mode 100644
index 0000000..ef274bf
--- /dev/null
+++ b/src/KubernetesClient/ResourceQuantityYamlConverter.cs
@@ -0,0 +1,42 @@
+using YamlDotNet.Core;
+using YamlDotNet.Serialization;
+
+namespace k8s.Models
+{
+ public class ResourceQuantityYamlConverter : IYamlTypeConverter
+ {
+ public bool Accepts(Type type)
+ {
+ return type == typeof(ResourceQuantity);
+ }
+
+ public object ReadYaml(IParser parser, Type type)
+ {
+ if (parser?.Current is YamlDotNet.Core.Events.Scalar scalar)
+ {
+ try
+ {
+ if (string.IsNullOrEmpty(scalar?.Value))
+ {
+ return null;
+ }
+
+ return new ResourceQuantity(scalar?.Value);
+ }
+ finally
+ {
+ parser?.MoveNext();
+ }
+ }
+
+ throw new InvalidOperationException(parser?.Current?.ToString());
+ }
+
+
+ public void WriteYaml(IEmitter emitter, object value, Type type)
+ {
+ var obj = (ResourceQuantity)value;
+ emitter?.Emit(new YamlDotNet.Core.Events.Scalar(obj?.ToString()));
+ }
+ }
+}
diff --git a/src/KubernetesClient/Versioning/ModelConvertionOperators.cs b/src/KubernetesClient/Versioning/ModelConvertionOperators.cs
deleted file mode 100644
index a94053e..0000000
--- a/src/KubernetesClient/Versioning/ModelConvertionOperators.cs
+++ /dev/null
@@ -1,726 +0,0 @@
-// using k8s.Versioning;
-// namespace k8s.Models
-// {
-// public partial class V1MutatingWebhookConfiguration
-// {
-// public static explicit operator V1MutatingWebhookConfiguration(V1beta1MutatingWebhookConfiguration s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1MutatingWebhookConfiguration
-// {
-// public static explicit operator V1beta1MutatingWebhookConfiguration(V1MutatingWebhookConfiguration s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1MutatingWebhookConfigurationList
-// {
-// public static explicit operator V1MutatingWebhookConfigurationList(V1beta1MutatingWebhookConfigurationList s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1MutatingWebhookConfigurationList
-// {
-// public static explicit operator V1beta1MutatingWebhookConfigurationList(V1MutatingWebhookConfigurationList s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1ValidatingWebhookConfiguration
-// {
-// public static explicit operator V1ValidatingWebhookConfiguration(V1beta1ValidatingWebhookConfiguration s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1ValidatingWebhookConfiguration
-// {
-// public static explicit operator V1beta1ValidatingWebhookConfiguration(V1ValidatingWebhookConfiguration s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1ValidatingWebhookConfigurationList
-// {
-// public static explicit operator V1ValidatingWebhookConfigurationList(V1beta1ValidatingWebhookConfigurationList s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1ValidatingWebhookConfigurationList
-// {
-// public static explicit operator V1beta1ValidatingWebhookConfigurationList(V1ValidatingWebhookConfigurationList s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1TokenReview
-// {
-// public static explicit operator V1TokenReview(V1beta1TokenReview s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1TokenReview
-// {
-// public static explicit operator V1beta1TokenReview(V1TokenReview s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1LocalSubjectAccessReview
-// {
-// public static explicit operator V1LocalSubjectAccessReview(V1beta1LocalSubjectAccessReview s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1LocalSubjectAccessReview
-// {
-// public static explicit operator V1beta1LocalSubjectAccessReview(V1LocalSubjectAccessReview s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1SelfSubjectAccessReview
-// {
-// public static explicit operator V1SelfSubjectAccessReview(V1beta1SelfSubjectAccessReview s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1SelfSubjectAccessReview
-// {
-// public static explicit operator V1beta1SelfSubjectAccessReview(V1SelfSubjectAccessReview s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1SelfSubjectRulesReview
-// {
-// public static explicit operator V1SelfSubjectRulesReview(V1beta1SelfSubjectRulesReview s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1SelfSubjectRulesReview
-// {
-// public static explicit operator V1beta1SelfSubjectRulesReview(V1SelfSubjectRulesReview s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1SubjectAccessReview
-// {
-// public static explicit operator V1SubjectAccessReview(V1beta1SubjectAccessReview s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1SubjectAccessReview
-// {
-// public static explicit operator V1beta1SubjectAccessReview(V1SubjectAccessReview s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1Lease
-// {
-// public static explicit operator V1Lease(V1beta1Lease s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1Lease
-// {
-// public static explicit operator V1beta1Lease(V1Lease s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1LeaseList
-// {
-// public static explicit operator V1LeaseList(V1beta1LeaseList s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1LeaseList
-// {
-// public static explicit operator V1beta1LeaseList(V1LeaseList s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1Event
-// {
-// public static explicit operator V1Event(V1beta1Event s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1Event
-// {
-// public static explicit operator V1beta1Event(V1Event s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1EventList
-// {
-// public static explicit operator V1EventList(V1beta1EventList s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1EventList
-// {
-// public static explicit operator V1beta1EventList(V1EventList s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1ClusterRole
-// {
-// public static explicit operator V1ClusterRole(V1beta1ClusterRole s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1ClusterRole
-// {
-// public static explicit operator V1beta1ClusterRole(V1ClusterRole s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1ClusterRoleBinding
-// {
-// public static explicit operator V1ClusterRoleBinding(V1beta1ClusterRoleBinding s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1ClusterRoleBinding
-// {
-// public static explicit operator V1beta1ClusterRoleBinding(V1ClusterRoleBinding s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1ClusterRoleBindingList
-// {
-// public static explicit operator V1ClusterRoleBindingList(V1beta1ClusterRoleBindingList s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1ClusterRoleBindingList
-// {
-// public static explicit operator V1beta1ClusterRoleBindingList(V1ClusterRoleBindingList s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1ClusterRoleList
-// {
-// public static explicit operator V1ClusterRoleList(V1beta1ClusterRoleList s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1ClusterRoleList
-// {
-// public static explicit operator V1beta1ClusterRoleList(V1ClusterRoleList s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1Role
-// {
-// public static explicit operator V1Role(V1beta1Role s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1Role
-// {
-// public static explicit operator V1beta1Role(V1Role s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1RoleBinding
-// {
-// public static explicit operator V1RoleBinding(V1beta1RoleBinding s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1RoleBinding
-// {
-// public static explicit operator V1beta1RoleBinding(V1RoleBinding s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1RoleBindingList
-// {
-// public static explicit operator V1RoleBindingList(V1beta1RoleBindingList s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1RoleBindingList
-// {
-// public static explicit operator V1beta1RoleBindingList(V1RoleBindingList s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1RoleList
-// {
-// public static explicit operator V1RoleList(V1beta1RoleList s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1RoleList
-// {
-// public static explicit operator V1beta1RoleList(V1RoleList s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1PriorityClass
-// {
-// public static explicit operator V1PriorityClass(V1beta1PriorityClass s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1PriorityClass
-// {
-// public static explicit operator V1beta1PriorityClass(V1PriorityClass s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1PriorityClassList
-// {
-// public static explicit operator V1PriorityClassList(V1beta1PriorityClassList s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1PriorityClassList
-// {
-// public static explicit operator V1beta1PriorityClassList(V1PriorityClassList s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CSIDriver
-// {
-// public static explicit operator V1CSIDriver(V1beta1CSIDriver s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CSIDriver
-// {
-// public static explicit operator V1beta1CSIDriver(V1CSIDriver s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CSIDriverList
-// {
-// public static explicit operator V1CSIDriverList(V1beta1CSIDriverList s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CSIDriverList
-// {
-// public static explicit operator V1beta1CSIDriverList(V1CSIDriverList s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CSINode
-// {
-// public static explicit operator V1CSINode(V1beta1CSINode s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CSINode
-// {
-// public static explicit operator V1beta1CSINode(V1CSINode s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CSINodeList
-// {
-// public static explicit operator V1CSINodeList(V1beta1CSINodeList s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CSINodeList
-// {
-// public static explicit operator V1beta1CSINodeList(V1CSINodeList s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1StorageClass
-// {
-// public static explicit operator V1StorageClass(V1beta1StorageClass s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1StorageClass
-// {
-// public static explicit operator V1beta1StorageClass(V1StorageClass s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1StorageClassList
-// {
-// public static explicit operator V1StorageClassList(V1beta1StorageClassList s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1StorageClassList
-// {
-// public static explicit operator V1beta1StorageClassList(V1StorageClassList s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1VolumeAttachment
-// {
-// public static explicit operator V1VolumeAttachment(V1beta1VolumeAttachment s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1VolumeAttachment
-// {
-// public static explicit operator V1beta1VolumeAttachment(V1VolumeAttachment s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1VolumeAttachmentList
-// {
-// public static explicit operator V1VolumeAttachmentList(V1beta1VolumeAttachmentList s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1VolumeAttachmentList
-// {
-// public static explicit operator V1beta1VolumeAttachmentList(V1VolumeAttachmentList s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CustomResourceDefinition
-// {
-// public static explicit operator V1CustomResourceDefinition(V1beta1CustomResourceDefinition s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CustomResourceDefinition
-// {
-// public static explicit operator V1beta1CustomResourceDefinition(V1CustomResourceDefinition s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CustomResourceDefinitionList
-// {
-// public static explicit operator V1CustomResourceDefinitionList(V1beta1CustomResourceDefinitionList s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CustomResourceDefinitionList
-// {
-// public static explicit operator V1beta1CustomResourceDefinitionList(V1CustomResourceDefinitionList s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1APIService
-// {
-// public static explicit operator V1APIService(V1beta1APIService s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1APIService
-// {
-// public static explicit operator V1beta1APIService(V1APIService s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1APIServiceList
-// {
-// public static explicit operator V1APIServiceList(V1beta1APIServiceList s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1APIServiceList
-// {
-// public static explicit operator V1beta1APIServiceList(V1APIServiceList s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1AggregationRule
-// {
-// public static explicit operator V1AggregationRule(V1beta1AggregationRule s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1AggregationRule
-// {
-// public static explicit operator V1beta1AggregationRule(V1AggregationRule s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1APIServiceCondition
-// {
-// public static explicit operator V1APIServiceCondition(V1beta1APIServiceCondition s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1APIServiceCondition
-// {
-// public static explicit operator V1beta1APIServiceCondition(V1APIServiceCondition s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1APIServiceSpec
-// {
-// public static explicit operator V1APIServiceSpec(V1beta1APIServiceSpec s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1APIServiceSpec
-// {
-// public static explicit operator V1beta1APIServiceSpec(V1APIServiceSpec s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1APIServiceStatus
-// {
-// public static explicit operator V1APIServiceStatus(V1beta1APIServiceStatus s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1APIServiceStatus
-// {
-// public static explicit operator V1beta1APIServiceStatus(V1APIServiceStatus s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CSIDriverSpec
-// {
-// public static explicit operator V1CSIDriverSpec(V1beta1CSIDriverSpec s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CSIDriverSpec
-// {
-// public static explicit operator V1beta1CSIDriverSpec(V1CSIDriverSpec s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CSINodeDriver
-// {
-// public static explicit operator V1CSINodeDriver(V1beta1CSINodeDriver s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CSINodeDriver
-// {
-// public static explicit operator V1beta1CSINodeDriver(V1CSINodeDriver s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CSINodeSpec
-// {
-// public static explicit operator V1CSINodeSpec(V1beta1CSINodeSpec s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CSINodeSpec
-// {
-// public static explicit operator V1beta1CSINodeSpec(V1CSINodeSpec s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CustomResourceColumnDefinition
-// {
-// public static explicit operator V1CustomResourceColumnDefinition(V1beta1CustomResourceColumnDefinition s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CustomResourceColumnDefinition
-// {
-// public static explicit operator V1beta1CustomResourceColumnDefinition(V1CustomResourceColumnDefinition s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CustomResourceConversion
-// {
-// public static explicit operator V1CustomResourceConversion(V1beta1CustomResourceConversion s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CustomResourceConversion
-// {
-// public static explicit operator V1beta1CustomResourceConversion(V1CustomResourceConversion s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CustomResourceDefinitionCondition
-// {
-// public static explicit operator V1CustomResourceDefinitionCondition(V1beta1CustomResourceDefinitionCondition s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CustomResourceDefinitionCondition
-// {
-// public static explicit operator V1beta1CustomResourceDefinitionCondition(V1CustomResourceDefinitionCondition s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CustomResourceDefinitionNames
-// {
-// public static explicit operator V1CustomResourceDefinitionNames(V1beta1CustomResourceDefinitionNames s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CustomResourceDefinitionNames
-// {
-// public static explicit operator V1beta1CustomResourceDefinitionNames(V1CustomResourceDefinitionNames s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CustomResourceDefinitionSpec
-// {
-// public static explicit operator V1CustomResourceDefinitionSpec(V1beta1CustomResourceDefinitionSpec s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CustomResourceDefinitionSpec
-// {
-// public static explicit operator V1beta1CustomResourceDefinitionSpec(V1CustomResourceDefinitionSpec s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CustomResourceDefinitionStatus
-// {
-// public static explicit operator V1CustomResourceDefinitionStatus(V1beta1CustomResourceDefinitionStatus s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CustomResourceDefinitionStatus
-// {
-// public static explicit operator V1beta1CustomResourceDefinitionStatus(V1CustomResourceDefinitionStatus s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CustomResourceDefinitionVersion
-// {
-// public static explicit operator V1CustomResourceDefinitionVersion(V1beta1CustomResourceDefinitionVersion s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CustomResourceDefinitionVersion
-// {
-// public static explicit operator V1beta1CustomResourceDefinitionVersion(V1CustomResourceDefinitionVersion s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CustomResourceSubresources
-// {
-// public static explicit operator V1CustomResourceSubresources(V1beta1CustomResourceSubresources s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CustomResourceSubresources
-// {
-// public static explicit operator V1beta1CustomResourceSubresources(V1CustomResourceSubresources s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CustomResourceSubresourceScale
-// {
-// public static explicit operator V1CustomResourceSubresourceScale(V1beta1CustomResourceSubresourceScale s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CustomResourceSubresourceScale
-// {
-// public static explicit operator V1beta1CustomResourceSubresourceScale(V1CustomResourceSubresourceScale s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1CustomResourceValidation
-// {
-// public static explicit operator V1CustomResourceValidation(V1beta1CustomResourceValidation s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1CustomResourceValidation
-// {
-// public static explicit operator V1beta1CustomResourceValidation(V1CustomResourceValidation s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1EndpointPort
-// {
-// public static explicit operator V1EndpointPort(V1beta1EndpointPort s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1EndpointPort
-// {
-// public static explicit operator V1beta1EndpointPort(V1EndpointPort s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1EventSeries
-// {
-// public static explicit operator V1EventSeries(V1beta1EventSeries s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1EventSeries
-// {
-// public static explicit operator V1beta1EventSeries(V1EventSeries s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1ExternalDocumentation
-// {
-// public static explicit operator V1ExternalDocumentation(V1beta1ExternalDocumentation s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1ExternalDocumentation
-// {
-// public static explicit operator V1beta1ExternalDocumentation(V1ExternalDocumentation s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1JSONSchemaProps
-// {
-// public static explicit operator V1JSONSchemaProps(V1beta1JSONSchemaProps s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1JSONSchemaProps
-// {
-// public static explicit operator V1beta1JSONSchemaProps(V1JSONSchemaProps s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1LeaseSpec
-// {
-// public static explicit operator V1LeaseSpec(V1beta1LeaseSpec s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1LeaseSpec
-// {
-// public static explicit operator V1beta1LeaseSpec(V1LeaseSpec s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1MutatingWebhook
-// {
-// public static explicit operator V1MutatingWebhook(V1beta1MutatingWebhook s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1MutatingWebhook
-// {
-// public static explicit operator V1beta1MutatingWebhook(V1MutatingWebhook s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1NonResourceAttributes
-// {
-// public static explicit operator V1NonResourceAttributes(V1beta1NonResourceAttributes s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1NonResourceAttributes
-// {
-// public static explicit operator V1beta1NonResourceAttributes(V1NonResourceAttributes s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1NonResourceRule
-// {
-// public static explicit operator V1NonResourceRule(V1beta1NonResourceRule s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1NonResourceRule
-// {
-// public static explicit operator V1beta1NonResourceRule(V1NonResourceRule s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1PolicyRule
-// {
-// public static explicit operator V1PolicyRule(V1beta1PolicyRule s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1PolicyRule
-// {
-// public static explicit operator V1beta1PolicyRule(V1PolicyRule s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1ResourceAttributes
-// {
-// public static explicit operator V1ResourceAttributes(V1beta1ResourceAttributes s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1ResourceAttributes
-// {
-// public static explicit operator V1beta1ResourceAttributes(V1ResourceAttributes s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1ResourceRule
-// {
-// public static explicit operator V1ResourceRule(V1beta1ResourceRule s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1ResourceRule
-// {
-// public static explicit operator V1beta1ResourceRule(V1ResourceRule s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1RoleRef
-// {
-// public static explicit operator V1RoleRef(V1beta1RoleRef s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1RoleRef
-// {
-// public static explicit operator V1beta1RoleRef(V1RoleRef s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1RuleWithOperations
-// {
-// public static explicit operator V1RuleWithOperations(V1beta1RuleWithOperations s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1RuleWithOperations
-// {
-// public static explicit operator V1beta1RuleWithOperations(V1RuleWithOperations s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1SelfSubjectAccessReviewSpec
-// {
-// public static explicit operator V1SelfSubjectAccessReviewSpec(V1beta1SelfSubjectAccessReviewSpec s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1SelfSubjectAccessReviewSpec
-// {
-// public static explicit operator V1beta1SelfSubjectAccessReviewSpec(V1SelfSubjectAccessReviewSpec s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1SelfSubjectRulesReviewSpec
-// {
-// public static explicit operator V1SelfSubjectRulesReviewSpec(V1beta1SelfSubjectRulesReviewSpec s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1SelfSubjectRulesReviewSpec
-// {
-// public static explicit operator V1beta1SelfSubjectRulesReviewSpec(V1SelfSubjectRulesReviewSpec s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1Subject
-// {
-// public static explicit operator V1Subject(V1beta1Subject s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1Subject
-// {
-// public static explicit operator V1beta1Subject(V1Subject s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1SubjectAccessReviewSpec
-// {
-// public static explicit operator V1SubjectAccessReviewSpec(V1beta1SubjectAccessReviewSpec s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1SubjectAccessReviewSpec
-// {
-// public static explicit operator V1beta1SubjectAccessReviewSpec(V1SubjectAccessReviewSpec s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1SubjectAccessReviewStatus
-// {
-// public static explicit operator V1SubjectAccessReviewStatus(V1beta1SubjectAccessReviewStatus s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1SubjectAccessReviewStatus
-// {
-// public static explicit operator V1beta1SubjectAccessReviewStatus(V1SubjectAccessReviewStatus s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1SubjectRulesReviewStatus
-// {
-// public static explicit operator V1SubjectRulesReviewStatus(V1beta1SubjectRulesReviewStatus s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1SubjectRulesReviewStatus
-// {
-// public static explicit operator V1beta1SubjectRulesReviewStatus(V1SubjectRulesReviewStatus s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1TokenReviewSpec
-// {
-// public static explicit operator V1TokenReviewSpec(V1beta1TokenReviewSpec s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1TokenReviewSpec
-// {
-// public static explicit operator V1beta1TokenReviewSpec(V1TokenReviewSpec s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1TokenReviewStatus
-// {
-// public static explicit operator V1TokenReviewStatus(V1beta1TokenReviewStatus s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1TokenReviewStatus
-// {
-// public static explicit operator V1beta1TokenReviewStatus(V1TokenReviewStatus s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1UserInfo
-// {
-// public static explicit operator V1UserInfo(V1beta1UserInfo s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1UserInfo
-// {
-// public static explicit operator V1beta1UserInfo(V1UserInfo s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1ValidatingWebhook
-// {
-// public static explicit operator V1ValidatingWebhook(V1beta1ValidatingWebhook s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1ValidatingWebhook
-// {
-// public static explicit operator V1beta1ValidatingWebhook(V1ValidatingWebhook s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1VolumeAttachmentSource
-// {
-// public static explicit operator V1VolumeAttachmentSource(V1beta1VolumeAttachmentSource s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1VolumeAttachmentSource
-// {
-// public static explicit operator V1beta1VolumeAttachmentSource(V1VolumeAttachmentSource s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1VolumeAttachmentSpec
-// {
-// public static explicit operator V1VolumeAttachmentSpec(V1beta1VolumeAttachmentSpec s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1VolumeAttachmentSpec
-// {
-// public static explicit operator V1beta1VolumeAttachmentSpec(V1VolumeAttachmentSpec s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1VolumeAttachmentStatus
-// {
-// public static explicit operator V1VolumeAttachmentStatus(V1beta1VolumeAttachmentStatus s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1VolumeAttachmentStatus
-// {
-// public static explicit operator V1beta1VolumeAttachmentStatus(V1VolumeAttachmentStatus s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1VolumeError
-// {
-// public static explicit operator V1VolumeError(V1beta1VolumeError s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1VolumeError
-// {
-// public static explicit operator V1beta1VolumeError(V1VolumeError s) => VersionConverter.Mapper.Map(s);
-// }
-//
-// public partial class V1VolumeNodeResources
-// {
-// public static explicit operator V1VolumeNodeResources(V1beta1VolumeNodeResources s) => VersionConverter.Mapper.Map(s);
-// }
-// public partial class V1beta1VolumeNodeResources
-// {
-// public static explicit operator V1beta1VolumeNodeResources(V1VolumeNodeResources s) => VersionConverter.Mapper.Map(s);
-// }
-//
-//
-//
-// }
diff --git a/src/KubernetesClient/Yaml.cs b/src/KubernetesClient/Yaml.cs
index 0f41ed9..af74dfc 100644
--- a/src/KubernetesClient/Yaml.cs
+++ b/src/KubernetesClient/Yaml.cs
@@ -20,6 +20,7 @@ namespace k8s
.WithNamingConvention(CamelCaseNamingConvention.Instance)
.WithTypeConverter(new IntOrStringYamlConverter())
.WithTypeConverter(new ByteArrayStringYamlConverter())
+ .WithTypeConverter(new ResourceQuantityYamlConverter())
.WithOverridesFromJsonPropertyAttributes()
.IgnoreUnmatchedProperties()
.Build();
@@ -30,6 +31,7 @@ namespace k8s
.WithNamingConvention(CamelCaseNamingConvention.Instance)
.WithTypeConverter(new IntOrStringYamlConverter())
.WithTypeConverter(new ByteArrayStringYamlConverter())
+ .WithTypeConverter(new ResourceQuantityYamlConverter())
.WithEventEmitter(e => new StringQuotingEmitter(e))
.ConfigureDefaultValuesHandling(DefaultValuesHandling.OmitNull)
.WithOverridesFromJsonPropertyAttributes()
diff --git a/src/LibKubernetesGenerator/KubernetesClientSourceGenerator.cs b/src/LibKubernetesGenerator/KubernetesClientSourceGenerator.cs
index 895d25d..087f2ba 100644
--- a/src/LibKubernetesGenerator/KubernetesClientSourceGenerator.cs
+++ b/src/LibKubernetesGenerator/KubernetesClientSourceGenerator.cs
@@ -21,6 +21,9 @@ namespace LibKubernetesGenerator
var swaggerfile = context.AdditionalFiles.First(f => f.Path.EndsWith("swagger.json"));
var swagger = OpenApiDocument.FromJsonAsync(swaggerfile.GetText().ToString()).GetAwaiter().GetResult();
+ context.AnalyzerConfigOptions.GetOptions(swaggerfile).TryGetValue("build_metadata.AdditionalFiles.Generator", out var generatorSetting);
+ var generators = new HashSet(generatorSetting.Split(','));
+
var builder = new ContainerBuilder();
builder.RegisterType()
@@ -78,13 +81,25 @@ namespace LibKubernetesGenerator
}
- container.Resolve().Generate(swagger, context);
+ if (generators.Contains("api"))
+ {
+ container.Resolve().Generate(swagger, context);
+ }
- container.Resolve().Generate(swagger, context);
+ if (generators.Contains("model"))
+ {
+ container.Resolve().Generate(swagger, context);
+ }
- container.Resolve().Generate(swagger, context);
+ if (generators.Contains("modelext"))
+ {
+ container.Resolve().Generate(swagger, context);
+ }
- container.Resolve().Generate(swagger, context);
+ if (generators.Contains("versionconverter"))
+ {
+ container.Resolve().Generate(swagger, context);
+ }
}
}
@@ -110,11 +125,11 @@ namespace LibKubernetesGenerator
public void Initialize(GeneratorInitializationContext context)
{
#if DEBUG
- // if (!Debugger.IsAttached)
- // {
- // Debugger.Launch();
- // }
+ // if (!Debugger.IsAttached)
+ // {
+ // Debugger.Launch();
+ // }
#endif
- }
+ }
}
}
diff --git a/src/LibKubernetesGenerator/templates/IKubernetes.cs.template b/src/LibKubernetesGenerator/templates/IKubernetes.cs.template
index 40e5fab..d297026 100644
--- a/src/LibKubernetesGenerator/templates/IKubernetes.cs.template
+++ b/src/LibKubernetesGenerator/templates/IKubernetes.cs.template
@@ -17,7 +17,7 @@ namespace k8s
///
///
- public partial interface IKubernetes
+ public partial interface IBasicKubernetes
{
{{#.}}
///
diff --git a/src/LibKubernetesGenerator/templates/Kubernetes.cs.template b/src/LibKubernetesGenerator/templates/Kubernetes.cs.template
index 3f6bbcc..ec40eee 100644
--- a/src/LibKubernetesGenerator/templates/Kubernetes.cs.template
+++ b/src/LibKubernetesGenerator/templates/Kubernetes.cs.template
@@ -15,7 +15,7 @@ namespace k8s
using System.Threading;
using System.Threading.Tasks;
- public partial class Kubernetes : IKubernetes
+ public partial class AbstractKubernetes : IBasicKubernetes
{
{{#.}}
///
@@ -46,20 +46,20 @@ namespace k8s
{{/operation.parameters}}
// Construct URL
- var url = new System.Uri(BaseUri, $"{{ToInterpolationPathString path}}").ToString();
- {{#IfGroupPathParamContainsGroup path}}
- url = url.Replace("/apis//", "/api/");
- {{/IfGroupPathParamContainsGroup}}
+ var url = $"{{ToInterpolationPathString path}}";
+ {{#IfGroupPathParamContainsGroup path}}
+ url = url.Replace("apis//", "api/");
+ {{/IfGroupPathParamContainsGroup}}
var q = new QueryBuilder();
{{#operation.parameters}}
{{#IfKindIs . "query"}}
- q.Append("{{name}}", {{GetDotNetName name}});
+ q.Append("{{name}}", {{GetDotNetName name}});
{{/IfKindIs . "query"}}
{{/operation.parameters}}
url += q.ToString();
-
+
// Create HTTP transport
- var httpRequest = CreateRequest(url, HttpMethod.{{Method}}, customHeaders);
+ var httpRequest = CreateRequest(url, "{{Method}}", customHeaders);
{{#IfParamContains operation "body"}}
var httpResponse = await SendRequest(body, httpRequest, cancellationToken);
{{/IfParamContains operation "body"}}
diff --git a/src/LibKubernetesGenerator/templates/KubernetesExtensions.cs.template b/src/LibKubernetesGenerator/templates/KubernetesExtensions.cs.template
index df67ffb..8395dcc 100644
--- a/src/LibKubernetesGenerator/templates/KubernetesExtensions.cs.template
+++ b/src/LibKubernetesGenerator/templates/KubernetesExtensions.cs.template
@@ -29,7 +29,7 @@ namespace k8s
///
{{/operation.parameters}}
public static {{GetReturnType operation "void"}} {{GetMethodName operation ""}}(
- this IKubernetes operations
+ this IBasicKubernetes operations
{{#operation.parameters}}
,{{GetDotNetType .}} {{GetDotNetName . "true"}}
{{/operation.parameters}}
@@ -58,7 +58,7 @@ namespace k8s
/// A which can be used to cancel the asynchronous operation.
///
public static async Task{{GetReturnType operation "<>"}} {{GetMethodName operation "Async"}}(
- this IKubernetes operations,
+ this IBasicKubernetes operations,
{{#operation.parameters}}
{{GetDotNetType .}} {{GetDotNetName . "true"}},
{{/operation.parameters}}
diff --git a/src/nuget.proj b/src/nuget.proj
new file mode 100644
index 0000000..e22ee48
--- /dev/null
+++ b/src/nuget.proj
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/KubernetesClient/swagger.json b/swagger.json
similarity index 100%
rename from src/KubernetesClient/swagger.json
rename to swagger.json
diff --git a/tests/KubernetesClient.Tests/KubernetesExecTests.cs b/tests/KubernetesClient.Tests/KubernetesExecTests.cs
index 30ddc22..6bc82c4 100644
--- a/tests/KubernetesClient.Tests/KubernetesExecTests.cs
+++ b/tests/KubernetesClient.Tests/KubernetesExecTests.cs
@@ -3,7 +3,6 @@
*/
using k8s.Tests.Mock;
-using k8s.Autorest;
using System;
using System.Collections.Generic;
using System.Threading;
diff --git a/tests/KubernetesClient.Tests/PodExecTests.cs b/tests/KubernetesClient.Tests/PodExecTests.cs
index 4ae2db5..4949860 100644
--- a/tests/KubernetesClient.Tests/PodExecTests.cs
+++ b/tests/KubernetesClient.Tests/PodExecTests.cs
@@ -10,7 +10,6 @@ using System.Diagnostics;
using System.IO;
using System.Net.Http;
using System.Net.WebSockets;
-using System.Text;
using System.Text.Json;
using System.Threading;
using System.Threading.Tasks;
diff --git a/tests/KubernetesClient.Tests/StreamDemuxerTests.cs b/tests/KubernetesClient.Tests/StreamDemuxerTests.cs
index befe54a..926857e 100644
--- a/tests/KubernetesClient.Tests/StreamDemuxerTests.cs
+++ b/tests/KubernetesClient.Tests/StreamDemuxerTests.cs
@@ -6,7 +6,6 @@ using System.Threading;
using System.Threading.Tasks;
using k8s.Tests.Mock;
using Xunit;
-using Xunit.Abstractions;
namespace k8s.Tests
{
diff --git a/version.json b/version.json
index 305d29e..c3d95ac 100644
--- a/version.json
+++ b/version.json
@@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
- "version": "7.1",
+ "version": "7.2",
"publicReleaseRefSpec": [
"^refs/heads/master$",
"^refs/tags/v\\d+\\.\\d+\\.\\d+"