Removed
- Removed `tenant_id` parameter from methods:
- `sdk.alerts.get_details()`
- `sdk.alerts.resolve()`
- `sdk.alerts.reopen()`
Fixed
- Issue that in rare circumstance could cause py42 to exhaust network sockets. This could sometimes occur if you were running a multi-threaded program that communicated with many Code42 storage nodes.
Added
- Methods for obtaining archive information:
- `sdk.archive.get_by_archive_guid`
- `sdk.archive.get_all_by_device_guid`
- Debug logs for restore progress during the method call `py42.archive.stream_from_backup()`.
- [.netrc](https://ec.haxx.se/usingcurl/usingcurl-netrc) support. Calling `py42.sdk.from_local_account()` with no username and password will now result in py42 attempting to authenticate via an entry in your `.netrc` file, if you have one.
- `py42.constants.SortDirection` constants `DESC` and `ASC`.
- `sdk.detectionlists.departing_employee.DepartingEmployeeFilters` constants `OPEN`,
`EXFILTRATION_30_DAYS`, `EXFILTRATION_24_HOURS`, and `LEAVING_TODAY`.
- `sdk.detectionlists.high_risk_employee.HighRiskEmployeeFilters` constants `OPEN`,
`EXFILTRATION_30_DAYS`, and `EXFILTRATION_24_HOURS`.
- Methods for calling the agent-state APIs:
- `sdk.devices.get_agent_state()`
- `sdk.devices.get_agent_full_disk_access_state()`
- `sdk.orgs.get_agent_state()`
- `sdk.orgs.get_agent_full_disk_access_states()`
- Exception classes (`py42.exceptions`)
- `Py42ResponseError`
- `Py42UserAlreadyAddedError`
- `Py42LegalHoldNotFoundOrPermissionDeniedError`
- `Py42InvalidRuleOperationError`
- Methods for getting individual response pages:
- `sdk.detectionlists.departing_employee.get_page()`
- `sdk.detectionlists.high_risk.get_page()`
- `sdk.users.get_page()`
- `sdk.devices.get_page()`
- `sdk.orgs.get_page()`
- `sdk.legalhold.get_matters_page()`
- `sdk.legalhold.get_custodians_page()`
- `sdk.alerts.get_rules_page()`
- Added enum object `py42.modules.detectionlists.RiskTags` with constants:
- `FLIGHT_RISK`
- `HIGH_IMPACT_EMPLOYEE`
- `ELEVATED_ACCESS_PRIVILEGES`
- `PERFORMANCE_CONCERNS`
- `SUSPICIOUS_SYSTEM_ACTIVITY`
- `POOR_SECURITY_PRACTICES`
- `CONTRACT_EMPLOYEE`
- Added below event filter support
- TrustedActivity
- RemoteActivity
- PrintJobName
- Printer
- DeviceSignedInUserName
- Added attributes to below event filters and added `choices` method to return list of all available attributes
- FileCategory
- SyncDestination
- ExposureType
- Source
- EventTimestamp
- EventType
- SharingTypeAdded
- RuleSource
- RuleType
- AlertState
- Severity
Changed
- `sdk.archive.stream_from_backup()` now calculates file sizes and accepts a `file_size_calc_timeout` parameter.
- Parameter `file_path` on `sdk.archive.stream_from_backup()` renamed to `file_paths` and can now take a list of file paths to restore.
- `sdk.detectionlists.departing_employee.add()` now raises `Py42UserAlreadyAddedError` when the user is already on the list.
- `sdk.detectionlists.high_risk_employee.add()` now raises `Py42UserAlreadyAddedError` when the user already on the list.
- `sdk.legalhold.add_to_matter()` now raises `Py42UserAlreadyAddedError` when the user is already on the matter.
- `sdk.legalhold.get_matter_by_uid()` now raises `Py42LegalHoldNotFoundOrPermissionDeniedError` when the user does not have
access or the ID does not exist.
- `sdk.alerts.rules.add_user()` now raises `Py42InvalidRuleOperationError` on 404s.
- `sdk.alerts.rules.remove_user()` now raises `Py42InvalidRuleOperationError` on 404s.
- `sdk.alerts.rules.remove_all_users()` now raises `Py42InvalidRuleOperationError` on 404s.
- `Py42ArchiveFileNotFoundError` now includes the response.
- `Py42ChecksumNotFoundError` now includes the response.
- `Py42FeatureUnavailableError` now includes the response.
- `Py42StorageSessionInitializationError` now includes the response.