Files
claudetools/.claude/skills/bitdefender/references/BUILDOUT.md
Howard Enos 8a64bc48e6 feat(bitdefender): complete Accounts module (build-out 1/N)
- Completed Accounts module for bitdefender skill (GravityZone Public API)
- Added 5 methods: getAccountDetails, createAccount, updateAccount, deleteAccount, configureNotificationsSettings
- Write methods require --confirm; raw also gates createAccount/updateAccount/configureNotificationsSettings
- Param shapes validated against official docs and safe validation probes
- configureNotificationsSettings is a setter with no required param; warning documented against empty payload on live tenant
- selftest 42 -> 49 passing

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

3.1 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

  • getLicenseInfo
  • (enumerate: getMonthlyUsage? / others)

companies

  • getCompanyDetails
  • getCompaniesList / getCompanyDetailsByUser
  • createCompany / updateCompany / deleteCompany / suspend / activate (enumerate; gated)

network

  • getNetworkInventoryItems · getEndpointsList · getManagedEndpointDetails
  • getScanTasksList · createScanTask · moveEndpoints
  • createCustomGroup · deleteCustomGroup · moveCustomGroup · deleteEndpoint
  • assignPolicy
  • createReconfigureClientTask (gated)
  • createUninstallTask (gated)
  • setEndpointLabel
  • (enumerate remaining: getEndpointsCounts, getManagedEndpointDetails opts, etc.)

packages

  • getPackagesList · createPackage · getInstallationLinks · deletePackage
  • getPackageDetails (param: packageId)
  • (enumerate remaining)

policies

  • getPoliciesList · getPolicyDetails (FULL config)
  • assignPolicy (lives in /network)
  • (confirm no other policy methods exist)

reports

  • getReportsList
  • createReport (param: name, type, targetIds, ...) (gated-ish)
  • getDownloadLinks · deleteReport (enumerate)

quarantine

  • getQuarantineItemsList (computers)
  • createRemoveQuarantineItemTask (gated)
  • createRestoreQuarantineItemTask (gated)
  • exchange quarantine variants (enumerate)

incidents / EDR

  • getBlocklistItems · addToBlocklist · removeFromBlocklist
  • createIsolateEndpointTask · createRestoreEndpointFromIsolationTask
  • [DEAD] getIncidentsList (Method not found on this tenant)
  • custom rules / changeIncidentStatus / updateIncidentNote (enumerate; likely EDR-license gated)

push (event service)

  • getPushEventSettings · getPushEventStats · setPushEventSettings
  • sendTestPushEvent (enumerate)

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

  • (enumerate; getPSAIntegrationList was a name-miss — find correct names)

maintenance windows

  • [DEAD] getMaintenanceWindows / *List → "not available" on this tenant

patchmanagement / phasr

  • [DEAD] license OFF (managePatchManagement=false; phasr feature off)