in src/Azure.Deployments.Extensibility.Extensions.Kubernetes/Api/K8sApiDiscovery.cs [32:56]
private async Task<V1APIResource> FindApiResourceAsync(GroupVersionKind groupVersionKind, CancellationToken cancellationToken)
{
var (group, version, kind) = groupVersionKind;
if (await this.TryFastFindApiResourceAsync(groupVersionKind, cancellationToken) is { } apiResource)
{
return apiResource;
}
var apiResourceList = await this.client.ListApiResourceAsync(group, version, cancellationToken);
if (apiResourceList is null)
{
throw new ErrorResponseException("UnknownResourceType", $"Unknown API group version '{group}/{version}'.");
}
// Ensure not to include subresources (e.g. /status).
apiResource = apiResourceList.Resources.SingleOrDefault(x => x.Kind.Equals(kind, StringComparison.Ordinal) && !x.Name.Contains('/')) ??
throw new ErrorResponseException("UnknownResourceKind", $"Unknown resource kind '{kind}'.", JsonPointer.Create("type"));
apiResource.Group = group;
apiResource.Version = version;
return apiResource;
}