Files
claudetools/.claude/skills/bitdefender/references/BUILDOUT.md
Howard Enos 4cf34f5221 feat(bitdefender): doc-verify assignPolicy/push + add full-API build-out tracker
- assign_policy: add inheritFromAbove option; mark VERIFIED via official docs
  (policyId/targetIds/forcePolicyInheritance/inheritFromAbove; not applied to
  ENFORCED-policy targets).
- setPushEventSettings: documented serviceType (splunk/cef/jsonRPC), TLS 1.2+
  receiver requirement, subscribeToEventTypes event-flag map; webhook receiver
  pattern noted.
- api-reference.md: cite GravityZone Support Center as authoritative source.
- add references/BUILDOUT.md — master checklist to implement every API method
  module-by-module; seeded with current done/todo/dead state.
- memory: reference_gravityzone_support (+ index).

selftest 42/42.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 10:14:23 -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 (fully enumerated from docs)

  • getAccountsList
  • getNotificationsSettings
  • getAccountDetails
  • createAccount (gated)
  • updateAccount (gated)
  • deleteAccount (gated)
  • configureNotificationsSettings (gated)

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)