feat: add Client Management and Network Information, completing both API areas - #122
Merged
Merged
Conversation
…API areas Adds Get/New/Update/Remove-PiHoleClient and Get-PiHoleClientSuggestion, covering Pi-hole's client management API (GET/POST/PUT + batch-delete, plus unconfigured-client suggestions). Single-item DELETE is intentionally skipped in favor of the batch endpoint, same precedent as Remove-PiHoleList/Remove-PiHoleDomain. Adds Get-PiHoleNetworkGateway/Route/Interface/Device and Remove-PiHoleNetworkDevice, covering the full Network Information API. Unlike Clients/Domains/Lists there's no batch-delete alternative for devices, so Remove-PiHoleNetworkDevice implements the single-item DELETE directly. Interface/route/gateway responses vary significantly by type and aren't fully enumerable from the spec, so they're returned via the existing generic PascalCase-conversion helper (already used by Get-PiHoleConfig) rather than a hand-picked set of fields - confirmed against the real server that this also correctly surfaces at least one live field not documented in the OpenAPI spec (interface stats.bits). Adds Client Management as its own README/EXAMPLES category; Network Information folds into "Configuration & Diagnostics" like the other read-only diagnostic areas (FTLInformation, Padd, Teleporter, History). Co-Authored-By: Claude Sonnet 5 <[email protected]>
mikemadeja
added a commit
that referenced
this pull request
Sep 28, 2026
Resolves the README.md/docs/EXAMPLES.md conflicts from merging develop (which now includes PR #122's Client Management and Network Information) by regenerating both from the merged source instead of hand-resolving generated-file diffs. Co-Authored-By: Claude Sonnet 5 <[email protected]>
1 task done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Get-PiHoleClient,New-PiHoleClient,Update-PiHoleClient,Remove-PiHoleClient, andGet-PiHoleClientSuggestion, covering Pi-hole's client management API. Single-itemDELETEis intentionally skipped in favor of the batch endpoint, same precedent asRemove-PiHoleList/Remove-PiHoleDomain.Get-PiHoleNetworkGateway,Get-PiHoleNetworkRoute,Get-PiHoleNetworkInterface,Get-PiHoleNetworkDevice, andRemove-PiHoleNetworkDevice, covering the full Network Information API. Unlike Clients/Domains/Lists, there's no batch-delete alternative for devices, soRemove-PiHoleNetworkDeviceimplements the single-itemDELETEdirectly.Get-PiHoleConfig) rather than a hand-picked set of fields. Confirmed against the real server this also correctly surfaces at least one live field not documented in the spec (interface.stats.bits).docs/EXAMPLES.mdcategory; Network Information folds into "Configuration & Diagnostics" like the module's other read-only diagnostic areas (FTL Information, PADD, Teleporter, History).This completes both the "Clients" and "Network" areas from the API coverage audit (12 of 12 operations addressed: 11 implemented, 1 intentionally skipped).
Test plan
docs/EXAMPLES.md.Invoke-ScriptAnalyzerclean against the full module.🤖 Generated with Claude Code