Source code for illumio.settings.orgsettings
# -*- coding: utf-8 -*-
"""This module provides classes related to organization settings.
Copyright:
© 2022 Illumio
License:
Apache2, see LICENSE for more details.
"""
from dataclasses import dataclass
from typing import List
from illumio.util import Reference, IllumioObject, MutableObject, pce_api
[docs]
@dataclass
@pce_api('org_settings', endpoint='/settings')
class OrgSettings(Reference):
"""Represents organization-level settings in the PCE."""
num_assets_requiring_ransomware_protection: int = None
automatic_label_application_on_ven_activation: bool = None
rule_based_label_maker_schedule_enabled: bool = None
rule_based_label_maker_schedule: dict = None
max_explorer_query_timespan_days: int = None
max_api_key_expiration_in_seconds: int = None
expired_api_keys_retention_in_seconds: int = None
advanced_ruleset_display: bool = None
label_display: str = None
ven_maintenance_token_required: bool = None
clone_detection_enabled: bool = None
automatic_clone_reactivation: str = None
use_census_permissions: bool = None
format: dict = None
cloud_secure_tenant_id: str = None
max_rule_search_provider_consumer_entities: int = None
total_internet_address_space: int = None
total_lateral_address_space: int = None
[docs]
@dataclass
@pce_api('event_settings', endpoint='/settings/events')
class EventSettings(Reference):
"""Represents event settings in the PCE."""
audit_event_retention_seconds: int = None
audit_event_min_severity: str = None
format: str = None
[docs]
@dataclass
@pce_api('report_settings', endpoint='/settings/reports')
class ReportSettings(Reference):
"""Represents report settings in the PCE.
``max_report_size`` is retained as a deprecated field; the current API
exposes ``max_queued_reports`` and ``report_retention_days``.
"""
max_queued_reports: int = None
report_retention_days: int = None
max_report_size: int = None # deprecated / not returned by current PCEs
[docs]
@dataclass
@pce_api('syslog_destinations', endpoint='/settings/syslog/destinations')
class SyslogDestination(MutableObject):
"""Represents a syslog destination in the PCE."""
type: str = None
pce_scope: bool = None
remote_syslog: dict = None
audit_event_logger: dict = None
traffic_event_logger: dict = None
node_status_logger: dict = None
[docs]
@dataclass
@pce_api('traffic_collector_settings', endpoint='/settings/traffic_collector')
class TrafficCollectorSetting(IllumioObject):
"""Represents a traffic collector setting in the PCE.
Uses IllumioObject base instead of MutableObject because the PCE
returns created_by/updated_by as integer IDs rather than Reference objects.
"""
transmission: str = None
action: str = None
target: dict = None
data_source: str = None
network: str = None
created_at: str = None
updated_at: str = None
created_by: int = None
updated_by: int = None
[docs]
@dataclass
@pce_api('trusted_proxy_ips', endpoint='/settings/trusted_proxy_ips')
class TrustedProxyIPs(Reference):
"""Represents trusted proxy IP settings in the PCE."""
trusted_proxy_ips: List[str] = None
[docs]
@dataclass
@pce_api('workload_settings', endpoint='/settings/workloads')
class WorkloadSettings(Reference):
"""Represents workload settings in the PCE."""
workload_disconnected_timeout_seconds: List[dict] = None
workload_goodbye_timeout_seconds: int = None
[docs]
@dataclass
@pce_api('optional_features')
class OptionalFeature(Reference):
"""Represents optional feature flags in the PCE."""
name: str = None
enabled: bool = None
__all__ = [
'OrgSettings',
'EventSettings',
'ReportSettings',
'SyslogDestination',
'TrafficCollectorSetting',
'TrustedProxyIPs',
'WorkloadSettings',
'OptionalFeature',
]