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

3.7 KiB

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

  • getApiKeyDetails

licensing — COMPLETE

  • getLicenseInfo
  • getMonthlyUsage (read; endpoint/encryption/email/mobile usage)
  • [DEAD] getMonthlyUsagePerCompany — not found

companies — COMPLETE (6; no updateCompany/getCompaniesList — those don't exist)

  • getCompanyDetails (no id = own)
  • getCompanyDetailsByUser (username)
  • createCompany (gated; type 0=Partner/1=Customer + name)
  • suspendCompany (gated)
  • activateCompany (gated)
  • deleteCompany (gated)

network — COMPLETE (all exposed methods)

  • getNetworkInventoryItems · getEndpointsList · getManagedEndpointDetails
  • getScanTasksList · createScanTask · moveEndpoints
  • createCustomGroup · deleteCustomGroup · moveCustomGroup · deleteEndpoint
  • assignPolicy
  • createReconfigureClientTask (gated)
  • setEndpointLabel (gated)
  • getEndpointTags (read)
  • [DEAD] createUninstallTask (+variants) — does NOT exist under /network this version
  • [DEAD] getEndpointsByPolicy / getManagedEndpointDetailsByIp / createScanTaskByMailboxes — not found

packages — COMPLETE

  • getPackagesList · createPackage · getInstallationLinks · deletePackage
  • getPackageDetails (read; param packageId)

policies — COMPLETE

  • getPoliciesList · getPolicyDetails (FULL config)
  • assignPolicy (lives in /network)

reports — COMPLETE

  • getReportsList
  • createReport (gated; name + type/targetIds via extra-json)
  • getDownloadLinks (read; report-links)
  • deleteReport (gated)
  • [DEAD] getReportConfiguration — not found

quarantine — COMPLETE

  • getQuarantineItemsList (computers)
  • createRemoveQuarantineItemTask (gated; quarantineItemsIds)
  • createRestoreQuarantineItemTask (gated; quarantineItemsIds)

incidents / EDR — COMPLETE (custom rules + status/note ARE available)

  • getBlocklistItems · addToBlocklist · removeFromBlocklist
  • createIsolateEndpointTask · createRestoreEndpointFromIsolationTask
  • getCustomRulesList (read) · createCustomRule (gated) · deleteCustomRule (gated)
  • changeIncidentStatus (gated) · updateIncidentNote (gated)
  • [DEAD] getIncidentsList (Method not found on this tenant)

push (event service) — COMPLETE

  • getPushEventSettings · getPushEventStats · setPushEventSettings
  • sendTestPushEvent (gated; eventType)

accounts — COMPLETE (all 7)

  • getAccountsList
  • getAccountDetails (no id = own account)
  • getNotificationsSettings
  • createAccount (gated)
  • updateAccount (gated)
  • deleteAccount (gated)
  • configureNotificationsSettings (gated; setter w/ no required param — never probe empty)

integrations — COMPLETE (read)

  • 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)