scc-firewall-manager-sdk 1.15.287__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.
Files changed (50) hide show
  1. scc_firewall_manager_sdk/__init__.py +9 -1
  2. scc_firewall_manager_sdk/api/__init__.py +2 -0
  3. scc_firewall_manager_sdk/api/ai_assistant_api.py +12 -12
  4. scc_firewall_manager_sdk/api/asa_access_groups_api.py +12 -12
  5. scc_firewall_manager_sdk/api/asa_access_rules_api.py +12 -12
  6. scc_firewall_manager_sdk/api/asa_interfaces_api.py +72 -72
  7. scc_firewall_manager_sdk/api/audit_logs_api.py +12 -12
  8. scc_firewall_manager_sdk/api/change_requests_api.py +12 -12
  9. scc_firewall_manager_sdk/api/changelogs_api.py +12 -12
  10. scc_firewall_manager_sdk/api/command_line_interface_api.py +24 -24
  11. scc_firewall_manager_sdk/api/connectors_api.py +12 -313
  12. scc_firewall_manager_sdk/api/device_health_aggregations_api.py +6 -6
  13. scc_firewall_manager_sdk/api/device_upgrades_api.py +15 -15
  14. scc_firewall_manager_sdk/api/events_api.py +358 -0
  15. scc_firewall_manager_sdk/api/interface_health_aggregations_api.py +6 -6
  16. scc_firewall_manager_sdk/api/inventory_api.py +48 -48
  17. scc_firewall_manager_sdk/api/licensing_api.py +626 -0
  18. scc_firewall_manager_sdk/api/msp_device_upgrades_api.py +53 -24
  19. scc_firewall_manager_sdk/api/msp_inventory_api.py +48 -48
  20. scc_firewall_manager_sdk/api/msp_tenant_management_api.py +41 -12
  21. scc_firewall_manager_sdk/api/msp_user_management_api.py +24 -24
  22. scc_firewall_manager_sdk/api/remote_access_monitoring_api.py +24 -24
  23. scc_firewall_manager_sdk/api/tenant_management_api.py +21 -18
  24. scc_firewall_manager_sdk/api/users_api.py +30 -30
  25. scc_firewall_manager_sdk/api_client.py +1 -1
  26. scc_firewall_manager_sdk/configuration.py +1 -1
  27. scc_firewall_manager_sdk/models/__init__.py +6 -0
  28. scc_firewall_manager_sdk/models/access_group.py +1 -1
  29. scc_firewall_manager_sdk/models/cdo_transaction.py +12 -12
  30. scc_firewall_manager_sdk/models/common_api_error.py +3 -3
  31. scc_firewall_manager_sdk/models/completion_status_dto.py +104 -0
  32. scc_firewall_manager_sdk/models/device_license_dto.py +133 -0
  33. scc_firewall_manager_sdk/models/device_license_page.py +102 -0
  34. scc_firewall_manager_sdk/models/device_upgrade_status_dto.py +13 -7
  35. scc_firewall_manager_sdk/models/enable_cd_fmc_for_tenant_request.py +88 -0
  36. scc_firewall_manager_sdk/models/log_settings.py +1 -1
  37. scc_firewall_manager_sdk/models/msp_calculate_compatible_upgrade_versions_input.py +1 -1
  38. scc_firewall_manager_sdk/models/msp_managed_device.py +7 -1
  39. scc_firewall_manager_sdk/models/msp_managed_device_distinct_attribute_values.py +5 -1
  40. scc_firewall_manager_sdk/models/msp_upgrade_ftd_devices_input.py +97 -0
  41. scc_firewall_manager_sdk/models/msp_upgrade_run_dto.py +9 -9
  42. scc_firewall_manager_sdk/models/msp_upgrade_runs_attribute_values.py +18 -3
  43. scc_firewall_manager_sdk/models/smart_account.py +90 -0
  44. scc_firewall_manager_sdk/models/tenant_settings.py +3 -1
  45. scc_firewall_manager_sdk/models/upgrade_run_dto.py +1 -1
  46. scc_firewall_manager_sdk/models/upgrade_run_metadata_dto.py +1 -1
  47. {scc_firewall_manager_sdk-1.15.287.dist-info → scc_firewall_manager_sdk-1.15.563.dist-info}/METADATA +1 -1
  48. {scc_firewall_manager_sdk-1.15.287.dist-info → scc_firewall_manager_sdk-1.15.563.dist-info}/RECORD +50 -42
  49. {scc_firewall_manager_sdk-1.15.287.dist-info → scc_firewall_manager_sdk-1.15.563.dist-info}/WHEEL +0 -0
  50. {scc_firewall_manager_sdk-1.15.287.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
+
@@ -18,8 +18,9 @@ import pprint
18
18
  import re # noqa: F401
19
19
  import json
20
20
 
21
- from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
22
- from typing import Any, ClassVar, Dict, List, Optional, Union
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from scc_firewall_manager_sdk.models.completion_status_dto import CompletionStatusDto
23
24
  from typing import Optional, Set
24
25
  from typing_extensions import Self
25
26
 
@@ -27,10 +28,9 @@ class DeviceUpgradeStatusDto(BaseModel):
27
28
  """
28
29
  DeviceUpgradeStatusDto
29
30
  """ # noqa: E501
30
- message: Optional[StrictStr] = Field(default=None, description="A message, indicating current progress, returned from the device.")
31
- percentage_complete: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The percentage completion of the current task being performed", alias="percentageComplete")
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
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]] = ["message", "percentageComplete", "uid"]
33
+ __properties: ClassVar[List[str]] = ["completionStatuses", "uid"]
34
34
 
35
35
  model_config = ConfigDict(
36
36
  populate_by_name=True,
@@ -71,6 +71,13 @@ class DeviceUpgradeStatusDto(BaseModel):
71
71
  exclude=excluded_fields,
72
72
  exclude_none=True,
73
73
  )
74
+ # override the default output from pydantic by calling `to_dict()` of each item in completion_statuses (list)
75
+ _items = []
76
+ if self.completion_statuses:
77
+ for _item in self.completion_statuses:
78
+ if _item:
79
+ _items.append(_item.to_dict())
80
+ _dict['completionStatuses'] = _items
74
81
  return _dict
75
82
 
76
83
  @classmethod
@@ -83,8 +90,7 @@ class DeviceUpgradeStatusDto(BaseModel):
83
90
  return cls.model_validate(obj)
84
91
 
85
92
  _obj = cls.model_validate({
86
- "message": obj.get("message"),
87
- "percentageComplete": obj.get("percentageComplete"),
93
+ "completionStatuses": [CompletionStatusDto.from_dict(_item) for _item in obj["completionStatuses"]] if obj.get("completionStatuses") is not None else None,
88
94
  "uid": obj.get("uid")
89
95
  })
90
96
  return _obj
@@ -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(
@@ -26,7 +26,7 @@ from typing_extensions import Self
26
26
 
27
27
  class MspCalculateCompatibleUpgradeVersionsInput(BaseModel):
28
28
  """
29
- A list of unique identifiers, represented as UUIDs, of the devices in Security Cloud Control. Note: All of the devices specified have to be on tenants managed by the MSP portal.
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
30
  """ # noqa: E501
31
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
32
  __properties: ClassVar[List[str]] = ["deviceUids"]
@@ -26,6 +26,7 @@ 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
30
31
  from scc_firewall_manager_sdk.models.fmc_device_record import FmcDeviceRecord
31
32
  from scc_firewall_manager_sdk.models.ftd_cluster_info import FtdClusterInfo
@@ -47,6 +48,7 @@ class MspManagedDevice(BaseModel):
47
48
  config_state: Optional[ConfigState] = Field(default=None, alias="configState")
48
49
  conflict_detection_state: Optional[ConflictDetectionState] = Field(default=None, alias="conflictDetectionState")
49
50
  connectivity_state: Optional[ConnectivityState] = Field(default=None, alias="connectivityState")
51
+ device_maintenance_window: Optional[DeviceMaintenanceWindow] = Field(default=None, alias="deviceMaintenanceWindow")
50
52
  device_record_on_fmc: Optional[FmcDeviceRecord] = Field(default=None, alias="deviceRecordOnFmc")
51
53
  device_type: Optional[EntityType] = Field(default=None, alias="deviceType")
52
54
  ftd_cluster_info: Optional[FtdClusterInfo] = Field(default=None, alias="ftdClusterInfo")
@@ -65,7 +67,7 @@ class MspManagedDevice(BaseModel):
65
67
  software_version: Optional[StrictStr] = Field(default=None, description="The version of the software running on the device.", alias="softwareVersion")
66
68
  tenant_uid: Optional[StrictStr] = Field(default=None, alias="tenantUid")
67
69
  uid: Optional[StrictStr] = Field(default=None, description="The unique identifier, represented as a UUID, of the device in Security Cloud Control.")
68
- __properties: ClassVar[List[str]] = ["address", "asaFailoverMate", "asaFailoverMode", "asaFailoverState", "certificateExpiryDate", "chassisSerial", "configState", "conflictDetectionState", "connectivityState", "deviceRecordOnFmc", "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"]
69
71
 
70
72
  @field_validator('redundancy_mode')
71
73
  def redundancy_mode_validate_enum(cls, value):
@@ -119,6 +121,9 @@ class MspManagedDevice(BaseModel):
119
121
  # override the default output from pydantic by calling `to_dict()` of asa_failover_mate
120
122
  if self.asa_failover_mate:
121
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()
122
127
  # override the default output from pydantic by calling `to_dict()` of device_record_on_fmc
123
128
  if self.device_record_on_fmc:
124
129
  _dict['deviceRecordOnFmc'] = self.device_record_on_fmc.to_dict()
@@ -152,6 +157,7 @@ class MspManagedDevice(BaseModel):
152
157
  "configState": obj.get("configState"),
153
158
  "conflictDetectionState": obj.get("conflictDetectionState"),
154
159
  "connectivityState": obj.get("connectivityState"),
160
+ "deviceMaintenanceWindow": DeviceMaintenanceWindow.from_dict(obj["deviceMaintenanceWindow"]) if obj.get("deviceMaintenanceWindow") is not None else None,
155
161
  "deviceRecordOnFmc": FmcDeviceRecord.from_dict(obj["deviceRecordOnFmc"]) if obj.get("deviceRecordOnFmc") is not None else None,
156
162
  "deviceType": obj.get("deviceType"),
157
163
  "ftdClusterInfo": FtdClusterInfo.from_dict(obj["ftdClusterInfo"]) if obj.get("ftdClusterInfo") 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
+
@@ -29,18 +29,18 @@ class MspUpgradeRunDto(BaseModel):
29
29
  """
30
30
  MspUpgradeRunDto
31
31
  """ # noqa: E501
32
- error_msg: Optional[StrictStr] = Field(default=None, description="The error message if the upgrade run failed.", alias="errorMsg")
33
- last_updated_time: Optional[datetime] = Field(default=None, description="The time (UTC; represented using the RFC-3339 standard) at which the upgrade run was last updated.", alias="lastUpdatedTime")
32
+ error_msg: Optional[StrictStr] = Field(default=None, description="Error message if the upgrade run failed.", alias="errorMsg")
33
+ last_updated_time: Optional[datetime] = Field(default=None, description="Time (UTC; represented using the RFC-3339 standard) at which the upgrade run was last updated.", alias="lastUpdatedTime")
34
34
  metadata: Optional[UpgradeRunMetadataDto] = None
35
- name: Optional[StrictStr] = Field(default=None, description="The name of the upgrade run. Upgrade runs names are unique in a tenant in SCC Firewall Manager.")
36
- software_version: Optional[StrictStr] = Field(default=None, description="The target software version for the upgrade.", alias="softwareVersion")
35
+ name: Optional[StrictStr] = Field(default=None, description="Name of the upgrade run. Upgrade runs names are unique in a tenant in SCC Firewall Manager.")
36
+ software_version: Optional[StrictStr] = Field(default=None, description="Target software version for the upgrade.", alias="softwareVersion")
37
37
  stage_upgrade_only: Optional[StrictBool] = Field(default=None, description="Indicates if this upgrade run is to stage the upgrade on the device. If set to true, the upgrade is not applied on the device.", alias="stageUpgradeOnly")
38
- submission_time: Optional[datetime] = Field(default=None, description="The time (UTC; represented using the RFC-3339 standard) at which the upgrade run was triggered.", alias="submissionTime")
39
- transaction_uid: Optional[StrictStr] = Field(default=None, description="The unique identifier, represented as a UUID, of the CDO transaction that tracks this upgrade run.", alias="transactionUid")
38
+ submission_time: Optional[datetime] = Field(default=None, description="Time (UTC; represented using the RFC-3339 standard) at which the upgrade run was triggered.", alias="submissionTime")
39
+ transaction_uid: Optional[StrictStr] = Field(default=None, description="Unique identifier, represented as a UUID, of the CDO transaction that tracks this upgrade run.", alias="transactionUid")
40
40
  uid: Optional[StrictStr] = Field(default=None, description="The unique identifier, represented as a UUID, of the upgrade run in SCC Firewall Manager.")
41
- upgrade_run_status: Optional[StrictStr] = Field(default=None, description="The current status of the upgrade run.", alias="upgradeRunStatus")
42
- upgrade_run_type: Optional[StrictStr] = Field(default=None, description="The type of upgrade run", alias="upgradeRunType")
43
- username: Optional[StrictStr] = Field(default=None, description="The username of the user who initiated the upgrade run.")
41
+ upgrade_run_status: Optional[StrictStr] = Field(default=None, description="Current status of the upgrade run.", alias="upgradeRunStatus")
42
+ upgrade_run_type: Optional[StrictStr] = Field(default=None, description="Type of upgrade run", alias="upgradeRunType")
43
+ username: Optional[StrictStr] = Field(default=None, description="Username of the user who initiated the upgrade run.")
44
44
  __properties: ClassVar[List[str]] = ["errorMsg", "lastUpdatedTime", "metadata", "name", "softwareVersion", "stageUpgradeOnly", "submissionTime", "transactionUid", "uid", "upgradeRunStatus", "upgradeRunType", "username"]
45
45
 
46
46
  @field_validator('upgrade_run_status')
@@ -27,8 +27,10 @@ class MspUpgradeRunsAttributeValues(BaseModel):
27
27
  """
28
28
  MspUpgradeRunsAttributeValues
29
29
  """ # noqa: E501
30
- upgrade_run_statuses: Optional[List[StrictStr]] = Field(default=None, description="The distinct status values for the MSP upgrade runs on this MSP portal.", alias="upgradeRunStatuses")
31
- __properties: ClassVar[List[str]] = ["upgradeRunStatuses"]
30
+ upgrade_run_statuses: Optional[List[StrictStr]] = Field(default=None, description="Distinct status values for the MSP upgrade runs on this MSP portal.", alias="upgradeRunStatuses")
31
+ upgrade_run_types: Optional[List[StrictStr]] = Field(default=None, alias="upgradeRunTypes")
32
+ users: Optional[List[StrictStr]] = None
33
+ __properties: ClassVar[List[str]] = ["upgradeRunStatuses", "upgradeRunTypes", "users"]
32
34
 
33
35
  @field_validator('upgrade_run_statuses')
34
36
  def upgrade_run_statuses_validate_enum(cls, value):
@@ -41,6 +43,17 @@ class MspUpgradeRunsAttributeValues(BaseModel):
41
43
  raise ValueError("each list item must be one of ('IN_PROGRESS', 'REBUILDING_UPGRADE_CACHE', 'PERFORMING_UPGRADE', 'UPLOADING_IMAGE', 'PERFORMING_READINESS_CHECK', 'UPGRADE_STAGED', 'UPGRADE_STAGING_FAILED', 'UGPRADE_STAGING_FAILED', 'UPGRADE_COMPLETED', 'UPGRADE_FAILED')")
42
44
  return value
43
45
 
46
+ @field_validator('upgrade_run_types')
47
+ def upgrade_run_types_validate_enum(cls, value):
48
+ """Validates the enum"""
49
+ if value is None:
50
+ return value
51
+
52
+ for i in value:
53
+ if i not in set(['ASA_DEVICE_UPGRADE', 'FTD_DEVICE_UPGRADE', 'FTD_SECURE_CLIENT_UPGRADE', 'ASA_SECURE_CLIENT_UPGRADE']):
54
+ raise ValueError("each list item must be one of ('ASA_DEVICE_UPGRADE', 'FTD_DEVICE_UPGRADE', 'FTD_SECURE_CLIENT_UPGRADE', 'ASA_SECURE_CLIENT_UPGRADE')")
55
+ return value
56
+
44
57
  model_config = ConfigDict(
45
58
  populate_by_name=True,
46
59
  validate_assignment=True,
@@ -92,7 +105,9 @@ class MspUpgradeRunsAttributeValues(BaseModel):
92
105
  return cls.model_validate(obj)
93
106
 
94
107
  _obj = cls.model_validate({
95
- "upgradeRunStatuses": obj.get("upgradeRunStatuses")
108
+ "upgradeRunStatuses": obj.get("upgradeRunStatuses"),
109
+ "upgradeRunTypes": obj.get("upgradeRunTypes"),
110
+ "users": obj.get("users")
96
111
  })
97
112
  return _obj
98
113
 
@@ -0,0 +1,90 @@
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 import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class SmartAccount(BaseModel):
27
+ """
28
+ SmartAccount
29
+ """ # noqa: E501
30
+ parent: Optional[StrictStr] = Field(default=None, description="The name of the smart account used to license the device.")
31
+ virtual: Optional[StrictStr] = Field(default=None, description="The name of the virtual account, within the smart account, used to license the device")
32
+ __properties: ClassVar[List[str]] = ["parent", "virtual"]
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 SmartAccount 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 SmartAccount 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
+ "parent": obj.get("parent"),
86
+ "virtual": obj.get("virtual")
87
+ })
88
+ return _obj
89
+
90
+
@@ -38,11 +38,12 @@ class TenantSettings(BaseModel):
38
38
  deny_cisco_support_access_to_tenant: Optional[StrictBool] = Field(default=None, description="Indicates if Cisco support is denied access to the tenant.", alias="denyCiscoSupportAccessToTenant")
39
39
  msp_portal_uid: Optional[StrictStr] = Field(default=None, description="The unique identifier, represented as a UUID, of the MSP portal associated with the tenant.", alias="mspPortalUid")
40
40
  multicloud_defense: Optional[StrictBool] = Field(default=None, description="Indicates if the tenant has the multicloud defense enabled.", alias="multicloudDefense")
41
+ object_sharing_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if the tenant has Object Sharing enabled.", alias="objectSharingEnabled")
41
42
  policy_analyzer: Optional[StrictBool] = Field(default=None, description="Indicates if the tenant has the policy analyzer enabled.", alias="policyAnalyzer")
42
43
  scheduled_deployments: Optional[StrictBool] = Field(default=None, description="Indicates if the tenant has scheduled deployments enabled.", alias="scheduledDeployments")
43
44
  uid: Optional[StrictStr] = Field(default=None, description="The unique identifier, represented as a UUID, of the tenant in Security Cloud Control.")
44
45
  web_analytics: Optional[StrictBool] = Field(default=None, description="Indicates if web analytics are enabled for the tenant.", alias="webAnalytics")
45
- __properties: ClassVar[List[str]] = ["aiAssistant", "allowCrossRegionTenantAddition", "asaHealthMetrics", "autoAcceptDeviceChanges", "autoDiscoverOnPremFmcs", "changeRequestSupport", "conflictDetectionInterval", "denyCiscoSupportAccessToTenant", "mspPortalUid", "multicloudDefense", "policyAnalyzer", "scheduledDeployments", "uid", "webAnalytics"]
46
+ __properties: ClassVar[List[str]] = ["aiAssistant", "allowCrossRegionTenantAddition", "asaHealthMetrics", "autoAcceptDeviceChanges", "autoDiscoverOnPremFmcs", "changeRequestSupport", "conflictDetectionInterval", "denyCiscoSupportAccessToTenant", "mspPortalUid", "multicloudDefense", "objectSharingEnabled", "policyAnalyzer", "scheduledDeployments", "uid", "webAnalytics"]
46
47
 
47
48
  model_config = ConfigDict(
48
49
  populate_by_name=True,
@@ -105,6 +106,7 @@ class TenantSettings(BaseModel):
105
106
  "denyCiscoSupportAccessToTenant": obj.get("denyCiscoSupportAccessToTenant"),
106
107
  "mspPortalUid": obj.get("mspPortalUid"),
107
108
  "multicloudDefense": obj.get("multicloudDefense"),
109
+ "objectSharingEnabled": obj.get("objectSharingEnabled"),
108
110
  "policyAnalyzer": obj.get("policyAnalyzer"),
109
111
  "scheduledDeployments": obj.get("scheduledDeployments"),
110
112
  "uid": obj.get("uid"),
@@ -33,7 +33,7 @@ class UpgradeRunDto(BaseModel):
33
33
  name: Optional[StrictStr] = Field(default=None, description="The name of the upgrade run. Upgrade runs names are unique in a tenant in SCC Firewall Manager.")
34
34
  stage_upgrade_only: Optional[StrictBool] = Field(default=None, description="Indicates if this upgrade run is to stage the upgrade on the device. If set to true, the upgrade is not applied on the device.", alias="stageUpgradeOnly")
35
35
  transaction_uid: Optional[StrictStr] = Field(default=None, description="The unique identifier of the CDO transaction that tracks this upgrade run.", alias="transactionUid")
36
- uid: Optional[StrictStr] = Field(default=None, description="The unique identifier, represented as a UUID, of the FTD device upgrade run in SCC Firewall Manager.")
36
+ uid: Optional[StrictStr] = Field(default=None, description="The unique identifier, represented as a UUID, of the device upgrade run in SCC Firewall Manager.")
37
37
  upgrade_package_uid: Optional[StrictStr] = Field(default=None, description="(cdFMC-managed FTD device upgrades only) The unique identifier of the upgrade package being used.", alias="upgradePackageUid")
38
38
  upgrade_run_status: Optional[StrictStr] = Field(default=None, description="The current status of the upgrade run.", alias="upgradeRunStatus")
39
39
  upgrade_run_type: Optional[StrictStr] = Field(default=None, description="The type of the upgrade run", alias="upgradeRunType")
@@ -28,7 +28,7 @@ class UpgradeRunMetadataDto(BaseModel):
28
28
  """
29
29
  UpgradeRunMetadataDto
30
30
  """ # noqa: E501
31
- devices: Optional[List[DeviceUpgradeStatusDto]] = Field(default=None, description="The set of device UIDs that are part of this upgrade run.")
31
+ devices: Optional[List[DeviceUpgradeStatusDto]] = Field(default=None, description="Set of device UIDs that are part of this upgrade run.")
32
32
  __properties: ClassVar[List[str]] = ["devices"]
33
33
 
34
34
  model_config = ConfigDict(