- 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>
3.7 KiB
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)