Files
claudetools/.claude/skills/bitdefender/references/BUILDOUT.md
Howard Enos 53d7e94c13 feat(bitdefender): complete remaining API modules (build-out 4/N)
- completed remaining modules: packages, reports, quarantine, incidents, push, licensing, integrations
- packages: getPackageDetails (read)
- reports: createReport (gated), getDownloadLinks/report-links (read), deleteReport (gated)
- quarantine: createRemove/RestoreQuarantineItemTask (gated; quarantineItemsIds)
- incidents/edr: getCustomRulesList (read), create/deleteCustomRule (gated), changeIncidentStatus/updateIncidentNote (gated)
- push: sendTestPushEvent (gated); licensing: getMonthlyUsage (read); integrations: getConfiguredIntegrations (read)
- all write methods gated via --confirm and raw; shapes verified via docs + safe validation probes
- selftest 60 -> 75 passing; BUILDOUT tracker: all live modules complete

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 10:46:43 -07:00

94 lines
3.7 KiB
Markdown

# Bitdefender skill — full API build-out tracker
Goal: implement EVERY GravityZone Public API method the docs expose (and the
tenant license allows), one module at a time. Source of truth for method/param
shapes: the GravityZone Support Center
(https://www.bitdefender.com/business/support/en/77209-125277-public-api.html).
Legend: `[x]` wrapped + tested · `[ ]` todo · `[~]` partial/unverified ·
`[DEAD]` in key scope but license/feature OFF on this tenant.
Per-module workflow: fetch module doc -> list methods + params -> add to
`gz_client.py` + `gz.py` (gate state-changing behind `--confirm`) -> test
(reads live; writes gated-only, never executed on prod during build) -> update
`api-reference.md` + tick here.
---
## general / authentication
- [x] getApiKeyDetails
## licensing — COMPLETE
- [x] getLicenseInfo
- [x] getMonthlyUsage (read; endpoint/encryption/email/mobile usage)
- [DEAD] getMonthlyUsagePerCompany — not found
## companies — COMPLETE (6; no updateCompany/getCompaniesList — those don't exist)
- [x] getCompanyDetails (no id = own)
- [x] getCompanyDetailsByUser (username)
- [x] createCompany (gated; type 0=Partner/1=Customer + name)
- [x] suspendCompany (gated)
- [x] activateCompany (gated)
- [x] deleteCompany (gated)
## network — COMPLETE (all exposed methods)
- [x] getNetworkInventoryItems · getEndpointsList · getManagedEndpointDetails
- [x] getScanTasksList · createScanTask · moveEndpoints
- [x] createCustomGroup · deleteCustomGroup · moveCustomGroup · deleteEndpoint
- [x] assignPolicy
- [x] createReconfigureClientTask (gated)
- [x] setEndpointLabel (gated)
- [x] getEndpointTags (read)
- [DEAD] createUninstallTask (+variants) — does NOT exist under /network this version
- [DEAD] getEndpointsByPolicy / getManagedEndpointDetailsByIp / createScanTaskByMailboxes — not found
## packages — COMPLETE
- [x] getPackagesList · createPackage · getInstallationLinks · deletePackage
- [x] getPackageDetails (read; param packageId)
## policies — COMPLETE
- [x] getPoliciesList · getPolicyDetails (FULL config)
- [x] assignPolicy (lives in /network)
## reports — COMPLETE
- [x] getReportsList
- [x] createReport (gated; name + type/targetIds via extra-json)
- [x] getDownloadLinks (read; report-links)
- [x] deleteReport (gated)
- [DEAD] getReportConfiguration — not found
## quarantine — COMPLETE
- [x] getQuarantineItemsList (computers)
- [x] createRemoveQuarantineItemTask (gated; quarantineItemsIds)
- [x] createRestoreQuarantineItemTask (gated; quarantineItemsIds)
## incidents / EDR — COMPLETE (custom rules + status/note ARE available)
- [x] getBlocklistItems · addToBlocklist · removeFromBlocklist
- [x] createIsolateEndpointTask · createRestoreEndpointFromIsolationTask
- [x] getCustomRulesList (read) · createCustomRule (gated) · deleteCustomRule (gated)
- [x] changeIncidentStatus (gated) · updateIncidentNote (gated)
- [DEAD] getIncidentsList (Method not found on this tenant)
## push (event service) — COMPLETE
- [x] getPushEventSettings · getPushEventStats · setPushEventSettings
- [x] sendTestPushEvent (gated; eventType)
## accounts — COMPLETE (all 7)
- [x] getAccountsList
- [x] getAccountDetails (no id = own account)
- [x] getNotificationsSettings
- [x] createAccount (gated)
- [x] updateAccount (gated)
- [x] deleteAccount (gated)
- [x] configureNotificationsSettings (gated; setter w/ no required param — never probe empty)
## integrations — COMPLETE (read)
- [x] getConfiguredIntegrations (read)
- [DEAD] getPSAIntegrationList / getIntegrationsList — not found (wrong names)
## maintenance windows
- [DEAD] getMaintenanceWindows / *List → "not available" on this tenant
## patchmanagement / phasr
- [DEAD] license OFF (managePatchManagement=false; phasr feature off)