scc-firewall-manager-sdk 1.15.195__py3-none-any.whl → 1.15.563__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- scc_firewall_manager_sdk/__init__.py +19 -2
- scc_firewall_manager_sdk/api/__init__.py +2 -0
- scc_firewall_manager_sdk/api/ai_assistant_api.py +12 -12
- scc_firewall_manager_sdk/api/asa_access_groups_api.py +12 -12
- scc_firewall_manager_sdk/api/asa_access_rules_api.py +12 -12
- scc_firewall_manager_sdk/api/asa_interfaces_api.py +72 -72
- scc_firewall_manager_sdk/api/audit_logs_api.py +12 -12
- scc_firewall_manager_sdk/api/change_requests_api.py +12 -12
- scc_firewall_manager_sdk/api/changelogs_api.py +12 -12
- scc_firewall_manager_sdk/api/command_line_interface_api.py +24 -24
- scc_firewall_manager_sdk/api/connectors_api.py +12 -12
- scc_firewall_manager_sdk/api/device_health_aggregations_api.py +19 -19
- scc_firewall_manager_sdk/api/device_upgrades_api.py +298 -297
- scc_firewall_manager_sdk/api/events_api.py +358 -0
- scc_firewall_manager_sdk/api/interface_health_aggregations_api.py +344 -0
- scc_firewall_manager_sdk/api/inventory_api.py +48 -48
- scc_firewall_manager_sdk/api/licensing_api.py +626 -0
- scc_firewall_manager_sdk/api/msp_device_upgrades_api.py +1692 -37
- scc_firewall_manager_sdk/api/msp_inventory_api.py +48 -48
- scc_firewall_manager_sdk/api/msp_tenant_management_api.py +41 -12
- scc_firewall_manager_sdk/api/msp_user_management_api.py +24 -24
- scc_firewall_manager_sdk/api/object_management_api.py +17 -0
- scc_firewall_manager_sdk/api/remote_access_monitoring_api.py +24 -24
- scc_firewall_manager_sdk/api/tenant_management_api.py +21 -18
- scc_firewall_manager_sdk/api/users_api.py +30 -30
- scc_firewall_manager_sdk/api_client.py +1 -1
- scc_firewall_manager_sdk/configuration.py +1 -1
- scc_firewall_manager_sdk/models/__init__.py +16 -1
- scc_firewall_manager_sdk/models/access_group.py +1 -1
- scc_firewall_manager_sdk/models/cdo_token_info.py +3 -1
- scc_firewall_manager_sdk/models/cdo_transaction.py +14 -14
- scc_firewall_manager_sdk/models/common_api_error.py +3 -3
- scc_firewall_manager_sdk/models/compatible_device_dto.py +100 -0
- scc_firewall_manager_sdk/models/compatible_version_info_dto.py +112 -0
- scc_firewall_manager_sdk/models/completion_status_dto.py +104 -0
- scc_firewall_manager_sdk/models/device_license_dto.py +133 -0
- scc_firewall_manager_sdk/models/device_license_page.py +102 -0
- scc_firewall_manager_sdk/models/{tenant_ftd_compatibility_version.py → device_upgrade_status_dto.py} +14 -18
- scc_firewall_manager_sdk/models/enable_cd_fmc_for_tenant_request.py +88 -0
- scc_firewall_manager_sdk/models/log_settings.py +1 -1
- scc_firewall_manager_sdk/models/metric_aggregation_list_item.py +12 -8
- scc_firewall_manager_sdk/models/msp_calculate_compatible_upgrade_versions_input.py +89 -0
- scc_firewall_manager_sdk/models/msp_managed_device.py +13 -1
- scc_firewall_manager_sdk/models/msp_managed_device_distinct_attribute_values.py +5 -1
- scc_firewall_manager_sdk/models/msp_upgrade_ftd_devices_input.py +97 -0
- scc_firewall_manager_sdk/models/msp_upgrade_run_dto.py +135 -0
- scc_firewall_manager_sdk/models/msp_upgrade_run_dto_page.py +102 -0
- scc_firewall_manager_sdk/models/msp_upgrade_runs_attribute_values.py +114 -0
- scc_firewall_manager_sdk/models/page.py +94 -0
- scc_firewall_manager_sdk/models/smart_account.py +90 -0
- scc_firewall_manager_sdk/models/tenant_settings.py +3 -1
- scc_firewall_manager_sdk/models/upgrade_compatibility_info_dto.py +107 -0
- scc_firewall_manager_sdk/models/upgrade_run_dto.py +14 -4
- scc_firewall_manager_sdk/models/upgrade_run_metadata_dto.py +96 -0
- {scc_firewall_manager_sdk-1.15.195.dist-info → scc_firewall_manager_sdk-1.15.563.dist-info}/METADATA +1 -1
- {scc_firewall_manager_sdk-1.15.195.dist-info → scc_firewall_manager_sdk-1.15.563.dist-info}/RECORD +58 -41
- {scc_firewall_manager_sdk-1.15.195.dist-info → scc_firewall_manager_sdk-1.15.563.dist-info}/WHEEL +0 -0
- {scc_firewall_manager_sdk-1.15.195.dist-info → scc_firewall_manager_sdk-1.15.563.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Cisco Security Cloud Control Firewall Manager API
|
|
5
|
+
|
|
6
|
+
Use the documentation to explore the endpoints Security Cloud Control Firewall Manager has to offer
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.15.0
|
|
9
|
+
Contact: cdo.tac@cisco.com
|
|
10
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
11
|
+
|
|
12
|
+
Do not edit the class manually.
|
|
13
|
+
""" # noqa: E501
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
import pprint
|
|
18
|
+
import re # noqa: F401
|
|
19
|
+
import json
|
|
20
|
+
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictInt
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
|
+
from scc_firewall_manager_sdk.models.device_license_dto import DeviceLicenseDto
|
|
24
|
+
from typing import Optional, Set
|
|
25
|
+
from typing_extensions import Self
|
|
26
|
+
|
|
27
|
+
class DeviceLicensePage(BaseModel):
|
|
28
|
+
"""
|
|
29
|
+
DeviceLicensePage
|
|
30
|
+
""" # noqa: E501
|
|
31
|
+
count: Optional[StrictInt] = Field(default=None, description="The total number of results available.")
|
|
32
|
+
items: Optional[List[DeviceLicenseDto]] = Field(default=None, description="The list of items retrieved.")
|
|
33
|
+
limit: Optional[StrictInt] = Field(default=None, description="The number of results retrieved.")
|
|
34
|
+
offset: Optional[StrictInt] = Field(default=None, description="The offset of the results retrieved. The Security Cloud Control API uses the offset field to determine the index of the first result retrieved, and will retrieve `limit` results from the offset specified.")
|
|
35
|
+
__properties: ClassVar[List[str]] = ["count", "items", "limit", "offset"]
|
|
36
|
+
|
|
37
|
+
model_config = ConfigDict(
|
|
38
|
+
populate_by_name=True,
|
|
39
|
+
validate_assignment=True,
|
|
40
|
+
protected_namespaces=(),
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def to_str(self) -> str:
|
|
45
|
+
"""Returns the string representation of the model using alias"""
|
|
46
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
47
|
+
|
|
48
|
+
def to_json(self) -> str:
|
|
49
|
+
"""Returns the JSON representation of the model using alias"""
|
|
50
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
51
|
+
return json.dumps(self.to_dict())
|
|
52
|
+
|
|
53
|
+
@classmethod
|
|
54
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
55
|
+
"""Create an instance of DeviceLicensePage from a JSON string"""
|
|
56
|
+
return cls.from_dict(json.loads(json_str))
|
|
57
|
+
|
|
58
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
59
|
+
"""Return the dictionary representation of the model using alias.
|
|
60
|
+
|
|
61
|
+
This has the following differences from calling pydantic's
|
|
62
|
+
`self.model_dump(by_alias=True)`:
|
|
63
|
+
|
|
64
|
+
* `None` is only added to the output dict for nullable fields that
|
|
65
|
+
were set at model initialization. Other fields with value `None`
|
|
66
|
+
are ignored.
|
|
67
|
+
"""
|
|
68
|
+
excluded_fields: Set[str] = set([
|
|
69
|
+
])
|
|
70
|
+
|
|
71
|
+
_dict = self.model_dump(
|
|
72
|
+
by_alias=True,
|
|
73
|
+
exclude=excluded_fields,
|
|
74
|
+
exclude_none=True,
|
|
75
|
+
)
|
|
76
|
+
# override the default output from pydantic by calling `to_dict()` of each item in items (list)
|
|
77
|
+
_items = []
|
|
78
|
+
if self.items:
|
|
79
|
+
for _item in self.items:
|
|
80
|
+
if _item:
|
|
81
|
+
_items.append(_item.to_dict())
|
|
82
|
+
_dict['items'] = _items
|
|
83
|
+
return _dict
|
|
84
|
+
|
|
85
|
+
@classmethod
|
|
86
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
87
|
+
"""Create an instance of DeviceLicensePage from a dict"""
|
|
88
|
+
if obj is None:
|
|
89
|
+
return None
|
|
90
|
+
|
|
91
|
+
if not isinstance(obj, dict):
|
|
92
|
+
return cls.model_validate(obj)
|
|
93
|
+
|
|
94
|
+
_obj = cls.model_validate({
|
|
95
|
+
"count": obj.get("count"),
|
|
96
|
+
"items": [DeviceLicenseDto.from_dict(_item) for _item in obj["items"]] if obj.get("items") is not None else None,
|
|
97
|
+
"limit": obj.get("limit"),
|
|
98
|
+
"offset": obj.get("offset")
|
|
99
|
+
})
|
|
100
|
+
return _obj
|
|
101
|
+
|
|
102
|
+
|
scc_firewall_manager_sdk/models/{tenant_ftd_compatibility_version.py → device_upgrade_status_dto.py}
RENAMED
|
@@ -20,19 +20,17 @@ import json
|
|
|
20
20
|
|
|
21
21
|
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
22
22
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
|
-
from scc_firewall_manager_sdk.models.
|
|
23
|
+
from scc_firewall_manager_sdk.models.completion_status_dto import CompletionStatusDto
|
|
24
24
|
from typing import Optional, Set
|
|
25
25
|
from typing_extensions import Self
|
|
26
26
|
|
|
27
|
-
class
|
|
27
|
+
class DeviceUpgradeStatusDto(BaseModel):
|
|
28
28
|
"""
|
|
29
|
-
|
|
29
|
+
DeviceUpgradeStatusDto
|
|
30
30
|
""" # noqa: E501
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
managed_tenant_uid: Optional[StrictStr] = Field(default=None, alias="managedTenantUid")
|
|
35
|
-
__properties: ClassVar[List[str]] = ["compatibleFtdVersions", "deviceUids", "hardwareModel", "managedTenantUid"]
|
|
31
|
+
completion_statuses: Optional[List[CompletionStatusDto]] = Field(default=None, description="The completion status of the upgrade on the device. For HA pairs or clusters, there will be multiple completion statuses; one per node of the pair or cluster.", alias="completionStatuses")
|
|
32
|
+
uid: Optional[StrictStr] = Field(default=None, description="The unique identifier, represented as a UUID, of the device in SCC Firewall Manager.")
|
|
33
|
+
__properties: ClassVar[List[str]] = ["completionStatuses", "uid"]
|
|
36
34
|
|
|
37
35
|
model_config = ConfigDict(
|
|
38
36
|
populate_by_name=True,
|
|
@@ -52,7 +50,7 @@ class TenantFtdCompatibilityVersion(BaseModel):
|
|
|
52
50
|
|
|
53
51
|
@classmethod
|
|
54
52
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
55
|
-
"""Create an instance of
|
|
53
|
+
"""Create an instance of DeviceUpgradeStatusDto from a JSON string"""
|
|
56
54
|
return cls.from_dict(json.loads(json_str))
|
|
57
55
|
|
|
58
56
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -73,18 +71,18 @@ class TenantFtdCompatibilityVersion(BaseModel):
|
|
|
73
71
|
exclude=excluded_fields,
|
|
74
72
|
exclude_none=True,
|
|
75
73
|
)
|
|
76
|
-
# override the default output from pydantic by calling `to_dict()` of each item in
|
|
74
|
+
# override the default output from pydantic by calling `to_dict()` of each item in completion_statuses (list)
|
|
77
75
|
_items = []
|
|
78
|
-
if self.
|
|
79
|
-
for _item in self.
|
|
76
|
+
if self.completion_statuses:
|
|
77
|
+
for _item in self.completion_statuses:
|
|
80
78
|
if _item:
|
|
81
79
|
_items.append(_item.to_dict())
|
|
82
|
-
_dict['
|
|
80
|
+
_dict['completionStatuses'] = _items
|
|
83
81
|
return _dict
|
|
84
82
|
|
|
85
83
|
@classmethod
|
|
86
84
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
87
|
-
"""Create an instance of
|
|
85
|
+
"""Create an instance of DeviceUpgradeStatusDto from a dict"""
|
|
88
86
|
if obj is None:
|
|
89
87
|
return None
|
|
90
88
|
|
|
@@ -92,10 +90,8 @@ class TenantFtdCompatibilityVersion(BaseModel):
|
|
|
92
90
|
return cls.model_validate(obj)
|
|
93
91
|
|
|
94
92
|
_obj = cls.model_validate({
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"hardwareModel": obj.get("hardwareModel"),
|
|
98
|
-
"managedTenantUid": obj.get("managedTenantUid")
|
|
93
|
+
"completionStatuses": [CompletionStatusDto.from_dict(_item) for _item in obj["completionStatuses"]] if obj.get("completionStatuses") is not None else None,
|
|
94
|
+
"uid": obj.get("uid")
|
|
99
95
|
})
|
|
100
96
|
return _obj
|
|
101
97
|
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Cisco Security Cloud Control Firewall Manager API
|
|
5
|
+
|
|
6
|
+
Use the documentation to explore the endpoints Security Cloud Control Firewall Manager has to offer
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.15.0
|
|
9
|
+
Contact: cdo.tac@cisco.com
|
|
10
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
11
|
+
|
|
12
|
+
Do not edit the class manually.
|
|
13
|
+
""" # noqa: E501
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
import pprint
|
|
18
|
+
import re # noqa: F401
|
|
19
|
+
import json
|
|
20
|
+
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictBool
|
|
22
|
+
from typing import Any, ClassVar, Dict, List
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
|
|
26
|
+
class EnableCdFmcForTenantRequest(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
EnableCdFmcForTenantRequest
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
dedicated_cd_fmc_instance: StrictBool = Field(alias="dedicatedCdFmcInstance")
|
|
31
|
+
__properties: ClassVar[List[str]] = ["dedicatedCdFmcInstance"]
|
|
32
|
+
|
|
33
|
+
model_config = ConfigDict(
|
|
34
|
+
populate_by_name=True,
|
|
35
|
+
validate_assignment=True,
|
|
36
|
+
protected_namespaces=(),
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def to_str(self) -> str:
|
|
41
|
+
"""Returns the string representation of the model using alias"""
|
|
42
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
43
|
+
|
|
44
|
+
def to_json(self) -> str:
|
|
45
|
+
"""Returns the JSON representation of the model using alias"""
|
|
46
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
47
|
+
return json.dumps(self.to_dict())
|
|
48
|
+
|
|
49
|
+
@classmethod
|
|
50
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
51
|
+
"""Create an instance of EnableCdFmcForTenantRequest from a JSON string"""
|
|
52
|
+
return cls.from_dict(json.loads(json_str))
|
|
53
|
+
|
|
54
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
55
|
+
"""Return the dictionary representation of the model using alias.
|
|
56
|
+
|
|
57
|
+
This has the following differences from calling pydantic's
|
|
58
|
+
`self.model_dump(by_alias=True)`:
|
|
59
|
+
|
|
60
|
+
* `None` is only added to the output dict for nullable fields that
|
|
61
|
+
were set at model initialization. Other fields with value `None`
|
|
62
|
+
are ignored.
|
|
63
|
+
"""
|
|
64
|
+
excluded_fields: Set[str] = set([
|
|
65
|
+
])
|
|
66
|
+
|
|
67
|
+
_dict = self.model_dump(
|
|
68
|
+
by_alias=True,
|
|
69
|
+
exclude=excluded_fields,
|
|
70
|
+
exclude_none=True,
|
|
71
|
+
)
|
|
72
|
+
return _dict
|
|
73
|
+
|
|
74
|
+
@classmethod
|
|
75
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
76
|
+
"""Create an instance of EnableCdFmcForTenantRequest from a dict"""
|
|
77
|
+
if obj is None:
|
|
78
|
+
return None
|
|
79
|
+
|
|
80
|
+
if not isinstance(obj, dict):
|
|
81
|
+
return cls.model_validate(obj)
|
|
82
|
+
|
|
83
|
+
_obj = cls.model_validate({
|
|
84
|
+
"dedicatedCdFmcInstance": obj.get("dedicatedCdFmcInstance")
|
|
85
|
+
})
|
|
86
|
+
return _obj
|
|
87
|
+
|
|
88
|
+
|
|
@@ -28,7 +28,7 @@ class LogSettings(BaseModel):
|
|
|
28
28
|
LogSettings
|
|
29
29
|
""" # noqa: E501
|
|
30
30
|
interval: Optional[StrictInt] = Field(default=None, description="The interval")
|
|
31
|
-
level: StrictStr = Field(description="The level")
|
|
31
|
+
level: Optional[StrictStr] = Field(default=None, description="The level")
|
|
32
32
|
__properties: ClassVar[List[str]] = ["interval", "level"]
|
|
33
33
|
|
|
34
34
|
model_config = ConfigDict(
|
|
@@ -18,8 +18,8 @@ import pprint
|
|
|
18
18
|
import re # noqa: F401
|
|
19
19
|
import json
|
|
20
20
|
|
|
21
|
-
from pydantic import BaseModel, ConfigDict, Field,
|
|
22
|
-
from typing import Any, ClassVar, Dict, List, Optional
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
23
|
from typing import Optional, Set
|
|
24
24
|
from typing_extensions import Self
|
|
25
25
|
|
|
@@ -29,11 +29,13 @@ class MetricAggregationListItem(BaseModel):
|
|
|
29
29
|
""" # noqa: E501
|
|
30
30
|
device_name: Optional[StrictStr] = Field(default=None, alias="deviceName")
|
|
31
31
|
device_uid: Optional[StrictStr] = Field(default=None, alias="deviceUid")
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
interface_name: Optional[StrictStr] = Field(default=None, alias="interfaceName")
|
|
33
|
+
interface_uid: Optional[StrictStr] = Field(default=None, alias="interfaceUid")
|
|
34
34
|
metric: Optional[StrictStr] = None
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
tenant_name: Optional[StrictStr] = Field(default=None, alias="tenantName")
|
|
36
|
+
tenant_uid: Optional[StrictStr] = Field(default=None, alias="tenantUid")
|
|
37
|
+
value: Optional[StrictStr] = None
|
|
38
|
+
__properties: ClassVar[List[str]] = ["deviceName", "deviceUid", "interfaceName", "interfaceUid", "metric", "tenantName", "tenantUid", "value"]
|
|
37
39
|
|
|
38
40
|
model_config = ConfigDict(
|
|
39
41
|
populate_by_name=True,
|
|
@@ -88,9 +90,11 @@ class MetricAggregationListItem(BaseModel):
|
|
|
88
90
|
_obj = cls.model_validate({
|
|
89
91
|
"deviceName": obj.get("deviceName"),
|
|
90
92
|
"deviceUid": obj.get("deviceUid"),
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
+
"interfaceName": obj.get("interfaceName"),
|
|
94
|
+
"interfaceUid": obj.get("interfaceUid"),
|
|
93
95
|
"metric": obj.get("metric"),
|
|
96
|
+
"tenantName": obj.get("tenantName"),
|
|
97
|
+
"tenantUid": obj.get("tenantUid"),
|
|
94
98
|
"value": obj.get("value")
|
|
95
99
|
})
|
|
96
100
|
return _obj
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Cisco Security Cloud Control Firewall Manager API
|
|
5
|
+
|
|
6
|
+
Use the documentation to explore the endpoints Security Cloud Control Firewall Manager has to offer
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.15.0
|
|
9
|
+
Contact: cdo.tac@cisco.com
|
|
10
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
11
|
+
|
|
12
|
+
Do not edit the class manually.
|
|
13
|
+
""" # noqa: E501
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
import pprint
|
|
18
|
+
import re # noqa: F401
|
|
19
|
+
import json
|
|
20
|
+
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
|
+
from typing_extensions import Annotated
|
|
24
|
+
from typing import Optional, Set
|
|
25
|
+
from typing_extensions import Self
|
|
26
|
+
|
|
27
|
+
class MspCalculateCompatibleUpgradeVersionsInput(BaseModel):
|
|
28
|
+
"""
|
|
29
|
+
List of unique identifiers, represented as UUIDs, of the devices in Security Cloud Control. Note that all the specified devices must be in tenants managed by the MSP portal.
|
|
30
|
+
""" # noqa: E501
|
|
31
|
+
device_uids: Optional[Annotated[List[StrictStr], Field(min_length=1, max_length=50)]] = Field(default=None, description="The list of devices to calculate compatible upgrade versions for. All of the devices must exist, be associated with the managed tenant, and be in the connectivity state 'ONLINE'.", alias="deviceUids")
|
|
32
|
+
__properties: ClassVar[List[str]] = ["deviceUids"]
|
|
33
|
+
|
|
34
|
+
model_config = ConfigDict(
|
|
35
|
+
populate_by_name=True,
|
|
36
|
+
validate_assignment=True,
|
|
37
|
+
protected_namespaces=(),
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def to_str(self) -> str:
|
|
42
|
+
"""Returns the string representation of the model using alias"""
|
|
43
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
44
|
+
|
|
45
|
+
def to_json(self) -> str:
|
|
46
|
+
"""Returns the JSON representation of the model using alias"""
|
|
47
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
48
|
+
return json.dumps(self.to_dict())
|
|
49
|
+
|
|
50
|
+
@classmethod
|
|
51
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
52
|
+
"""Create an instance of MspCalculateCompatibleUpgradeVersionsInput from a JSON string"""
|
|
53
|
+
return cls.from_dict(json.loads(json_str))
|
|
54
|
+
|
|
55
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
56
|
+
"""Return the dictionary representation of the model using alias.
|
|
57
|
+
|
|
58
|
+
This has the following differences from calling pydantic's
|
|
59
|
+
`self.model_dump(by_alias=True)`:
|
|
60
|
+
|
|
61
|
+
* `None` is only added to the output dict for nullable fields that
|
|
62
|
+
were set at model initialization. Other fields with value `None`
|
|
63
|
+
are ignored.
|
|
64
|
+
"""
|
|
65
|
+
excluded_fields: Set[str] = set([
|
|
66
|
+
])
|
|
67
|
+
|
|
68
|
+
_dict = self.model_dump(
|
|
69
|
+
by_alias=True,
|
|
70
|
+
exclude=excluded_fields,
|
|
71
|
+
exclude_none=True,
|
|
72
|
+
)
|
|
73
|
+
return _dict
|
|
74
|
+
|
|
75
|
+
@classmethod
|
|
76
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
77
|
+
"""Create an instance of MspCalculateCompatibleUpgradeVersionsInput from a dict"""
|
|
78
|
+
if obj is None:
|
|
79
|
+
return None
|
|
80
|
+
|
|
81
|
+
if not isinstance(obj, dict):
|
|
82
|
+
return cls.model_validate(obj)
|
|
83
|
+
|
|
84
|
+
_obj = cls.model_validate({
|
|
85
|
+
"deviceUids": obj.get("deviceUids")
|
|
86
|
+
})
|
|
87
|
+
return _obj
|
|
88
|
+
|
|
89
|
+
|
|
@@ -26,7 +26,9 @@ from scc_firewall_manager_sdk.models.asa_failover_mode import AsaFailoverMode
|
|
|
26
26
|
from scc_firewall_manager_sdk.models.config_state import ConfigState
|
|
27
27
|
from scc_firewall_manager_sdk.models.conflict_detection_state import ConflictDetectionState
|
|
28
28
|
from scc_firewall_manager_sdk.models.connectivity_state import ConnectivityState
|
|
29
|
+
from scc_firewall_manager_sdk.models.device_maintenance_window import DeviceMaintenanceWindow
|
|
29
30
|
from scc_firewall_manager_sdk.models.entity_type import EntityType
|
|
31
|
+
from scc_firewall_manager_sdk.models.fmc_device_record import FmcDeviceRecord
|
|
30
32
|
from scc_firewall_manager_sdk.models.ftd_cluster_info import FtdClusterInfo
|
|
31
33
|
from scc_firewall_manager_sdk.models.ftd_ha_info import FtdHaInfo
|
|
32
34
|
from scc_firewall_manager_sdk.models.labels import Labels
|
|
@@ -46,6 +48,8 @@ class MspManagedDevice(BaseModel):
|
|
|
46
48
|
config_state: Optional[ConfigState] = Field(default=None, alias="configState")
|
|
47
49
|
conflict_detection_state: Optional[ConflictDetectionState] = Field(default=None, alias="conflictDetectionState")
|
|
48
50
|
connectivity_state: Optional[ConnectivityState] = Field(default=None, alias="connectivityState")
|
|
51
|
+
device_maintenance_window: Optional[DeviceMaintenanceWindow] = Field(default=None, alias="deviceMaintenanceWindow")
|
|
52
|
+
device_record_on_fmc: Optional[FmcDeviceRecord] = Field(default=None, alias="deviceRecordOnFmc")
|
|
49
53
|
device_type: Optional[EntityType] = Field(default=None, alias="deviceType")
|
|
50
54
|
ftd_cluster_info: Optional[FtdClusterInfo] = Field(default=None, alias="ftdClusterInfo")
|
|
51
55
|
ftd_ha_info: Optional[FtdHaInfo] = Field(default=None, alias="ftdHaInfo")
|
|
@@ -63,7 +67,7 @@ class MspManagedDevice(BaseModel):
|
|
|
63
67
|
software_version: Optional[StrictStr] = Field(default=None, description="The version of the software running on the device.", alias="softwareVersion")
|
|
64
68
|
tenant_uid: Optional[StrictStr] = Field(default=None, alias="tenantUid")
|
|
65
69
|
uid: Optional[StrictStr] = Field(default=None, description="The unique identifier, represented as a UUID, of the device in Security Cloud Control.")
|
|
66
|
-
__properties: ClassVar[List[str]] = ["address", "asaFailoverMate", "asaFailoverMode", "asaFailoverState", "certificateExpiryDate", "chassisSerial", "configState", "conflictDetectionState", "connectivityState", "deviceType", "ftdClusterInfo", "ftdHaInfo", "hardwareModel", "labels", "managedTenantDisplayName", "managedTenantName", "managedTenantRegion", "managedTenantUid", "modelNumber", "name", "raVpnCertificateExpiryDate", "redundancyMode", "serial", "softwareVersion", "tenantUid", "uid"]
|
|
70
|
+
__properties: ClassVar[List[str]] = ["address", "asaFailoverMate", "asaFailoverMode", "asaFailoverState", "certificateExpiryDate", "chassisSerial", "configState", "conflictDetectionState", "connectivityState", "deviceMaintenanceWindow", "deviceRecordOnFmc", "deviceType", "ftdClusterInfo", "ftdHaInfo", "hardwareModel", "labels", "managedTenantDisplayName", "managedTenantName", "managedTenantRegion", "managedTenantUid", "modelNumber", "name", "raVpnCertificateExpiryDate", "redundancyMode", "serial", "softwareVersion", "tenantUid", "uid"]
|
|
67
71
|
|
|
68
72
|
@field_validator('redundancy_mode')
|
|
69
73
|
def redundancy_mode_validate_enum(cls, value):
|
|
@@ -117,6 +121,12 @@ class MspManagedDevice(BaseModel):
|
|
|
117
121
|
# override the default output from pydantic by calling `to_dict()` of asa_failover_mate
|
|
118
122
|
if self.asa_failover_mate:
|
|
119
123
|
_dict['asaFailoverMate'] = self.asa_failover_mate.to_dict()
|
|
124
|
+
# override the default output from pydantic by calling `to_dict()` of device_maintenance_window
|
|
125
|
+
if self.device_maintenance_window:
|
|
126
|
+
_dict['deviceMaintenanceWindow'] = self.device_maintenance_window.to_dict()
|
|
127
|
+
# override the default output from pydantic by calling `to_dict()` of device_record_on_fmc
|
|
128
|
+
if self.device_record_on_fmc:
|
|
129
|
+
_dict['deviceRecordOnFmc'] = self.device_record_on_fmc.to_dict()
|
|
120
130
|
# override the default output from pydantic by calling `to_dict()` of ftd_cluster_info
|
|
121
131
|
if self.ftd_cluster_info:
|
|
122
132
|
_dict['ftdClusterInfo'] = self.ftd_cluster_info.to_dict()
|
|
@@ -147,6 +157,8 @@ class MspManagedDevice(BaseModel):
|
|
|
147
157
|
"configState": obj.get("configState"),
|
|
148
158
|
"conflictDetectionState": obj.get("conflictDetectionState"),
|
|
149
159
|
"connectivityState": obj.get("connectivityState"),
|
|
160
|
+
"deviceMaintenanceWindow": DeviceMaintenanceWindow.from_dict(obj["deviceMaintenanceWindow"]) if obj.get("deviceMaintenanceWindow") is not None else None,
|
|
161
|
+
"deviceRecordOnFmc": FmcDeviceRecord.from_dict(obj["deviceRecordOnFmc"]) if obj.get("deviceRecordOnFmc") is not None else None,
|
|
150
162
|
"deviceType": obj.get("deviceType"),
|
|
151
163
|
"ftdClusterInfo": FtdClusterInfo.from_dict(obj["ftdClusterInfo"]) if obj.get("ftdClusterInfo") is not None else None,
|
|
152
164
|
"ftdHaInfo": FtdHaInfo.from_dict(obj["ftdHaInfo"]) if obj.get("ftdHaInfo") is not None else None,
|
|
@@ -35,11 +35,13 @@ class MspManagedDeviceDistinctAttributeValues(BaseModel):
|
|
|
35
35
|
conflict_detection_states: Optional[List[ConflictDetectionState]] = Field(default=None, description="The distinct conflict detection states for the devices managed by the MSP Portal.", alias="conflictDetectionStates")
|
|
36
36
|
connectivity_states: Optional[List[ConnectivityState]] = Field(default=None, description="The distinct connectivity states for the devices managed by the MSP Portal.", alias="connectivityStates")
|
|
37
37
|
device_types: Optional[List[EntityType]] = Field(default=None, description="The distinct device types for the devices managed by the MSP Portal.", alias="deviceTypes")
|
|
38
|
+
hardware_models: Optional[List[StrictStr]] = Field(default=None, description="The distinct hardware models for the devices managed by the MSP Portal.", alias="hardwareModels")
|
|
38
39
|
managed_tenant_display_names: Optional[List[StrictStr]] = Field(default=None, description="The display names of the tenants that have devices onboarded and are managed by the MSP Portal.", alias="managedTenantDisplayNames")
|
|
39
40
|
managed_tenant_names: Optional[List[StrictStr]] = Field(default=None, description="The names of the tenants that have devices onboarded and are managed by the MSP Portal.", alias="managedTenantNames")
|
|
41
|
+
model_numbers: Optional[List[StrictStr]] = Field(default=None, description="The distinct model numbers for the devices managed by the MSP Portal.", alias="modelNumbers")
|
|
40
42
|
redundancy_modes: Optional[List[StrictStr]] = Field(default=None, description="The distinct redundancy modes for the devices managed by the MSP Portal.", alias="redundancyModes")
|
|
41
43
|
software_versions: Optional[Dict[str, List[StrictStr]]] = Field(default=None, description="The software versions of the devices managed by the MSP Portal.", alias="softwareVersions")
|
|
42
|
-
__properties: ClassVar[List[str]] = ["configStates", "conflictDetectionStates", "connectivityStates", "deviceTypes", "managedTenantDisplayNames", "managedTenantNames", "redundancyModes", "softwareVersions"]
|
|
44
|
+
__properties: ClassVar[List[str]] = ["configStates", "conflictDetectionStates", "connectivityStates", "deviceTypes", "hardwareModels", "managedTenantDisplayNames", "managedTenantNames", "modelNumbers", "redundancyModes", "softwareVersions"]
|
|
43
45
|
|
|
44
46
|
@field_validator('redundancy_modes')
|
|
45
47
|
def redundancy_modes_validate_enum(cls, value):
|
|
@@ -107,8 +109,10 @@ class MspManagedDeviceDistinctAttributeValues(BaseModel):
|
|
|
107
109
|
"conflictDetectionStates": obj.get("conflictDetectionStates"),
|
|
108
110
|
"connectivityStates": obj.get("connectivityStates"),
|
|
109
111
|
"deviceTypes": obj.get("deviceTypes"),
|
|
112
|
+
"hardwareModels": obj.get("hardwareModels"),
|
|
110
113
|
"managedTenantDisplayNames": obj.get("managedTenantDisplayNames"),
|
|
111
114
|
"managedTenantNames": obj.get("managedTenantNames"),
|
|
115
|
+
"modelNumbers": obj.get("modelNumbers"),
|
|
112
116
|
"redundancyModes": obj.get("redundancyModes"),
|
|
113
117
|
"softwareVersions": obj.get("softwareVersions")
|
|
114
118
|
})
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Cisco Security Cloud Control Firewall Manager API
|
|
5
|
+
|
|
6
|
+
Use the documentation to explore the endpoints Security Cloud Control Firewall Manager has to offer
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.15.0
|
|
9
|
+
Contact: cdo.tac@cisco.com
|
|
10
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
11
|
+
|
|
12
|
+
Do not edit the class manually.
|
|
13
|
+
""" # noqa: E501
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
import pprint
|
|
18
|
+
import re # noqa: F401
|
|
19
|
+
import json
|
|
20
|
+
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
|
+
from typing_extensions import Annotated
|
|
24
|
+
from typing import Optional, Set
|
|
25
|
+
from typing_extensions import Self
|
|
26
|
+
|
|
27
|
+
class MspUpgradeFtdDevicesInput(BaseModel):
|
|
28
|
+
"""
|
|
29
|
+
MspUpgradeFtdDevicesInput
|
|
30
|
+
""" # noqa: E501
|
|
31
|
+
device_uids: Annotated[List[StrictStr], Field(min_length=1)] = Field(description=" <p>List of device identifiers to upgrade in Security Cloud Control.</p> <p>Each entry must meet all of the following:</p> <ul> <li>The identifier is a UUID (unique identifier).</li> <li>The device is managed by the MSSP portal.</li> <li>The device type is <code>CDFMC_MANAGED_FTD</code>.</li> <li>The connectivity state is <code>ONLINE</code>.</li> <li>The device is compatible with the specified software version.</li> </ul> ", alias="deviceUids")
|
|
32
|
+
ignore_maintenance_window: Optional[StrictBool] = Field(default=None, description=" <p>A boolean flag that determines whether device maintenance windows should be ignored during a full upgrade.</p> <ul> <li>If <code>stageUpgradeOnly</code> is set to <code>false</code>, this field is ignored.</li> <li>If <code>stageUpgradeOnly</code> is <code>true</code> and this field is set to <code>false</code> (the default), the upgrade will fail if any selected device is outside its maintenance window.</li> </ul> ", alias="ignoreMaintenanceWindow")
|
|
33
|
+
name: Optional[StrictStr] = Field(default=None, description="Specify a human-readable name for the upgrade run.")
|
|
34
|
+
software_version: Optional[StrictStr] = Field(default=None, description="Specify the software version to which all devices will be upgraded.", alias="softwareVersion")
|
|
35
|
+
stage_upgrade_only: Optional[StrictBool] = Field(default=False, description="A boolean value, indicating whether the upgrade should be staged. If set to true, the image will be downloaded onto the devices and readiness checks will be performed. However, the upgrade will not be applied to the devices.", alias="stageUpgradeOnly")
|
|
36
|
+
__properties: ClassVar[List[str]] = ["deviceUids", "ignoreMaintenanceWindow", "name", "softwareVersion", "stageUpgradeOnly"]
|
|
37
|
+
|
|
38
|
+
model_config = ConfigDict(
|
|
39
|
+
populate_by_name=True,
|
|
40
|
+
validate_assignment=True,
|
|
41
|
+
protected_namespaces=(),
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def to_str(self) -> str:
|
|
46
|
+
"""Returns the string representation of the model using alias"""
|
|
47
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
48
|
+
|
|
49
|
+
def to_json(self) -> str:
|
|
50
|
+
"""Returns the JSON representation of the model using alias"""
|
|
51
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
52
|
+
return json.dumps(self.to_dict())
|
|
53
|
+
|
|
54
|
+
@classmethod
|
|
55
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
56
|
+
"""Create an instance of MspUpgradeFtdDevicesInput from a JSON string"""
|
|
57
|
+
return cls.from_dict(json.loads(json_str))
|
|
58
|
+
|
|
59
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
60
|
+
"""Return the dictionary representation of the model using alias.
|
|
61
|
+
|
|
62
|
+
This has the following differences from calling pydantic's
|
|
63
|
+
`self.model_dump(by_alias=True)`:
|
|
64
|
+
|
|
65
|
+
* `None` is only added to the output dict for nullable fields that
|
|
66
|
+
were set at model initialization. Other fields with value `None`
|
|
67
|
+
are ignored.
|
|
68
|
+
"""
|
|
69
|
+
excluded_fields: Set[str] = set([
|
|
70
|
+
])
|
|
71
|
+
|
|
72
|
+
_dict = self.model_dump(
|
|
73
|
+
by_alias=True,
|
|
74
|
+
exclude=excluded_fields,
|
|
75
|
+
exclude_none=True,
|
|
76
|
+
)
|
|
77
|
+
return _dict
|
|
78
|
+
|
|
79
|
+
@classmethod
|
|
80
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
81
|
+
"""Create an instance of MspUpgradeFtdDevicesInput from a dict"""
|
|
82
|
+
if obj is None:
|
|
83
|
+
return None
|
|
84
|
+
|
|
85
|
+
if not isinstance(obj, dict):
|
|
86
|
+
return cls.model_validate(obj)
|
|
87
|
+
|
|
88
|
+
_obj = cls.model_validate({
|
|
89
|
+
"deviceUids": obj.get("deviceUids"),
|
|
90
|
+
"ignoreMaintenanceWindow": obj.get("ignoreMaintenanceWindow"),
|
|
91
|
+
"name": obj.get("name"),
|
|
92
|
+
"softwareVersion": obj.get("softwareVersion"),
|
|
93
|
+
"stageUpgradeOnly": obj.get("stageUpgradeOnly") if obj.get("stageUpgradeOnly") is not None else False
|
|
94
|
+
})
|
|
95
|
+
return _obj
|
|
96
|
+
|
|
97
|
+
|