- Completed Network module for bitdefender skill (GravityZone Public API) - Added getEndpointTags (read), setEndpointLabel (gated), createReconfigureClientTask/reconfigure (gated) - Confirmed createUninstallTask, getEndpointsByPolicy, getManagedEndpointDetailsByIp, createScanTaskByMailboxes not found under /network - Fixed endpoint-tags renderer to handle list result (previously crashing _print_kv) - raw gates setEndpointLabel; reconfigure already gated - selftest 55 -> 60 passing Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.4 KiB
3.4 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 — 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
- 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)