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