How to use osProperties method in fMBT

Best Python code snippet using fMBT_python

__init__.py

Source:__init__.py Github

copy

Full Screen

1# coding=utf-82# --------------------------------------------------------------------------3# Copyright (c) Microsoft Corporation. All rights reserved.4# Licensed under the MIT License. See License.txt in the project root for license information.5# Code generated by Microsoft (R) AutoRest Code Generator.6# Changes may cause incorrect behavior and will be lost if the code is regenerated.7# --------------------------------------------------------------------------8try:9 from ._models_py3 import A2AAddDisksInput10 from ._models_py3 import A2AApplyRecoveryPointInput11 from ._models_py3 import A2AContainerCreationInput12 from ._models_py3 import A2AContainerMappingInput13 from ._models_py3 import A2ACreateProtectionIntentInput14 from ._models_py3 import A2ACrossClusterMigrationApplyRecoveryPointInput15 from ._models_py3 import A2ACrossClusterMigrationContainerCreationInput16 from ._models_py3 import A2ACrossClusterMigrationEnableProtectionInput17 from ._models_py3 import A2ACrossClusterMigrationPolicyCreationInput18 from ._models_py3 import A2ACrossClusterMigrationReplicationDetails19 from ._models_py3 import A2AEnableProtectionInput20 from ._models_py3 import A2AEventDetails21 from ._models_py3 import A2APolicyCreationInput22 from ._models_py3 import A2APolicyDetails23 from ._models_py3 import A2AProtectedDiskDetails24 from ._models_py3 import A2AProtectedManagedDiskDetails25 from ._models_py3 import A2AProtectionContainerMappingDetails26 from ._models_py3 import A2AProtectionIntentDiskInputDetails27 from ._models_py3 import A2AProtectionIntentManagedDiskInputDetails28 from ._models_py3 import A2ARecoveryPointDetails29 from ._models_py3 import A2ARemoveDisksInput30 from ._models_py3 import A2AReplicationDetails31 from ._models_py3 import A2AReplicationIntentDetails32 from ._models_py3 import A2AReprotectInput33 from ._models_py3 import A2ASwitchProtectionInput34 from ._models_py3 import A2ATestFailoverInput35 from ._models_py3 import A2AUnplannedFailoverInput36 from ._models_py3 import A2AUnprotectedDiskDetails37 from ._models_py3 import A2AUpdateContainerMappingInput38 from ._models_py3 import A2AUpdateReplicationProtectedItemInput39 from ._models_py3 import A2AVmDiskInputDetails40 from ._models_py3 import A2AVmManagedDiskInputDetails41 from ._models_py3 import A2AVmManagedDiskUpdateDetails42 from ._models_py3 import A2AZoneDetails43 from ._models_py3 import ASRTask44 from ._models_py3 import AddDisksInput45 from ._models_py3 import AddDisksInputProperties46 from ._models_py3 import AddDisksProviderSpecificInput47 from ._models_py3 import AddRecoveryServicesProviderInput48 from ._models_py3 import AddRecoveryServicesProviderInputProperties49 from ._models_py3 import AddVCenterRequest50 from ._models_py3 import AddVCenterRequestProperties51 from ._models_py3 import AgentDetails52 from ._models_py3 import AgentDiskDetails53 from ._models_py3 import Alert54 from ._models_py3 import AlertCollection55 from ._models_py3 import AlertProperties56 from ._models_py3 import ApplyRecoveryPointInput57 from ._models_py3 import ApplyRecoveryPointInputProperties58 from ._models_py3 import ApplyRecoveryPointProviderSpecificInput59 from ._models_py3 import AsrJobDetails60 from ._models_py3 import AutomationRunbookTaskDetails61 from ._models_py3 import AzureFabricCreationInput62 from ._models_py3 import AzureFabricSpecificDetails63 from ._models_py3 import AzureToAzureCreateNetworkMappingInput64 from ._models_py3 import AzureToAzureNetworkMappingSettings65 from ._models_py3 import AzureToAzureUpdateNetworkMappingInput66 from ._models_py3 import AzureToAzureVmSyncedConfigDetails67 from ._models_py3 import AzureVmDiskDetails68 from ._models_py3 import ComputeSizeErrorDetails69 from ._models_py3 import ConfigurationSettings70 from ._models_py3 import ConfigureAlertRequest71 from ._models_py3 import ConfigureAlertRequestProperties72 from ._models_py3 import ConsistencyCheckTaskDetails73 from ._models_py3 import CreateNetworkMappingInput74 from ._models_py3 import CreateNetworkMappingInputProperties75 from ._models_py3 import CreatePolicyInput76 from ._models_py3 import CreatePolicyInputProperties77 from ._models_py3 import CreateProtectionContainerInput78 from ._models_py3 import CreateProtectionContainerInputProperties79 from ._models_py3 import CreateProtectionContainerMappingInput80 from ._models_py3 import CreateProtectionContainerMappingInputProperties81 from ._models_py3 import CreateProtectionIntentInput82 from ._models_py3 import CreateProtectionIntentProperties83 from ._models_py3 import CreateProtectionIntentProviderSpecificDetails84 from ._models_py3 import CreateRecoveryPlanInput85 from ._models_py3 import CreateRecoveryPlanInputProperties86 from ._models_py3 import CurrentJobDetails87 from ._models_py3 import CurrentScenarioDetails88 from ._models_py3 import DataStore89 from ._models_py3 import DisableProtectionInput90 from ._models_py3 import DisableProtectionInputProperties91 from ._models_py3 import DisableProtectionProviderSpecificInput92 from ._models_py3 import DiscoverProtectableItemRequest93 from ._models_py3 import DiscoverProtectableItemRequestProperties94 from ._models_py3 import DiskDetails95 from ._models_py3 import DiskEncryptionInfo96 from ._models_py3 import DiskEncryptionKeyInfo97 from ._models_py3 import DiskVolumeDetails98 from ._models_py3 import Display99 from ._models_py3 import DraDetails100 from ._models_py3 import EnableMigrationInput101 from ._models_py3 import EnableMigrationInputProperties102 from ._models_py3 import EnableMigrationProviderSpecificInput103 from ._models_py3 import EnableProtectionInput104 from ._models_py3 import EnableProtectionInputProperties105 from ._models_py3 import EnableProtectionProviderSpecificInput106 from ._models_py3 import EncryptionDetails107 from ._models_py3 import Event108 from ._models_py3 import EventCollection109 from ._models_py3 import EventProperties110 from ._models_py3 import EventProviderSpecificDetails111 from ._models_py3 import EventQueryParameter112 from ._models_py3 import EventSpecificDetails113 from ._models_py3 import ExistingProtectionProfile114 from ._models_py3 import ExistingRecoveryAvailabilitySet115 from ._models_py3 import ExistingRecoveryProximityPlacementGroup116 from ._models_py3 import ExistingRecoveryResourceGroup117 from ._models_py3 import ExistingRecoveryVirtualNetwork118 from ._models_py3 import ExistingStorageAccount119 from ._models_py3 import ExportJobDetails120 from ._models_py3 import Fabric121 from ._models_py3 import FabricCollection122 from ._models_py3 import FabricCreationInput123 from ._models_py3 import FabricCreationInputProperties124 from ._models_py3 import FabricProperties125 from ._models_py3 import FabricQueryParameter126 from ._models_py3 import FabricReplicationGroupTaskDetails127 from ._models_py3 import FabricSpecificCreateNetworkMappingInput128 from ._models_py3 import FabricSpecificCreationInput129 from ._models_py3 import FabricSpecificDetails130 from ._models_py3 import FabricSpecificUpdateNetworkMappingInput131 from ._models_py3 import FailoverJobDetails132 from ._models_py3 import FailoverProcessServerRequest133 from ._models_py3 import FailoverProcessServerRequestProperties134 from ._models_py3 import FailoverReplicationProtectedItemDetails135 from ._models_py3 import GroupTaskDetails136 from ._models_py3 import HealthError137 from ._models_py3 import HealthErrorSummary138 from ._models_py3 import HyperVHostDetails139 from ._models_py3 import HyperVReplica2012EventDetails140 from ._models_py3 import HyperVReplica2012R2EventDetails141 from ._models_py3 import HyperVReplicaAzureApplyRecoveryPointInput142 from ._models_py3 import HyperVReplicaAzureDiskInputDetails143 from ._models_py3 import HyperVReplicaAzureEnableProtectionInput144 from ._models_py3 import HyperVReplicaAzureEventDetails145 from ._models_py3 import HyperVReplicaAzureFailbackProviderInput146 from ._models_py3 import HyperVReplicaAzureManagedDiskDetails147 from ._models_py3 import HyperVReplicaAzurePlannedFailoverProviderInput148 from ._models_py3 import HyperVReplicaAzurePolicyDetails149 from ._models_py3 import HyperVReplicaAzurePolicyInput150 from ._models_py3 import HyperVReplicaAzureReplicationDetails151 from ._models_py3 import HyperVReplicaAzureReprotectInput152 from ._models_py3 import HyperVReplicaAzureTestFailoverInput153 from ._models_py3 import HyperVReplicaAzureUnplannedFailoverInput154 from ._models_py3 import HyperVReplicaAzureUpdateReplicationProtectedItemInput155 from ._models_py3 import HyperVReplicaBaseEventDetails156 from ._models_py3 import HyperVReplicaBasePolicyDetails157 from ._models_py3 import HyperVReplicaBaseReplicationDetails158 from ._models_py3 import HyperVReplicaBluePolicyDetails159 from ._models_py3 import HyperVReplicaBluePolicyInput160 from ._models_py3 import HyperVReplicaBlueReplicationDetails161 from ._models_py3 import HyperVReplicaPolicyDetails162 from ._models_py3 import HyperVReplicaPolicyInput163 from ._models_py3 import HyperVReplicaReplicationDetails164 from ._models_py3 import HyperVSiteDetails165 from ._models_py3 import HyperVVirtualMachineDetails166 from ._models_py3 import IPConfigDetails167 from ._models_py3 import IPConfigInputDetails168 from ._models_py3 import IdentityProviderDetails169 from ._models_py3 import IdentityProviderInput170 from ._models_py3 import InMageAgentDetails171 from ._models_py3 import InMageAzureV2ApplyRecoveryPointInput172 from ._models_py3 import InMageAzureV2DiskInputDetails173 from ._models_py3 import InMageAzureV2EnableProtectionInput174 from ._models_py3 import InMageAzureV2EventDetails175 from ._models_py3 import InMageAzureV2ManagedDiskDetails176 from ._models_py3 import InMageAzureV2PolicyDetails177 from ._models_py3 import InMageAzureV2PolicyInput178 from ._models_py3 import InMageAzureV2ProtectedDiskDetails179 from ._models_py3 import InMageAzureV2RecoveryPointDetails180 from ._models_py3 import InMageAzureV2ReplicationDetails181 from ._models_py3 import InMageAzureV2ReprotectInput182 from ._models_py3 import InMageAzureV2TestFailoverInput183 from ._models_py3 import InMageAzureV2UnplannedFailoverInput184 from ._models_py3 import InMageAzureV2UpdateReplicationProtectedItemInput185 from ._models_py3 import InMageBasePolicyDetails186 from ._models_py3 import InMageDisableProtectionProviderSpecificInput187 from ._models_py3 import InMageDiskDetails188 from ._models_py3 import InMageDiskExclusionInput189 from ._models_py3 import InMageDiskSignatureExclusionOptions190 from ._models_py3 import InMageEnableProtectionInput191 from ._models_py3 import InMagePolicyDetails192 from ._models_py3 import InMagePolicyInput193 from ._models_py3 import InMageProtectedDiskDetails194 from ._models_py3 import InMageRcmAgentUpgradeBlockingErrorDetails195 from ._models_py3 import InMageRcmApplyRecoveryPointInput196 from ._models_py3 import InMageRcmDiscoveredProtectedVmDetails197 from ._models_py3 import InMageRcmDiskInput198 from ._models_py3 import InMageRcmDisksDefaultInput199 from ._models_py3 import InMageRcmEnableProtectionInput200 from ._models_py3 import InMageRcmEventDetails201 from ._models_py3 import InMageRcmFabricCreationInput202 from ._models_py3 import InMageRcmFabricSpecificDetails203 from ._models_py3 import InMageRcmFailbackDiscoveredProtectedVmDetails204 from ._models_py3 import InMageRcmFailbackEventDetails205 from ._models_py3 import InMageRcmFailbackMobilityAgentDetails206 from ._models_py3 import InMageRcmFailbackNicDetails207 from ._models_py3 import InMageRcmFailbackPlannedFailoverProviderInput208 from ._models_py3 import InMageRcmFailbackPolicyCreationInput209 from ._models_py3 import InMageRcmFailbackPolicyDetails210 from ._models_py3 import InMageRcmFailbackProtectedDiskDetails211 from ._models_py3 import InMageRcmFailbackReplicationDetails212 from ._models_py3 import InMageRcmFailbackReprotectInput213 from ._models_py3 import InMageRcmFailbackSyncDetails214 from ._models_py3 import InMageRcmLastAgentUpgradeErrorDetails215 from ._models_py3 import InMageRcmMobilityAgentDetails216 from ._models_py3 import InMageRcmNicDetails217 from ._models_py3 import InMageRcmNicInput218 from ._models_py3 import InMageRcmPolicyCreationInput219 from ._models_py3 import InMageRcmPolicyDetails220 from ._models_py3 import InMageRcmProtectedDiskDetails221 from ._models_py3 import InMageRcmProtectionContainerMappingDetails222 from ._models_py3 import InMageRcmRecoveryPointDetails223 from ._models_py3 import InMageRcmReplicationDetails224 from ._models_py3 import InMageRcmReprotectInput225 from ._models_py3 import InMageRcmSyncDetails226 from ._models_py3 import InMageRcmTestFailoverInput227 from ._models_py3 import InMageRcmUnplannedFailoverInput228 from ._models_py3 import InMageRcmUpdateApplianceForReplicationProtectedItemInput229 from ._models_py3 import InMageRcmUpdateContainerMappingInput230 from ._models_py3 import InMageRcmUpdateReplicationProtectedItemInput231 from ._models_py3 import InMageReplicationDetails232 from ._models_py3 import InMageReprotectInput233 from ._models_py3 import InMageTestFailoverInput234 from ._models_py3 import InMageUnplannedFailoverInput235 from ._models_py3 import InMageVolumeExclusionOptions236 from ._models_py3 import InconsistentVmDetails237 from ._models_py3 import InitialReplicationDetails238 from ._models_py3 import InlineWorkflowTaskDetails239 from ._models_py3 import InnerHealthError240 from ._models_py3 import InputEndpoint241 from ._models_py3 import Job242 from ._models_py3 import JobCollection243 from ._models_py3 import JobDetails244 from ._models_py3 import JobEntity245 from ._models_py3 import JobErrorDetails246 from ._models_py3 import JobProperties247 from ._models_py3 import JobQueryParameter248 from ._models_py3 import JobStatusEventDetails249 from ._models_py3 import JobTaskDetails250 from ._models_py3 import KeyEncryptionKeyInfo251 from ._models_py3 import LogicalNetwork252 from ._models_py3 import LogicalNetworkCollection253 from ._models_py3 import LogicalNetworkProperties254 from ._models_py3 import ManualActionTaskDetails255 from ._models_py3 import MarsAgentDetails256 from ._models_py3 import MasterTargetServer257 from ._models_py3 import MigrateInput258 from ._models_py3 import MigrateInputProperties259 from ._models_py3 import MigrateProviderSpecificInput260 from ._models_py3 import MigrationItem261 from ._models_py3 import MigrationItemCollection262 from ._models_py3 import MigrationItemProperties263 from ._models_py3 import MigrationItemsQueryParameter264 from ._models_py3 import MigrationProviderSpecificSettings265 from ._models_py3 import MigrationRecoveryPoint266 from ._models_py3 import MigrationRecoveryPointCollection267 from ._models_py3 import MigrationRecoveryPointProperties268 from ._models_py3 import MobilityServiceUpdate269 from ._models_py3 import Network270 from ._models_py3 import NetworkCollection271 from ._models_py3 import NetworkMapping272 from ._models_py3 import NetworkMappingCollection273 from ._models_py3 import NetworkMappingFabricSpecificSettings274 from ._models_py3 import NetworkMappingProperties275 from ._models_py3 import NetworkProperties276 from ._models_py3 import NewProtectionProfile277 from ._models_py3 import NewRecoveryVirtualNetwork278 from ._models_py3 import OSDetails279 from ._models_py3 import OSDiskDetails280 from ._models_py3 import OSVersionWrapper281 from ._models_py3 import OperationsDiscovery282 from ._models_py3 import OperationsDiscoveryCollection283 from ._models_py3 import PlannedFailoverInput284 from ._models_py3 import PlannedFailoverInputProperties285 from ._models_py3 import PlannedFailoverProviderSpecificFailoverInput286 from ._models_py3 import Policy287 from ._models_py3 import PolicyCollection288 from ._models_py3 import PolicyProperties289 from ._models_py3 import PolicyProviderSpecificDetails290 from ._models_py3 import PolicyProviderSpecificInput291 from ._models_py3 import ProcessServer292 from ._models_py3 import ProcessServerDetails293 from ._models_py3 import ProtectableItem294 from ._models_py3 import ProtectableItemCollection295 from ._models_py3 import ProtectableItemProperties296 from ._models_py3 import ProtectableItemQueryParameter297 from ._models_py3 import ProtectedItemsQueryParameter298 from ._models_py3 import ProtectionContainer299 from ._models_py3 import ProtectionContainerCollection300 from ._models_py3 import ProtectionContainerFabricSpecificDetails301 from ._models_py3 import ProtectionContainerMapping302 from ._models_py3 import ProtectionContainerMappingCollection303 from ._models_py3 import ProtectionContainerMappingProperties304 from ._models_py3 import ProtectionContainerMappingProviderSpecificDetails305 from ._models_py3 import ProtectionContainerProperties306 from ._models_py3 import ProtectionProfileCustomDetails307 from ._models_py3 import ProviderError308 from ._models_py3 import ProviderSpecificRecoveryPointDetails309 from ._models_py3 import PushInstallerDetails310 from ._models_py3 import RcmProxyDetails311 from ._models_py3 import RecoveryAvailabilitySetCustomDetails312 from ._models_py3 import RecoveryPlan313 from ._models_py3 import RecoveryPlanA2ADetails314 from ._models_py3 import RecoveryPlanA2AFailoverInput315 from ._models_py3 import RecoveryPlanA2AInput316 from ._models_py3 import RecoveryPlanAction317 from ._models_py3 import RecoveryPlanActionDetails318 from ._models_py3 import RecoveryPlanAutomationRunbookActionDetails319 from ._models_py3 import RecoveryPlanCollection320 from ._models_py3 import RecoveryPlanGroup321 from ._models_py3 import RecoveryPlanGroupTaskDetails322 from ._models_py3 import RecoveryPlanHyperVReplicaAzureFailbackInput323 from ._models_py3 import RecoveryPlanHyperVReplicaAzureFailoverInput324 from ._models_py3 import RecoveryPlanInMageAzureV2FailoverInput325 from ._models_py3 import RecoveryPlanInMageFailoverInput326 from ._models_py3 import RecoveryPlanInMageRcmFailbackFailoverInput327 from ._models_py3 import RecoveryPlanInMageRcmFailoverInput328 from ._models_py3 import RecoveryPlanManualActionDetails329 from ._models_py3 import RecoveryPlanPlannedFailoverInput330 from ._models_py3 import RecoveryPlanPlannedFailoverInputProperties331 from ._models_py3 import RecoveryPlanProperties332 from ._models_py3 import RecoveryPlanProtectedItem333 from ._models_py3 import RecoveryPlanProviderSpecificDetails334 from ._models_py3 import RecoveryPlanProviderSpecificFailoverInput335 from ._models_py3 import RecoveryPlanProviderSpecificInput336 from ._models_py3 import RecoveryPlanScriptActionDetails337 from ._models_py3 import RecoveryPlanShutdownGroupTaskDetails338 from ._models_py3 import RecoveryPlanTestFailoverCleanupInput339 from ._models_py3 import RecoveryPlanTestFailoverCleanupInputProperties340 from ._models_py3 import RecoveryPlanTestFailoverInput341 from ._models_py3 import RecoveryPlanTestFailoverInputProperties342 from ._models_py3 import RecoveryPlanUnplannedFailoverInput343 from ._models_py3 import RecoveryPlanUnplannedFailoverInputProperties344 from ._models_py3 import RecoveryPoint345 from ._models_py3 import RecoveryPointCollection346 from ._models_py3 import RecoveryPointProperties347 from ._models_py3 import RecoveryProximityPlacementGroupCustomDetails348 from ._models_py3 import RecoveryResourceGroupCustomDetails349 from ._models_py3 import RecoveryServicesProvider350 from ._models_py3 import RecoveryServicesProviderCollection351 from ._models_py3 import RecoveryServicesProviderProperties352 from ._models_py3 import RecoveryVirtualNetworkCustomDetails353 from ._models_py3 import RemoveDisksInput354 from ._models_py3 import RemoveDisksInputProperties355 from ._models_py3 import RemoveDisksProviderSpecificInput356 from ._models_py3 import RemoveProtectionContainerMappingInput357 from ._models_py3 import RemoveProtectionContainerMappingInputProperties358 from ._models_py3 import RenewCertificateInput359 from ._models_py3 import RenewCertificateInputProperties360 from ._models_py3 import ReplicationAgentDetails361 from ._models_py3 import ReplicationEligibilityResults362 from ._models_py3 import ReplicationEligibilityResultsCollection363 from ._models_py3 import ReplicationEligibilityResultsErrorInfo364 from ._models_py3 import ReplicationEligibilityResultsProperties365 from ._models_py3 import ReplicationGroupDetails366 from ._models_py3 import ReplicationProtectedItem367 from ._models_py3 import ReplicationProtectedItemCollection368 from ._models_py3 import ReplicationProtectedItemProperties369 from ._models_py3 import ReplicationProtectionIntent370 from ._models_py3 import ReplicationProtectionIntentCollection371 from ._models_py3 import ReplicationProtectionIntentProperties372 from ._models_py3 import ReplicationProtectionIntentProviderSpecificSettings373 from ._models_py3 import ReplicationProviderContainerUnmappingInput374 from ._models_py3 import ReplicationProviderSpecificContainerCreationInput375 from ._models_py3 import ReplicationProviderSpecificContainerMappingInput376 from ._models_py3 import ReplicationProviderSpecificSettings377 from ._models_py3 import ReplicationProviderSpecificUpdateContainerMappingInput378 from ._models_py3 import ReprotectAgentDetails379 from ._models_py3 import ResolveHealthError380 from ._models_py3 import ResolveHealthInput381 from ._models_py3 import ResolveHealthInputProperties382 from ._models_py3 import Resource383 from ._models_py3 import ResourceHealthSummary384 from ._models_py3 import ResumeJobParams385 from ._models_py3 import ResumeJobParamsProperties386 from ._models_py3 import ResyncInput387 from ._models_py3 import ResyncInputProperties388 from ._models_py3 import ResyncProviderSpecificInput389 from ._models_py3 import RetentionVolume390 from ._models_py3 import ReverseReplicationInput391 from ._models_py3 import ReverseReplicationInputProperties392 from ._models_py3 import ReverseReplicationProviderSpecificInput393 from ._models_py3 import RoleAssignment394 from ._models_py3 import RunAsAccount395 from ._models_py3 import ScriptActionTaskDetails396 from ._models_py3 import ServiceError397 from ._models_py3 import StorageAccountCustomDetails398 from ._models_py3 import StorageClassification399 from ._models_py3 import StorageClassificationCollection400 from ._models_py3 import StorageClassificationMapping401 from ._models_py3 import StorageClassificationMappingCollection402 from ._models_py3 import StorageClassificationMappingInput403 from ._models_py3 import StorageClassificationMappingProperties404 from ._models_py3 import StorageClassificationProperties405 from ._models_py3 import StorageMappingInputProperties406 from ._models_py3 import Subnet407 from ._models_py3 import SupportedOSDetails408 from ._models_py3 import SupportedOSProperties409 from ._models_py3 import SupportedOSProperty410 from ._models_py3 import SupportedOperatingSystems411 from ._models_py3 import SwitchProtectionInput412 from ._models_py3 import SwitchProtectionInputProperties413 from ._models_py3 import SwitchProtectionJobDetails414 from ._models_py3 import SwitchProtectionProviderSpecificInput415 from ._models_py3 import TargetComputeSize416 from ._models_py3 import TargetComputeSizeCollection417 from ._models_py3 import TargetComputeSizeProperties418 from ._models_py3 import TaskTypeDetails419 from ._models_py3 import TestFailoverCleanupInput420 from ._models_py3 import TestFailoverCleanupInputProperties421 from ._models_py3 import TestFailoverInput422 from ._models_py3 import TestFailoverInputProperties423 from ._models_py3 import TestFailoverJobDetails424 from ._models_py3 import TestFailoverProviderSpecificInput425 from ._models_py3 import TestMigrateCleanupInput426 from ._models_py3 import TestMigrateCleanupInputProperties427 from ._models_py3 import TestMigrateInput428 from ._models_py3 import TestMigrateInputProperties429 from ._models_py3 import TestMigrateProviderSpecificInput430 from ._models_py3 import UnplannedFailoverInput431 from ._models_py3 import UnplannedFailoverInputProperties432 from ._models_py3 import UnplannedFailoverProviderSpecificInput433 from ._models_py3 import UpdateApplianceForReplicationProtectedItemInput434 from ._models_py3 import UpdateApplianceForReplicationProtectedItemInputProperties435 from ._models_py3 import UpdateApplianceForReplicationProtectedItemProviderSpecificInput436 from ._models_py3 import UpdateDiskInput437 from ._models_py3 import UpdateMigrationItemInput438 from ._models_py3 import UpdateMigrationItemInputProperties439 from ._models_py3 import UpdateMigrationItemProviderSpecificInput440 from ._models_py3 import UpdateMobilityServiceRequest441 from ._models_py3 import UpdateMobilityServiceRequestProperties442 from ._models_py3 import UpdateNetworkMappingInput443 from ._models_py3 import UpdateNetworkMappingInputProperties444 from ._models_py3 import UpdatePolicyInput445 from ._models_py3 import UpdatePolicyInputProperties446 from ._models_py3 import UpdateProtectionContainerMappingInput447 from ._models_py3 import UpdateProtectionContainerMappingInputProperties448 from ._models_py3 import UpdateRecoveryPlanInput449 from ._models_py3 import UpdateRecoveryPlanInputProperties450 from ._models_py3 import UpdateReplicationProtectedItemInput451 from ._models_py3 import UpdateReplicationProtectedItemInputProperties452 from ._models_py3 import UpdateReplicationProtectedItemProviderInput453 from ._models_py3 import UpdateVCenterRequest454 from ._models_py3 import UpdateVCenterRequestProperties455 from ._models_py3 import VCenter456 from ._models_py3 import VCenterCollection457 from ._models_py3 import VCenterProperties458 from ._models_py3 import VMNicDetails459 from ._models_py3 import VMNicInputDetails460 from ._models_py3 import VMwareCbtContainerCreationInput461 from ._models_py3 import VMwareCbtContainerMappingInput462 from ._models_py3 import VMwareCbtDiskInput463 from ._models_py3 import VMwareCbtEnableMigrationInput464 from ._models_py3 import VMwareCbtEventDetails465 from ._models_py3 import VMwareCbtMigrateInput466 from ._models_py3 import VMwareCbtMigrationDetails467 from ._models_py3 import VMwareCbtNicDetails468 from ._models_py3 import VMwareCbtNicInput469 from ._models_py3 import VMwareCbtPolicyCreationInput470 from ._models_py3 import VMwareCbtProtectedDiskDetails471 from ._models_py3 import VMwareCbtProtectionContainerMappingDetails472 from ._models_py3 import VMwareCbtResyncInput473 from ._models_py3 import VMwareCbtTestMigrateInput474 from ._models_py3 import VMwareCbtUpdateDiskInput475 from ._models_py3 import VMwareCbtUpdateMigrationItemInput476 from ._models_py3 import VMwareDetails477 from ._models_py3 import VMwareV2FabricCreationInput478 from ._models_py3 import VMwareV2FabricSpecificDetails479 from ._models_py3 import VMwareVirtualMachineDetails480 from ._models_py3 import VaultHealthDetails481 from ._models_py3 import VaultHealthProperties482 from ._models_py3 import VaultSetting483 from ._models_py3 import VaultSettingCollection484 from ._models_py3 import VaultSettingCreationInput485 from ._models_py3 import VaultSettingCreationInputProperties486 from ._models_py3 import VaultSettingProperties487 from ._models_py3 import VersionDetails488 from ._models_py3 import VirtualMachineTaskDetails489 from ._models_py3 import VmNicUpdatesTaskDetails490 from ._models_py3 import VmmDetails491 from ._models_py3 import VmmToAzureCreateNetworkMappingInput492 from ._models_py3 import VmmToAzureNetworkMappingSettings493 from ._models_py3 import VmmToAzureUpdateNetworkMappingInput494 from ._models_py3 import VmmToVmmCreateNetworkMappingInput495 from ._models_py3 import VmmToVmmNetworkMappingSettings496 from ._models_py3 import VmmToVmmUpdateNetworkMappingInput497 from ._models_py3 import VmmVirtualMachineDetails498 from ._models_py3 import VmwareCbtPolicyDetails499except (SyntaxError, ImportError):500 from ._models import A2AAddDisksInput # type: ignore501 from ._models import A2AApplyRecoveryPointInput # type: ignore502 from ._models import A2AContainerCreationInput # type: ignore503 from ._models import A2AContainerMappingInput # type: ignore504 from ._models import A2ACreateProtectionIntentInput # type: ignore505 from ._models import A2ACrossClusterMigrationApplyRecoveryPointInput # type: ignore506 from ._models import A2ACrossClusterMigrationContainerCreationInput # type: ignore507 from ._models import A2ACrossClusterMigrationEnableProtectionInput # type: ignore508 from ._models import A2ACrossClusterMigrationPolicyCreationInput # type: ignore509 from ._models import A2ACrossClusterMigrationReplicationDetails # type: ignore510 from ._models import A2AEnableProtectionInput # type: ignore511 from ._models import A2AEventDetails # type: ignore512 from ._models import A2APolicyCreationInput # type: ignore513 from ._models import A2APolicyDetails # type: ignore514 from ._models import A2AProtectedDiskDetails # type: ignore515 from ._models import A2AProtectedManagedDiskDetails # type: ignore516 from ._models import A2AProtectionContainerMappingDetails # type: ignore517 from ._models import A2AProtectionIntentDiskInputDetails # type: ignore518 from ._models import A2AProtectionIntentManagedDiskInputDetails # type: ignore519 from ._models import A2ARecoveryPointDetails # type: ignore520 from ._models import A2ARemoveDisksInput # type: ignore521 from ._models import A2AReplicationDetails # type: ignore522 from ._models import A2AReplicationIntentDetails # type: ignore523 from ._models import A2AReprotectInput # type: ignore524 from ._models import A2ASwitchProtectionInput # type: ignore525 from ._models import A2ATestFailoverInput # type: ignore526 from ._models import A2AUnplannedFailoverInput # type: ignore527 from ._models import A2AUnprotectedDiskDetails # type: ignore528 from ._models import A2AUpdateContainerMappingInput # type: ignore529 from ._models import A2AUpdateReplicationProtectedItemInput # type: ignore530 from ._models import A2AVmDiskInputDetails # type: ignore531 from ._models import A2AVmManagedDiskInputDetails # type: ignore532 from ._models import A2AVmManagedDiskUpdateDetails # type: ignore533 from ._models import A2AZoneDetails # type: ignore534 from ._models import ASRTask # type: ignore535 from ._models import AddDisksInput # type: ignore536 from ._models import AddDisksInputProperties # type: ignore537 from ._models import AddDisksProviderSpecificInput # type: ignore538 from ._models import AddRecoveryServicesProviderInput # type: ignore539 from ._models import AddRecoveryServicesProviderInputProperties # type: ignore540 from ._models import AddVCenterRequest # type: ignore541 from ._models import AddVCenterRequestProperties # type: ignore542 from ._models import AgentDetails # type: ignore543 from ._models import AgentDiskDetails # type: ignore544 from ._models import Alert # type: ignore545 from ._models import AlertCollection # type: ignore546 from ._models import AlertProperties # type: ignore547 from ._models import ApplyRecoveryPointInput # type: ignore548 from ._models import ApplyRecoveryPointInputProperties # type: ignore549 from ._models import ApplyRecoveryPointProviderSpecificInput # type: ignore550 from ._models import AsrJobDetails # type: ignore551 from ._models import AutomationRunbookTaskDetails # type: ignore552 from ._models import AzureFabricCreationInput # type: ignore553 from ._models import AzureFabricSpecificDetails # type: ignore554 from ._models import AzureToAzureCreateNetworkMappingInput # type: ignore555 from ._models import AzureToAzureNetworkMappingSettings # type: ignore556 from ._models import AzureToAzureUpdateNetworkMappingInput # type: ignore557 from ._models import AzureToAzureVmSyncedConfigDetails # type: ignore558 from ._models import AzureVmDiskDetails # type: ignore559 from ._models import ComputeSizeErrorDetails # type: ignore560 from ._models import ConfigurationSettings # type: ignore561 from ._models import ConfigureAlertRequest # type: ignore562 from ._models import ConfigureAlertRequestProperties # type: ignore563 from ._models import ConsistencyCheckTaskDetails # type: ignore564 from ._models import CreateNetworkMappingInput # type: ignore565 from ._models import CreateNetworkMappingInputProperties # type: ignore566 from ._models import CreatePolicyInput # type: ignore567 from ._models import CreatePolicyInputProperties # type: ignore568 from ._models import CreateProtectionContainerInput # type: ignore569 from ._models import CreateProtectionContainerInputProperties # type: ignore570 from ._models import CreateProtectionContainerMappingInput # type: ignore571 from ._models import CreateProtectionContainerMappingInputProperties # type: ignore572 from ._models import CreateProtectionIntentInput # type: ignore573 from ._models import CreateProtectionIntentProperties # type: ignore574 from ._models import CreateProtectionIntentProviderSpecificDetails # type: ignore575 from ._models import CreateRecoveryPlanInput # type: ignore576 from ._models import CreateRecoveryPlanInputProperties # type: ignore577 from ._models import CurrentJobDetails # type: ignore578 from ._models import CurrentScenarioDetails # type: ignore579 from ._models import DataStore # type: ignore580 from ._models import DisableProtectionInput # type: ignore581 from ._models import DisableProtectionInputProperties # type: ignore582 from ._models import DisableProtectionProviderSpecificInput # type: ignore583 from ._models import DiscoverProtectableItemRequest # type: ignore584 from ._models import DiscoverProtectableItemRequestProperties # type: ignore585 from ._models import DiskDetails # type: ignore586 from ._models import DiskEncryptionInfo # type: ignore587 from ._models import DiskEncryptionKeyInfo # type: ignore588 from ._models import DiskVolumeDetails # type: ignore589 from ._models import Display # type: ignore590 from ._models import DraDetails # type: ignore591 from ._models import EnableMigrationInput # type: ignore592 from ._models import EnableMigrationInputProperties # type: ignore593 from ._models import EnableMigrationProviderSpecificInput # type: ignore594 from ._models import EnableProtectionInput # type: ignore595 from ._models import EnableProtectionInputProperties # type: ignore596 from ._models import EnableProtectionProviderSpecificInput # type: ignore597 from ._models import EncryptionDetails # type: ignore598 from ._models import Event # type: ignore599 from ._models import EventCollection # type: ignore600 from ._models import EventProperties # type: ignore601 from ._models import EventProviderSpecificDetails # type: ignore602 from ._models import EventQueryParameter # type: ignore603 from ._models import EventSpecificDetails # type: ignore604 from ._models import ExistingProtectionProfile # type: ignore605 from ._models import ExistingRecoveryAvailabilitySet # type: ignore606 from ._models import ExistingRecoveryProximityPlacementGroup # type: ignore607 from ._models import ExistingRecoveryResourceGroup # type: ignore608 from ._models import ExistingRecoveryVirtualNetwork # type: ignore609 from ._models import ExistingStorageAccount # type: ignore610 from ._models import ExportJobDetails # type: ignore611 from ._models import Fabric # type: ignore612 from ._models import FabricCollection # type: ignore613 from ._models import FabricCreationInput # type: ignore614 from ._models import FabricCreationInputProperties # type: ignore615 from ._models import FabricProperties # type: ignore616 from ._models import FabricQueryParameter # type: ignore617 from ._models import FabricReplicationGroupTaskDetails # type: ignore618 from ._models import FabricSpecificCreateNetworkMappingInput # type: ignore619 from ._models import FabricSpecificCreationInput # type: ignore620 from ._models import FabricSpecificDetails # type: ignore621 from ._models import FabricSpecificUpdateNetworkMappingInput # type: ignore622 from ._models import FailoverJobDetails # type: ignore623 from ._models import FailoverProcessServerRequest # type: ignore624 from ._models import FailoverProcessServerRequestProperties # type: ignore625 from ._models import FailoverReplicationProtectedItemDetails # type: ignore626 from ._models import GroupTaskDetails # type: ignore627 from ._models import HealthError # type: ignore628 from ._models import HealthErrorSummary # type: ignore629 from ._models import HyperVHostDetails # type: ignore630 from ._models import HyperVReplica2012EventDetails # type: ignore631 from ._models import HyperVReplica2012R2EventDetails # type: ignore632 from ._models import HyperVReplicaAzureApplyRecoveryPointInput # type: ignore633 from ._models import HyperVReplicaAzureDiskInputDetails # type: ignore634 from ._models import HyperVReplicaAzureEnableProtectionInput # type: ignore635 from ._models import HyperVReplicaAzureEventDetails # type: ignore636 from ._models import HyperVReplicaAzureFailbackProviderInput # type: ignore637 from ._models import HyperVReplicaAzureManagedDiskDetails # type: ignore638 from ._models import HyperVReplicaAzurePlannedFailoverProviderInput # type: ignore639 from ._models import HyperVReplicaAzurePolicyDetails # type: ignore640 from ._models import HyperVReplicaAzurePolicyInput # type: ignore641 from ._models import HyperVReplicaAzureReplicationDetails # type: ignore642 from ._models import HyperVReplicaAzureReprotectInput # type: ignore643 from ._models import HyperVReplicaAzureTestFailoverInput # type: ignore644 from ._models import HyperVReplicaAzureUnplannedFailoverInput # type: ignore645 from ._models import HyperVReplicaAzureUpdateReplicationProtectedItemInput # type: ignore646 from ._models import HyperVReplicaBaseEventDetails # type: ignore647 from ._models import HyperVReplicaBasePolicyDetails # type: ignore648 from ._models import HyperVReplicaBaseReplicationDetails # type: ignore649 from ._models import HyperVReplicaBluePolicyDetails # type: ignore650 from ._models import HyperVReplicaBluePolicyInput # type: ignore651 from ._models import HyperVReplicaBlueReplicationDetails # type: ignore652 from ._models import HyperVReplicaPolicyDetails # type: ignore653 from ._models import HyperVReplicaPolicyInput # type: ignore654 from ._models import HyperVReplicaReplicationDetails # type: ignore655 from ._models import HyperVSiteDetails # type: ignore656 from ._models import HyperVVirtualMachineDetails # type: ignore657 from ._models import IPConfigDetails # type: ignore658 from ._models import IPConfigInputDetails # type: ignore659 from ._models import IdentityProviderDetails # type: ignore660 from ._models import IdentityProviderInput # type: ignore661 from ._models import InMageAgentDetails # type: ignore662 from ._models import InMageAzureV2ApplyRecoveryPointInput # type: ignore663 from ._models import InMageAzureV2DiskInputDetails # type: ignore664 from ._models import InMageAzureV2EnableProtectionInput # type: ignore665 from ._models import InMageAzureV2EventDetails # type: ignore666 from ._models import InMageAzureV2ManagedDiskDetails # type: ignore667 from ._models import InMageAzureV2PolicyDetails # type: ignore668 from ._models import InMageAzureV2PolicyInput # type: ignore669 from ._models import InMageAzureV2ProtectedDiskDetails # type: ignore670 from ._models import InMageAzureV2RecoveryPointDetails # type: ignore671 from ._models import InMageAzureV2ReplicationDetails # type: ignore672 from ._models import InMageAzureV2ReprotectInput # type: ignore673 from ._models import InMageAzureV2TestFailoverInput # type: ignore674 from ._models import InMageAzureV2UnplannedFailoverInput # type: ignore675 from ._models import InMageAzureV2UpdateReplicationProtectedItemInput # type: ignore676 from ._models import InMageBasePolicyDetails # type: ignore677 from ._models import InMageDisableProtectionProviderSpecificInput # type: ignore678 from ._models import InMageDiskDetails # type: ignore679 from ._models import InMageDiskExclusionInput # type: ignore680 from ._models import InMageDiskSignatureExclusionOptions # type: ignore681 from ._models import InMageEnableProtectionInput # type: ignore682 from ._models import InMagePolicyDetails # type: ignore683 from ._models import InMagePolicyInput # type: ignore684 from ._models import InMageProtectedDiskDetails # type: ignore685 from ._models import InMageRcmAgentUpgradeBlockingErrorDetails # type: ignore686 from ._models import InMageRcmApplyRecoveryPointInput # type: ignore687 from ._models import InMageRcmDiscoveredProtectedVmDetails # type: ignore688 from ._models import InMageRcmDiskInput # type: ignore689 from ._models import InMageRcmDisksDefaultInput # type: ignore690 from ._models import InMageRcmEnableProtectionInput # type: ignore691 from ._models import InMageRcmEventDetails # type: ignore692 from ._models import InMageRcmFabricCreationInput # type: ignore693 from ._models import InMageRcmFabricSpecificDetails # type: ignore694 from ._models import InMageRcmFailbackDiscoveredProtectedVmDetails # type: ignore695 from ._models import InMageRcmFailbackEventDetails # type: ignore696 from ._models import InMageRcmFailbackMobilityAgentDetails # type: ignore697 from ._models import InMageRcmFailbackNicDetails # type: ignore698 from ._models import InMageRcmFailbackPlannedFailoverProviderInput # type: ignore699 from ._models import InMageRcmFailbackPolicyCreationInput # type: ignore700 from ._models import InMageRcmFailbackPolicyDetails # type: ignore701 from ._models import InMageRcmFailbackProtectedDiskDetails # type: ignore702 from ._models import InMageRcmFailbackReplicationDetails # type: ignore703 from ._models import InMageRcmFailbackReprotectInput # type: ignore704 from ._models import InMageRcmFailbackSyncDetails # type: ignore705 from ._models import InMageRcmLastAgentUpgradeErrorDetails # type: ignore706 from ._models import InMageRcmMobilityAgentDetails # type: ignore707 from ._models import InMageRcmNicDetails # type: ignore708 from ._models import InMageRcmNicInput # type: ignore709 from ._models import InMageRcmPolicyCreationInput # type: ignore710 from ._models import InMageRcmPolicyDetails # type: ignore711 from ._models import InMageRcmProtectedDiskDetails # type: ignore712 from ._models import InMageRcmProtectionContainerMappingDetails # type: ignore713 from ._models import InMageRcmRecoveryPointDetails # type: ignore714 from ._models import InMageRcmReplicationDetails # type: ignore715 from ._models import InMageRcmReprotectInput # type: ignore716 from ._models import InMageRcmSyncDetails # type: ignore717 from ._models import InMageRcmTestFailoverInput # type: ignore718 from ._models import InMageRcmUnplannedFailoverInput # type: ignore719 from ._models import InMageRcmUpdateApplianceForReplicationProtectedItemInput # type: ignore720 from ._models import InMageRcmUpdateContainerMappingInput # type: ignore721 from ._models import InMageRcmUpdateReplicationProtectedItemInput # type: ignore722 from ._models import InMageReplicationDetails # type: ignore723 from ._models import InMageReprotectInput # type: ignore724 from ._models import InMageTestFailoverInput # type: ignore725 from ._models import InMageUnplannedFailoverInput # type: ignore726 from ._models import InMageVolumeExclusionOptions # type: ignore727 from ._models import InconsistentVmDetails # type: ignore728 from ._models import InitialReplicationDetails # type: ignore729 from ._models import InlineWorkflowTaskDetails # type: ignore730 from ._models import InnerHealthError # type: ignore731 from ._models import InputEndpoint # type: ignore732 from ._models import Job # type: ignore733 from ._models import JobCollection # type: ignore734 from ._models import JobDetails # type: ignore735 from ._models import JobEntity # type: ignore736 from ._models import JobErrorDetails # type: ignore737 from ._models import JobProperties # type: ignore738 from ._models import JobQueryParameter # type: ignore739 from ._models import JobStatusEventDetails # type: ignore740 from ._models import JobTaskDetails # type: ignore741 from ._models import KeyEncryptionKeyInfo # type: ignore742 from ._models import LogicalNetwork # type: ignore743 from ._models import LogicalNetworkCollection # type: ignore744 from ._models import LogicalNetworkProperties # type: ignore745 from ._models import ManualActionTaskDetails # type: ignore746 from ._models import MarsAgentDetails # type: ignore747 from ._models import MasterTargetServer # type: ignore748 from ._models import MigrateInput # type: ignore749 from ._models import MigrateInputProperties # type: ignore750 from ._models import MigrateProviderSpecificInput # type: ignore751 from ._models import MigrationItem # type: ignore752 from ._models import MigrationItemCollection # type: ignore753 from ._models import MigrationItemProperties # type: ignore754 from ._models import MigrationItemsQueryParameter # type: ignore755 from ._models import MigrationProviderSpecificSettings # type: ignore756 from ._models import MigrationRecoveryPoint # type: ignore757 from ._models import MigrationRecoveryPointCollection # type: ignore758 from ._models import MigrationRecoveryPointProperties # type: ignore759 from ._models import MobilityServiceUpdate # type: ignore760 from ._models import Network # type: ignore761 from ._models import NetworkCollection # type: ignore762 from ._models import NetworkMapping # type: ignore763 from ._models import NetworkMappingCollection # type: ignore764 from ._models import NetworkMappingFabricSpecificSettings # type: ignore765 from ._models import NetworkMappingProperties # type: ignore766 from ._models import NetworkProperties # type: ignore767 from ._models import NewProtectionProfile # type: ignore768 from ._models import NewRecoveryVirtualNetwork # type: ignore769 from ._models import OSDetails # type: ignore770 from ._models import OSDiskDetails # type: ignore771 from ._models import OSVersionWrapper # type: ignore772 from ._models import OperationsDiscovery # type: ignore773 from ._models import OperationsDiscoveryCollection # type: ignore774 from ._models import PlannedFailoverInput # type: ignore775 from ._models import PlannedFailoverInputProperties # type: ignore776 from ._models import PlannedFailoverProviderSpecificFailoverInput # type: ignore777 from ._models import Policy # type: ignore778 from ._models import PolicyCollection # type: ignore779 from ._models import PolicyProperties # type: ignore780 from ._models import PolicyProviderSpecificDetails # type: ignore781 from ._models import PolicyProviderSpecificInput # type: ignore782 from ._models import ProcessServer # type: ignore783 from ._models import ProcessServerDetails # type: ignore784 from ._models import ProtectableItem # type: ignore785 from ._models import ProtectableItemCollection # type: ignore786 from ._models import ProtectableItemProperties # type: ignore787 from ._models import ProtectableItemQueryParameter # type: ignore788 from ._models import ProtectedItemsQueryParameter # type: ignore789 from ._models import ProtectionContainer # type: ignore790 from ._models import ProtectionContainerCollection # type: ignore791 from ._models import ProtectionContainerFabricSpecificDetails # type: ignore792 from ._models import ProtectionContainerMapping # type: ignore793 from ._models import ProtectionContainerMappingCollection # type: ignore794 from ._models import ProtectionContainerMappingProperties # type: ignore795 from ._models import ProtectionContainerMappingProviderSpecificDetails # type: ignore796 from ._models import ProtectionContainerProperties # type: ignore797 from ._models import ProtectionProfileCustomDetails # type: ignore798 from ._models import ProviderError # type: ignore799 from ._models import ProviderSpecificRecoveryPointDetails # type: ignore800 from ._models import PushInstallerDetails # type: ignore801 from ._models import RcmProxyDetails # type: ignore802 from ._models import RecoveryAvailabilitySetCustomDetails # type: ignore803 from ._models import RecoveryPlan # type: ignore804 from ._models import RecoveryPlanA2ADetails # type: ignore805 from ._models import RecoveryPlanA2AFailoverInput # type: ignore806 from ._models import RecoveryPlanA2AInput # type: ignore807 from ._models import RecoveryPlanAction # type: ignore808 from ._models import RecoveryPlanActionDetails # type: ignore809 from ._models import RecoveryPlanAutomationRunbookActionDetails # type: ignore810 from ._models import RecoveryPlanCollection # type: ignore811 from ._models import RecoveryPlanGroup # type: ignore812 from ._models import RecoveryPlanGroupTaskDetails # type: ignore813 from ._models import RecoveryPlanHyperVReplicaAzureFailbackInput # type: ignore814 from ._models import RecoveryPlanHyperVReplicaAzureFailoverInput # type: ignore815 from ._models import RecoveryPlanInMageAzureV2FailoverInput # type: ignore816 from ._models import RecoveryPlanInMageFailoverInput # type: ignore817 from ._models import RecoveryPlanInMageRcmFailbackFailoverInput # type: ignore818 from ._models import RecoveryPlanInMageRcmFailoverInput # type: ignore819 from ._models import RecoveryPlanManualActionDetails # type: ignore820 from ._models import RecoveryPlanPlannedFailoverInput # type: ignore821 from ._models import RecoveryPlanPlannedFailoverInputProperties # type: ignore822 from ._models import RecoveryPlanProperties # type: ignore823 from ._models import RecoveryPlanProtectedItem # type: ignore824 from ._models import RecoveryPlanProviderSpecificDetails # type: ignore825 from ._models import RecoveryPlanProviderSpecificFailoverInput # type: ignore826 from ._models import RecoveryPlanProviderSpecificInput # type: ignore827 from ._models import RecoveryPlanScriptActionDetails # type: ignore828 from ._models import RecoveryPlanShutdownGroupTaskDetails # type: ignore829 from ._models import RecoveryPlanTestFailoverCleanupInput # type: ignore830 from ._models import RecoveryPlanTestFailoverCleanupInputProperties # type: ignore831 from ._models import RecoveryPlanTestFailoverInput # type: ignore832 from ._models import RecoveryPlanTestFailoverInputProperties # type: ignore833 from ._models import RecoveryPlanUnplannedFailoverInput # type: ignore834 from ._models import RecoveryPlanUnplannedFailoverInputProperties # type: ignore835 from ._models import RecoveryPoint # type: ignore836 from ._models import RecoveryPointCollection # type: ignore837 from ._models import RecoveryPointProperties # type: ignore838 from ._models import RecoveryProximityPlacementGroupCustomDetails # type: ignore839 from ._models import RecoveryResourceGroupCustomDetails # type: ignore840 from ._models import RecoveryServicesProvider # type: ignore841 from ._models import RecoveryServicesProviderCollection # type: ignore842 from ._models import RecoveryServicesProviderProperties # type: ignore843 from ._models import RecoveryVirtualNetworkCustomDetails # type: ignore844 from ._models import RemoveDisksInput # type: ignore845 from ._models import RemoveDisksInputProperties # type: ignore846 from ._models import RemoveDisksProviderSpecificInput # type: ignore847 from ._models import RemoveProtectionContainerMappingInput # type: ignore848 from ._models import RemoveProtectionContainerMappingInputProperties # type: ignore849 from ._models import RenewCertificateInput # type: ignore850 from ._models import RenewCertificateInputProperties # type: ignore851 from ._models import ReplicationAgentDetails # type: ignore852 from ._models import ReplicationEligibilityResults # type: ignore853 from ._models import ReplicationEligibilityResultsCollection # type: ignore854 from ._models import ReplicationEligibilityResultsErrorInfo # type: ignore855 from ._models import ReplicationEligibilityResultsProperties # type: ignore856 from ._models import ReplicationGroupDetails # type: ignore857 from ._models import ReplicationProtectedItem # type: ignore858 from ._models import ReplicationProtectedItemCollection # type: ignore859 from ._models import ReplicationProtectedItemProperties # type: ignore860 from ._models import ReplicationProtectionIntent # type: ignore861 from ._models import ReplicationProtectionIntentCollection # type: ignore862 from ._models import ReplicationProtectionIntentProperties # type: ignore863 from ._models import ReplicationProtectionIntentProviderSpecificSettings # type: ignore864 from ._models import ReplicationProviderContainerUnmappingInput # type: ignore865 from ._models import ReplicationProviderSpecificContainerCreationInput # type: ignore866 from ._models import ReplicationProviderSpecificContainerMappingInput # type: ignore867 from ._models import ReplicationProviderSpecificSettings # type: ignore868 from ._models import ReplicationProviderSpecificUpdateContainerMappingInput # type: ignore869 from ._models import ReprotectAgentDetails # type: ignore870 from ._models import ResolveHealthError # type: ignore871 from ._models import ResolveHealthInput # type: ignore872 from ._models import ResolveHealthInputProperties # type: ignore873 from ._models import Resource # type: ignore874 from ._models import ResourceHealthSummary # type: ignore875 from ._models import ResumeJobParams # type: ignore876 from ._models import ResumeJobParamsProperties # type: ignore877 from ._models import ResyncInput # type: ignore878 from ._models import ResyncInputProperties # type: ignore879 from ._models import ResyncProviderSpecificInput # type: ignore880 from ._models import RetentionVolume # type: ignore881 from ._models import ReverseReplicationInput # type: ignore882 from ._models import ReverseReplicationInputProperties # type: ignore883 from ._models import ReverseReplicationProviderSpecificInput # type: ignore884 from ._models import RoleAssignment # type: ignore885 from ._models import RunAsAccount # type: ignore886 from ._models import ScriptActionTaskDetails # type: ignore887 from ._models import ServiceError # type: ignore888 from ._models import StorageAccountCustomDetails # type: ignore889 from ._models import StorageClassification # type: ignore890 from ._models import StorageClassificationCollection # type: ignore891 from ._models import StorageClassificationMapping # type: ignore892 from ._models import StorageClassificationMappingCollection # type: ignore893 from ._models import StorageClassificationMappingInput # type: ignore894 from ._models import StorageClassificationMappingProperties # type: ignore895 from ._models import StorageClassificationProperties # type: ignore896 from ._models import StorageMappingInputProperties # type: ignore897 from ._models import Subnet # type: ignore898 from ._models import SupportedOSDetails # type: ignore899 from ._models import SupportedOSProperties # type: ignore900 from ._models import SupportedOSProperty # type: ignore901 from ._models import SupportedOperatingSystems # type: ignore902 from ._models import SwitchProtectionInput # type: ignore903 from ._models import SwitchProtectionInputProperties # type: ignore904 from ._models import SwitchProtectionJobDetails # type: ignore905 from ._models import SwitchProtectionProviderSpecificInput # type: ignore906 from ._models import TargetComputeSize # type: ignore907 from ._models import TargetComputeSizeCollection # type: ignore908 from ._models import TargetComputeSizeProperties # type: ignore909 from ._models import TaskTypeDetails # type: ignore910 from ._models import TestFailoverCleanupInput # type: ignore911 from ._models import TestFailoverCleanupInputProperties # type: ignore912 from ._models import TestFailoverInput # type: ignore913 from ._models import TestFailoverInputProperties # type: ignore914 from ._models import TestFailoverJobDetails # type: ignore915 from ._models import TestFailoverProviderSpecificInput # type: ignore916 from ._models import TestMigrateCleanupInput # type: ignore917 from ._models import TestMigrateCleanupInputProperties # type: ignore918 from ._models import TestMigrateInput # type: ignore919 from ._models import TestMigrateInputProperties # type: ignore920 from ._models import TestMigrateProviderSpecificInput # type: ignore921 from ._models import UnplannedFailoverInput # type: ignore922 from ._models import UnplannedFailoverInputProperties # type: ignore923 from ._models import UnplannedFailoverProviderSpecificInput # type: ignore924 from ._models import UpdateApplianceForReplicationProtectedItemInput # type: ignore925 from ._models import UpdateApplianceForReplicationProtectedItemInputProperties # type: ignore926 from ._models import UpdateApplianceForReplicationProtectedItemProviderSpecificInput # type: ignore927 from ._models import UpdateDiskInput # type: ignore928 from ._models import UpdateMigrationItemInput # type: ignore929 from ._models import UpdateMigrationItemInputProperties # type: ignore930 from ._models import UpdateMigrationItemProviderSpecificInput # type: ignore931 from ._models import UpdateMobilityServiceRequest # type: ignore932 from ._models import UpdateMobilityServiceRequestProperties # type: ignore933 from ._models import UpdateNetworkMappingInput # type: ignore934 from ._models import UpdateNetworkMappingInputProperties # type: ignore935 from ._models import UpdatePolicyInput # type: ignore936 from ._models import UpdatePolicyInputProperties # type: ignore937 from ._models import UpdateProtectionContainerMappingInput # type: ignore938 from ._models import UpdateProtectionContainerMappingInputProperties # type: ignore939 from ._models import UpdateRecoveryPlanInput # type: ignore940 from ._models import UpdateRecoveryPlanInputProperties # type: ignore941 from ._models import UpdateReplicationProtectedItemInput # type: ignore942 from ._models import UpdateReplicationProtectedItemInputProperties # type: ignore943 from ._models import UpdateReplicationProtectedItemProviderInput # type: ignore944 from ._models import UpdateVCenterRequest # type: ignore945 from ._models import UpdateVCenterRequestProperties # type: ignore946 from ._models import VCenter # type: ignore947 from ._models import VCenterCollection # type: ignore948 from ._models import VCenterProperties # type: ignore949 from ._models import VMNicDetails # type: ignore950 from ._models import VMNicInputDetails # type: ignore951 from ._models import VMwareCbtContainerCreationInput # type: ignore952 from ._models import VMwareCbtContainerMappingInput # type: ignore953 from ._models import VMwareCbtDiskInput # type: ignore954 from ._models import VMwareCbtEnableMigrationInput # type: ignore955 from ._models import VMwareCbtEventDetails # type: ignore956 from ._models import VMwareCbtMigrateInput # type: ignore957 from ._models import VMwareCbtMigrationDetails # type: ignore958 from ._models import VMwareCbtNicDetails # type: ignore959 from ._models import VMwareCbtNicInput # type: ignore960 from ._models import VMwareCbtPolicyCreationInput # type: ignore961 from ._models import VMwareCbtProtectedDiskDetails # type: ignore962 from ._models import VMwareCbtProtectionContainerMappingDetails # type: ignore963 from ._models import VMwareCbtResyncInput # type: ignore964 from ._models import VMwareCbtTestMigrateInput # type: ignore965 from ._models import VMwareCbtUpdateDiskInput # type: ignore966 from ._models import VMwareCbtUpdateMigrationItemInput # type: ignore967 from ._models import VMwareDetails # type: ignore968 from ._models import VMwareV2FabricCreationInput # type: ignore969 from ._models import VMwareV2FabricSpecificDetails # type: ignore970 from ._models import VMwareVirtualMachineDetails # type: ignore971 from ._models import VaultHealthDetails # type: ignore972 from ._models import VaultHealthProperties # type: ignore973 from ._models import VaultSetting # type: ignore974 from ._models import VaultSettingCollection # type: ignore975 from ._models import VaultSettingCreationInput # type: ignore976 from ._models import VaultSettingCreationInputProperties # type: ignore977 from ._models import VaultSettingProperties # type: ignore978 from ._models import VersionDetails # type: ignore979 from ._models import VirtualMachineTaskDetails # type: ignore980 from ._models import VmNicUpdatesTaskDetails # type: ignore981 from ._models import VmmDetails # type: ignore982 from ._models import VmmToAzureCreateNetworkMappingInput # type: ignore983 from ._models import VmmToAzureNetworkMappingSettings # type: ignore984 from ._models import VmmToAzureUpdateNetworkMappingInput # type: ignore985 from ._models import VmmToVmmCreateNetworkMappingInput # type: ignore986 from ._models import VmmToVmmNetworkMappingSettings # type: ignore987 from ._models import VmmToVmmUpdateNetworkMappingInput # type: ignore988 from ._models import VmmVirtualMachineDetails # type: ignore989 from ._models import VmwareCbtPolicyDetails # type: ignore990from ._site_recovery_management_client_enums import (991 A2ARecoveryAvailabilityType,992 A2ARpRecoveryPointType,993 AgentAutoUpdateStatus,994 AgentUpgradeBlockedReason,995 AgentVersionStatus,996 AlternateLocationRecoveryOption,997 AutoProtectionOfDataDisk,998 DataSyncStatus,999 DisableProtectionReason,1000 DiskAccountType,1001 DiskReplicationProgressHealth,1002 EthernetAddressType,1003 ExportJobOutputSerializationType,1004 FailoverDeploymentModel,1005 HealthErrorCategory,1006 HealthErrorCustomerResolvability,1007 HyperVReplicaAzureRpRecoveryPointType,1008 InMageRcmFailbackRecoveryPointType,1009 InMageV2RpRecoveryPointType,1010 LicenseType,1011 MigrationItemOperation,1012 MigrationRecoveryPointType,1013 MigrationState,1014 MobilityAgentUpgradeState,1015 MultiVmGroupCreateOption,1016 MultiVmSyncPointOption,1017 PlannedFailoverStatus,1018 PossibleOperationsDirections,1019 PresenceStatus,1020 ProtectionHealth,1021 RcmComponentStatus,1022 RecoveryPlanActionLocation,1023 RecoveryPlanGroupType,1024 RecoveryPlanPointType,1025 RecoveryPointSyncType,1026 RecoveryPointType,1027 ReplicationProtectedItemOperation,1028 ResyncState,1029 RpInMageRecoveryPointType,1030 SetMultiVmSyncStatus,1031 Severity,1032 SourceSiteOperations,1033 SqlServerLicenseType,1034 TestMigrationState,1035 VmEncryptionType,1036 VmReplicationProgressHealth,1037)1038__all__ = [1039 'A2AAddDisksInput',1040 'A2AApplyRecoveryPointInput',1041 'A2AContainerCreationInput',1042 'A2AContainerMappingInput',1043 'A2ACreateProtectionIntentInput',1044 'A2ACrossClusterMigrationApplyRecoveryPointInput',1045 'A2ACrossClusterMigrationContainerCreationInput',1046 'A2ACrossClusterMigrationEnableProtectionInput',1047 'A2ACrossClusterMigrationPolicyCreationInput',1048 'A2ACrossClusterMigrationReplicationDetails',1049 'A2AEnableProtectionInput',1050 'A2AEventDetails',1051 'A2APolicyCreationInput',1052 'A2APolicyDetails',1053 'A2AProtectedDiskDetails',1054 'A2AProtectedManagedDiskDetails',1055 'A2AProtectionContainerMappingDetails',1056 'A2AProtectionIntentDiskInputDetails',1057 'A2AProtectionIntentManagedDiskInputDetails',1058 'A2ARecoveryPointDetails',1059 'A2ARemoveDisksInput',1060 'A2AReplicationDetails',1061 'A2AReplicationIntentDetails',1062 'A2AReprotectInput',1063 'A2ASwitchProtectionInput',1064 'A2ATestFailoverInput',1065 'A2AUnplannedFailoverInput',1066 'A2AUnprotectedDiskDetails',1067 'A2AUpdateContainerMappingInput',1068 'A2AUpdateReplicationProtectedItemInput',1069 'A2AVmDiskInputDetails',1070 'A2AVmManagedDiskInputDetails',1071 'A2AVmManagedDiskUpdateDetails',1072 'A2AZoneDetails',1073 'ASRTask',1074 'AddDisksInput',1075 'AddDisksInputProperties',1076 'AddDisksProviderSpecificInput',1077 'AddRecoveryServicesProviderInput',1078 'AddRecoveryServicesProviderInputProperties',1079 'AddVCenterRequest',1080 'AddVCenterRequestProperties',1081 'AgentDetails',1082 'AgentDiskDetails',1083 'Alert',1084 'AlertCollection',1085 'AlertProperties',1086 'ApplyRecoveryPointInput',1087 'ApplyRecoveryPointInputProperties',1088 'ApplyRecoveryPointProviderSpecificInput',1089 'AsrJobDetails',1090 'AutomationRunbookTaskDetails',1091 'AzureFabricCreationInput',1092 'AzureFabricSpecificDetails',1093 'AzureToAzureCreateNetworkMappingInput',1094 'AzureToAzureNetworkMappingSettings',1095 'AzureToAzureUpdateNetworkMappingInput',1096 'AzureToAzureVmSyncedConfigDetails',1097 'AzureVmDiskDetails',1098 'ComputeSizeErrorDetails',1099 'ConfigurationSettings',1100 'ConfigureAlertRequest',1101 'ConfigureAlertRequestProperties',1102 'ConsistencyCheckTaskDetails',1103 'CreateNetworkMappingInput',1104 'CreateNetworkMappingInputProperties',1105 'CreatePolicyInput',1106 'CreatePolicyInputProperties',1107 'CreateProtectionContainerInput',1108 'CreateProtectionContainerInputProperties',1109 'CreateProtectionContainerMappingInput',1110 'CreateProtectionContainerMappingInputProperties',1111 'CreateProtectionIntentInput',1112 'CreateProtectionIntentProperties',1113 'CreateProtectionIntentProviderSpecificDetails',1114 'CreateRecoveryPlanInput',1115 'CreateRecoveryPlanInputProperties',1116 'CurrentJobDetails',1117 'CurrentScenarioDetails',1118 'DataStore',1119 'DisableProtectionInput',1120 'DisableProtectionInputProperties',1121 'DisableProtectionProviderSpecificInput',1122 'DiscoverProtectableItemRequest',1123 'DiscoverProtectableItemRequestProperties',1124 'DiskDetails',1125 'DiskEncryptionInfo',1126 'DiskEncryptionKeyInfo',1127 'DiskVolumeDetails',1128 'Display',1129 'DraDetails',1130 'EnableMigrationInput',1131 'EnableMigrationInputProperties',1132 'EnableMigrationProviderSpecificInput',1133 'EnableProtectionInput',1134 'EnableProtectionInputProperties',1135 'EnableProtectionProviderSpecificInput',1136 'EncryptionDetails',1137 'Event',1138 'EventCollection',1139 'EventProperties',1140 'EventProviderSpecificDetails',1141 'EventQueryParameter',1142 'EventSpecificDetails',1143 'ExistingProtectionProfile',1144 'ExistingRecoveryAvailabilitySet',1145 'ExistingRecoveryProximityPlacementGroup',1146 'ExistingRecoveryResourceGroup',1147 'ExistingRecoveryVirtualNetwork',1148 'ExistingStorageAccount',1149 'ExportJobDetails',1150 'Fabric',1151 'FabricCollection',1152 'FabricCreationInput',1153 'FabricCreationInputProperties',1154 'FabricProperties',1155 'FabricQueryParameter',1156 'FabricReplicationGroupTaskDetails',1157 'FabricSpecificCreateNetworkMappingInput',1158 'FabricSpecificCreationInput',1159 'FabricSpecificDetails',1160 'FabricSpecificUpdateNetworkMappingInput',1161 'FailoverJobDetails',1162 'FailoverProcessServerRequest',1163 'FailoverProcessServerRequestProperties',1164 'FailoverReplicationProtectedItemDetails',1165 'GroupTaskDetails',1166 'HealthError',1167 'HealthErrorSummary',1168 'HyperVHostDetails',1169 'HyperVReplica2012EventDetails',1170 'HyperVReplica2012R2EventDetails',1171 'HyperVReplicaAzureApplyRecoveryPointInput',1172 'HyperVReplicaAzureDiskInputDetails',1173 'HyperVReplicaAzureEnableProtectionInput',1174 'HyperVReplicaAzureEventDetails',1175 'HyperVReplicaAzureFailbackProviderInput',1176 'HyperVReplicaAzureManagedDiskDetails',1177 'HyperVReplicaAzurePlannedFailoverProviderInput',1178 'HyperVReplicaAzurePolicyDetails',1179 'HyperVReplicaAzurePolicyInput',1180 'HyperVReplicaAzureReplicationDetails',1181 'HyperVReplicaAzureReprotectInput',1182 'HyperVReplicaAzureTestFailoverInput',1183 'HyperVReplicaAzureUnplannedFailoverInput',1184 'HyperVReplicaAzureUpdateReplicationProtectedItemInput',1185 'HyperVReplicaBaseEventDetails',1186 'HyperVReplicaBasePolicyDetails',1187 'HyperVReplicaBaseReplicationDetails',1188 'HyperVReplicaBluePolicyDetails',1189 'HyperVReplicaBluePolicyInput',1190 'HyperVReplicaBlueReplicationDetails',1191 'HyperVReplicaPolicyDetails',1192 'HyperVReplicaPolicyInput',1193 'HyperVReplicaReplicationDetails',1194 'HyperVSiteDetails',1195 'HyperVVirtualMachineDetails',1196 'IPConfigDetails',1197 'IPConfigInputDetails',1198 'IdentityProviderDetails',1199 'IdentityProviderInput',1200 'InMageAgentDetails',1201 'InMageAzureV2ApplyRecoveryPointInput',1202 'InMageAzureV2DiskInputDetails',1203 'InMageAzureV2EnableProtectionInput',1204 'InMageAzureV2EventDetails',1205 'InMageAzureV2ManagedDiskDetails',1206 'InMageAzureV2PolicyDetails',1207 'InMageAzureV2PolicyInput',1208 'InMageAzureV2ProtectedDiskDetails',1209 'InMageAzureV2RecoveryPointDetails',1210 'InMageAzureV2ReplicationDetails',1211 'InMageAzureV2ReprotectInput',1212 'InMageAzureV2TestFailoverInput',1213 'InMageAzureV2UnplannedFailoverInput',1214 'InMageAzureV2UpdateReplicationProtectedItemInput',1215 'InMageBasePolicyDetails',1216 'InMageDisableProtectionProviderSpecificInput',1217 'InMageDiskDetails',1218 'InMageDiskExclusionInput',1219 'InMageDiskSignatureExclusionOptions',1220 'InMageEnableProtectionInput',1221 'InMagePolicyDetails',1222 'InMagePolicyInput',1223 'InMageProtectedDiskDetails',1224 'InMageRcmAgentUpgradeBlockingErrorDetails',1225 'InMageRcmApplyRecoveryPointInput',1226 'InMageRcmDiscoveredProtectedVmDetails',1227 'InMageRcmDiskInput',1228 'InMageRcmDisksDefaultInput',1229 'InMageRcmEnableProtectionInput',1230 'InMageRcmEventDetails',1231 'InMageRcmFabricCreationInput',1232 'InMageRcmFabricSpecificDetails',1233 'InMageRcmFailbackDiscoveredProtectedVmDetails',1234 'InMageRcmFailbackEventDetails',1235 'InMageRcmFailbackMobilityAgentDetails',1236 'InMageRcmFailbackNicDetails',1237 'InMageRcmFailbackPlannedFailoverProviderInput',1238 'InMageRcmFailbackPolicyCreationInput',1239 'InMageRcmFailbackPolicyDetails',1240 'InMageRcmFailbackProtectedDiskDetails',1241 'InMageRcmFailbackReplicationDetails',1242 'InMageRcmFailbackReprotectInput',1243 'InMageRcmFailbackSyncDetails',1244 'InMageRcmLastAgentUpgradeErrorDetails',1245 'InMageRcmMobilityAgentDetails',1246 'InMageRcmNicDetails',1247 'InMageRcmNicInput',1248 'InMageRcmPolicyCreationInput',1249 'InMageRcmPolicyDetails',1250 'InMageRcmProtectedDiskDetails',1251 'InMageRcmProtectionContainerMappingDetails',1252 'InMageRcmRecoveryPointDetails',1253 'InMageRcmReplicationDetails',1254 'InMageRcmReprotectInput',1255 'InMageRcmSyncDetails',1256 'InMageRcmTestFailoverInput',1257 'InMageRcmUnplannedFailoverInput',1258 'InMageRcmUpdateApplianceForReplicationProtectedItemInput',1259 'InMageRcmUpdateContainerMappingInput',1260 'InMageRcmUpdateReplicationProtectedItemInput',1261 'InMageReplicationDetails',1262 'InMageReprotectInput',1263 'InMageTestFailoverInput',1264 'InMageUnplannedFailoverInput',1265 'InMageVolumeExclusionOptions',1266 'InconsistentVmDetails',1267 'InitialReplicationDetails',1268 'InlineWorkflowTaskDetails',1269 'InnerHealthError',1270 'InputEndpoint',1271 'Job',1272 'JobCollection',1273 'JobDetails',1274 'JobEntity',1275 'JobErrorDetails',1276 'JobProperties',1277 'JobQueryParameter',1278 'JobStatusEventDetails',1279 'JobTaskDetails',1280 'KeyEncryptionKeyInfo',1281 'LogicalNetwork',1282 'LogicalNetworkCollection',1283 'LogicalNetworkProperties',1284 'ManualActionTaskDetails',1285 'MarsAgentDetails',1286 'MasterTargetServer',1287 'MigrateInput',1288 'MigrateInputProperties',1289 'MigrateProviderSpecificInput',1290 'MigrationItem',1291 'MigrationItemCollection',1292 'MigrationItemProperties',1293 'MigrationItemsQueryParameter',1294 'MigrationProviderSpecificSettings',1295 'MigrationRecoveryPoint',1296 'MigrationRecoveryPointCollection',1297 'MigrationRecoveryPointProperties',1298 'MobilityServiceUpdate',1299 'Network',1300 'NetworkCollection',1301 'NetworkMapping',1302 'NetworkMappingCollection',1303 'NetworkMappingFabricSpecificSettings',1304 'NetworkMappingProperties',1305 'NetworkProperties',1306 'NewProtectionProfile',1307 'NewRecoveryVirtualNetwork',1308 'OSDetails',1309 'OSDiskDetails',1310 'OSVersionWrapper',1311 'OperationsDiscovery',1312 'OperationsDiscoveryCollection',1313 'PlannedFailoverInput',1314 'PlannedFailoverInputProperties',1315 'PlannedFailoverProviderSpecificFailoverInput',1316 'Policy',1317 'PolicyCollection',1318 'PolicyProperties',1319 'PolicyProviderSpecificDetails',1320 'PolicyProviderSpecificInput',1321 'ProcessServer',1322 'ProcessServerDetails',1323 'ProtectableItem',1324 'ProtectableItemCollection',1325 'ProtectableItemProperties',1326 'ProtectableItemQueryParameter',1327 'ProtectedItemsQueryParameter',1328 'ProtectionContainer',1329 'ProtectionContainerCollection',1330 'ProtectionContainerFabricSpecificDetails',1331 'ProtectionContainerMapping',1332 'ProtectionContainerMappingCollection',1333 'ProtectionContainerMappingProperties',1334 'ProtectionContainerMappingProviderSpecificDetails',1335 'ProtectionContainerProperties',1336 'ProtectionProfileCustomDetails',1337 'ProviderError',1338 'ProviderSpecificRecoveryPointDetails',1339 'PushInstallerDetails',1340 'RcmProxyDetails',1341 'RecoveryAvailabilitySetCustomDetails',1342 'RecoveryPlan',1343 'RecoveryPlanA2ADetails',1344 'RecoveryPlanA2AFailoverInput',1345 'RecoveryPlanA2AInput',1346 'RecoveryPlanAction',1347 'RecoveryPlanActionDetails',1348 'RecoveryPlanAutomationRunbookActionDetails',1349 'RecoveryPlanCollection',1350 'RecoveryPlanGroup',1351 'RecoveryPlanGroupTaskDetails',1352 'RecoveryPlanHyperVReplicaAzureFailbackInput',1353 'RecoveryPlanHyperVReplicaAzureFailoverInput',1354 'RecoveryPlanInMageAzureV2FailoverInput',1355 'RecoveryPlanInMageFailoverInput',1356 'RecoveryPlanInMageRcmFailbackFailoverInput',1357 'RecoveryPlanInMageRcmFailoverInput',1358 'RecoveryPlanManualActionDetails',1359 'RecoveryPlanPlannedFailoverInput',1360 'RecoveryPlanPlannedFailoverInputProperties',1361 'RecoveryPlanProperties',1362 'RecoveryPlanProtectedItem',1363 'RecoveryPlanProviderSpecificDetails',1364 'RecoveryPlanProviderSpecificFailoverInput',1365 'RecoveryPlanProviderSpecificInput',1366 'RecoveryPlanScriptActionDetails',1367 'RecoveryPlanShutdownGroupTaskDetails',1368 'RecoveryPlanTestFailoverCleanupInput',1369 'RecoveryPlanTestFailoverCleanupInputProperties',1370 'RecoveryPlanTestFailoverInput',1371 'RecoveryPlanTestFailoverInputProperties',1372 'RecoveryPlanUnplannedFailoverInput',1373 'RecoveryPlanUnplannedFailoverInputProperties',1374 'RecoveryPoint',1375 'RecoveryPointCollection',1376 'RecoveryPointProperties',1377 'RecoveryProximityPlacementGroupCustomDetails',1378 'RecoveryResourceGroupCustomDetails',1379 'RecoveryServicesProvider',1380 'RecoveryServicesProviderCollection',1381 'RecoveryServicesProviderProperties',1382 'RecoveryVirtualNetworkCustomDetails',1383 'RemoveDisksInput',1384 'RemoveDisksInputProperties',1385 'RemoveDisksProviderSpecificInput',1386 'RemoveProtectionContainerMappingInput',1387 'RemoveProtectionContainerMappingInputProperties',1388 'RenewCertificateInput',1389 'RenewCertificateInputProperties',1390 'ReplicationAgentDetails',1391 'ReplicationEligibilityResults',1392 'ReplicationEligibilityResultsCollection',1393 'ReplicationEligibilityResultsErrorInfo',1394 'ReplicationEligibilityResultsProperties',1395 'ReplicationGroupDetails',1396 'ReplicationProtectedItem',1397 'ReplicationProtectedItemCollection',1398 'ReplicationProtectedItemProperties',1399 'ReplicationProtectionIntent',1400 'ReplicationProtectionIntentCollection',1401 'ReplicationProtectionIntentProperties',1402 'ReplicationProtectionIntentProviderSpecificSettings',1403 'ReplicationProviderContainerUnmappingInput',1404 'ReplicationProviderSpecificContainerCreationInput',1405 'ReplicationProviderSpecificContainerMappingInput',1406 'ReplicationProviderSpecificSettings',1407 'ReplicationProviderSpecificUpdateContainerMappingInput',1408 'ReprotectAgentDetails',1409 'ResolveHealthError',1410 'ResolveHealthInput',1411 'ResolveHealthInputProperties',1412 'Resource',1413 'ResourceHealthSummary',1414 'ResumeJobParams',1415 'ResumeJobParamsProperties',1416 'ResyncInput',1417 'ResyncInputProperties',1418 'ResyncProviderSpecificInput',1419 'RetentionVolume',1420 'ReverseReplicationInput',1421 'ReverseReplicationInputProperties',1422 'ReverseReplicationProviderSpecificInput',1423 'RoleAssignment',1424 'RunAsAccount',1425 'ScriptActionTaskDetails',1426 'ServiceError',1427 'StorageAccountCustomDetails',1428 'StorageClassification',1429 'StorageClassificationCollection',1430 'StorageClassificationMapping',1431 'StorageClassificationMappingCollection',1432 'StorageClassificationMappingInput',1433 'StorageClassificationMappingProperties',1434 'StorageClassificationProperties',1435 'StorageMappingInputProperties',1436 'Subnet',1437 'SupportedOSDetails',1438 'SupportedOSProperties',1439 'SupportedOSProperty',1440 'SupportedOperatingSystems',1441 'SwitchProtectionInput',1442 'SwitchProtectionInputProperties',1443 'SwitchProtectionJobDetails',1444 'SwitchProtectionProviderSpecificInput',1445 'TargetComputeSize',1446 'TargetComputeSizeCollection',1447 'TargetComputeSizeProperties',1448 'TaskTypeDetails',1449 'TestFailoverCleanupInput',1450 'TestFailoverCleanupInputProperties',1451 'TestFailoverInput',1452 'TestFailoverInputProperties',1453 'TestFailoverJobDetails',1454 'TestFailoverProviderSpecificInput',1455 'TestMigrateCleanupInput',1456 'TestMigrateCleanupInputProperties',1457 'TestMigrateInput',1458 'TestMigrateInputProperties',1459 'TestMigrateProviderSpecificInput',1460 'UnplannedFailoverInput',1461 'UnplannedFailoverInputProperties',1462 'UnplannedFailoverProviderSpecificInput',1463 'UpdateApplianceForReplicationProtectedItemInput',1464 'UpdateApplianceForReplicationProtectedItemInputProperties',1465 'UpdateApplianceForReplicationProtectedItemProviderSpecificInput',1466 'UpdateDiskInput',1467 'UpdateMigrationItemInput',1468 'UpdateMigrationItemInputProperties',1469 'UpdateMigrationItemProviderSpecificInput',1470 'UpdateMobilityServiceRequest',1471 'UpdateMobilityServiceRequestProperties',1472 'UpdateNetworkMappingInput',1473 'UpdateNetworkMappingInputProperties',1474 'UpdatePolicyInput',1475 'UpdatePolicyInputProperties',1476 'UpdateProtectionContainerMappingInput',1477 'UpdateProtectionContainerMappingInputProperties',1478 'UpdateRecoveryPlanInput',1479 'UpdateRecoveryPlanInputProperties',1480 'UpdateReplicationProtectedItemInput',1481 'UpdateReplicationProtectedItemInputProperties',1482 'UpdateReplicationProtectedItemProviderInput',1483 'UpdateVCenterRequest',1484 'UpdateVCenterRequestProperties',1485 'VCenter',1486 'VCenterCollection',1487 'VCenterProperties',1488 'VMNicDetails',1489 'VMNicInputDetails',1490 'VMwareCbtContainerCreationInput',1491 'VMwareCbtContainerMappingInput',1492 'VMwareCbtDiskInput',1493 'VMwareCbtEnableMigrationInput',1494 'VMwareCbtEventDetails',1495 'VMwareCbtMigrateInput',1496 'VMwareCbtMigrationDetails',1497 'VMwareCbtNicDetails',1498 'VMwareCbtNicInput',1499 'VMwareCbtPolicyCreationInput',1500 'VMwareCbtProtectedDiskDetails',1501 'VMwareCbtProtectionContainerMappingDetails',1502 'VMwareCbtResyncInput',1503 'VMwareCbtTestMigrateInput',1504 'VMwareCbtUpdateDiskInput',1505 'VMwareCbtUpdateMigrationItemInput',1506 'VMwareDetails',1507 'VMwareV2FabricCreationInput',1508 'VMwareV2FabricSpecificDetails',1509 'VMwareVirtualMachineDetails',1510 'VaultHealthDetails',1511 'VaultHealthProperties',1512 'VaultSetting',1513 'VaultSettingCollection',1514 'VaultSettingCreationInput',1515 'VaultSettingCreationInputProperties',1516 'VaultSettingProperties',1517 'VersionDetails',1518 'VirtualMachineTaskDetails',1519 'VmNicUpdatesTaskDetails',1520 'VmmDetails',1521 'VmmToAzureCreateNetworkMappingInput',1522 'VmmToAzureNetworkMappingSettings',1523 'VmmToAzureUpdateNetworkMappingInput',1524 'VmmToVmmCreateNetworkMappingInput',1525 'VmmToVmmNetworkMappingSettings',1526 'VmmToVmmUpdateNetworkMappingInput',1527 'VmmVirtualMachineDetails',1528 'VmwareCbtPolicyDetails',1529 'A2ARecoveryAvailabilityType',1530 'A2ARpRecoveryPointType',1531 'AgentAutoUpdateStatus',1532 'AgentUpgradeBlockedReason',1533 'AgentVersionStatus',1534 'AlternateLocationRecoveryOption',1535 'AutoProtectionOfDataDisk',1536 'DataSyncStatus',1537 'DisableProtectionReason',1538 'DiskAccountType',1539 'DiskReplicationProgressHealth',1540 'EthernetAddressType',1541 'ExportJobOutputSerializationType',1542 'FailoverDeploymentModel',1543 'HealthErrorCategory',1544 'HealthErrorCustomerResolvability',1545 'HyperVReplicaAzureRpRecoveryPointType',1546 'InMageRcmFailbackRecoveryPointType',1547 'InMageV2RpRecoveryPointType',1548 'LicenseType',1549 'MigrationItemOperation',1550 'MigrationRecoveryPointType',1551 'MigrationState',1552 'MobilityAgentUpgradeState',1553 'MultiVmGroupCreateOption',1554 'MultiVmSyncPointOption',1555 'PlannedFailoverStatus',1556 'PossibleOperationsDirections',1557 'PresenceStatus',1558 'ProtectionHealth',1559 'RcmComponentStatus',1560 'RecoveryPlanActionLocation',1561 'RecoveryPlanGroupType',1562 'RecoveryPlanPointType',1563 'RecoveryPointSyncType',1564 'RecoveryPointType',1565 'ReplicationProtectedItemOperation',1566 'ResyncState',1567 'RpInMageRecoveryPointType',1568 'SetMultiVmSyncStatus',1569 'Severity',1570 'SourceSiteOperations',1571 'SqlServerLicenseType',1572 'TestMigrationState',1573 'VmEncryptionType',1574 'VmReplicationProgressHealth',...

Full Screen

Full Screen

jira-manglr.py

Source:jira-manglr.py Github

copy

Full Screen

1#!/usr/bin/env python32import argparse3import collections4import fnmatch5import io6import json7import logging8import sys9import yaml10import xml.etree.ElementTree as ET11ENCODING = 'UTF-8'12log = logging.getLogger('jira-manglr')13__doc__ = """14Mangle Jira imports15"""16def split_xml_root(e, encoding=ENCODING, default_namespace=None):17 out = io.BytesIO()18 # output root element open19 et = ET.ElementTree(e)20 et.write(out,21 short_empty_elements = False,22 encoding = encoding,23 xml_declaration = True,24 default_namespace = default_namespace,25 )26 xml = out.getvalue()27 xml_open, xml_close1, xml_close2 = xml.partition(b'</')28 return xml_open, xml_close1 + xml_close229def parse_xml(file, count_interval=10000):30 """31 Iterate over all top-level elements32 """33 count = 034 root = None35 level = 036 for event, e in ET.iterparse(file, events=['start', 'end']):37 if event == 'start':38 level += 139 elif event == 'end':40 level -= 141 log.debug("%2d %10s %s", level, event, e.tag)42 if level == 1 and event == 'start':43 # process root element44 root = e45 elif level == 2 and event == 'start':46 count += 147 if count % count_interval == 0:48 log.info("Processing %d elements...", count)49 elif level == 1 and event == 'end':50 # process each top-level element51 yield e52 e.clear()53def process_xml(filter, input, output, count_interval=10000, count_total=None, encoding=ENCODING, default_namespace=None):54 """55 Process all all top-level elements56 """57 level = 058 root_close = None59 input_count = 060 input_counts = collections.defaultdict(int)61 output_count = 062 output_counts = collections.defaultdict(int)63 for event, e in ET.iterparse(input, events=['start', 'end']):64 if event == 'start':65 level += 166 elif event == 'end':67 level -= 168 log.debug("%2d %10s %s", level, event, e.tag)69 if level == 1 and event == 'start':70 # clone just the top-level element71 root = ET.Element(e.tag, e.attrib)72 root.text = '\n\t'73 root.tail = '\n'74 # output root element open75 root_open, root_close = split_xml_root(root, encoding=encoding, default_namespace=default_namespace)76 log.debug("ROOT %s => %s + %s", e, root_open, root_close)77 output.write(root_open)78 elif level == 2 and event == 'start':79 input_count += 180 input_counts[e.tag] += 181 if input_count % count_interval == 0:82 if count_total:83 log.info("Processing %d/%d elements...", input_count, count_total)84 else:85 log.info("Processing %d elements...", input_count)86 elif level == 1 and event == 'end':87 ref = e # for cleanup88 # process each top-level element89 e = filter(e)90 if e is None:91 pass92 else:93 output_count += 194 output_counts[e.tag] += 195 e.tail = '\n\t'96 et = ET.ElementTree(e)97 et.write(output,98 encoding = encoding,99 xml_declaration = False,100 default_namespace = default_namespace,101 )102 ref.clear()103 elif level == 0 and event == 'end':104 # output root element close105 output.write(root_close)106 log.info("Stats: %d/%d items = %.2f%%", output_count, input_count, output_count/input_count*100)107 for tag in input_counts:108 i = input_counts[tag]109 o = output_counts[tag]110 log.info("\t%-30s: %8d/%8d = %.2f%%", tag, o, i, o/i*100)111def filter_attr_set(e, attrs, rewrite=None):112 """113 attrs - { attr: set(values) }114 """115 values = {attr: e.get(attr) for attr in attrs}116 if any((attrs[attr] is not None) and (e.get(attr) not in attrs[attr]) for attr in attrs):117 log.info("DROP %s %s", e.tag, values)118 return None119 if rewrite:120 for attr, map in rewrite.items():121 if map is not None:122 old = e.get(attr)123 new = map.get(old)124 if new:125 log.info("REWRITE %s %s: %s -> %s", e.tag, attr, old, new)126 e.set(attr, new)127 log.debug("KEEP %s %s", e.tag, values)128 return e129def filter_attr_drop_set(e, attrs):130 """131 attrs - { attr: set(values) }132 """133 values = {attr: e.get(attr) for attr in attrs}134 if any((attrs[attr] is not None) and (e.get(attr) in attrs[attr]) for attr in attrs):135 log.info("DROP %s %s", e.tag, values)136 return None137 log.debug("KEEP %s %s", e.tag, values)138 return e139def filter_attr_glob(e, attr, globs):140 value = e.get(attr)141 if any(fnmatch.fnmatch(value, pattern) for pattern in globs):142 log.info("DROP %s %s=%s", e.tag, attr, value)143 return None144 else:145 log.debug("KEEP %s %s=%s", e.tag, attr, value)146 return e147class EntityMangler:148 DEFAULT_PERMISSON_SCHEME = "0"149 DEFAULT_FIELDSCREEN_IDS = {'1', '2', '3'}150 DEFAULT_FIELDCONFIGSCHEME = '1'151 def __init__(self, keep_project_users=None, keep_users=None, drop_users=None, rewrite_users=None, keep_groups=None, modify_users=None, rewrite_directories=None, drop_osproperty=None, rewrite_osproperty=None):152 self.element_count = 0153 self.projects_ids = set()154 self.all_users = set()155 self.project_users = set()156 self.internal_directory_id = None157 self.remap_directory_id = None158 self.drop_osproperty_ids = set()159 self.osproperties = {}160 self.scheme_ids = collections.defaultdict(set)161 self.scheme_ids['PermissionScheme'].add(self.DEFAULT_PERMISSON_SCHEME)162 self.scheme_ids['FieldScreen'].update(self.DEFAULT_FIELDSCREEN_IDS)163 self.scheme_ids['FieldConfigScheme'].add(self.DEFAULT_FIELDCONFIGSCHEME)164 self.workflows = set()165 self.keep_project_users = keep_project_users166 self.keep_users = None167 self.drop_users = None168 self.rewrite_users = None169 self.keep_groups = None170 self.modify_users = None171 self.keep_directories = None172 self.filter_directories = None173 self.rewrite_directories = None174 self.drop_osproperty = [] # globs175 self.rewrite_osproperty = {} # { name/key: ... }176 if keep_users:177 self.keep_users = set(keep_users)178 if rewrite_users:179 self.rewrite_users = dict(rewrite_users)180 self.keep_users |= set(rewrite_users.keys())181 if drop_users:182 self.drop_users = set(drop_users)183 if keep_groups:184 self.keep_groups = set(keep_groups)185 if modify_users:186 self.modify_users = dict(modify_users)187 if rewrite_directories:188 self.keep_directories = {str(id) for id in rewrite_directories.values()}189 self.filter_directories = {str(id) for id in rewrite_directories.keys()}190 self.rewrite_directories = {str(k): str(v) for k, v in rewrite_directories.items()}191 if drop_osproperty:192 self.drop_osproperty = list(drop_osproperty)193 if rewrite_osproperty:194 self.rewrite_osproperty = dict(rewrite_osproperty)195 def save_state(self):196 return {197 'element_count': self.element_count,198 'projects_ids': list(self.projects_ids),199 'all_users': list(self.all_users),200 'project_users': list(self.project_users),201 'internal_directory_id': self.internal_directory_id,202 'drop_osproperty_ids': list(self.drop_osproperty_ids),203 'osproperties': dict(self.osproperties),204 'scheme_ids': {k: list(s) for k, s in self.scheme_ids.items()},205 'workflows': list(self.workflows),206 }207 def load_state(self, state):208 self.element_count = state['element_count']209 if 'projects_ids' in state:210 self.projects_ids = set(state['projects_ids'])211 if 'project_role_actor_users' in state:212 self.project_users = set(state['project_role_actor_users'])213 else:214 self.project_users = set(state['project_users'])215 if 'all_users' in state:216 self.all_users = set(state['all_users'])217 if 'internal_directory_id' in state:218 self.internal_directory_id = state['internal_directory_id']219 if 'drop_osproperty_ids' in state:220 self.drop_osproperty_ids = set(state['drop_osproperty_ids'])221 if 'osproperties' in state:222 self.osproperties = dict(state['osproperties'])223 if 'scheme_ids' in state:224 for k, v in state['scheme_ids'].items():225 self.scheme_ids[k] = set(v)226 if 'workflows' in state:227 self.workflows = set(state['workflows'])228 if self.keep_project_users:229 if not self.keep_users:230 self.keep_users = set()231 self.keep_users |= self.project_users232 if self.drop_users:233 self.keep_users -= self.drop_users234 def filter(self, e):235 if e.tag in ('AuditChangedValue', 'AuditItem', 'AuditLog'):236 return None237 elif e.tag in ('OAuthConsumer', 'OAuthServiceProviderConsumer', 'OAuthServiceProviderToken'):238 return None239 elif e.tag == 'FilterSubscription':240 # not used241 return None242 elif e.tag == 'Action':243 return filter_attr_set(e, {},244 rewrite = {'author': self.rewrite_users, 'updateauthor': self.rewrite_users},245 )246 elif e.tag == 'Avatar' and e.get('avatarType') == 'user' and e.get('owner'):247 return filter_attr_set(e, {'owner': self.keep_users},248 rewrite = {'owner': self.rewrite_users},249 )250 elif e.tag == 'User':251 e = filter_attr_set(e, {'userName': self.keep_users, 'directoryId': self.filter_directories},252 rewrite = {'directoryId': self.rewrite_directories, 'userName': self.rewrite_users, 'lowerUserName': self.rewrite_users},253 )254 if (e is not None) and self.modify_users and e.get('userName') in self.modify_users:255 log.info("MODIFY %s userName=%s", e.tag, e.get('userName'))256 for attr, value in self.modify_users[e.get('userName')].items():257 log.info("MODIFY %s userName=%s: %s=%s -> %s", e.tag, e.get('userName'), attr, e.get(attr), value)258 e.set(attr, value)259 return e260 elif e.tag == 'ApplicationUser':261 return filter_attr_set(e, {'userKey': self.keep_users},262 rewrite = {'userKey': self.rewrite_users, 'lowerUserName': self.rewrite_users},263 )264 elif e.tag == 'Group':265 return filter_attr_set(e, {'groupName': self.keep_groups, 'directoryId': self.filter_directories},266 rewrite = {'directoryId': self.rewrite_directories},267 )268 elif e.tag == 'Membership' and e.get('membershipType') == 'GROUP_USER':269 return filter_attr_set(e, {'childName': self.keep_users, 'parentName': self.keep_groups, 'directoryId': self.filter_directories},270 rewrite = {'directoryId': self.rewrite_directories, 'childName': self.rewrite_users, 'lowerChildName': self.rewrite_users},271 )272 elif e.tag == 'UserAttribute':273 return filter_attr_set(e, {'directoryId': self.filter_directories},274 rewrite = {'directoryId': self.rewrite_directories},275 )276 elif e.tag == 'UserHistoryItem':277 return filter_attr_set(e, {'username': self.keep_users},278 rewrite = {'entityId': self.rewrite_users, 'username': self.rewrite_users},279 )280 elif e.tag == 'SearchRequest':281 return filter_attr_set(e, {'author': self.keep_users},282 rewrite = {'author': self.rewrite_users, 'user': self.rewrite_users},283 )284 elif e.tag == 'SharePermissions' and e.get('type') == 'group':285 return filter_attr_set(e, {'param1': self.keep_groups})286 elif e.tag == 'RememberMeToken':287 return filter_attr_set(e, {'username': self.keep_users},288 rewrite = {'username': self.rewrite_users},289 )290 elif e.tag == 'ChangeGroup':291 return filter_attr_set(e, {},292 rewrite = {'author': self.rewrite_users},293 )294 elif e.tag == 'ChangeItem' and e.get('field') in ('assignee', 'reporter'):295 return filter_attr_set(e, {},296 rewrite = {'newvalue': self.rewrite_users, 'oldvalue': self.rewrite_users},297 )298 elif e.tag == 'FileAttachment':299 return filter_attr_set(e, {},300 rewrite = {'author': self.rewrite_users},301 )302 elif e.tag == 'Issue':303 return filter_attr_set(e, {},304 rewrite = {'assignee': self.rewrite_users, 'creator': self.rewrite_users, 'reporter': self.rewrite_users},305 )306 elif e.tag == 'Project':307 return filter_attr_set(e, {},308 rewrite = {'lead': self.rewrite_users},309 )310 elif e.tag == 'UserAssociation':311 return filter_attr_set(e, {'sourceName': self.keep_users},312 rewrite = {'sourceName': self.rewrite_users},313 )314 elif e.tag == 'ProjectRoleActor' and e.get('roletype') == 'atlassian-user-role-actor':315 return filter_attr_set(e, {'roletypeparameter': self.keep_users},316 rewrite = {'roletypeparameter': self.rewrite_users},317 )318 elif e.tag == 'PortalPage' and e.get('username'):319 return filter_attr_set(e, {'username': self.keep_users},320 rewrite = {'username': self.rewrite_users},321 )322 elif e.tag == 'ColumnLayout' and e.get('username'):323 return filter_attr_set(e, {'username': self.keep_users},324 rewrite = {'username': self.rewrite_users},325 )326 elif e.tag == 'ExternalEntity':327 # TODO: drop all?328 return filter_attr_set(e, {'name': self.keep_users},329 rewrite = {'name': self.rewrite_users},330 )331 elif e.tag == 'FavouriteAssociations':332 return filter_attr_set(e, {'username': self.keep_users},333 rewrite = {'username': self.rewrite_users},334 )335 elif e.tag == 'Feature' and e.get('featureType') == 'user':336 return filter_attr_set(e, {'userKey': self.keep_users})337 elif e.tag == 'FilterSubscription':338 return filter_attr_set(e, {'username': self.keep_users})339 elif e.tag == 'Notification' and e.get('type') == 'Single_User':340 return filter_attr_set(e, {'parameter': self.keep_users})341 elif e.tag == 'SchemePermissions' and e.get('type') == 'user':342 return filter_attr_set(e, {'parameter': self.keep_users})343 elif e.tag == 'SchemePermissions' and e.get('type') == 'group':344 return filter_attr_set(e, {'parameter': self.keep_groups})345 elif e.tag == 'OSHistoryStep' and e.get('caller'):346 return filter_attr_set(e, {'caller': self.keep_users},347 rewrite = {'caller': self.rewrite_users},348 )349 elif e.tag == 'OSPropertyEntry' and self.drop_osproperty:350 return filter_attr_drop_set(e, {'id': self.drop_osproperty_ids})351 elif e.tag in ('OSPropertyDecimal', 'OSPropertyNumber', 'OSPropertyString', 'OSPropertyText'):352 id = e.get('id')353 e = filter_attr_drop_set(e, {'id': self.drop_osproperty_ids})354 if (e is not None) and (id in self.osproperties):355 p = self.osproperties[id]356 if p in self.rewrite_osproperty:357 old = e.get('value')358 new = self.rewrite_osproperty[p]359 log.info("REWRITE %s id=%s (%s): %s => %s", e.tag, id, p, old, new)360 e.set('value', new)361 return e362 elif e.tag == 'Directory':363 return filter_attr_set(e, {'id': self.keep_directories})364 elif e.tag in ('DirectoryAttribute', 'DirectoryOperation'):365 return filter_attr_set(e, {'directoryId': self.keep_directories})366 elif e.tag == 'MailServer':367 return None368 elif e.tag == 'ProjectCategory':369 return None # TODO: map projects?370 elif e.tag == 'IssueSecurityScheme':371 return filter_attr_set(e, {'id': self.scheme_ids['IssueSecurityScheme']})372 elif e.tag == 'SchemeIssueSecurities':373 return filter_attr_set(e, {'scheme': self.scheme_ids['IssueSecurityScheme']})374 elif e.tag == 'SchemeIssueSecurityLevels':375 return filter_attr_set(e, {'scheme': self.scheme_ids['IssueSecurityScheme']})376 elif e.tag == 'NotificationScheme':377 return filter_attr_set(e, {'id': self.scheme_ids['NotificationScheme']})378 elif e.tag == 'Notification':379 return filter_attr_set(e, {'scheme': self.scheme_ids['NotificationScheme']})380 elif e.tag == 'PermissionScheme':381 return filter_attr_set(e, {'id': self.scheme_ids['PermissionScheme']})382 elif e.tag == 'SchemePermissions':383 return filter_attr_set(e, {'scheme': self.scheme_ids['PermissionScheme']})384 elif e.tag == 'IssueTypeScreenScheme':385 return filter_attr_set(e, {'id': self.scheme_ids['IssueTypeScreenScheme']})386 elif e.tag == 'IssueTypeScreenSchemeEntity':387 return filter_attr_set(e, {'scheme': self.scheme_ids['IssueTypeScreenScheme']})388 elif e.tag == 'FieldLayoutScheme':389 return filter_attr_set(e, {'id': self.scheme_ids['FieldLayoutScheme']})390 elif e.tag == 'FieldLayoutSchemeEntity':391 return filter_attr_set(e, {'scheme': self.scheme_ids['FieldLayoutScheme']})392 elif e.tag == 'WorkflowScheme':393 return filter_attr_set(e, {'id': self.scheme_ids['WorkflowScheme']})394 elif e.tag == 'WorkflowSchemeEntity':395 return filter_attr_set(e, {'scheme': self.scheme_ids['WorkflowScheme']})396 elif e.tag == 'FieldScreenScheme':397 return filter_attr_set(e, {'id': self.scheme_ids['FieldScreenScheme']})398 elif e.tag == 'FieldScreenSchemeItem':399 return filter_attr_set(e, {'fieldscreenscheme': self.scheme_ids['FieldScreenScheme']})400 elif e.tag == 'FieldScreen':401 return filter_attr_set(e, {'id': self.scheme_ids['FieldScreen']})402 elif e.tag == 'FieldScreenTab':403 return filter_attr_set(e, {'fieldscreen': self.scheme_ids['FieldScreen']})404 elif e.tag == 'FieldScreenLayoutItem':405 return filter_attr_set(e, {'fieldscreentab': self.scheme_ids['FieldScreenTab']})406 elif e.tag == 'FieldLayout':407 if e.get('type') == 'default':408 return e409 else:410 return filter_attr_set(e, {'id': self.scheme_ids['FieldLayout']})411 elif e.tag == 'FieldLayoutItem':412 return filter_attr_set(e, {'fieldlayout': self.scheme_ids['FieldLayout']})413 elif e.tag == 'Workflow':414 return filter_attr_set(e, {'name': self.workflows})415 elif e.tag == 'Status':416 return filter_attr_set(e, {'id': self.scheme_ids['Status']})417 elif e.tag == 'FieldConfigScheme' and e.get('fieldid') == 'issuetype':418 return filter_attr_set(e, {'id': self.scheme_ids['FieldConfigScheme']})419 elif e.tag == 'FieldConfigSchemeIssueType':420 return filter_attr_set(e, {'fieldconfigscheme': self.scheme_ids['FieldConfigScheme']})421 elif e.tag == 'FieldConfiguration':422 return filter_attr_set(e, {'id': self.scheme_ids['FieldConfiguration']})423 elif e.tag == 'OptionConfiguration' and e.get('fieldid') == 'issuetype': # TODO: customfields?424 return filter_attr_set(e, {'fieldconfig': self.scheme_ids['FieldConfiguration']})425 elif e.tag == 'IssueType':426 return filter_attr_set(e, {'id': self.scheme_ids['IssueType']})427 else:428 return e429 def scan(self, file):430 IssueTypeScreenSchemeEntity_FieldScreenScheme = collections.defaultdict(set)431 IssueTypeScreenSchemeEntity_issuetype = collections.defaultdict(set)432 FieldLayoutSchemeEntity_FieldLayout = collections.defaultdict(set)433 WorkflowSchemeEntity_workflow = collections.defaultdict(set)434 FieldScreenSchemeItem_fieldscreen = collections.defaultdict(set)435 Workflow_fieldscreen = collections.defaultdict(set)436 Workflow_status = collections.defaultdict(set)437 fieldscreen_FieldScreenTab = collections.defaultdict(set)438 project_issuetype_fieldconfigscheme = collections.defaultdict(set) # ConfigurationContext439 customfield_FieldConfigScheme = collections.defaultdict(set)440 fieldconfigscheme_FieldConfigSchemeIssueType_fieldconfiguration = collections.defaultdict(set)441 fieldconfig_OptionConfiguration_issuetype = collections.defaultdict(set)442 for e in parse_xml(file):443 self.element_count += 1444 if e.tag == 'Directory' and e.get('type') == 'INTERNAL':445 id = e.get('id')446 log.info("SCAN internal_directory_id %s", id)447 self.internal_directory_id = id448 if e.tag == 'User':449 self.all_users.add(e.get('userName'))450 elif e.tag == 'Project':451 self.projects_ids.add(e.get('id'))452 elif e.tag == 'ProjectRoleActor':453 roletype = e.get('roletype')454 roletypeparameter = e.get('roletypeparameter')455 if roletype == 'atlassian-user-role-actor':456 log.info("SCAN project_role_actor_users %s", roletypeparameter)457 self.project_users.add(roletypeparameter)458 elif e.tag == 'OSPropertyEntry':459 id = e.get('id')460 name = e.get('entityName')461 key = e.get('propertyKey')462 p = f'{name}/{key}'463 if p in self.rewrite_osproperty:464 log.info("SCAN rewrite_osproperty %s => id=%s", p, id)465 self.osproperties[id] = p466 if any(fnmatch.fnmatch(p, pattern) for pattern in self.drop_osproperty):467 log.info("SCAN drop_osproperty %s => id=%s", p, id)468 self.drop_osproperty_ids.add(id)469 elif e.tag == 'NodeAssociation' and e.get('associationType') == 'ProjectScheme':470 entity = e.get('sinkNodeEntity')471 id = e.get('sinkNodeId')472 log.info("SCAN scheme_ids %s => %s", entity, id)473 self.scheme_ids[entity].add(id)474 elif e.tag == 'IssueTypeScreenSchemeEntity':475 IssueTypeScreenSchemeEntity_FieldScreenScheme[e.get('scheme')].add(e.get('fieldscreenscheme'))476 if e.get('issuetype'):477 IssueTypeScreenSchemeEntity_issuetype[e.get('scheme')].add(e.get('issuetype'))478 elif e.tag == 'FieldLayoutSchemeEntity' and e.get('fieldlayout'):479 FieldLayoutSchemeEntity_FieldLayout[e.get('scheme')].add(e.get('fieldlayout'))480 elif e.tag == 'WorkflowSchemeEntity':481 WorkflowSchemeEntity_workflow[e.get('scheme')].add(e.get('workflow'))482 elif e.tag == 'FieldScreenSchemeItem':483 FieldScreenSchemeItem_fieldscreen[e.get('fieldscreenscheme')].add(e.get('fieldscreen'))484 elif e.tag == 'Workflow':485 workflow = ET.fromstring(e.findtext('descriptor'))486 name = e.get('name')487 for action in workflow.iter('action'):488 if action.get('view') == 'fieldscreen':489 for meta in action.iter('meta'):490 if meta.get('name') == 'jira.fieldscreen.id':491 Workflow_fieldscreen[name].add(meta.text.strip())492 for step in workflow.iter('step'):493 for meta in step.iter('meta'):494 if meta.get('name') == 'jira.status.id':495 Workflow_status[name].add(meta.text.strip())496 elif e.tag == 'FieldScreenTab':497 fieldscreen_FieldScreenTab[e.get('fieldscreen')].add(e.get('id'))498 elif e.tag == 'ConfigurationContext' and e.get('key') == 'issuetype':499 project_issuetype_fieldconfigscheme[e.get('project')] = e.get('fieldconfigscheme')500 elif e.tag == 'FieldConfigScheme' and e.get('fieldid').startswith('customfield_'):501 # XXX: all customfields502 customfield_FieldConfigScheme[e.get('fieldid')].add(e.get('id'))503 elif e.tag == 'FieldConfigSchemeIssueType':504 fieldconfigscheme_FieldConfigSchemeIssueType_fieldconfiguration[e.get('fieldconfigscheme')].add(e.get('fieldconfiguration'))505 elif e.tag == 'OptionConfiguration' and e.get('fieldid') == 'issuetype':506 fieldconfig_OptionConfiguration_issuetype[e.get('fieldconfig')].add(e.get('optionid'))507 # indirect references508 for id in self.scheme_ids['IssueTypeScreenScheme']:509 for schema_id in IssueTypeScreenSchemeEntity_FieldScreenScheme[id]:510 self.scheme_ids['FieldScreenScheme'].add(schema_id)511 for issuetype in IssueTypeScreenSchemeEntity_issuetype[id]:512 self.scheme_ids['IssueType'].add(issuetype)513 for id in self.scheme_ids['FieldLayoutScheme']:514 for schema_id in FieldLayoutSchemeEntity_FieldLayout[id]:515 self.scheme_ids['FieldLayout'].add(schema_id)516 for scheme in self.scheme_ids['WorkflowScheme']:517 for workflow in WorkflowSchemeEntity_workflow[scheme]:518 self.workflows.add(workflow)519 for fieldscreenscheme in self.scheme_ids['FieldScreenScheme']:520 for fieldscreen in FieldScreenSchemeItem_fieldscreen[fieldscreenscheme]:521 self.scheme_ids['FieldScreen'].add(fieldscreen)522 for workflow in self.workflows:523 for fieldscreen in Workflow_fieldscreen[workflow]:524 self.scheme_ids['FieldScreen'].add(fieldscreen)525 for fieldscreen in self.scheme_ids['FieldScreen']:526 for fieldscreentag in fieldscreen_FieldScreenTab[fieldscreen]:527 self.scheme_ids['FieldScreenTab'].add(fieldscreentag)528 for workflow in self.workflows:529 for status in Workflow_status[workflow]:530 self.scheme_ids['Status'].add(status)531 for project in self.projects_ids:532 self.scheme_ids['FieldConfigScheme'].add(project_issuetype_fieldconfigscheme[project])533 for customfield in customfield_FieldConfigScheme:534 # TODO: only used customfields535 for fieldconfiguration in customfield_FieldConfigScheme[customfield]:536 self.scheme_ids['FieldConfigScheme'].add(fieldconfiguration)537 for fieldconfigscheme in self.scheme_ids['FieldConfigScheme']:538 for fieldconfiguration in fieldconfigscheme_FieldConfigSchemeIssueType_fieldconfiguration[fieldconfigscheme]:539 self.scheme_ids['FieldConfiguration'].add(fieldconfiguration)540 for fieldconfig in self.scheme_ids['FieldConfiguration']:541 for issuetype in fieldconfig_OptionConfiguration_issuetype[fieldconfig]:542 self.scheme_ids['IssueType'].add(issuetype)543 def process(self, input, output):544 process_xml(self.filter, input, output, count_total=self.element_count)545 def verify(self, file):546 """547 Log any tags having attributes with dropped usernames548 """549 reject_users = self.all_users - self.keep_users550 reject_users -= set(self.rewrite_users.values())551 reject_users |= self.rewrite_users.keys()552 total_count = 0553 total_counts = collections.defaultdict(int)554 count = 0555 counts = collections.defaultdict(int)556 for e in parse_xml(file):557 total_count += 1558 total_counts[e.tag] += 1559 attrs = {k: v for k, v in e.attrib.items() if v in reject_users}560 if attrs:561 log.warn("USER %s %s", e.tag, ', '.join(f'{k}<{v}>' for k, v in attrs.items()))562 count += 1563 counts[e.tag] += 1564 log.info("Summary: %d/%d = %.2f%% items", count, total_count, count/total_count*100)565 for tag in counts:566 log.info("\t%-30s: %8d/%8d = %.2f%%", tag, counts[tag], total_counts[tag], counts[tag]/total_counts[tag]*100)567def rewrite_data_rows(e, match, rewrite={}):568 table = e.get('tableName')569 cols = []570 for c in e.iterfind('{http://www.atlassian.com/ao}column'):571 cols.append(c.get('name'))572 log.debug("SCAN %s %r", table, cols)573 for row in e.iterfind('{http://www.atlassian.com/ao}row'):574 elements = {}575 for c, item in zip(cols, row):576 elements[c] = item577 if any(elements[c].text != v for c, v in match.items()):578 log.debug("SKIP %s %s", table, {c: e.text for c, e in elements.items() if c in match})579 continue580 for attr, map in rewrite.items():581 old = elements[attr].text582 new = map.get(old)583 if new:584 log.info("REWRITE %s %s=%s => %s", table, attr, old, new)585 elements[attr].text = new586 return e587class ActiveObjectMangler:588 XMLNS = 'http://www.atlassian.com/ao'589 DATA = '{http://www.atlassian.com/ao}data'590 def __init__(self, clear_tables=None, rewrite_users=None):591 self.clear_tables = []592 self.rewrite_users = None593 if clear_tables:594 self.clear_tables = list(clear_tables)595 if rewrite_users:596 self.rewrite_users = dict(rewrite_users)597 def filter(self, e):598 if e.tag == self.DATA and e.get('tableName') == 'AO_60DB71_BOARDADMINS':599 return rewrite_data_rows(e, {'TYPE': 'USER'}, {'KEY': self.rewrite_users})600 elif e.tag == self.DATA and e.get('tableName') == 'AO_60DB71_AUDITENTRY':601 return rewrite_data_rows(e, {}, {'USER': self.rewrite_users})602 elif e.tag == self.DATA and e.get('tableName') == 'AO_60DB71_RAPIDVIEW':603 return rewrite_data_rows(e, {}, {'OWNER_USER_NAME': self.rewrite_users})604 elif e.tag == self.DATA and e.get('tableName') == 'AO_8BAD1B_STATISTICS':605 return rewrite_data_rows(e, {}, {'C_USERKEY': self.rewrite_users})606 elif e.tag == self.DATA:607 return filter_attr_glob(e, 'tableName', self.clear_tables)608 else:609 return e610 def process(self, input, output):611 ET.register_namespace('', self.XMLNS)612 process_xml(self.filter, input, output, count_interval=10, default_namespace='')613def main():614 parser = argparse.ArgumentParser(615 formatter_class = argparse.ArgumentDefaultsHelpFormatter,616 description = __doc__,617 )618 parser.set_defaults(log_level=logging.WARN)619 parser.add_argument('-q', '--quiet', action='store_const', dest='log_level', const=logging.ERROR, help="Do not log warnings")620 parser.add_argument('-v', '--verbose', action='store_const', dest='log_level', const=logging.INFO, help="Log info messages")621 parser.add_argument('--debug', action='store_const', dest='log_level', const=logging.DEBUG, help="Log debug messages")622 parser.add_argument('--config', metavar='PATH', help="YAML config")623 parser.add_argument('--input-entities') # must be a re-openable path, not a File or sys.stdin624 parser.add_argument('--load-state', metavar='PATH')625 parser.add_argument('--save-state', metavar='PATH')626 parser.add_argument('--verify', action='store_true', help="Log any tags with dropped usernames")627 parser.add_argument('--output-entities', type=argparse.FileType('wb'))628 parser.add_argument('--input-activeobjects') # must be a re-openable path, not a File or sys.stdin629 parser.add_argument('--output-activeobjects', type=argparse.FileType('wb'), default=sys.stdout)630 args = parser.parse_args()631 logging.basicConfig(632 level = args.log_level,633 stream = sys.stderr,634 format = "%(asctime)s %(levelname)5s %(module)s: %(message)s",635 )636 config = {}637 if args.config:638 with open(args.config) as file:639 config = yaml.safe_load(file)640 entities_config = config['entities']641 activeobjects_config = config['activeobjects']642 if args.input_entities:643 app = EntityMangler(**entities_config)644 if args.load_state:645 with open(args.load_state, 'r') as file:646 app.load_state(json.load(file))647 else:648 app.scan(args.input_entities)649 if args.save_state:650 with open(args.save_state, 'w') as file:651 json.dump(app.save_state(), file)652 if args.verify:653 app.verify(args.input_entities)654 if args.output_entities:655 app.process(args.input_entities, args.output_entities)656 if args.input_activeobjects:657 app = ActiveObjectMangler(rewrite_users=entities_config['rewrite_users'], **activeobjects_config)658 if args.output_activeobjects:659 app.process(args.input_activeobjects, args.output_activeobjects)660if __name__ == '__main__':...

Full Screen

Full Screen

Properties.py

Source:Properties.py Github

copy

Full Screen

1# -*- coding: utf-8 -*-2import wx.propgrid3from dfvfs.helpers import source_scanner4from dfvfs.lib import definitions5from dfvfs.volume import volume_system6from dfvfs.volume import vshadow_volume_system7from dfvfs.resolver import resolver8from dfvfs.vfs import ntfs_file_system9from dfvfs.vfs import tsk_file_entry10def EnumerateProperties(property_grid_1,node):11 # Clear previous properties12 property_grid_1.Clear()13 properties = []14 if isinstance(node,source_scanner.SourceScanNode):15 if node.type_indicator == definitions.TYPE_INDICATOR_OS:16 properties = OsProperties(node)17 elif node.type_indicator == definitions.TYPE_INDICATOR_EWF:18 properties = EwfProperties(node)19 elif node.type_indicator == definitions.TYPE_INDICATOR_TSK_PARTITION:20 properties = TskPartitionProperties(node)21 elif node.type_indicator == definitions.TYPE_INDICATOR_TSK:22 properties = TskProperties(node)23 elif node.type_indicator == definitions.TYPE_INDICATOR_VSHADOW:24 properties = VshadowProperties(node)25 else:26 raise Exception(u'Unhandled type enumeration. type: {}'.format(node.type_indicator))27 elif isinstance(node,tsk_file_entry.TSKFileEntry):28 properties = TskFileEntryProperties(node)29 pass30 else:31 raise Exception(u'Unhandled Class in Property Enumeration. type: {}'.format(str(type(node))))32 for property in properties:33 property_grid_1.Append(property)34class OsProperties(list):35 def __init__(self,node):36 self.append(wx.propgrid.PropertyCategory("OS Path Spec"))37 self.append(wx.propgrid.StringProperty("Location", value=getattr(node.path_spec,'location',None)))38 pass39class TskFileEntryProperties(list):40 def __init__(self,node):41 self.append(wx.propgrid.StringProperty("Full Path",42 value=u'{}'.format(node.full_path.encode('utf-8', u'replace'))))43 self.append(wx.propgrid.PropertyCategory("TSK File Meta Info"))44 meta = node._tsk_file.info.meta45 self.append(wx.propgrid.StringProperty(46 "Type", value=u'{}'.format(meta.type)))47 self.append(wx.propgrid.StringProperty(48 "Flags", value=u'{}'.format(meta.flags)))49 self.append(wx.propgrid.UIntProperty(50 "Address",value=meta.addr))51 self.append(wx.propgrid.IntProperty(52 "Sequence", value=meta.seq))53 self.append(wx.propgrid.UIntProperty(54 "Creation Time", value=meta.crtime))55 self.append(wx.propgrid.UIntProperty(56 "MFT Change Time", value=meta.ctime))57 self.append(wx.propgrid.UIntProperty(58 "Modified Time", value=meta.mtime))59 self.append(wx.propgrid.UIntProperty(60 "Access Time", value=meta.atime))61 self.append(wx.propgrid.UIntProperty(62 "Size", value=meta.size))63class EwfProperties(list):64 def __init__(self,node):65 ewf = resolver.Resolver.OpenFileObject(node.path_spec)66 self.append(wx.propgrid.PropertyCategory("EWF Information"))67 self.append(wx.propgrid.StringProperty("Header Codepage",68 value=u'{}'.format(getattr(ewf._file_object, 'header_codepage', None))))69 self.append(wx.propgrid.StringProperty("Media Size",70 value=u'{}'.format(getattr(ewf._file_object, 'media_size', None))))71 dict_hash = ewf._file_object.get_hash_values()72 for key in dict_hash:73 value = dict_hash[key]74 self.append(wx.propgrid.StringProperty(key, value=u'{}'.format(value)))75 header_values = ewf._file_object.get_header_values()76 for key in header_values:77 value = header_values[key]78 self.append(wx.propgrid.StringProperty(key, value=u'{}'.format(value)))79class TskPartitionProperties(list):80 def __init__(self,node):81 file_system = resolver.Resolver.OpenFileSystem(node.path_spec)82 for volume in file_system._tsk_volume:83 if volume.addr == node.path_spec.part_index:84 # TSK Partition Info85 self.append(wx.propgrid.PropertyCategory("TSK Partition Info"))86 self.append(wx.propgrid.StringProperty("Partition Address",87 value=u'{}'.format(getattr(volume, 'addr', None))))88 self.append(wx.propgrid.StringProperty("Description",89 value=getattr(volume, 'desc', None)))90 self.append(wx.propgrid.StringProperty("Size",91 value=u'{}'.format(getattr(volume, 'len', None))))92 self.append(wx.propgrid.StringProperty("Slot Number",93 value=u'{}'.format(getattr(volume, 'slot_num', None))))94 self.append(wx.propgrid.StringProperty("Starting Offset",95 value=u'{}'.format(getattr(volume, 'start', ''))))96 self.append(wx.propgrid.StringProperty("Table Number",97 value=u'{}'.format(getattr(volume, 'table_num', None))))98 self.append(wx.propgrid.StringProperty("Tag",99 value=u'{}'.format(getattr(volume, 'tag', None))))100 pass101class TskProperties(list):102 def __init__(self,node):103 try:104 file_system = resolver.Resolver.OpenFileSystem(node.path_spec)105 except Exception as error:106 self.append(wx.propgrid.PropertyCategory("Info"))107 self.append(wx.propgrid.StringProperty("Description",108 value=u'Cannot open filesystem.'))109 self.append(wx.propgrid.StringProperty("Error",110 value=u'{}'.format(error)))111 return112 if file_system is not None:113 tsk_fs_info = file_system._tsk_file_system.info114 self.append(wx.propgrid.PropertyCategory("TSK File System Info"))115 self.append(wx.propgrid.StringProperty(116 "Block Count",value=u'{}'.format(getattr(tsk_fs_info, 'block_count', None))))117 self.append(wx.propgrid.StringProperty(118 "Block Post Size", value=u'{}'.format(getattr(tsk_fs_info, 'block_post_size', None))))119 self.append(wx.propgrid.StringProperty(120 "Block Pre Size", value=u'{}'.format(getattr(tsk_fs_info, 'block_pre_size', None))))121 self.append(wx.propgrid.StringProperty(122 "Block Size", value=u'{}'.format(getattr(tsk_fs_info, 'block_size', None))))123 self.append(wx.propgrid.StringProperty(124 "Dev Block Size", value=u'{}'.format(getattr(tsk_fs_info, 'dev_bsize', None))))125 self.append(wx.propgrid.StringProperty(126 "Endian", value=u'{}'.format(getattr(tsk_fs_info, 'endian', None))))127 self.append(wx.propgrid.StringProperty(128 "First Block", value=u'{}'.format(getattr(tsk_fs_info, 'first_block', None))))129 self.append(wx.propgrid.StringProperty(130 "First Inode", value=u'{}'.format(getattr(tsk_fs_info, 'first_inode', None))))131 self.append(wx.propgrid.StringProperty(132 "Flags", value=u'{}'.format(getattr(tsk_fs_info, 'flags', None))))133 self.append(wx.propgrid.StringProperty(134 "File System ID Used", value=u'{}'.format(getattr(tsk_fs_info, 'fs_id_used', None))))135 self.append(wx.propgrid.StringProperty(136 "File System Type", value=u'{}'.format(getattr(tsk_fs_info, 'ftype', None))))137 self.append(wx.propgrid.StringProperty(138 "Inode Count", value=u'{}'.format(getattr(tsk_fs_info, 'inum_count', None))))139 self.append(wx.propgrid.StringProperty(140 "Journal Inode", value=u'{}'.format(getattr(tsk_fs_info, 'journ_inum', None))))141 self.append(wx.propgrid.StringProperty(142 "Last Block", value=u'{}'.format(getattr(tsk_fs_info, 'last_block', None))))143 self.append(wx.propgrid.StringProperty(144 "Last Block Actual", value=u'{}'.format(getattr(tsk_fs_info, 'last_block_act', None))))145 self.append(wx.propgrid.StringProperty(146 "Last Inode", value=u'{}'.format(getattr(tsk_fs_info, 'last_inum', None))))147 self.append(wx.propgrid.StringProperty(148 "Offset", value=u'{}'.format(getattr(tsk_fs_info, 'offset', None))))149 self.append(wx.propgrid.StringProperty(150 "Orphan Dir", value=u'{}'.format(getattr(tsk_fs_info, 'orphan_dir', None))))151 self.append(wx.propgrid.StringProperty(152 "Root Inode", value=u'{}'.format(getattr(tsk_fs_info, 'root_inum', None))))153 self.append(wx.propgrid.StringProperty(154 "Tag", value=u'{}'.format(getattr(tsk_fs_info, 'tag', None))))155 pass156class VshadowProperties(list):157 def __init__(self,node):158 if node.path_spec.store_index is None:159 # VSS Root160 vss = vshadow_volume_system.VShadowVolumeSystem()161 vss.Open(node.path_spec)162 for shadow_volume in vss.volumes:163 self.append(164 wx.propgrid.PropertyCategory(165 u'{}'.format(shadow_volume.identifier)166 )167 )168 for attribute in shadow_volume.attributes:169 self.append(170 wx.propgrid.StringProperty(171 u'{} {}'.format(shadow_volume.identifier, attribute.identifier),172 value=u'{}'.format(attribute.value)173 )174 )175 else:176 # VSS Index177 vss = vshadow_volume_system.VShadowVolumeSystem()178 vss.Open(node.path_spec)179 vss_index = node.path_spec.store_index180 vss_label = node.path_spec.location[1:]181 _vss_cnt = 0182 for shadow_volume in vss.volumes:183 if vss_label == shadow_volume.identifier:184 self.append(185 wx.propgrid.PropertyCategory(186 u'{}'.format(shadow_volume.identifier)187 )188 )189 for attribute in shadow_volume.attributes:190 self.append(191 wx.propgrid.StringProperty(192 u'{} {}'.format(shadow_volume.identifier, attribute.identifier),193 value=u'{}'.format(attribute.value)194 )195 )...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run fMBT automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful