/// <inheritdoc/> public async Task <WatchExitReason> WatchNamespacedObjectAsync <TObject, TList>( string @namespace, string?fieldSelector, string?labelSelector, string?resourceVersion, string?resourceVersionMatch, ListNamespacedObjectWithHttpMessagesAsync <TObject, TList> listOperation, WatchEventDelegate <TObject> eventHandler, CancellationToken cancellationToken) where TObject : IKubernetesObject <V1ObjectMeta> where TList : IItems <TObject> { if (@namespace == null) { throw new ArgumentNullException(nameof(@namespace)); } if (listOperation == null) { throw new ArgumentNullException(nameof(listOperation)); } if (eventHandler == null) { throw new ArgumentNullException(nameof(eventHandler)); } using (var response = await listOperation( namespaceParameter: @namespace, allowWatchBookmarks: true, fieldSelector: fieldSelector, labelSelector: labelSelector, resourceVersion: resourceVersion, resourceVersionMatch: resourceVersionMatch, watch: true, cancellationToken: cancellationToken).ConfigureAwait(false)) { return(await this.WatchAsync(response, eventHandler, cancellationToken).ConfigureAwait(false)); } }
/// <inheritdoc/> public Task <WatchExitReason> WatchNamespacedObjectAsync <TObject, TList>( TObject value, ListNamespacedObjectWithHttpMessagesAsync <TObject, TList> listOperation, WatchEventDelegate <TObject> eventHandler, CancellationToken cancellationToken) where TObject : IKubernetesObject <V1ObjectMeta> where TList : IItems <TObject> { if (value == null) { throw new ArgumentNullException(nameof(value)); } if (value.Metadata == null) { throw new ValidationException(ValidationRules.CannotBeNull, "value.Metadata"); } if (value.Metadata.NamespaceProperty == null) { throw new ValidationException(ValidationRules.CannotBeNull, "value.Metadata.NamespaceProperty"); } if (value.Metadata.Name == null) { throw new ValidationException(ValidationRules.CannotBeNull, "value.Metadata.Name"); } return(this.WatchNamespacedObjectAsync <TObject, TList>( @namespace: value.Metadata.NamespaceProperty, fieldSelector: $"metadata.name={value.Metadata.Name}", labelSelector: null, resourceVersion: value.Metadata.ResourceVersion, resourceVersionMatch: null, listOperation, eventHandler, cancellationToken)); }