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.
Files changed (58) hide show
  1. scc_firewall_manager_sdk/__init__.py +19 -2
  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 -12
  12. scc_firewall_manager_sdk/api/device_health_aggregations_api.py +19 -19
  13. scc_firewall_manager_sdk/api/device_upgrades_api.py +298 -297
  14. scc_firewall_manager_sdk/api/events_api.py +358 -0
  15. scc_firewall_manager_sdk/api/interface_health_aggregations_api.py +344 -0
  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 +1692 -37
  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/object_management_api.py +17 -0
  23. scc_firewall_manager_sdk/api/remote_access_monitoring_api.py +24 -24
  24. scc_firewall_manager_sdk/api/tenant_management_api.py +21 -18
  25. scc_firewall_manager_sdk/api/users_api.py +30 -30
  26. scc_firewall_manager_sdk/api_client.py +1 -1
  27. scc_firewall_manager_sdk/configuration.py +1 -1
  28. scc_firewall_manager_sdk/models/__init__.py +16 -1
  29. scc_firewall_manager_sdk/models/access_group.py +1 -1
  30. scc_firewall_manager_sdk/models/cdo_token_info.py +3 -1
  31. scc_firewall_manager_sdk/models/cdo_transaction.py +14 -14
  32. scc_firewall_manager_sdk/models/common_api_error.py +3 -3
  33. scc_firewall_manager_sdk/models/compatible_device_dto.py +100 -0
  34. scc_firewall_manager_sdk/models/compatible_version_info_dto.py +112 -0
  35. scc_firewall_manager_sdk/models/completion_status_dto.py +104 -0
  36. scc_firewall_manager_sdk/models/device_license_dto.py +133 -0
  37. scc_firewall_manager_sdk/models/device_license_page.py +102 -0
  38. scc_firewall_manager_sdk/models/{tenant_ftd_compatibility_version.py → device_upgrade_status_dto.py} +14 -18
  39. scc_firewall_manager_sdk/models/enable_cd_fmc_for_tenant_request.py +88 -0
  40. scc_firewall_manager_sdk/models/log_settings.py +1 -1
  41. scc_firewall_manager_sdk/models/metric_aggregation_list_item.py +12 -8
  42. scc_firewall_manager_sdk/models/msp_calculate_compatible_upgrade_versions_input.py +89 -0
  43. scc_firewall_manager_sdk/models/msp_managed_device.py +13 -1
  44. scc_firewall_manager_sdk/models/msp_managed_device_distinct_attribute_values.py +5 -1
  45. scc_firewall_manager_sdk/models/msp_upgrade_ftd_devices_input.py +97 -0
  46. scc_firewall_manager_sdk/models/msp_upgrade_run_dto.py +135 -0
  47. scc_firewall_manager_sdk/models/msp_upgrade_run_dto_page.py +102 -0
  48. scc_firewall_manager_sdk/models/msp_upgrade_runs_attribute_values.py +114 -0
  49. scc_firewall_manager_sdk/models/page.py +94 -0
  50. scc_firewall_manager_sdk/models/smart_account.py +90 -0
  51. scc_firewall_manager_sdk/models/tenant_settings.py +3 -1
  52. scc_firewall_manager_sdk/models/upgrade_compatibility_info_dto.py +107 -0
  53. scc_firewall_manager_sdk/models/upgrade_run_dto.py +14 -4
  54. scc_firewall_manager_sdk/models/upgrade_run_metadata_dto.py +96 -0
  55. {scc_firewall_manager_sdk-1.15.195.dist-info → scc_firewall_manager_sdk-1.15.563.dist-info}/METADATA +1 -1
  56. {scc_firewall_manager_sdk-1.15.195.dist-info → scc_firewall_manager_sdk-1.15.563.dist-info}/RECORD +58 -41
  57. {scc_firewall_manager_sdk-1.15.195.dist-info → scc_firewall_manager_sdk-1.15.563.dist-info}/WHEEL +0 -0
  58. {scc_firewall_manager_sdk-1.15.195.dist-info → scc_firewall_manager_sdk-1.15.563.dist-info}/top_level.txt +0 -0
@@ -74,6 +74,9 @@ from scc_firewall_manager_sdk.models.cluster_node import ClusterNode
74
74
  from scc_firewall_manager_sdk.models.command import Command
75
75
  from scc_firewall_manager_sdk.models.command_response import CommandResponse
76
76
  from scc_firewall_manager_sdk.models.common_api_error import CommonApiError
77
+ from scc_firewall_manager_sdk.models.compatible_device_dto import CompatibleDeviceDto
78
+ from scc_firewall_manager_sdk.models.compatible_version_info_dto import CompatibleVersionInfoDto
79
+ from scc_firewall_manager_sdk.models.completion_status_dto import CompletionStatusDto
77
80
  from scc_firewall_manager_sdk.models.config_state import ConfigState
78
81
  from scc_firewall_manager_sdk.models.conflict_detection_interval import ConflictDetectionInterval
79
82
  from scc_firewall_manager_sdk.models.conflict_detection_state import ConflictDetectionState
@@ -92,18 +95,22 @@ from scc_firewall_manager_sdk.models.device_end_of_life_device_info import Devic
92
95
  from scc_firewall_manager_sdk.models.device_end_of_life_recommendation import DeviceEndOfLifeRecommendation
93
96
  from scc_firewall_manager_sdk.models.device_end_of_life_report import DeviceEndOfLifeReport
94
97
  from scc_firewall_manager_sdk.models.device_gateway_api_request import DeviceGatewayApiRequest
98
+ from scc_firewall_manager_sdk.models.device_license_dto import DeviceLicenseDto
99
+ from scc_firewall_manager_sdk.models.device_license_page import DeviceLicensePage
95
100
  from scc_firewall_manager_sdk.models.device_maintenance_window import DeviceMaintenanceWindow
96
101
  from scc_firewall_manager_sdk.models.device_manager_patch_input import DeviceManagerPatchInput
97
102
  from scc_firewall_manager_sdk.models.device_metadata import DeviceMetadata
98
103
  from scc_firewall_manager_sdk.models.device_page import DevicePage
99
104
  from scc_firewall_manager_sdk.models.device_patch_input import DevicePatchInput
100
105
  from scc_firewall_manager_sdk.models.device_role import DeviceRole
106
+ from scc_firewall_manager_sdk.models.device_upgrade_status_dto import DeviceUpgradeStatusDto
101
107
  from scc_firewall_manager_sdk.models.devices_patch_input import DevicesPatchInput
102
108
  from scc_firewall_manager_sdk.models.disk_health_metrics import DiskHealthMetrics
103
109
  from scc_firewall_manager_sdk.models.domain_settings import DomainSettings
104
110
  from scc_firewall_manager_sdk.models.duo_admin_panel_create_or_update_input import DuoAdminPanelCreateOrUpdateInput
105
111
  from scc_firewall_manager_sdk.models.duplex_type import DuplexType
106
112
  from scc_firewall_manager_sdk.models.duplicate_group_dto import DuplicateGroupDto
113
+ from scc_firewall_manager_sdk.models.enable_cd_fmc_for_tenant_request import EnableCdFmcForTenantRequest
107
114
  from scc_firewall_manager_sdk.models.entity import Entity
108
115
  from scc_firewall_manager_sdk.models.entity_type import EntityType
109
116
  from scc_firewall_manager_sdk.models.ether_channel_interface_create_input import EtherChannelInterfaceCreateInput
@@ -168,6 +175,7 @@ from scc_firewall_manager_sdk.models.mfa_event import MfaEvent
168
175
  from scc_firewall_manager_sdk.models.mfa_event_page import MfaEventPage
169
176
  from scc_firewall_manager_sdk.models.msp_add_tenant_input import MspAddTenantInput
170
177
  from scc_firewall_manager_sdk.models.msp_add_users_to_tenant_input import MspAddUsersToTenantInput
178
+ from scc_firewall_manager_sdk.models.msp_calculate_compatible_upgrade_versions_input import MspCalculateCompatibleUpgradeVersionsInput
171
179
  from scc_firewall_manager_sdk.models.msp_create_tenant_input import MspCreateTenantInput
172
180
  from scc_firewall_manager_sdk.models.msp_delete_users_from_tenant_input import MspDeleteUsersFromTenantInput
173
181
  from scc_firewall_manager_sdk.models.msp_export_input import MspExportInput
@@ -185,6 +193,10 @@ from scc_firewall_manager_sdk.models.msp_managed_template_distinct_attribute_val
185
193
  from scc_firewall_manager_sdk.models.msp_managed_templates_page import MspManagedTemplatesPage
186
194
  from scc_firewall_manager_sdk.models.msp_managed_tenant import MspManagedTenant
187
195
  from scc_firewall_manager_sdk.models.msp_managed_tenant_page import MspManagedTenantPage
196
+ from scc_firewall_manager_sdk.models.msp_upgrade_ftd_devices_input import MspUpgradeFtdDevicesInput
197
+ from scc_firewall_manager_sdk.models.msp_upgrade_run_dto import MspUpgradeRunDto
198
+ from scc_firewall_manager_sdk.models.msp_upgrade_run_dto_page import MspUpgradeRunDtoPage
199
+ from scc_firewall_manager_sdk.models.msp_upgrade_runs_attribute_values import MspUpgradeRunsAttributeValues
188
200
  from scc_firewall_manager_sdk.models.network import Network
189
201
  from scc_firewall_manager_sdk.models.network_object_content import NetworkObjectContent
190
202
  from scc_firewall_manager_sdk.models.os import OS
@@ -192,6 +204,7 @@ from scc_firewall_manager_sdk.models.object_content import ObjectContent
192
204
  from scc_firewall_manager_sdk.models.object_response import ObjectResponse
193
205
  from scc_firewall_manager_sdk.models.on_prem_fmc_info import OnPremFmcInfo
194
206
  from scc_firewall_manager_sdk.models.override import Override
207
+ from scc_firewall_manager_sdk.models.page import Page
195
208
  from scc_firewall_manager_sdk.models.physical_interface_patch_input import PhysicalInterfacePatchInput
196
209
  from scc_firewall_manager_sdk.models.policy import Policy
197
210
  from scc_firewall_manager_sdk.models.ports_value import PortsValue
@@ -215,6 +228,7 @@ from scc_firewall_manager_sdk.models.service_object_content import ServiceObject
215
228
  from scc_firewall_manager_sdk.models.service_object_value_content import ServiceObjectValueContent
216
229
  from scc_firewall_manager_sdk.models.shared_object_value import SharedObjectValue
217
230
  from scc_firewall_manager_sdk.models.single_content import SingleContent
231
+ from scc_firewall_manager_sdk.models.smart_account import SmartAccount
218
232
  from scc_firewall_manager_sdk.models.source_destination_ports_value import SourceDestinationPortsValue
219
233
  from scc_firewall_manager_sdk.models.source_dynamic_object_content import SourceDynamicObjectContent
220
234
  from scc_firewall_manager_sdk.models.source_network_content import SourceNetworkContent
@@ -233,16 +247,17 @@ from scc_firewall_manager_sdk.models.switch_port_config import SwitchPortConfig
233
247
  from scc_firewall_manager_sdk.models.target import Target
234
248
  from scc_firewall_manager_sdk.models.targets_request import TargetsRequest
235
249
  from scc_firewall_manager_sdk.models.tenant import Tenant
236
- from scc_firewall_manager_sdk.models.tenant_ftd_compatibility_version import TenantFtdCompatibilityVersion
237
250
  from scc_firewall_manager_sdk.models.tenant_page import TenantPage
238
251
  from scc_firewall_manager_sdk.models.tenant_settings import TenantSettings
239
252
  from scc_firewall_manager_sdk.models.unified_object_list_view import UnifiedObjectListView
240
253
  from scc_firewall_manager_sdk.models.universal_ztna_settings import UniversalZtnaSettings
241
254
  from scc_firewall_manager_sdk.models.update_request import UpdateRequest
242
255
  from scc_firewall_manager_sdk.models.upgrade_asa_device_input import UpgradeAsaDeviceInput
256
+ from scc_firewall_manager_sdk.models.upgrade_compatibility_info_dto import UpgradeCompatibilityInfoDto
243
257
  from scc_firewall_manager_sdk.models.upgrade_ftd_device_input import UpgradeFtdDeviceInput
244
258
  from scc_firewall_manager_sdk.models.upgrade_ftd_devices_input import UpgradeFtdDevicesInput
245
259
  from scc_firewall_manager_sdk.models.upgrade_run_dto import UpgradeRunDto
260
+ from scc_firewall_manager_sdk.models.upgrade_run_metadata_dto import UpgradeRunMetadataDto
246
261
  from scc_firewall_manager_sdk.models.upgrade_run_modify_input import UpgradeRunModifyInput
247
262
  from scc_firewall_manager_sdk.models.url_object_content import UrlObjectContent
248
263
  from scc_firewall_manager_sdk.models.user import User
@@ -34,7 +34,7 @@ class AccessGroup(BaseModel):
34
34
  is_shared: Optional[StrictBool] = Field(default=None, description="The flag that identifies if access group is shared.", alias="isShared")
35
35
  name: StrictStr = Field(description="The name of Access Group. Access Group names are unique in Security Cloud Control.")
36
36
  resources: Optional[List[Dict[str, Any]]] = Field(default=None, description="The set of of interface and direction pairs or global resource.")
37
- shared_access_group_uid: StrictStr = Field(description="The unique identifier, represented as a UUID, of the shared access group manager associated with the Access Group.", alias="sharedAccessGroupUid")
37
+ shared_access_group_uid: Optional[StrictStr] = Field(default=None, description="The unique identifier, represented as a UUID, of the shared access group manager associated with the Access Group.", alias="sharedAccessGroupUid")
38
38
  uid: StrictStr = Field(description="The unique identifier, represented as a UUID, of Access Group in Security Cloud Control.")
39
39
  updated_date: Optional[datetime] = Field(default=None, description="The time (in UTC) at which Access Group was updated, represented using the RFC-3339 standard.", alias="updatedDate")
40
40
  __properties: ClassVar[List[str]] = ["appliedTo", "createdDate", "entityUid", "isShared", "name", "resources", "sharedAccessGroupUid", "uid", "updatedDate"]
@@ -34,9 +34,10 @@ class CdoTokenInfo(BaseModel):
34
34
  name: Optional[StrictStr] = Field(default=None, description="The name of the user this token belongs to. The user can be API-only or a human.")
35
35
  product_instance_id: Optional[StrictStr] = Field(default=None, description="The unique identifier, represented as a UUID, of the firewall product instance this token is associated with. A Security Cloud Control enterprise has subscriptions to multiple products; this is the unique identifier of the firewall product instance.", alias="productInstanceId")
36
36
  roles: Optional[List[UserRole]] = Field(default=None, description="The role of the user this token belongs to. The user can be API-only or a human.")
37
+ tenant_name: Optional[StrictStr] = Field(default=None, description="The name of the enterprise (tenant) in Security Cloud Control.", alias="tenantName")
37
38
  tenant_uid: Optional[StrictStr] = Field(default=None, description="The unique identifier, represented as a UUID, of the tenant this token is associated with. While a user can be associated with multiple tenants, a token is associated with a single tenant.", alias="tenantUid")
38
39
  uid: Optional[StrictStr] = Field(default=None, description="The unique identifier, represented as a UUID, of the user this token belongs to. The user can be API-only or a human.")
39
- __properties: ClassVar[List[str]] = ["enterpriseId", "expiresAt", "name", "productInstanceId", "roles", "tenantUid", "uid"]
40
+ __properties: ClassVar[List[str]] = ["enterpriseId", "expiresAt", "name", "productInstanceId", "roles", "tenantName", "tenantUid", "uid"]
40
41
 
41
42
  model_config = ConfigDict(
42
43
  populate_by_name=True,
@@ -94,6 +95,7 @@ class CdoTokenInfo(BaseModel):
94
95
  "name": obj.get("name"),
95
96
  "productInstanceId": obj.get("productInstanceId"),
96
97
  "roles": obj.get("roles"),
98
+ "tenantName": obj.get("tenantName"),
97
99
  "tenantUid": obj.get("tenantUid"),
98
100
  "uid": obj.get("uid")
99
101
  })
@@ -29,18 +29,18 @@ class CdoTransaction(BaseModel):
29
29
  CdoTransaction
30
30
  """ # noqa: E501
31
31
  cancellable: Optional[StrictBool] = None
32
- cdo_transaction_status: Optional[StrictStr] = Field(default=None, description="The status of the transaction", alias="cdoTransactionStatus")
33
- entity_uid: Optional[StrictStr] = Field(default=None, description="The unique identifier of the entity that the transaction is triggered on. This can be empty, for a transaction that is not tied to an entity, such as transactions which refresh RA VPN sessions.", alias="entityUid")
34
- entity_url: Optional[StrictStr] = Field(default=None, description="A URL to access the entity that the transaction is triggered on. This can also be empty", alias="entityUrl")
35
- error_details: Optional[Dict[str, StrictStr]] = Field(default=None, description="Transaction error details, if any", alias="errorDetails")
36
- error_message: Optional[StrictStr] = Field(default=None, description="Transaction error message, if any", alias="errorMessage")
37
- last_updated_time: Optional[datetime] = Field(default=None, description="The time (UTC; represented using the RFC-3339 standard) at which the transaction status was last updated", alias="lastUpdatedTime")
38
- submission_time: Optional[datetime] = Field(default=None, description="The time (UTC; represented using the RFC-3339 standard) at which the transaction was triggered", alias="submissionTime")
39
- tenant_uid: Optional[StrictStr] = Field(default=None, description="The unique identifier of the tenant that the transaction triggered on.", alias="tenantUid")
40
- transaction_details: Optional[Dict[str, StrictStr]] = Field(default=None, description="Transaction details, if any", alias="transactionDetails")
41
- transaction_polling_url: Optional[StrictStr] = Field(default=None, description="The URL to poll to track the progress of the transaction.", alias="transactionPollingUrl")
42
- transaction_type: Optional[StrictStr] = Field(default=None, description="the type of the transaction", alias="transactionType")
43
- transaction_uid: Optional[StrictStr] = Field(default=None, description="The unique identifier of the transaction triggered.", alias="transactionUid")
32
+ cdo_transaction_status: Optional[StrictStr] = Field(default=None, description="Status of the transaction.", alias="cdoTransactionStatus")
33
+ entity_uid: Optional[StrictStr] = Field(default=None, description="Unique identifier of the entity that the transaction is triggered on. This can be empty, for a transaction that is not tied to an entity, such as transactions which refresh RA VPN sessions.", alias="entityUid")
34
+ entity_url: Optional[StrictStr] = Field(default=None, description="URL to access the entity that the transaction is triggered on. This can be empty, for a transaction that is not tied to an entity, such as transactions which refresh RA VPN sessions.", alias="entityUrl")
35
+ error_details: Optional[Dict[str, StrictStr]] = Field(default=None, description="Transaction error details, if any.", alias="errorDetails")
36
+ error_message: Optional[StrictStr] = Field(default=None, description="Transaction error message, if any.", alias="errorMessage")
37
+ last_updated_time: Optional[datetime] = Field(default=None, description="Time (UTC; represented using the RFC-3339 standard) at which the transaction status was last updated.", alias="lastUpdatedTime")
38
+ submission_time: Optional[datetime] = Field(default=None, description="Time (UTC; represented using the RFC-3339 standard) at which the transaction was triggered.", alias="submissionTime")
39
+ tenant_uid: Optional[StrictStr] = Field(default=None, description="Unique identifier of the tenant that the transaction was triggered on.", alias="tenantUid")
40
+ transaction_details: Optional[Dict[str, StrictStr]] = Field(default=None, description="Transaction details, if any.", alias="transactionDetails")
41
+ transaction_polling_url: Optional[StrictStr] = Field(default=None, description="Polling URL to track the progress of the transaction.", alias="transactionPollingUrl")
42
+ transaction_type: Optional[StrictStr] = Field(default=None, description="Type of the transaction.", alias="transactionType")
43
+ transaction_uid: Optional[StrictStr] = Field(default=None, description="Unique identifier of the transaction triggered.", alias="transactionUid")
44
44
  __properties: ClassVar[List[str]] = ["cancellable", "cdoTransactionStatus", "entityUid", "entityUrl", "errorDetails", "errorMessage", "lastUpdatedTime", "submissionTime", "tenantUid", "transactionDetails", "transactionPollingUrl", "transactionType", "transactionUid"]
45
45
 
46
46
  @field_validator('cdo_transaction_status')
@@ -59,8 +59,8 @@ class CdoTransaction(BaseModel):
59
59
  if value is None:
60
60
  return value
61
61
 
62
- if value not in set(['ONBOARD_ASA', 'ONBOARD_IOS', 'ONBOARD_DUO_ADMIN_PANEL', 'CREATE_FTD', 'ONBOARD_FTD_ZTP', 'REGISTER_FTD', 'DELETE_CDFMC_MANAGED_FTD', 'RECONNECT_ASA', 'READ_ASA', 'BULK_READ_ASA', 'EXECUTE_CLI_COMMAND', 'BULK_ACCEPT_ASA_CERTIFICATES', 'DEPLOY_ASA_DEVICE_CHANGES', 'DEPLOY_FTD_DEVICE_CHANGES', 'INDEX_TENANT', 'TERMINATE_DEVICE_RA_VPN_SESSIONS', 'REFRESH_RA_VPN_SESSIONS', 'TERMINATE_USER_RA_VPN_SESSIONS', 'UPGRADE_ASA', 'UPGRADE_FTD', 'UPGRADE_FTD_CACHE', 'MSP_UPGRADE_FTDS', 'MSP_GET_COMPATIBLE_FTD_UPGRADE_PACKAGES', 'CREATE_SDC', 'SEND_AI_ASSISTANT_MESSAGE', 'MSP_CREATE_TENANT', 'MSP_ADD_USERS_TO_TENANT', 'MSP_ADD_USER_GROUPS_TO_TENANT', 'MSP_DELETE_USERS_FROM_TENANT', 'MSP_DELETE_USER_GROUPS_FROM_TENANT', 'MSP_ADD_EXISTING_TENANT', 'MSP_ENABLE_MULTICLOUD_DEFENSE', 'MSP_PROVISION_CDFMC', 'CREATE_USERS', 'DELETE_USERS', 'EXECUTE_ASA_COMMAND', 'ANALYZE_POLICIES', 'TRIGGER_FMC_DATA_EXPORT', 'EXPORT_DEVICES', 'EXPORT_CLOUD_SERVICES', 'EXPORT_MANAGERS', 'EXPORT_TEMPLATES', 'PROVISION_SDWAN_SAL_RESOURCES', 'DEPROVISION_SDWAN_SAL_RESOURCES', 'PROVISION_FIREWALL_SAL_RESOURCES', 'DEPROVISION_FIREWALL_SAL_RESOURCES', 'RENEW_SAL_LICENSE', 'REMOVE_SSX_SAL_SUBSCRIPTION', 'ASA_HEALTH_METRICS_TENANT_PROVISIONING', 'UPDATE_DEVICE_BULK']):
63
- raise ValueError("must be one of enum values ('ONBOARD_ASA', 'ONBOARD_IOS', 'ONBOARD_DUO_ADMIN_PANEL', 'CREATE_FTD', 'ONBOARD_FTD_ZTP', 'REGISTER_FTD', 'DELETE_CDFMC_MANAGED_FTD', 'RECONNECT_ASA', 'READ_ASA', 'BULK_READ_ASA', 'EXECUTE_CLI_COMMAND', 'BULK_ACCEPT_ASA_CERTIFICATES', 'DEPLOY_ASA_DEVICE_CHANGES', 'DEPLOY_FTD_DEVICE_CHANGES', 'INDEX_TENANT', 'TERMINATE_DEVICE_RA_VPN_SESSIONS', 'REFRESH_RA_VPN_SESSIONS', 'TERMINATE_USER_RA_VPN_SESSIONS', 'UPGRADE_ASA', 'UPGRADE_FTD', 'UPGRADE_FTD_CACHE', 'MSP_UPGRADE_FTDS', 'MSP_GET_COMPATIBLE_FTD_UPGRADE_PACKAGES', 'CREATE_SDC', 'SEND_AI_ASSISTANT_MESSAGE', 'MSP_CREATE_TENANT', 'MSP_ADD_USERS_TO_TENANT', 'MSP_ADD_USER_GROUPS_TO_TENANT', 'MSP_DELETE_USERS_FROM_TENANT', 'MSP_DELETE_USER_GROUPS_FROM_TENANT', 'MSP_ADD_EXISTING_TENANT', 'MSP_ENABLE_MULTICLOUD_DEFENSE', 'MSP_PROVISION_CDFMC', 'CREATE_USERS', 'DELETE_USERS', 'EXECUTE_ASA_COMMAND', 'ANALYZE_POLICIES', 'TRIGGER_FMC_DATA_EXPORT', 'EXPORT_DEVICES', 'EXPORT_CLOUD_SERVICES', 'EXPORT_MANAGERS', 'EXPORT_TEMPLATES', 'PROVISION_SDWAN_SAL_RESOURCES', 'DEPROVISION_SDWAN_SAL_RESOURCES', 'PROVISION_FIREWALL_SAL_RESOURCES', 'DEPROVISION_FIREWALL_SAL_RESOURCES', 'RENEW_SAL_LICENSE', 'REMOVE_SSX_SAL_SUBSCRIPTION', 'ASA_HEALTH_METRICS_TENANT_PROVISIONING', 'UPDATE_DEVICE_BULK')")
62
+ if value not in set(['ONBOARD_ASA', 'ONBOARD_IOS', 'ONBOARD_DUO_ADMIN_PANEL', 'CREATE_FTD', 'ONBOARD_FTD_ZTP', 'REGISTER_FTD', 'DELETE_CDFMC_MANAGED_FTD', 'RECONNECT_ASA', 'READ_ASA', 'BULK_READ_ASA', 'EXECUTE_CLI_COMMAND', 'BULK_ACCEPT_ASA_CERTIFICATES', 'DEPLOY_ASA_DEVICE_CHANGES', 'DEPLOY_FTD_DEVICE_CHANGES', 'INDEX_TENANT', 'TERMINATE_DEVICE_RA_VPN_SESSIONS', 'REFRESH_RA_VPN_SESSIONS', 'TERMINATE_USER_RA_VPN_SESSIONS', 'UPGRADE_ASA', 'UPGRADE_FTD', 'UPGRADE_FTD_CACHE', 'MSP_UPGRADE_FTDS', 'MSP_GET_COMPATIBLE_FTD_UPGRADE_PACKAGES', 'CREATE_SDC', 'SEND_AI_ASSISTANT_MESSAGE', 'MSP_CREATE_TENANT', 'MSP_ADD_USERS_TO_TENANT', 'MSP_ADD_USER_GROUPS_TO_TENANT', 'MSP_DELETE_USERS_FROM_TENANT', 'MSP_DELETE_USER_GROUPS_FROM_TENANT', 'MSP_ADD_EXISTING_TENANT', 'MSP_ENABLE_MULTICLOUD_DEFENSE', 'MSP_PROVISION_CDFMC', 'CREATE_USERS', 'DELETE_USERS', 'EXECUTE_ASA_COMMAND', 'ANALYZE_POLICIES', 'TRIGGER_FMC_DATA_EXPORT', 'EXPORT_DEVICES', 'EXPORT_CLOUD_SERVICES', 'EXPORT_MANAGERS', 'EXPORT_TEMPLATES', 'PROVISION_SDWAN_SAL_RESOURCES', 'DEPROVISION_SDWAN_SAL_RESOURCES', 'PROVISION_FIREWALL_SAL_RESOURCES', 'DEPROVISION_FIREWALL_SAL_RESOURCES', 'RENEW_SAL_LICENSE', 'PAID_SAL_LICENSE', 'EXPIRE_SAL_LICENSE', 'REMOVE_SSX_SAL_SUBSCRIPTION', 'ASA_HEALTH_METRICS_TENANT_PROVISIONING', 'UPDATE_DEVICE_BULK']):
63
+ raise ValueError("must be one of enum values ('ONBOARD_ASA', 'ONBOARD_IOS', 'ONBOARD_DUO_ADMIN_PANEL', 'CREATE_FTD', 'ONBOARD_FTD_ZTP', 'REGISTER_FTD', 'DELETE_CDFMC_MANAGED_FTD', 'RECONNECT_ASA', 'READ_ASA', 'BULK_READ_ASA', 'EXECUTE_CLI_COMMAND', 'BULK_ACCEPT_ASA_CERTIFICATES', 'DEPLOY_ASA_DEVICE_CHANGES', 'DEPLOY_FTD_DEVICE_CHANGES', 'INDEX_TENANT', 'TERMINATE_DEVICE_RA_VPN_SESSIONS', 'REFRESH_RA_VPN_SESSIONS', 'TERMINATE_USER_RA_VPN_SESSIONS', 'UPGRADE_ASA', 'UPGRADE_FTD', 'UPGRADE_FTD_CACHE', 'MSP_UPGRADE_FTDS', 'MSP_GET_COMPATIBLE_FTD_UPGRADE_PACKAGES', 'CREATE_SDC', 'SEND_AI_ASSISTANT_MESSAGE', 'MSP_CREATE_TENANT', 'MSP_ADD_USERS_TO_TENANT', 'MSP_ADD_USER_GROUPS_TO_TENANT', 'MSP_DELETE_USERS_FROM_TENANT', 'MSP_DELETE_USER_GROUPS_FROM_TENANT', 'MSP_ADD_EXISTING_TENANT', 'MSP_ENABLE_MULTICLOUD_DEFENSE', 'MSP_PROVISION_CDFMC', 'CREATE_USERS', 'DELETE_USERS', 'EXECUTE_ASA_COMMAND', 'ANALYZE_POLICIES', 'TRIGGER_FMC_DATA_EXPORT', 'EXPORT_DEVICES', 'EXPORT_CLOUD_SERVICES', 'EXPORT_MANAGERS', 'EXPORT_TEMPLATES', 'PROVISION_SDWAN_SAL_RESOURCES', 'DEPROVISION_SDWAN_SAL_RESOURCES', 'PROVISION_FIREWALL_SAL_RESOURCES', 'DEPROVISION_FIREWALL_SAL_RESOURCES', 'RENEW_SAL_LICENSE', 'PAID_SAL_LICENSE', 'EXPIRE_SAL_LICENSE', 'REMOVE_SSX_SAL_SUBSCRIPTION', 'ASA_HEALTH_METRICS_TENANT_PROVISIONING', 'UPDATE_DEVICE_BULK')")
64
64
  return value
65
65
 
66
66
  model_config = ConfigDict(
@@ -27,9 +27,9 @@ class CommonApiError(BaseModel):
27
27
  """
28
28
  CommonApiError
29
29
  """ # noqa: E501
30
- details: Optional[Dict[str, Dict[str, Any]]] = Field(default=None, description="Additional details, if any, on the error")
31
- error_code: Optional[StrictStr] = Field(default=None, description="A unique code that describes the error.", alias="errorCode")
32
- error_msg: Optional[StrictStr] = Field(default=None, description="A human-readable error description in English.", alias="errorMsg")
30
+ details: Optional[Dict[str, Dict[str, Any]]] = Field(default=None, description="Additional details, if any, about the error.")
31
+ error_code: Optional[StrictStr] = Field(default=None, description="Unique code that describes the error.", alias="errorCode")
32
+ error_msg: Optional[StrictStr] = Field(default=None, description="Human-readable error description in English.", alias="errorMsg")
33
33
  __properties: ClassVar[List[str]] = ["details", "errorCode", "errorMsg"]
34
34
 
35
35
  @field_validator('error_code')
@@ -0,0 +1,100 @@
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 CompatibleDeviceDto(BaseModel):
27
+ """
28
+ Information about a device that is compatible with a specific upgrade version.
29
+ """ # noqa: E501
30
+ current_software_version: Optional[StrictStr] = Field(default=None, description="The software version currently running on the device", alias="currentSoftwareVersion")
31
+ hardware_model: StrictStr = Field(description="The hardware model of the device", alias="hardwareModel")
32
+ managed_tenant_display_name: Optional[StrictStr] = Field(default=None, description="The display name of the managed tenant in CDO.", alias="managedTenantDisplayName")
33
+ managed_tenant_name: Optional[StrictStr] = Field(default=None, description="The name of the managed tenant in CDO.", alias="managedTenantName")
34
+ managed_tenant_uid: StrictStr = Field(description="The unique identifier, represented as a UUID, of the managed tenant in Security Cloud Control that this device belongs to.", alias="managedTenantUid")
35
+ name: StrictStr = Field(description="The name of the device")
36
+ uid: StrictStr = Field(description="The unique identifier, represented as a UUID, of the device in Security Cloud Control.")
37
+ __properties: ClassVar[List[str]] = ["currentSoftwareVersion", "hardwareModel", "managedTenantDisplayName", "managedTenantName", "managedTenantUid", "name", "uid"]
38
+
39
+ model_config = ConfigDict(
40
+ populate_by_name=True,
41
+ validate_assignment=True,
42
+ protected_namespaces=(),
43
+ )
44
+
45
+
46
+ def to_str(self) -> str:
47
+ """Returns the string representation of the model using alias"""
48
+ return pprint.pformat(self.model_dump(by_alias=True))
49
+
50
+ def to_json(self) -> str:
51
+ """Returns the JSON representation of the model using alias"""
52
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
53
+ return json.dumps(self.to_dict())
54
+
55
+ @classmethod
56
+ def from_json(cls, json_str: str) -> Optional[Self]:
57
+ """Create an instance of CompatibleDeviceDto from a JSON string"""
58
+ return cls.from_dict(json.loads(json_str))
59
+
60
+ def to_dict(self) -> Dict[str, Any]:
61
+ """Return the dictionary representation of the model using alias.
62
+
63
+ This has the following differences from calling pydantic's
64
+ `self.model_dump(by_alias=True)`:
65
+
66
+ * `None` is only added to the output dict for nullable fields that
67
+ were set at model initialization. Other fields with value `None`
68
+ are ignored.
69
+ """
70
+ excluded_fields: Set[str] = set([
71
+ ])
72
+
73
+ _dict = self.model_dump(
74
+ by_alias=True,
75
+ exclude=excluded_fields,
76
+ exclude_none=True,
77
+ )
78
+ return _dict
79
+
80
+ @classmethod
81
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
82
+ """Create an instance of CompatibleDeviceDto from a dict"""
83
+ if obj is None:
84
+ return None
85
+
86
+ if not isinstance(obj, dict):
87
+ return cls.model_validate(obj)
88
+
89
+ _obj = cls.model_validate({
90
+ "currentSoftwareVersion": obj.get("currentSoftwareVersion"),
91
+ "hardwareModel": obj.get("hardwareModel"),
92
+ "managedTenantDisplayName": obj.get("managedTenantDisplayName"),
93
+ "managedTenantName": obj.get("managedTenantName"),
94
+ "managedTenantUid": obj.get("managedTenantUid"),
95
+ "name": obj.get("name"),
96
+ "uid": obj.get("uid")
97
+ })
98
+ return _obj
99
+
100
+
@@ -0,0 +1,112 @@
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 datetime import datetime
22
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
23
+ from typing import Any, ClassVar, Dict, List, Optional
24
+ from scc_firewall_manager_sdk.models.compatible_device_dto import CompatibleDeviceDto
25
+ from typing import Optional, Set
26
+ from typing_extensions import Self
27
+
28
+ class CompatibleVersionInfoDto(BaseModel):
29
+ """
30
+ Information about a compatible upgrade version and the devices that support it.
31
+ """ # noqa: E501
32
+ compatible_devices: List[CompatibleDeviceDto] = Field(description="List of devices that are compatible with this upgrade version", alias="compatibleDevices")
33
+ is_suggested_version: StrictBool = Field(description="A boolean value, indicating whether this version is a suggested version to upgrade to.", alias="isSuggestedVersion")
34
+ release_date: Optional[datetime] = Field(default=None, description="The release date of this software version", alias="releaseDate")
35
+ software_version: StrictStr = Field(description="The software version", alias="softwareVersion")
36
+ upgrade_type: StrictStr = Field(description="The type of the upgrade", alias="upgradeType")
37
+ __properties: ClassVar[List[str]] = ["compatibleDevices", "isSuggestedVersion", "releaseDate", "softwareVersion", "upgradeType"]
38
+
39
+ @field_validator('upgrade_type')
40
+ def upgrade_type_validate_enum(cls, value):
41
+ """Validates the enum"""
42
+ if value not in set(['UPGRADE', 'PATCH', 'HOTFIX']):
43
+ raise ValueError("must be one of enum values ('UPGRADE', 'PATCH', 'HOTFIX')")
44
+ return value
45
+
46
+ model_config = ConfigDict(
47
+ populate_by_name=True,
48
+ validate_assignment=True,
49
+ protected_namespaces=(),
50
+ )
51
+
52
+
53
+ def to_str(self) -> str:
54
+ """Returns the string representation of the model using alias"""
55
+ return pprint.pformat(self.model_dump(by_alias=True))
56
+
57
+ def to_json(self) -> str:
58
+ """Returns the JSON representation of the model using alias"""
59
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
60
+ return json.dumps(self.to_dict())
61
+
62
+ @classmethod
63
+ def from_json(cls, json_str: str) -> Optional[Self]:
64
+ """Create an instance of CompatibleVersionInfoDto from a JSON string"""
65
+ return cls.from_dict(json.loads(json_str))
66
+
67
+ def to_dict(self) -> Dict[str, Any]:
68
+ """Return the dictionary representation of the model using alias.
69
+
70
+ This has the following differences from calling pydantic's
71
+ `self.model_dump(by_alias=True)`:
72
+
73
+ * `None` is only added to the output dict for nullable fields that
74
+ were set at model initialization. Other fields with value `None`
75
+ are ignored.
76
+ """
77
+ excluded_fields: Set[str] = set([
78
+ ])
79
+
80
+ _dict = self.model_dump(
81
+ by_alias=True,
82
+ exclude=excluded_fields,
83
+ exclude_none=True,
84
+ )
85
+ # override the default output from pydantic by calling `to_dict()` of each item in compatible_devices (list)
86
+ _items = []
87
+ if self.compatible_devices:
88
+ for _item in self.compatible_devices:
89
+ if _item:
90
+ _items.append(_item.to_dict())
91
+ _dict['compatibleDevices'] = _items
92
+ return _dict
93
+
94
+ @classmethod
95
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
96
+ """Create an instance of CompatibleVersionInfoDto from a dict"""
97
+ if obj is None:
98
+ return None
99
+
100
+ if not isinstance(obj, dict):
101
+ return cls.model_validate(obj)
102
+
103
+ _obj = cls.model_validate({
104
+ "compatibleDevices": [CompatibleDeviceDto.from_dict(_item) for _item in obj["compatibleDevices"]] if obj.get("compatibleDevices") is not None else None,
105
+ "isSuggestedVersion": obj.get("isSuggestedVersion"),
106
+ "releaseDate": obj.get("releaseDate"),
107
+ "softwareVersion": obj.get("softwareVersion"),
108
+ "upgradeType": obj.get("upgradeType")
109
+ })
110
+ return _obj
111
+
112
+
@@ -0,0 +1,104 @@
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, StrictFloat, StrictInt, StrictStr, field_validator
22
+ from typing import Any, ClassVar, Dict, List, Optional, Union
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class CompletionStatusDto(BaseModel):
27
+ """
28
+ CompletionStatusDto
29
+ """ # noqa: E501
30
+ message: Optional[StrictStr] = Field(default=None, description="A message, indicating current progress, returned from the device.")
31
+ name: Optional[StrictStr] = Field(default=None, description="The name of the device. Note: this will be the name of the node on the cdFMC if the device is part of an HA pair or cluster.")
32
+ node_type: Optional[StrictStr] = Field(default=None, description="(HA Pairs and clusters only) The node type of the device.", alias="nodeType")
33
+ percentage_complete: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The percentage completion of the current task being performed", alias="percentageComplete")
34
+ __properties: ClassVar[List[str]] = ["message", "name", "nodeType", "percentageComplete"]
35
+
36
+ @field_validator('node_type')
37
+ def node_type_validate_enum(cls, value):
38
+ """Validates the enum"""
39
+ if value is None:
40
+ return value
41
+
42
+ if value not in set(['HA_PRIMARY', 'HA_SECONDARY', 'CLUSTER_CONTROL', 'CLUSTER_DATA']):
43
+ raise ValueError("must be one of enum values ('HA_PRIMARY', 'HA_SECONDARY', 'CLUSTER_CONTROL', 'CLUSTER_DATA')")
44
+ return value
45
+
46
+ model_config = ConfigDict(
47
+ populate_by_name=True,
48
+ validate_assignment=True,
49
+ protected_namespaces=(),
50
+ )
51
+
52
+
53
+ def to_str(self) -> str:
54
+ """Returns the string representation of the model using alias"""
55
+ return pprint.pformat(self.model_dump(by_alias=True))
56
+
57
+ def to_json(self) -> str:
58
+ """Returns the JSON representation of the model using alias"""
59
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
60
+ return json.dumps(self.to_dict())
61
+
62
+ @classmethod
63
+ def from_json(cls, json_str: str) -> Optional[Self]:
64
+ """Create an instance of CompletionStatusDto from a JSON string"""
65
+ return cls.from_dict(json.loads(json_str))
66
+
67
+ def to_dict(self) -> Dict[str, Any]:
68
+ """Return the dictionary representation of the model using alias.
69
+
70
+ This has the following differences from calling pydantic's
71
+ `self.model_dump(by_alias=True)`:
72
+
73
+ * `None` is only added to the output dict for nullable fields that
74
+ were set at model initialization. Other fields with value `None`
75
+ are ignored.
76
+ """
77
+ excluded_fields: Set[str] = set([
78
+ ])
79
+
80
+ _dict = self.model_dump(
81
+ by_alias=True,
82
+ exclude=excluded_fields,
83
+ exclude_none=True,
84
+ )
85
+ return _dict
86
+
87
+ @classmethod
88
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
89
+ """Create an instance of CompletionStatusDto from a dict"""
90
+ if obj is None:
91
+ return None
92
+
93
+ if not isinstance(obj, dict):
94
+ return cls.model_validate(obj)
95
+
96
+ _obj = cls.model_validate({
97
+ "message": obj.get("message"),
98
+ "name": obj.get("name"),
99
+ "nodeType": obj.get("nodeType"),
100
+ "percentageComplete": obj.get("percentageComplete")
101
+ })
102
+ return _obj
103
+
104
+
@@ -0,0 +1,133 @@
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, field_validator
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from scc_firewall_manager_sdk.models.entity_type import EntityType
24
+ from scc_firewall_manager_sdk.models.smart_account import SmartAccount
25
+ from typing import Optional, Set
26
+ from typing_extensions import Self
27
+
28
+ class DeviceLicenseDto(BaseModel):
29
+ """
30
+ DeviceLicenseDto
31
+ """ # noqa: E501
32
+ compliance_status: Optional[StrictStr] = Field(default=None, description="Indicates whether the license used on the device is currently compliant with Smart Licensing restrictions.", alias="complianceStatus")
33
+ device_type: Optional[EntityType] = Field(default=None, alias="deviceType")
34
+ is_evaluation_license_expired: Optional[StrictBool] = Field(default=None, description="Indicates if the evaluation license has expired. This field is only relevant if the license status is EVALUATION.", alias="isEvaluationLicenseExpired")
35
+ is_export_control_features_allowed: Optional[StrictBool] = Field(default=None, description="Indicates if the license enables the device to offer export-controlled functionality. If this is set to false, Cisco software features that are subject to national security, foreign policy, and anti-terrorism laws and regulations are disabled.", alias="isExportControlFeaturesAllowed")
36
+ license_status: Optional[StrictStr] = Field(default=None, description="The license status of the device.", alias="licenseStatus")
37
+ licenses: Optional[List[StrictStr]] = Field(default=None, description="The list of licenses enabled on the device.")
38
+ model_number: Optional[StrictStr] = Field(default=None, description="The hardware, or virtualized hardware platform, that the device is running on (ASA-only). This field can be missing in the case of a partially onboarded device.", alias="modelNumber")
39
+ name: Optional[StrictStr] = Field(default=None, description="The name of the device in CDO. Device names are unique in Security Cloud Control.")
40
+ serial: Optional[StrictStr] = Field(default=None, description="The serial number of the device.")
41
+ smart_account: Optional[SmartAccount] = Field(default=None, alias="smartAccount")
42
+ uid: Optional[StrictStr] = Field(default=None, description="The unique identifier, represented as a UUID, of the device in Security Cloud Control.")
43
+ __properties: ClassVar[List[str]] = ["complianceStatus", "deviceType", "isEvaluationLicenseExpired", "isExportControlFeaturesAllowed", "licenseStatus", "licenses", "modelNumber", "name", "serial", "smartAccount", "uid"]
44
+
45
+ @field_validator('compliance_status')
46
+ def compliance_status_validate_enum(cls, value):
47
+ """Validates the enum"""
48
+ if value is None:
49
+ return value
50
+
51
+ if value not in set(['IN_COMPLIANCE', 'OUT_OF_COMPLIANCE']):
52
+ raise ValueError("must be one of enum values ('IN_COMPLIANCE', 'OUT_OF_COMPLIANCE')")
53
+ return value
54
+
55
+ @field_validator('license_status')
56
+ def license_status_validate_enum(cls, value):
57
+ """Validates the enum"""
58
+ if value is None:
59
+ return value
60
+
61
+ if value not in set(['LICENSED', 'UNLICENSED', 'EVALUATION']):
62
+ raise ValueError("must be one of enum values ('LICENSED', 'UNLICENSED', 'EVALUATION')")
63
+ return value
64
+
65
+ model_config = ConfigDict(
66
+ populate_by_name=True,
67
+ validate_assignment=True,
68
+ protected_namespaces=(),
69
+ )
70
+
71
+
72
+ def to_str(self) -> str:
73
+ """Returns the string representation of the model using alias"""
74
+ return pprint.pformat(self.model_dump(by_alias=True))
75
+
76
+ def to_json(self) -> str:
77
+ """Returns the JSON representation of the model using alias"""
78
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
79
+ return json.dumps(self.to_dict())
80
+
81
+ @classmethod
82
+ def from_json(cls, json_str: str) -> Optional[Self]:
83
+ """Create an instance of DeviceLicenseDto from a JSON string"""
84
+ return cls.from_dict(json.loads(json_str))
85
+
86
+ def to_dict(self) -> Dict[str, Any]:
87
+ """Return the dictionary representation of the model using alias.
88
+
89
+ This has the following differences from calling pydantic's
90
+ `self.model_dump(by_alias=True)`:
91
+
92
+ * `None` is only added to the output dict for nullable fields that
93
+ were set at model initialization. Other fields with value `None`
94
+ are ignored.
95
+ """
96
+ excluded_fields: Set[str] = set([
97
+ ])
98
+
99
+ _dict = self.model_dump(
100
+ by_alias=True,
101
+ exclude=excluded_fields,
102
+ exclude_none=True,
103
+ )
104
+ # override the default output from pydantic by calling `to_dict()` of smart_account
105
+ if self.smart_account:
106
+ _dict['smartAccount'] = self.smart_account.to_dict()
107
+ return _dict
108
+
109
+ @classmethod
110
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
111
+ """Create an instance of DeviceLicenseDto from a dict"""
112
+ if obj is None:
113
+ return None
114
+
115
+ if not isinstance(obj, dict):
116
+ return cls.model_validate(obj)
117
+
118
+ _obj = cls.model_validate({
119
+ "complianceStatus": obj.get("complianceStatus"),
120
+ "deviceType": obj.get("deviceType"),
121
+ "isEvaluationLicenseExpired": obj.get("isEvaluationLicenseExpired"),
122
+ "isExportControlFeaturesAllowed": obj.get("isExportControlFeaturesAllowed"),
123
+ "licenseStatus": obj.get("licenseStatus"),
124
+ "licenses": obj.get("licenses"),
125
+ "modelNumber": obj.get("modelNumber"),
126
+ "name": obj.get("name"),
127
+ "serial": obj.get("serial"),
128
+ "smartAccount": SmartAccount.from_dict(obj["smartAccount"]) if obj.get("smartAccount") is not None else None,
129
+ "uid": obj.get("uid")
130
+ })
131
+ return _obj
132
+
133
+