- 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>
94 lines
3.7 KiB
Markdown
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)
|