@nutanix-scratch/dataprotection-js-client 4.2.1 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -19
- package/dist/Ntnx-Dataprotection-js-client-prod.js +1 -1
- package/dist/Ntnx-Dataprotection-js-client.js +188 -254
- package/dist/es/ApiClient.d.ts +1 -1
- package/dist/es/ApiClient.js +6 -6
- package/dist/es/Paginable.d.ts +1 -1
- package/dist/es/Paginable.js +3 -3
- package/dist/es/apis/dataprotectionclustercapabilities-endpoints.d.ts +2 -2
- package/dist/es/apis/dataprotectionclustercapabilities-endpoints.js +5 -5
- package/dist/es/apis/protectedresources-endpoints.d.ts +1 -1
- package/dist/es/apis/protectedresources-endpoints.js +6 -6
- package/dist/es/apis/recoveryplanactions-endpoints.d.ts +1 -1
- package/dist/es/apis/recoveryplanactions-endpoints.js +8 -8
- package/dist/es/apis/recoveryplanjobs-endpoints.d.ts +4 -4
- package/dist/es/apis/recoveryplanjobs-endpoints.js +11 -11
- package/dist/es/apis/recoverypoints-endpoints.d.ts +2 -2
- package/dist/es/apis/recoverypoints-endpoints.js +16 -16
- package/dist/es/index.d.ts +1 -13
- package/dist/es/index.js +0 -48
- package/dist/es/models/common/v1/config/EntityReference.d.ts +1 -1
- package/dist/es/models/common/v1/config/EntityReference.js +3 -3
- package/dist/es/models/common/v1/config/EntityType.js +2 -2
- package/dist/es/models/common/v1/config/Flag.d.ts +1 -1
- package/dist/es/models/common/v1/config/Flag.js +3 -3
- package/dist/es/models/common/v1/config/IPAddress.d.ts +1 -1
- package/dist/es/models/common/v1/config/IPAddress.js +3 -3
- package/dist/es/models/common/v1/config/IPv4Address.d.ts +1 -1
- package/dist/es/models/common/v1/config/IPv4Address.js +3 -3
- package/dist/es/models/common/v1/config/IPv6Address.d.ts +1 -1
- package/dist/es/models/common/v1/config/IPv6Address.js +3 -3
- package/dist/es/models/common/v1/config/KVPair.d.ts +1 -1
- package/dist/es/models/common/v1/config/KVPair.js +3 -3
- package/dist/es/models/common/v1/config/MapOfStringWrapper.d.ts +1 -1
- package/dist/es/models/common/v1/config/MapOfStringWrapper.js +3 -3
- package/dist/es/models/common/v1/config/Message.d.ts +1 -1
- package/dist/es/models/common/v1/config/Message.js +3 -3
- package/dist/es/models/common/v1/config/MessageSeverity.js +2 -2
- package/dist/es/models/common/v1/config/TenantAwareModel.d.ts +1 -1
- package/dist/es/models/common/v1/config/TenantAwareModel.js +3 -3
- package/dist/es/models/common/v1/response/ApiLink.d.ts +1 -1
- package/dist/es/models/common/v1/response/ApiLink.js +3 -3
- package/dist/es/models/common/v1/response/ApiResponseMetadata.d.ts +1 -1
- package/dist/es/models/common/v1/response/ApiResponseMetadata.js +3 -3
- package/dist/es/models/common/v1/response/ExternalizableAbstractModel.d.ts +1 -1
- package/dist/es/models/common/v1/response/ExternalizableAbstractModel.js +3 -3
- package/dist/es/models/dataprotection/v4/common/BackupType.js +2 -2
- package/dist/es/models/dataprotection/v4/common/BaseRecoveryPoint.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/common/BaseRecoveryPoint.js +3 -3
- package/dist/es/models/dataprotection/v4/common/BaseVmRecoveryPoint.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/common/BaseVmRecoveryPoint.js +3 -3
- package/dist/es/models/dataprotection/v4/common/ClusterInfo.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/common/ClusterInfo.js +4 -4
- package/dist/es/models/dataprotection/v4/common/DiskRecoveryPoint.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/common/DiskRecoveryPoint.js +3 -3
- package/dist/es/models/dataprotection/v4/common/RecoveryPointStatus.js +2 -2
- package/dist/es/models/dataprotection/v4/common/RecoveryPointType.js +2 -2
- package/dist/es/models/dataprotection/v4/common/VssProperties.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/common/VssProperties.js +3 -3
- package/dist/es/models/dataprotection/v4/config/AhvVmOverrideSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/AhvVmOverrideSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/config/AmazonS3Bucket.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/AmazonS3Bucket.js +4 -4
- package/dist/es/models/dataprotection/v4/config/AzureBlobStorageContainer.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/AzureBlobStorageContainer.js +4 -4
- package/dist/es/models/dataprotection/v4/config/Capability.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/Capability.js +4 -4
- package/dist/es/models/dataprotection/v4/config/ClusterInfoApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ClusterInfoApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/ConsistencyGroup.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ConsistencyGroup.js +5 -7
- package/dist/es/models/dataprotection/v4/config/ConsistencyGroupMember.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ConsistencyGroupMember.js +4 -4
- package/dist/es/models/dataprotection/v4/config/ConsistencyGroupMemberType.js +2 -2
- package/dist/es/models/dataprotection/v4/config/ConsistencyGroupMigrationSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ConsistencyGroupMigrationSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/config/ConsistencyGroupProjection.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ConsistencyGroupProjection.js +4 -4
- package/dist/es/models/dataprotection/v4/config/CreateRecoveryPointApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/CreateRecoveryPointApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/CreationTimeRange.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/CreationTimeRange.js +4 -4
- package/dist/es/models/dataprotection/v4/config/DataProtectionCapabilityName.js +2 -2
- package/dist/es/models/dataprotection/v4/config/DataProtectionClusterCapability.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/DataProtectionClusterCapability.js +4 -4
- package/dist/es/models/dataprotection/v4/config/DataProtectionClusterCapabilityProjection.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/DataProtectionClusterCapabilityProjection.js +4 -4
- package/dist/es/models/dataprotection/v4/config/DataProtectionSiteReference.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/DataProtectionSiteReference.js +4 -4
- package/dist/es/models/dataprotection/v4/config/DeleteRecoveryPlanJobApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/DeleteRecoveryPlanJobApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/DeleteRecoveryPointApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/DeleteRecoveryPointApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/DisasterRecoveryLocation.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/DisasterRecoveryLocation.js +4 -4
- package/dist/es/models/dataprotection/v4/config/EntityRecoveryResult.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/EntityRecoveryResult.js +4 -4
- package/dist/es/models/dataprotection/v4/config/EntityReference.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/EntityReference.js +4 -4
- package/dist/es/models/dataprotection/v4/config/ErrorGroup.js +2 -2
- package/dist/es/models/dataprotection/v4/config/ErrorMessage.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ErrorMessage.js +4 -4
- package/dist/es/models/dataprotection/v4/config/EsxiVmOverrideSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/EsxiVmOverrideSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/config/ExecutionStepEntityReference.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ExecutionStepEntityReference.js +4 -4
- package/dist/es/models/dataprotection/v4/config/ExecutionStepEntityType.js +2 -2
- package/dist/es/models/dataprotection/v4/config/ExecutionStepResult.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ExecutionStepResult.js +4 -4
- package/dist/es/models/dataprotection/v4/config/ExpirationTimeSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ExpirationTimeSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/config/FailoverDirection.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/FailoverDirection.js +4 -4
- package/dist/es/models/dataprotection/v4/config/ForceDeleteAllRecoveryPointsSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ForceDeleteAllRecoveryPointsSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/config/GetProtectedResourceApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/GetProtectedResourceApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/GetRecoveryPlanJobApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/GetRecoveryPlanJobApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/GetRecoveryPointApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/GetRecoveryPointApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/GetVmRecoveryPointApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/GetVmRecoveryPointApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/HostReference.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/HostReference.js +4 -4
- package/dist/es/models/dataprotection/v4/config/HostType.js +2 -2
- package/dist/es/models/dataprotection/v4/config/HypervisorType.js +2 -2
- package/dist/es/models/dataprotection/v4/config/ListDPClusterCapabilitiesApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ListDPClusterCapabilitiesApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/ListRecoveryPlanJobExecutionStepsApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ListRecoveryPlanJobExecutionStepsApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/ListRecoveryPlanJobValidationErrorsApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ListRecoveryPlanJobValidationErrorsApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/ListRecoveryPlanJobsApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ListRecoveryPlanJobsApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/ListRecoveryPointsApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ListRecoveryPointsApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/LocationReference.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/LocationReference.js +4 -4
- package/dist/es/models/dataprotection/v4/config/NutanixObjectsBucket.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/NutanixObjectsBucket.js +4 -4
- package/dist/es/models/dataprotection/v4/config/ObjectStorageType.js +2 -2
- package/dist/es/models/dataprotection/v4/config/OperationType.js +2 -2
- package/dist/es/models/dataprotection/v4/config/PhaseSummary.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/PhaseSummary.js +4 -4
- package/dist/es/models/dataprotection/v4/config/ProtectedEntityType.js +2 -2
- package/dist/es/models/dataprotection/v4/config/ProtectedResource.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ProtectedResource.js +4 -4
- package/dist/es/models/dataprotection/v4/config/ProtectedResourcePromoteApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ProtectedResourcePromoteApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/ProtectedResourceReplicationStatus.js +2 -2
- package/dist/es/models/dataprotection/v4/config/ProtectedResourceRestoreApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ProtectedResourceRestoreApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/ProtectedResourceRestoreSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ProtectedResourceRestoreSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecoveryInfo.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecoveryInfo.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecoveryPlanActionType.js +2 -2
- package/dist/es/models/dataprotection/v4/config/RecoveryPlanJob.d.ts +12 -1
- package/dist/es/models/dataprotection/v4/config/RecoveryPlanJob.js +37 -4
- package/dist/es/models/dataprotection/v4/config/RecoveryPlanJobExecutionStatus.js +2 -2
- package/dist/es/models/dataprotection/v4/config/RecoveryPlanJobExecutionStep.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecoveryPlanJobExecutionStep.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecoveryPlanJobExecutionStepProjection.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecoveryPlanJobExecutionStepProjection.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecoveryPlanJobPhaseType.js +2 -2
- package/dist/es/models/dataprotection/v4/config/RecoveryPlanJobProjection.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecoveryPlanJobProjection.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecoveryPlanValidationError.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecoveryPlanValidationError.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecoveryPlanValidationErrorProjection.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecoveryPlanValidationErrorProjection.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecoveryPoint.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecoveryPoint.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecoveryPointProjection.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecoveryPointProjection.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecoveryPointReplicateApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecoveryPointReplicateApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/RecoveryPointReplicationSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecoveryPointReplicationSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecoveryPointRepository.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecoveryPointRepository.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecoveryPointRepositoryProjection.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecoveryPointRepositoryProjection.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecoveryPointRestorationSpec.d.ts +12 -1
- package/dist/es/models/dataprotection/v4/config/RecoveryPointRestorationSpec.js +41 -4
- package/dist/es/models/dataprotection/v4/config/RecoveryPointRestoreApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecoveryPointRestoreApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/RecycleBinEntry.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecycleBinEntry.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecycleBinVm.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecycleBinVm.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecycleBinVmProjection.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecycleBinVmProjection.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecycleBinVolumeGroup.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecycleBinVolumeGroup.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RecycleBinVolumeGroupProjection.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RecycleBinVolumeGroupProjection.js +4 -4
- package/dist/es/models/dataprotection/v4/config/ReplicationState.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/ReplicationState.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RestorableTimeRange.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RestorableTimeRange.js +4 -4
- package/dist/es/models/dataprotection/v4/config/RootCauseAnalysis.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/RootCauseAnalysis.js +4 -4
- package/dist/es/models/dataprotection/v4/config/Severity.js +2 -2
- package/dist/es/models/dataprotection/v4/config/SiteProtectionInfo.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/SiteProtectionInfo.js +4 -4
- package/dist/es/models/dataprotection/v4/config/SiteReference.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/SiteReference.js +4 -4
- package/dist/es/models/dataprotection/v4/config/StageSummary.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/StageSummary.js +4 -4
- package/dist/es/models/dataprotection/v4/config/Summary.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/Summary.js +4 -4
- package/dist/es/models/dataprotection/v4/config/SynchronousReplicationRole.js +2 -2
- package/dist/es/models/dataprotection/v4/config/UpdateRecoveryPointExpirationTimeApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/UpdateRecoveryPointExpirationTimeApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/config/VmRecoveryPoint.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/VmRecoveryPoint.js +4 -4
- package/dist/es/models/dataprotection/v4/config/VmRecoveryPointRestoreOverride.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/VmRecoveryPointRestoreOverride.js +4 -4
- package/dist/es/models/dataprotection/v4/config/VolumeGroupOverrideSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/VolumeGroupOverrideSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/config/VolumeGroupRecoveryPoint.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/VolumeGroupRecoveryPoint.js +4 -4
- package/dist/es/models/dataprotection/v4/config/VolumeGroupRecoveryPointRestoreOverride.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/VolumeGroupRecoveryPointRestoreOverride.js +4 -4
- package/dist/es/models/dataprotection/v4/config/VolumeGroupSyncContext.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/VolumeGroupSyncContext.js +4 -4
- package/dist/es/models/dataprotection/v4/config/Witness.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/config/Witness.js +4 -4
- package/dist/es/models/dataprotection/v4/config/WitnessAvailabilityStatus.js +2 -2
- package/dist/es/models/dataprotection/v4/content/BaseRecoveryPointSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/BaseRecoveryPointSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/content/ChangedRegion.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/ChangedRegion.js +4 -4
- package/dist/es/models/dataprotection/v4/content/ChangedVmRegionsApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/ChangedVmRegionsApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/content/ChangedVolumeGroupRegionsApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/ChangedVolumeGroupRegionsApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/content/ClusterDiscoverOperation.js +2 -2
- package/dist/es/models/dataprotection/v4/content/ClusterDiscoverSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/ClusterDiscoverSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/content/ComputeChangedRegionsClusterDiscoverSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/ComputeChangedRegionsClusterDiscoverSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/content/DiskRecoveryPointReference.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/DiskRecoveryPointReference.js +4 -4
- package/dist/es/models/dataprotection/v4/content/FileWrapper.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/FileWrapper.js +4 -4
- package/dist/es/models/dataprotection/v4/content/GetVssMetadataApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/GetVssMetadataApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/content/GetVssMetadataClusterDiscoverSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/GetVssMetadataClusterDiscoverSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/content/RegionType.js +2 -2
- package/dist/es/models/dataprotection/v4/content/VmDiskRecoveryPointClusterDiscoverSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/VmDiskRecoveryPointClusterDiscoverSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/content/VmDiskRecoveryPointReference.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/VmDiskRecoveryPointReference.js +4 -4
- package/dist/es/models/dataprotection/v4/content/VmRecoveryPointChangedRegionsComputeSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/VmRecoveryPointChangedRegionsComputeSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/content/VolumeGroupDiskRecoveryPointClusterDiscoverSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/VolumeGroupDiskRecoveryPointClusterDiscoverSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/content/VolumeGroupDiskRecoveryPointReference.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/VolumeGroupDiskRecoveryPointReference.js +4 -4
- package/dist/es/models/dataprotection/v4/content/VolumeGroupRecoveryPointChangedRegionsComputeSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/content/VolumeGroupRecoveryPointChangedRegionsComputeSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/error/AppMessage.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/error/AppMessage.js +4 -4
- package/dist/es/models/dataprotection/v4/error/ErrorResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/error/ErrorResponse.js +4 -9
- package/dist/es/models/dataprotection/v4/error/SchemaValidationError.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/error/SchemaValidationError.js +4 -4
- package/dist/es/models/dataprotection/v4/error/SchemaValidationErrorMessage.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/error/SchemaValidationErrorMessage.js +4 -4
- package/dist/es/models/dataprotection/v4/operations/BaseRecoveryPlanActionSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/operations/BaseRecoveryPlanActionSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/operations/CleanupRecoveryPlanResourcesApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/operations/CleanupRecoveryPlanResourcesApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/operations/PlannedFailoverRecoveryPlanApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/operations/PlannedFailoverRecoveryPlanApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/operations/PlannedFailoverSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/operations/PlannedFailoverSpec.js +4 -4
- package/dist/es/models/dataprotection/v4/operations/TestFailoverRecoveryPlanApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/operations/TestFailoverRecoveryPlanApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/operations/TestFailoverSpec.d.ts +12 -1
- package/dist/es/models/dataprotection/v4/operations/TestFailoverSpec.js +41 -4
- package/dist/es/models/dataprotection/v4/operations/UnplannedFailoverRecoveryPlanApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/operations/UnplannedFailoverRecoveryPlanApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/operations/UnplannedFailoverSpec.d.ts +12 -1
- package/dist/es/models/dataprotection/v4/operations/UnplannedFailoverSpec.js +41 -4
- package/dist/es/models/dataprotection/v4/operations/ValidateRecoveryPlanApiResponse.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/operations/ValidateRecoveryPlanApiResponse.js +5 -5
- package/dist/es/models/dataprotection/v4/operations/ValidateSpec.d.ts +1 -1
- package/dist/es/models/dataprotection/v4/operations/ValidateSpec.js +4 -4
- package/dist/es/models/prism/v4/config/TaskReference.d.ts +1 -1
- package/dist/es/models/prism/v4/config/TaskReference.js +4 -4
- package/dist/es/models/validation/ValidationError.js +2 -2
- package/dist/es/models/vmm/v4/ahv/config/CategoryReference.d.ts +1 -1
- package/dist/es/models/vmm/v4/ahv/config/CategoryReference.js +3 -3
- package/dist/es/models/vmm/v4/ahv/config/GuestStaticIpSpec.d.ts +1 -1
- package/dist/es/models/vmm/v4/ahv/config/GuestStaticIpSpec.js +3 -3
- package/dist/es/models/vmm/v4/ahv/config/OwnerReference.d.ts +1 -1
- package/dist/es/models/vmm/v4/ahv/config/OwnerReference.js +3 -3
- package/dist/es/models/vmm/v4/ahv/config/OwnershipInfo.d.ts +1 -1
- package/dist/es/models/vmm/v4/ahv/config/OwnershipInfo.js +3 -3
- package/dist/es/models/vmm/v4/ahv/config/SubnetReference.d.ts +1 -1
- package/dist/es/models/vmm/v4/ahv/config/SubnetReference.js +3 -3
- package/dist/es/models/vmm/v4/ahv/config/VmConfigOverrideSpecification.d.ts +1 -1
- package/dist/es/models/vmm/v4/ahv/config/VmConfigOverrideSpecification.js +3 -3
- package/dist/es/models/vmm/v4/ahv/config/VmRestoreGuestNicInfoOverrideSpec.d.ts +1 -1
- package/dist/es/models/vmm/v4/ahv/config/VmRestoreGuestNicInfoOverrideSpec.js +3 -3
- package/dist/es/models/vmm/v4/ahv/config/VmRestoreGuestToolsSpecification.d.ts +1 -1
- package/dist/es/models/vmm/v4/ahv/config/VmRestoreGuestToolsSpecification.js +3 -3
- package/dist/es/models/vmm/v4/ahv/config/VmRestoreIpv4ConfigOverrideSpec.d.ts +1 -1
- package/dist/es/models/vmm/v4/ahv/config/VmRestoreIpv4ConfigOverrideSpec.js +3 -3
- package/dist/es/models/vmm/v4/ahv/config/VmRestoreNicConfigOverrideParams.d.ts +1 -1
- package/dist/es/models/vmm/v4/ahv/config/VmRestoreNicConfigOverrideParams.js +3 -3
- package/dist/es/models/vmm/v4/ahv/config/VmRestoreNicConfigSpecification.d.ts +1 -1
- package/dist/es/models/vmm/v4/ahv/config/VmRestoreNicConfigSpecification.js +3 -3
- package/dist/es/models/vmm/v4/ahv/config/VmRestoreVirtualEthernetNicNetworkInfoOverrideSpec.d.ts +1 -1
- package/dist/es/models/vmm/v4/ahv/config/VmRestoreVirtualEthernetNicNetworkInfoOverrideSpec.js +3 -3
- package/dist/es/models/vmm/v4/ahv/config/VmRestoreVirtualEthernetNicOverrideSpec.d.ts +1 -1
- package/dist/es/models/vmm/v4/ahv/config/VmRestoreVirtualEthernetNicOverrideSpec.js +3 -3
- package/dist/es/utils/ValidationUtils.js +2 -2
- package/dist/lib/ApiClient.d.ts +1 -1
- package/dist/lib/ApiClient.js +6 -6
- package/dist/lib/Paginable.d.ts +1 -1
- package/dist/lib/Paginable.js +3 -3
- package/dist/lib/apis/dataprotectionclustercapabilities-endpoints.d.ts +2 -2
- package/dist/lib/apis/dataprotectionclustercapabilities-endpoints.js +5 -5
- package/dist/lib/apis/protectedresources-endpoints.d.ts +1 -1
- package/dist/lib/apis/protectedresources-endpoints.js +6 -6
- package/dist/lib/apis/recoveryplanactions-endpoints.d.ts +1 -1
- package/dist/lib/apis/recoveryplanactions-endpoints.js +8 -8
- package/dist/lib/apis/recoveryplanjobs-endpoints.d.ts +4 -4
- package/dist/lib/apis/recoveryplanjobs-endpoints.js +11 -11
- package/dist/lib/apis/recoverypoints-endpoints.d.ts +2 -2
- package/dist/lib/apis/recoverypoints-endpoints.js +16 -16
- package/dist/lib/index.d.ts +1 -13
- package/dist/lib/index.js +0 -48
- package/dist/lib/models/common/v1/config/EntityReference.d.ts +1 -1
- package/dist/lib/models/common/v1/config/EntityReference.js +3 -3
- package/dist/lib/models/common/v1/config/EntityType.js +2 -2
- package/dist/lib/models/common/v1/config/Flag.d.ts +1 -1
- package/dist/lib/models/common/v1/config/Flag.js +3 -3
- package/dist/lib/models/common/v1/config/IPAddress.d.ts +1 -1
- package/dist/lib/models/common/v1/config/IPAddress.js +3 -3
- package/dist/lib/models/common/v1/config/IPv4Address.d.ts +1 -1
- package/dist/lib/models/common/v1/config/IPv4Address.js +3 -3
- package/dist/lib/models/common/v1/config/IPv6Address.d.ts +1 -1
- package/dist/lib/models/common/v1/config/IPv6Address.js +3 -3
- package/dist/lib/models/common/v1/config/KVPair.d.ts +1 -1
- package/dist/lib/models/common/v1/config/KVPair.js +3 -3
- package/dist/lib/models/common/v1/config/MapOfStringWrapper.d.ts +1 -1
- package/dist/lib/models/common/v1/config/MapOfStringWrapper.js +3 -3
- package/dist/lib/models/common/v1/config/Message.d.ts +1 -1
- package/dist/lib/models/common/v1/config/Message.js +3 -3
- package/dist/lib/models/common/v1/config/MessageSeverity.js +2 -2
- package/dist/lib/models/common/v1/config/TenantAwareModel.d.ts +1 -1
- package/dist/lib/models/common/v1/config/TenantAwareModel.js +3 -3
- package/dist/lib/models/common/v1/response/ApiLink.d.ts +1 -1
- package/dist/lib/models/common/v1/response/ApiLink.js +3 -3
- package/dist/lib/models/common/v1/response/ApiResponseMetadata.d.ts +1 -1
- package/dist/lib/models/common/v1/response/ApiResponseMetadata.js +3 -3
- package/dist/lib/models/common/v1/response/ExternalizableAbstractModel.d.ts +1 -1
- package/dist/lib/models/common/v1/response/ExternalizableAbstractModel.js +3 -3
- package/dist/lib/models/dataprotection/v4/common/BackupType.js +2 -2
- package/dist/lib/models/dataprotection/v4/common/BaseRecoveryPoint.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/common/BaseRecoveryPoint.js +3 -3
- package/dist/lib/models/dataprotection/v4/common/BaseVmRecoveryPoint.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/common/BaseVmRecoveryPoint.js +3 -3
- package/dist/lib/models/dataprotection/v4/common/ClusterInfo.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/common/ClusterInfo.js +4 -4
- package/dist/lib/models/dataprotection/v4/common/DiskRecoveryPoint.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/common/DiskRecoveryPoint.js +3 -3
- package/dist/lib/models/dataprotection/v4/common/RecoveryPointStatus.js +2 -2
- package/dist/lib/models/dataprotection/v4/common/RecoveryPointType.js +2 -2
- package/dist/lib/models/dataprotection/v4/common/VssProperties.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/common/VssProperties.js +3 -3
- package/dist/lib/models/dataprotection/v4/config/AhvVmOverrideSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/AhvVmOverrideSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/AmazonS3Bucket.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/AmazonS3Bucket.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/AzureBlobStorageContainer.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/AzureBlobStorageContainer.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/Capability.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/Capability.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/ClusterInfoApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ClusterInfoApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/ConsistencyGroup.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ConsistencyGroup.js +5 -7
- package/dist/lib/models/dataprotection/v4/config/ConsistencyGroupMember.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ConsistencyGroupMember.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/ConsistencyGroupMemberType.js +2 -2
- package/dist/lib/models/dataprotection/v4/config/ConsistencyGroupMigrationSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ConsistencyGroupMigrationSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/ConsistencyGroupProjection.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ConsistencyGroupProjection.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/CreateRecoveryPointApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/CreateRecoveryPointApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/CreationTimeRange.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/CreationTimeRange.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/DataProtectionCapabilityName.js +2 -2
- package/dist/lib/models/dataprotection/v4/config/DataProtectionClusterCapability.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/DataProtectionClusterCapability.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/DataProtectionClusterCapabilityProjection.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/DataProtectionClusterCapabilityProjection.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/DataProtectionSiteReference.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/DataProtectionSiteReference.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/DeleteRecoveryPlanJobApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/DeleteRecoveryPlanJobApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/DeleteRecoveryPointApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/DeleteRecoveryPointApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/DisasterRecoveryLocation.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/DisasterRecoveryLocation.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/EntityRecoveryResult.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/EntityRecoveryResult.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/EntityReference.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/EntityReference.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/ErrorGroup.js +2 -2
- package/dist/lib/models/dataprotection/v4/config/ErrorMessage.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ErrorMessage.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/EsxiVmOverrideSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/EsxiVmOverrideSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/ExecutionStepEntityReference.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ExecutionStepEntityReference.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/ExecutionStepEntityType.js +2 -2
- package/dist/lib/models/dataprotection/v4/config/ExecutionStepResult.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ExecutionStepResult.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/ExpirationTimeSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ExpirationTimeSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/FailoverDirection.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/FailoverDirection.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/ForceDeleteAllRecoveryPointsSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ForceDeleteAllRecoveryPointsSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/GetProtectedResourceApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/GetProtectedResourceApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/GetRecoveryPlanJobApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/GetRecoveryPlanJobApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/GetRecoveryPointApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/GetRecoveryPointApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/GetVmRecoveryPointApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/GetVmRecoveryPointApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/HostReference.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/HostReference.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/HostType.js +2 -2
- package/dist/lib/models/dataprotection/v4/config/HypervisorType.js +2 -2
- package/dist/lib/models/dataprotection/v4/config/ListDPClusterCapabilitiesApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ListDPClusterCapabilitiesApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/ListRecoveryPlanJobExecutionStepsApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ListRecoveryPlanJobExecutionStepsApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/ListRecoveryPlanJobValidationErrorsApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ListRecoveryPlanJobValidationErrorsApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/ListRecoveryPlanJobsApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ListRecoveryPlanJobsApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/ListRecoveryPointsApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ListRecoveryPointsApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/LocationReference.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/LocationReference.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/NutanixObjectsBucket.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/NutanixObjectsBucket.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/ObjectStorageType.js +2 -2
- package/dist/lib/models/dataprotection/v4/config/OperationType.js +2 -2
- package/dist/lib/models/dataprotection/v4/config/PhaseSummary.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/PhaseSummary.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/ProtectedEntityType.js +2 -2
- package/dist/lib/models/dataprotection/v4/config/ProtectedResource.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ProtectedResource.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/ProtectedResourcePromoteApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ProtectedResourcePromoteApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/ProtectedResourceReplicationStatus.js +2 -2
- package/dist/lib/models/dataprotection/v4/config/ProtectedResourceRestoreApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ProtectedResourceRestoreApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/ProtectedResourceRestoreSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ProtectedResourceRestoreSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecoveryInfo.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecoveryInfo.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecoveryPlanActionType.js +2 -2
- package/dist/lib/models/dataprotection/v4/config/RecoveryPlanJob.d.ts +12 -1
- package/dist/lib/models/dataprotection/v4/config/RecoveryPlanJob.js +37 -4
- package/dist/lib/models/dataprotection/v4/config/RecoveryPlanJobExecutionStatus.js +2 -2
- package/dist/lib/models/dataprotection/v4/config/RecoveryPlanJobExecutionStep.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecoveryPlanJobExecutionStep.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecoveryPlanJobExecutionStepProjection.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecoveryPlanJobExecutionStepProjection.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecoveryPlanJobPhaseType.js +2 -2
- package/dist/lib/models/dataprotection/v4/config/RecoveryPlanJobProjection.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecoveryPlanJobProjection.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecoveryPlanValidationError.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecoveryPlanValidationError.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecoveryPlanValidationErrorProjection.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecoveryPlanValidationErrorProjection.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecoveryPoint.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecoveryPoint.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecoveryPointProjection.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecoveryPointProjection.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecoveryPointReplicateApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecoveryPointReplicateApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/RecoveryPointReplicationSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecoveryPointReplicationSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecoveryPointRepository.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecoveryPointRepository.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecoveryPointRepositoryProjection.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecoveryPointRepositoryProjection.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecoveryPointRestorationSpec.d.ts +12 -1
- package/dist/lib/models/dataprotection/v4/config/RecoveryPointRestorationSpec.js +41 -4
- package/dist/lib/models/dataprotection/v4/config/RecoveryPointRestoreApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecoveryPointRestoreApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/RecycleBinEntry.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecycleBinEntry.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecycleBinVm.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecycleBinVm.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecycleBinVmProjection.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecycleBinVmProjection.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecycleBinVolumeGroup.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecycleBinVolumeGroup.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RecycleBinVolumeGroupProjection.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RecycleBinVolumeGroupProjection.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/ReplicationState.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/ReplicationState.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RestorableTimeRange.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RestorableTimeRange.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/RootCauseAnalysis.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/RootCauseAnalysis.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/Severity.js +2 -2
- package/dist/lib/models/dataprotection/v4/config/SiteProtectionInfo.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/SiteProtectionInfo.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/SiteReference.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/SiteReference.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/StageSummary.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/StageSummary.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/Summary.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/Summary.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/SynchronousReplicationRole.js +2 -2
- package/dist/lib/models/dataprotection/v4/config/UpdateRecoveryPointExpirationTimeApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/UpdateRecoveryPointExpirationTimeApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/config/VmRecoveryPoint.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/VmRecoveryPoint.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/VmRecoveryPointRestoreOverride.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/VmRecoveryPointRestoreOverride.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/VolumeGroupOverrideSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/VolumeGroupOverrideSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/VolumeGroupRecoveryPoint.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/VolumeGroupRecoveryPoint.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/VolumeGroupRecoveryPointRestoreOverride.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/VolumeGroupRecoveryPointRestoreOverride.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/VolumeGroupSyncContext.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/VolumeGroupSyncContext.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/Witness.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/config/Witness.js +4 -4
- package/dist/lib/models/dataprotection/v4/config/WitnessAvailabilityStatus.js +2 -2
- package/dist/lib/models/dataprotection/v4/content/BaseRecoveryPointSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/BaseRecoveryPointSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/content/ChangedRegion.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/ChangedRegion.js +4 -4
- package/dist/lib/models/dataprotection/v4/content/ChangedVmRegionsApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/ChangedVmRegionsApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/content/ChangedVolumeGroupRegionsApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/ChangedVolumeGroupRegionsApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/content/ClusterDiscoverOperation.js +2 -2
- package/dist/lib/models/dataprotection/v4/content/ClusterDiscoverSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/ClusterDiscoverSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/content/ComputeChangedRegionsClusterDiscoverSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/ComputeChangedRegionsClusterDiscoverSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/content/DiskRecoveryPointReference.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/DiskRecoveryPointReference.js +4 -4
- package/dist/lib/models/dataprotection/v4/content/FileWrapper.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/FileWrapper.js +4 -4
- package/dist/lib/models/dataprotection/v4/content/GetVssMetadataApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/GetVssMetadataApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/content/GetVssMetadataClusterDiscoverSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/GetVssMetadataClusterDiscoverSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/content/RegionType.js +2 -2
- package/dist/lib/models/dataprotection/v4/content/VmDiskRecoveryPointClusterDiscoverSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/VmDiskRecoveryPointClusterDiscoverSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/content/VmDiskRecoveryPointReference.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/VmDiskRecoveryPointReference.js +4 -4
- package/dist/lib/models/dataprotection/v4/content/VmRecoveryPointChangedRegionsComputeSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/VmRecoveryPointChangedRegionsComputeSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/content/VolumeGroupDiskRecoveryPointClusterDiscoverSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/VolumeGroupDiskRecoveryPointClusterDiscoverSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/content/VolumeGroupDiskRecoveryPointReference.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/VolumeGroupDiskRecoveryPointReference.js +4 -4
- package/dist/lib/models/dataprotection/v4/content/VolumeGroupRecoveryPointChangedRegionsComputeSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/content/VolumeGroupRecoveryPointChangedRegionsComputeSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/error/AppMessage.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/error/AppMessage.js +4 -4
- package/dist/lib/models/dataprotection/v4/error/ErrorResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/error/ErrorResponse.js +4 -9
- package/dist/lib/models/dataprotection/v4/error/SchemaValidationError.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/error/SchemaValidationError.js +4 -4
- package/dist/lib/models/dataprotection/v4/error/SchemaValidationErrorMessage.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/error/SchemaValidationErrorMessage.js +4 -4
- package/dist/lib/models/dataprotection/v4/operations/BaseRecoveryPlanActionSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/operations/BaseRecoveryPlanActionSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/operations/CleanupRecoveryPlanResourcesApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/operations/CleanupRecoveryPlanResourcesApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/operations/PlannedFailoverRecoveryPlanApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/operations/PlannedFailoverRecoveryPlanApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/operations/PlannedFailoverSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/operations/PlannedFailoverSpec.js +4 -4
- package/dist/lib/models/dataprotection/v4/operations/TestFailoverRecoveryPlanApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/operations/TestFailoverRecoveryPlanApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/operations/TestFailoverSpec.d.ts +12 -1
- package/dist/lib/models/dataprotection/v4/operations/TestFailoverSpec.js +41 -4
- package/dist/lib/models/dataprotection/v4/operations/UnplannedFailoverRecoveryPlanApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/operations/UnplannedFailoverRecoveryPlanApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/operations/UnplannedFailoverSpec.d.ts +12 -1
- package/dist/lib/models/dataprotection/v4/operations/UnplannedFailoverSpec.js +41 -4
- package/dist/lib/models/dataprotection/v4/operations/ValidateRecoveryPlanApiResponse.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/operations/ValidateRecoveryPlanApiResponse.js +5 -5
- package/dist/lib/models/dataprotection/v4/operations/ValidateSpec.d.ts +1 -1
- package/dist/lib/models/dataprotection/v4/operations/ValidateSpec.js +4 -4
- package/dist/lib/models/prism/v4/config/TaskReference.d.ts +1 -1
- package/dist/lib/models/prism/v4/config/TaskReference.js +4 -4
- package/dist/lib/models/validation/ValidationError.js +2 -2
- package/dist/lib/models/vmm/v4/ahv/config/CategoryReference.d.ts +1 -1
- package/dist/lib/models/vmm/v4/ahv/config/CategoryReference.js +3 -3
- package/dist/lib/models/vmm/v4/ahv/config/GuestStaticIpSpec.d.ts +1 -1
- package/dist/lib/models/vmm/v4/ahv/config/GuestStaticIpSpec.js +3 -3
- package/dist/lib/models/vmm/v4/ahv/config/OwnerReference.d.ts +1 -1
- package/dist/lib/models/vmm/v4/ahv/config/OwnerReference.js +3 -3
- package/dist/lib/models/vmm/v4/ahv/config/OwnershipInfo.d.ts +1 -1
- package/dist/lib/models/vmm/v4/ahv/config/OwnershipInfo.js +3 -3
- package/dist/lib/models/vmm/v4/ahv/config/SubnetReference.d.ts +1 -1
- package/dist/lib/models/vmm/v4/ahv/config/SubnetReference.js +3 -3
- package/dist/lib/models/vmm/v4/ahv/config/VmConfigOverrideSpecification.d.ts +1 -1
- package/dist/lib/models/vmm/v4/ahv/config/VmConfigOverrideSpecification.js +3 -3
- package/dist/lib/models/vmm/v4/ahv/config/VmRestoreGuestNicInfoOverrideSpec.d.ts +1 -1
- package/dist/lib/models/vmm/v4/ahv/config/VmRestoreGuestNicInfoOverrideSpec.js +3 -3
- package/dist/lib/models/vmm/v4/ahv/config/VmRestoreGuestToolsSpecification.d.ts +1 -1
- package/dist/lib/models/vmm/v4/ahv/config/VmRestoreGuestToolsSpecification.js +3 -3
- package/dist/lib/models/vmm/v4/ahv/config/VmRestoreIpv4ConfigOverrideSpec.d.ts +1 -1
- package/dist/lib/models/vmm/v4/ahv/config/VmRestoreIpv4ConfigOverrideSpec.js +3 -3
- package/dist/lib/models/vmm/v4/ahv/config/VmRestoreNicConfigOverrideParams.d.ts +1 -1
- package/dist/lib/models/vmm/v4/ahv/config/VmRestoreNicConfigOverrideParams.js +3 -3
- package/dist/lib/models/vmm/v4/ahv/config/VmRestoreNicConfigSpecification.d.ts +1 -1
- package/dist/lib/models/vmm/v4/ahv/config/VmRestoreNicConfigSpecification.js +3 -3
- package/dist/lib/models/vmm/v4/ahv/config/VmRestoreVirtualEthernetNicNetworkInfoOverrideSpec.d.ts +1 -1
- package/dist/lib/models/vmm/v4/ahv/config/VmRestoreVirtualEthernetNicNetworkInfoOverrideSpec.js +3 -3
- package/dist/lib/models/vmm/v4/ahv/config/VmRestoreVirtualEthernetNicOverrideSpec.d.ts +1 -1
- package/dist/lib/models/vmm/v4/ahv/config/VmRestoreVirtualEthernetNicOverrideSpec.js +3 -3
- package/dist/lib/utils/ValidationUtils.js +2 -2
- package/package.json +1 -1
- package/dist/es/apis/consistencygroups-endpoints.d.ts +0 -84
- package/dist/es/apis/consistencygroups-endpoints.js +0 -267
- package/dist/es/models/dataprotection/v4/config/CreateConsistencyGroupApiResponse.d.ts +0 -58
- package/dist/es/models/dataprotection/v4/config/CreateConsistencyGroupApiResponse.js +0 -288
- package/dist/es/models/dataprotection/v4/config/DeleteConsistencyGroupApiResponse.d.ts +0 -57
- package/dist/es/models/dataprotection/v4/config/DeleteConsistencyGroupApiResponse.js +0 -290
- package/dist/es/models/dataprotection/v4/config/GetConsistencyGroupApiResponse.d.ts +0 -58
- package/dist/es/models/dataprotection/v4/config/GetConsistencyGroupApiResponse.js +0 -288
- package/dist/es/models/dataprotection/v4/config/ListConsistencyGroupsApiResponse.d.ts +0 -59
- package/dist/es/models/dataprotection/v4/config/ListConsistencyGroupsApiResponse.js +0 -315
- package/dist/es/models/dataprotection/v4/config/UpdateConsistencyGroupApiResponse.d.ts +0 -58
- package/dist/es/models/dataprotection/v4/config/UpdateConsistencyGroupApiResponse.js +0 -310
- package/dist/lib/apis/consistencygroups-endpoints.d.ts +0 -84
- package/dist/lib/apis/consistencygroups-endpoints.js +0 -267
- package/dist/lib/models/dataprotection/v4/config/CreateConsistencyGroupApiResponse.d.ts +0 -58
- package/dist/lib/models/dataprotection/v4/config/CreateConsistencyGroupApiResponse.js +0 -288
- package/dist/lib/models/dataprotection/v4/config/DeleteConsistencyGroupApiResponse.d.ts +0 -57
- package/dist/lib/models/dataprotection/v4/config/DeleteConsistencyGroupApiResponse.js +0 -290
- package/dist/lib/models/dataprotection/v4/config/GetConsistencyGroupApiResponse.d.ts +0 -58
- package/dist/lib/models/dataprotection/v4/config/GetConsistencyGroupApiResponse.js +0 -288
- package/dist/lib/models/dataprotection/v4/config/ListConsistencyGroupsApiResponse.d.ts +0 -59
- package/dist/lib/models/dataprotection/v4/config/ListConsistencyGroupsApiResponse.js +0 -315
- package/dist/lib/models/dataprotection/v4/config/UpdateConsistencyGroupApiResponse.d.ts +0 -58
- package/dist/lib/models/dataprotection/v4/config/UpdateConsistencyGroupApiResponse.js +0 -310
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Ntnx=t():(e.Ntnx=e.Ntnx||{},e.Ntnx.Dataprotection=t())}(Object("undefined"==typeof self?this:self),()=>(()=>{var e={19(e,t,n){"use strict";var i=n(897);function o(e){if(e)return function(e){for(var t in o.prototype)Object.prototype.hasOwnProperty.call(o.prototype,t)&&(e[t]=o.prototype[t]);return e}(e)}e.exports=o,o.prototype.get=function(e){return this.header[e.toLowerCase()]},o.prototype._setHeaderProperties=function(e){var t=e["content-type"]||"";this.type=i.type(t);var n=i.params(t);for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(this[o]=n[o]);this.links={};try{e.link&&(this.links=i.parseLinks(e.link))}catch(e){}},o.prototype._setStatusProperties=function(e){var t=e/100|0;this.statusCode=e,this.status=this.statusCode,this.statusType=t,this.info=1===t,this.ok=2===t,this.redirect=3===t,this.clientError=4===t,this.serverError=5===t,this.error=(4===t||5===t)&&this.toError(),this.created=201===e,this.accepted=202===e,this.noContent=204===e,this.badRequest=400===e,this.unauthorized=401===e,this.notAcceptable=406===e,this.forbidden=403===e,this.notFound=404===e,this.unprocessableEntity=422===e}},98(e){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},340(e){e.exports=r,r.default=r,r.stable=u,r.stableStringify=u;var t="[...]",n="[Circular]",i=[],o=[];function s(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function r(e,t,n,r){var a;void 0===r&&(r=s()),l(e,"",0,[],void 0,0,r);try{a=0===o.length?JSON.stringify(e,t,n):JSON.stringify(e,h(t),n)}catch(e){return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;0!==i.length;){var d=i.pop();4===d.length?Object.defineProperty(d[0],d[1],d[3]):d[0][d[1]]=d[2]}}return a}function a(e,t,n,s){var r=Object.getOwnPropertyDescriptor(s,n);void 0!==r.get?r.configurable?(Object.defineProperty(s,n,{value:e}),i.push([s,n,t,r])):o.push([t,n,e]):(s[n]=e,i.push([s,n,t]))}function l(e,i,o,s,r,d,u){var c;if(d+=1,"object"==typeof e&&null!==e){for(c=0;c<s.length;c++)if(s[c]===e)return void a(n,e,i,r);if(void 0!==u.depthLimit&&d>u.depthLimit)return void a(t,e,i,r);if(void 0!==u.edgesLimit&&o+1>u.edgesLimit)return void a(t,e,i,r);if(s.push(e),Array.isArray(e))for(c=0;c<e.length;c++)l(e[c],c,c,s,e,d,u);else{var h=Object.keys(e);for(c=0;c<h.length;c++){var p=h[c];l(e[p],p,c,s,e,d,u)}}s.pop()}}function d(e,t){return e<t?-1:e>t?1:0}function u(e,t,n,r){void 0===r&&(r=s());var a,l=c(e,"",0,[],void 0,0,r)||e;try{a=0===o.length?JSON.stringify(l,t,n):JSON.stringify(l,h(t),n)}catch(e){return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;0!==i.length;){var d=i.pop();4===d.length?Object.defineProperty(d[0],d[1],d[3]):d[0][d[1]]=d[2]}}return a}function c(e,o,s,r,l,u,h){var p;if(u+=1,"object"==typeof e&&null!==e){for(p=0;p<r.length;p++)if(r[p]===e)return void a(n,e,o,l);try{if("function"==typeof e.toJSON)return}catch(e){return}if(void 0!==h.depthLimit&&u>h.depthLimit)return void a(t,e,o,l);if(void 0!==h.edgesLimit&&s+1>h.edgesLimit)return void a(t,e,o,l);if(r.push(e),Array.isArray(e))for(p=0;p<e.length;p++)c(e[p],p,p,r,e,u,h);else{var v={},y=Object.keys(e).sort(d);for(p=0;p<y.length;p++){var g=y[p];c(e[g],g,p,r,e,u,h),v[g]=e[g]}if(void 0===l)return v;i.push([l,o,e]),l[o]=v}r.pop()}}function h(e){return e=void 0!==e?e:function(e,t){return t},function(t,n){if(o.length>0)for(var i=0;i<o.length;i++){var s=o[i];if(s[1]===t&&s[0]===n){n=s[2],o.splice(i,1);break}}return e.call(this,t,n)}}},388(e){"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}e.exports=function(e){return null!==e&&"object"===t(e)}},540(e){function t(e,t){if(this._maxRetries&&this._retries++<this._maxRetries&&function(e,t,n,i){if(i)return i(e,t);if(e&&e.code&&~["ECONNRESET","ETIMEDOUT","EADDRINFO","ESOCKETTIMEDOUT","ENOTFOUND","ECONNREFUSED"].indexOf(e.code))return!0;if(t&&t.status){const e=t.status;if(e>=500)return!0;if((e>=400||e<200)&&-1===n.indexOf(e))return!0}return!(!e||!("timeout"in e)||"ECONNABORTED"!==e.code)||e&&"crossDomain"in e}(e,t,this._allowedStatuses,this._retryCallback)){let e;e=this._retries?this._retryDelays[this._retries-1]:0;const t=this;return setTimeout(function(){return t._retry()},e)}const n=this._callback;this.clearTimeout(),e&&(this._maxRetries&&(e.retries=this._retries-1),this.emit("error",e)),n(e,t)}function n(e,t,n,i){0!==arguments.length&&!0!==e||(e=1),e<=0&&(e=0),"number"==typeof t&&(t=[t]);const o=t.length,s=e-o;if(0!==s){if(s<0)throw new Error("Cannot have more delays than retries");{const e=t[o-1];for(let n=0;n<s+1;n++)t.push(e)}}return this._maxRetries=e,this._retries=0,this._retryDelays=t||[0],this._allowedStatuses=n||[],this._retryCallback=i,this}e.exports=function(e){const i=e.Request;return i.prototype.oldRetry=i.prototype.retry,i.prototype.retry=n,i.prototype.callback=t,e}},545(){},548(){},585(e,t,n){"use strict";function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}var o;"undefined"!=typeof window?o=window:"undefined"==typeof self?(console.warn("Using browser-only version of superagent in non-browser environment"),o=void 0):o=self;var s=n(960),r=n(340),a=n(695),l=n(388),d=n(19),u=n(619);function c(){}e.exports=function(e,n){return"function"==typeof n?new t.Request("GET",e).end(n):1===arguments.length?new t.Request("GET",e):new t.Request(e,n)};var h=t=e.exports;t.Request=w,h.getXHR=function(){if(o.XMLHttpRequest&&(!o.location||"file:"!==o.location.protocol||!o.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}throw new Error("Browser-only version of superagent could not find XHR")};var p="".trim?function(e){return e.trim()}:function(e){return e.replace(/(^\s*|\s*$)/g,"")};function v(e){if(!l(e))return e;var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&y(t,n,e[n]);return t.join("&")}function y(e,t,n){if(void 0!==n)if(null!==n)if(Array.isArray(n))n.forEach(function(n){y(e,t,n)});else if(l(n))for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&y(e,"".concat(t,"[").concat(i,"]"),n[i]);else e.push(encodeURI(t)+"="+encodeURIComponent(n));else e.push(encodeURI(t))}function g(e){for(var t,n,i={},o=e.split("&"),s=0,r=o.length;s<r;++s)-1===(n=(t=o[s]).indexOf("="))?i[decodeURIComponent(t)]="":i[decodeURIComponent(t.slice(0,n))]=decodeURIComponent(t.slice(n+1));return i}function f(e){return/[/+]json($|[^-\w])/.test(e)}function $(e){this.req=e,this.xhr=this.req.xhr,this.text="HEAD"!==this.req.method&&(""===this.xhr.responseType||"text"===this.xhr.responseType)||void 0===this.xhr.responseType?this.xhr.responseText:null,this.statusText=this.req.xhr.statusText;var t=this.xhr.status;1223===t&&(t=204),this._setStatusProperties(t),this.headers=function(e){for(var t,n,i,o,s=e.split(/\r?\n/),r={},a=0,l=s.length;a<l;++a)-1!==(t=(n=s[a]).indexOf(":"))&&(i=n.slice(0,t).toLowerCase(),o=p(n.slice(t+1)),r[i]=o);return r}(this.xhr.getAllResponseHeaders()),this.header=this.headers,this.header["content-type"]=this.xhr.getResponseHeader("content-type"),this._setHeaderProperties(this.header),null===this.text&&e._responseType?this.body=this.xhr.response:this.body="HEAD"===this.req.method?null:this._parseBody(this.text?this.text:this.xhr.response)}function w(e,t){var n=this;this._query=this._query||[],this.method=e,this.url=t,this.header={},this._header={},this.on("end",function(){var e,t=null,i=null;try{i=new $(n)}catch(e){return(t=new Error("Parser is unable to parse the response")).parse=!0,t.original=e,n.xhr?(t.rawResponse=void 0===n.xhr.responseType?n.xhr.responseText:n.xhr.response,t.status=n.xhr.status?n.xhr.status:null,t.statusCode=t.status):(t.rawResponse=null,t.status=null),n.callback(t)}n.emit("response",i);try{n._isResponseOK(i)||(e=new Error(i.statusText||i.text||"Unsuccessful HTTP response"))}catch(t){e=t}e?(e.original=t,e.response=i,e.status=i.status,n.callback(e,i)):n.callback(null,i)})}function m(e,t,n){var i=h("DELETE",e);return"function"==typeof t&&(n=t,t=null),t&&i.send(t),n&&i.end(n),i}h.serializeObject=v,h.parseString=g,h.types={html:"text/html",json:"application/json",xml:"text/xml",urlencoded:"application/x-www-form-urlencoded",form:"application/x-www-form-urlencoded","form-data":"application/x-www-form-urlencoded"},h.serialize={"application/x-www-form-urlencoded":v,"application/json":r},h.parse={"application/x-www-form-urlencoded":g,"application/json":JSON.parse},d($.prototype),$.prototype._parseBody=function(e){var t=h.parse[this.type];return this.req._parser?this.req._parser(this,e):(!t&&f(this.type)&&(t=h.parse["application/json"]),t&&e&&(e.length>0||e instanceof Object)?t(e):null)},$.prototype.toError=function(){var e=this.req,t=e.method,n=e.url,i="cannot ".concat(t," ").concat(n," (").concat(this.status,")"),o=new Error(i);return o.status=this.status,o.method=t,o.url=n,o},h.Response=$,s(w.prototype),a(w.prototype),w.prototype.type=function(e){return this.set("Content-Type",h.types[e]||e),this},w.prototype.accept=function(e){return this.set("Accept",h.types[e]||e),this},w.prototype.auth=function(e,t,n){return 1===arguments.length&&(t=""),"object"===i(t)&&null!==t&&(n=t,t=""),n||(n={type:"function"==typeof btoa?"basic":"auto"}),this._auth(e,t,n,function(e){if("function"==typeof btoa)return btoa(e);throw new Error("Cannot use basic auth, btoa is not a function")})},w.prototype.query=function(e){return"string"!=typeof e&&(e=v(e)),e&&this._query.push(e),this},w.prototype.attach=function(e,t,n){if(t){if(this._data)throw new Error("superagent can't mix .send() and .attach()");this._getFormData().append(e,t,n||t.name)}return this},w.prototype._getFormData=function(){return this._formData||(this._formData=new o.FormData),this._formData},w.prototype.callback=function(e,t){if(this._shouldRetry(e,t))return this._retry();var n=this._callback;this.clearTimeout(),e&&(this._maxRetries&&(e.retries=this._retries-1),this.emit("error",e)),n(e,t)},w.prototype.crossDomainError=function(){var e=new Error("Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.");e.crossDomain=!0,e.status=this.status,e.method=this.method,e.url=this.url,this.callback(e)},w.prototype.agent=function(){return console.warn("This is not supported in browser version of superagent"),this},w.prototype.ca=w.prototype.agent,w.prototype.buffer=w.prototype.ca,w.prototype.write=function(){throw new Error("Streaming is not supported in browser version of superagent")},w.prototype.pipe=w.prototype.write,w.prototype._isHost=function(e){return e&&"object"===i(e)&&!Array.isArray(e)&&"[object Object]"!==Object.prototype.toString.call(e)},w.prototype.end=function(e){this._endCalled&&console.warn("Warning: .end() was called twice. This is not supported in superagent"),this._endCalled=!0,this._callback=e||c,this._finalizeQueryString(),this._end()},w.prototype._setUploadTimeout=function(){var e=this;this._uploadTimeout&&!this._uploadTimeoutTimer&&(this._uploadTimeoutTimer=setTimeout(function(){e._timeoutError("Upload timeout of ",e._uploadTimeout,"ETIMEDOUT")},this._uploadTimeout))},w.prototype._end=function(){if(this._aborted)return this.callback(new Error("The request has been aborted even before .end() was called"));var e=this;this.xhr=h.getXHR();var t=this.xhr,n=this._formData||this._data;this._setTimeouts(),t.onreadystatechange=function(){var n=t.readyState;if(n>=2&&e._responseTimeoutTimer&&clearTimeout(e._responseTimeoutTimer),4===n){var i;try{i=t.status}catch(e){i=0}if(!i){if(e.timedout||e._aborted)return;return e.crossDomainError()}e.emit("end")}};var i=function(t,n){n.total>0&&(n.percent=n.loaded/n.total*100,100===n.percent&&clearTimeout(e._uploadTimeoutTimer)),n.direction=t,e.emit("progress",n)};if(this.hasListeners("progress"))try{t.addEventListener("progress",i.bind(null,"download")),t.upload&&t.upload.addEventListener("progress",i.bind(null,"upload"))}catch(e){}t.upload&&this._setUploadTimeout();try{this.username&&this.password?t.open(this.method,this.url,!0,this.username,this.password):t.open(this.method,this.url,!0)}catch(e){return this.callback(e)}if(this._withCredentials&&(t.withCredentials=!0),!this._formData&&"GET"!==this.method&&"HEAD"!==this.method&&"string"!=typeof n&&!this._isHost(n)){var o=this._header["content-type"],s=this._serializer||h.serialize[o?o.split(";")[0]:""];!s&&f(o)&&(s=h.serialize["application/json"]),s&&(n=s(n))}for(var r in this.header)null!==this.header[r]&&Object.prototype.hasOwnProperty.call(this.header,r)&&t.setRequestHeader(r,this.header[r]);this._responseType&&(t.responseType=this._responseType),this.emit("request",this),t.send(void 0===n?null:n)},h.agent=function(){return new u},["GET","POST","OPTIONS","PATCH","PUT","DELETE"].forEach(function(e){u.prototype[e.toLowerCase()]=function(t,n){var i=new h.Request(e,t);return this._setDefaults(i),n&&i.end(n),i}}),u.prototype.del=u.prototype.delete,h.get=function(e,t,n){var i=h("GET",e);return"function"==typeof t&&(n=t,t=null),t&&i.query(t),n&&i.end(n),i},h.head=function(e,t,n){var i=h("HEAD",e);return"function"==typeof t&&(n=t,t=null),t&&i.query(t),n&&i.end(n),i},h.options=function(e,t,n){var i=h("OPTIONS",e);return"function"==typeof t&&(n=t,t=null),t&&i.send(t),n&&i.end(n),i},h.del=m,h.delete=m,h.patch=function(e,t,n){var i=h("PATCH",e);return"function"==typeof t&&(n=t,t=null),t&&i.send(t),n&&i.end(n),i},h.post=function(e,t,n){var i=h("POST",e);return"function"==typeof t&&(n=t,t=null),t&&i.send(t),n&&i.end(n),i},h.put=function(e,t,n){var i=h("PUT",e);return"function"==typeof t&&(n=t,t=null),t&&i.send(t),n&&i.end(n),i}},597(e){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},619(e){"use strict";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}function n(){this._defaults=[]}["use","on","once","set","query","type","accept","auth","withCredentials","sortQuery","retry","ok","redirects","timeout","buffer","serialize","parse","ca","key","pfx","cert","disableTLSCerts"].forEach(function(e){n.prototype[e]=function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return this._defaults.push({fn:e,args:n}),this}}),n.prototype._setDefaults=function(e){this._defaults.forEach(function(n){var i;e[n.fn].apply(e,function(e){if(Array.isArray(e))return t(e)}(i=n.args)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(i)||function(e,n){if(e){if("string"==typeof e)return t(e,n);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?t(e,n):void 0}}(i)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())})},e.exports=n},695(e,t,n){"use strict";function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}var o=n(388);function s(e){if(e)return function(e){for(var t in s.prototype)Object.prototype.hasOwnProperty.call(s.prototype,t)&&(e[t]=s.prototype[t]);return e}(e)}e.exports=s,s.prototype.clearTimeout=function(){return clearTimeout(this._timer),clearTimeout(this._responseTimeoutTimer),clearTimeout(this._uploadTimeoutTimer),delete this._timer,delete this._responseTimeoutTimer,delete this._uploadTimeoutTimer,this},s.prototype.parse=function(e){return this._parser=e,this},s.prototype.responseType=function(e){return this._responseType=e,this},s.prototype.serialize=function(e){return this._serializer=e,this},s.prototype.timeout=function(e){if(!e||"object"!==i(e))return this._timeout=e,this._responseTimeout=0,this._uploadTimeout=0,this;for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))switch(t){case"deadline":this._timeout=e.deadline;break;case"response":this._responseTimeout=e.response;break;case"upload":this._uploadTimeout=e.upload;break;default:console.warn("Unknown timeout option",t)}return this},s.prototype.retry=function(e,t){return 0!==arguments.length&&!0!==e||(e=1),e<=0&&(e=0),this._maxRetries=e,this._retries=0,this._retryCallback=t,this};var r=["ECONNRESET","ETIMEDOUT","EADDRINFO","ESOCKETTIMEDOUT"];s.prototype._shouldRetry=function(e,t){if(!this._maxRetries||this._retries++>=this._maxRetries)return!1;if(this._retryCallback)try{var n=this._retryCallback(e,t);if(!0===n)return!0;if(!1===n)return!1}catch(e){console.error(e)}if(t&&t.status&&t.status>=500&&501!==t.status)return!0;if(e){if(e.code&&r.includes(e.code))return!0;if(e.timeout&&"ECONNABORTED"===e.code)return!0;if(e.crossDomain)return!0}return!1},s.prototype._retry=function(){return this.clearTimeout(),this.req&&(this.req=null,this.req=this.request()),this._aborted=!1,this.timedout=!1,this.timedoutError=null,this._end()},s.prototype.then=function(e,t){var n=this;if(!this._fullfilledPromise){var i=this;this._endCalled&&console.warn("Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"),this._fullfilledPromise=new Promise(function(e,t){i.on("abort",function(){if(!(n._maxRetries&&n._maxRetries>n._retries))if(n.timedout&&n.timedoutError)t(n.timedoutError);else{var e=new Error("Aborted");e.code="ABORTED",e.status=n.status,e.method=n.method,e.url=n.url,t(e)}}),i.end(function(n,i){n?t(n):e(i)})})}return this._fullfilledPromise.then(e,t)},s.prototype.catch=function(e){return this.then(void 0,e)},s.prototype.use=function(e){return e(this),this},s.prototype.ok=function(e){if("function"!=typeof e)throw new Error("Callback required");return this._okCallback=e,this},s.prototype._isResponseOK=function(e){return!!e&&(this._okCallback?this._okCallback(e):e.status>=200&&e.status<300)},s.prototype.get=function(e){return this._header[e.toLowerCase()]},s.prototype.getHeader=s.prototype.get,s.prototype.set=function(e,t){if(o(e)){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&this.set(n,e[n]);return this}return this._header[e.toLowerCase()]=t,this.header[e]=t,this},s.prototype.unset=function(e){return delete this._header[e.toLowerCase()],delete this.header[e],this},s.prototype.field=function(e,t){if(null==e)throw new Error(".field(name, val) name can not be empty");if(this._data)throw new Error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()");if(o(e)){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&this.field(n,e[n]);return this}if(Array.isArray(t)){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&this.field(e,t[i]);return this}if(null==t)throw new Error(".field(name, val) val can not be empty");return"boolean"==typeof t&&(t=String(t)),this._getFormData().append(e,t),this},s.prototype.abort=function(){return this._aborted||(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit("abort")),this},s.prototype._auth=function(e,t,n,i){switch(n.type){case"basic":this.set("Authorization","Basic ".concat(i("".concat(e,":").concat(t))));break;case"auto":this.username=e,this.password=t;break;case"bearer":this.set("Authorization","Bearer ".concat(e))}return this},s.prototype.withCredentials=function(e){return void 0===e&&(e=!0),this._withCredentials=e,this},s.prototype.redirects=function(e){return this._maxRedirects=e,this},s.prototype.maxResponseSize=function(e){if("number"!=typeof e)throw new TypeError("Invalid argument");return this._maxResponseSize=e,this},s.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},s.prototype.send=function(e){var t=o(e),n=this._header["content-type"];if(this._formData)throw new Error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()");if(t&&!this._data)Array.isArray(e)?this._data=[]:this._isHost(e)||(this._data={});else if(e&&this._data&&this._isHost(this._data))throw new Error("Can't merge these send calls");if(t&&o(this._data))for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(this._data[i]=e[i]);else"string"==typeof e?(n||this.type("form"),n=this._header["content-type"],this._data="application/x-www-form-urlencoded"===n?this._data?"".concat(this._data,"&").concat(e):e:(this._data||"")+e):this._data=e;return!t||this._isHost(e)||n||this.type("json"),this},s.prototype.sortQuery=function(e){return this._sort=void 0===e||e,this},s.prototype._finalizeQueryString=function(){var e=this._query.join("&");if(e&&(this.url+=(this.url.includes("?")?"&":"?")+e),this._query.length=0,this._sort){var t=this.url.indexOf("?");if(t>=0){var n=this.url.slice(t+1).split("&");"function"==typeof this._sort?n.sort(this._sort):n.sort(),this.url=this.url.slice(0,t)+"?"+n.join("&")}}},s.prototype._appendQueryString=function(){console.warn("Unsupported")},s.prototype._timeoutError=function(e,t,n){if(!this._aborted){var i=new Error("".concat(e+t,"ms exceeded"));i.timeout=t,i.code="ECONNABORTED",i.errno=n,this.timedout=!0,this.timedoutError=i,this.abort(),this.callback(i)}},s.prototype._setTimeouts=function(){var e=this;this._timeout&&!this._timer&&(this._timer=setTimeout(function(){e._timeoutError("Timeout of ",e._timeout,"ETIME")},this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout(function(){e._timeoutError("Response timeout of ",e._responseTimeout,"ETIMEDOUT")},this._responseTimeout))}},784(e,t,n){"use strict";var i="win32"===process.platform,o=n(818);function s(e,t){for(var n=[],i=0;i<e.length;i++){var o=e[i];o&&"."!==o&&(".."===o?n.length&&".."!==n[n.length-1]?n.pop():t&&n.push(".."):n.push(o))}return n}function r(e){for(var t=e.length-1,n=0;n<=t&&!e[n];n++);for(var i=t;i>=0&&!e[i];i--);return 0===n&&i===t?e:n>i?[]:e.slice(n,i+1)}var a=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/,l=/^([\s\S]*?)((?:\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))(?:[\\\/]*)$/,d={};function u(e){var t=a.exec(e),n=(t[1]||"")+(t[2]||""),i=t[3]||"",o=l.exec(i);return[n,o[1],o[2],o[3]]}function c(e){var t=a.exec(e),n=t[1]||"",i=!!n&&":"!==n[1];return{device:n,isUnc:i,isAbsolute:i||!!t[2],tail:t[3]}}function h(e){return"\\\\"+e.replace(/^[\\\/]+/,"").replace(/[\\\/]+/g,"\\")}d.resolve=function(){for(var e="",t="",n=!1,i=arguments.length-1;i>=-1;i--){var r;if(i>=0?r=arguments[i]:e?(r=process.env["="+e])&&r.substr(0,3).toLowerCase()===e.toLowerCase()+"\\"||(r=e+"\\"):r=process.cwd(),!o.isString(r))throw new TypeError("Arguments to path.resolve must be strings");if(r){var a=c(r),l=a.device,d=a.isUnc,u=a.isAbsolute,p=a.tail;if((!l||!e||l.toLowerCase()===e.toLowerCase())&&(e||(e=l),n||(t=p+"\\"+t,n=u),e&&n))break}}return d&&(e=h(e)),e+(n?"\\":"")+(t=s(t.split(/[\\\/]+/),!n).join("\\"))||"."},d.normalize=function(e){var t=c(e),n=t.device,i=t.isUnc,o=t.isAbsolute,r=t.tail,a=/[\\\/]$/.test(r);return(r=s(r.split(/[\\\/]+/),!o).join("\\"))||o||(r="."),r&&a&&(r+="\\"),i&&(n=h(n)),n+(o?"\\":"")+r},d.isAbsolute=function(e){return c(e).isAbsolute},d.join=function(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(!o.isString(n))throw new TypeError("Arguments to path.join must be strings");n&&e.push(n)}var i=e.join("\\");return/^[\\\/]{2}[^\\\/]/.test(e[0])||(i=i.replace(/^[\\\/]{2,}/,"\\")),d.normalize(i)},d.relative=function(e,t){e=d.resolve(e),t=d.resolve(t);for(var n=e.toLowerCase(),i=t.toLowerCase(),o=r(t.split("\\")),s=r(n.split("\\")),a=r(i.split("\\")),l=Math.min(s.length,a.length),u=l,c=0;c<l;c++)if(s[c]!==a[c]){u=c;break}if(0==u)return t;var h=[];for(c=u;c<s.length;c++)h.push("..");return(h=h.concat(o.slice(u))).join("\\")},d._makeLong=function(e){if(!o.isString(e))return e;if(!e)return"";var t=d.resolve(e);return/^[a-zA-Z]\:\\/.test(t)?"\\\\?\\"+t:/^\\\\[^?.]/.test(t)?"\\\\?\\UNC\\"+t.substring(2):e},d.dirname=function(e){var t=u(e),n=t[0],i=t[1];return n||i?(i&&(i=i.substr(0,i.length-1)),n+i):"."},d.basename=function(e,t){var n=u(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},d.extname=function(e){return u(e)[3]},d.format=function(e){if(!o.isObject(e))throw new TypeError("Parameter 'pathObject' must be an object, not "+typeof e);var t=e.root||"";if(!o.isString(t))throw new TypeError("'pathObject.root' must be a string or undefined, not "+typeof e.root);var n=e.dir,i=e.base||"";return n?n[n.length-1]===d.sep?n+i:n+d.sep+i:i},d.parse=function(e){if(!o.isString(e))throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=u(e);if(!t||4!==t.length)throw new TypeError("Invalid path '"+e+"'");return{root:t[0],dir:t[0]+t[1].slice(0,-1),base:t[2],ext:t[3],name:t[2].slice(0,t[2].length-t[3].length)}},d.sep="\\",d.delimiter=";";var p=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,v={};function y(e){return p.exec(e).slice(1)}v.resolve=function(){for(var e="",t=!1,n=arguments.length-1;n>=-1&&!t;n--){var i=n>=0?arguments[n]:process.cwd();if(!o.isString(i))throw new TypeError("Arguments to path.resolve must be strings");i&&(e=i+"/"+e,t="/"===i[0])}return(t?"/":"")+(e=s(e.split("/"),!t).join("/"))||"."},v.normalize=function(e){var t=v.isAbsolute(e),n=e&&"/"===e[e.length-1];return(e=s(e.split("/"),!t).join("/"))||t||(e="."),e&&n&&(e+="/"),(t?"/":"")+e},v.isAbsolute=function(e){return"/"===e.charAt(0)},v.join=function(){for(var e="",t=0;t<arguments.length;t++){var n=arguments[t];if(!o.isString(n))throw new TypeError("Arguments to path.join must be strings");n&&(e+=e?"/"+n:n)}return v.normalize(e)},v.relative=function(e,t){e=v.resolve(e).substr(1),t=v.resolve(t).substr(1);for(var n=r(e.split("/")),i=r(t.split("/")),o=Math.min(n.length,i.length),s=o,a=0;a<o;a++)if(n[a]!==i[a]){s=a;break}var l=[];for(a=s;a<n.length;a++)l.push("..");return(l=l.concat(i.slice(s))).join("/")},v._makeLong=function(e){return e},v.dirname=function(e){var t=y(e),n=t[0],i=t[1];return n||i?(i&&(i=i.substr(0,i.length-1)),n+i):"."},v.basename=function(e,t){var n=y(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},v.extname=function(e){return y(e)[3]},v.format=function(e){if(!o.isObject(e))throw new TypeError("Parameter 'pathObject' must be an object, not "+typeof e);var t=e.root||"";if(!o.isString(t))throw new TypeError("'pathObject.root' must be a string or undefined, not "+typeof e.root);return(e.dir?e.dir+v.sep:"")+(e.base||"")},v.parse=function(e){if(!o.isString(e))throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=y(e);if(!t||4!==t.length)throw new TypeError("Invalid path '"+e+"'");return t[1]=t[1]||"",t[2]=t[2]||"",t[3]=t[3]||"",{root:t[0],dir:t[0]+t[1].slice(0,-1),base:t[2],ext:t[3],name:t[2].slice(0,t[2].length-t[3].length)}},v.sep="/",v.delimiter=":",e.exports=i?d:v,e.exports.posix=v,e.exports.win32=d},799(){},818(e,t,n){var i=/%[sdj%]/g;t.format=function(e){if(!g(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(r(arguments[n]));return t.join(" ")}n=1;for(var o=arguments,s=o.length,a=String(e).replace(i,function(e){if("%%"===e)return"%";if(n>=s)return e;switch(e){case"%s":return String(o[n++]);case"%d":return Number(o[n++]);case"%j":try{return JSON.stringify(o[n++])}catch(e){return"[Circular]"}default:return e}}),l=o[n];n<s;l=o[++n])v(l)||!w(l)?a+=" "+l:a+=" "+r(l);return a},t.deprecate=function(e,i){if(f(n.g.process))return function(){return t.deprecate(e,i).apply(this,arguments)};if(!0===process.noDeprecation)return e;var o=!1;return function(){if(!o){if(process.throwDeprecation)throw new Error(i);process.traceDeprecation?console.trace(i):console.error(i),o=!0}return e.apply(this,arguments)}};var o,s={};function r(e,n){var i={seen:[],stylize:l};return arguments.length>=3&&(i.depth=arguments[2]),arguments.length>=4&&(i.colors=arguments[3]),p(n)?i.showHidden=n:n&&t._extend(i,n),f(i.showHidden)&&(i.showHidden=!1),f(i.depth)&&(i.depth=2),f(i.colors)&&(i.colors=!1),f(i.customInspect)&&(i.customInspect=!0),i.colors&&(i.stylize=a),d(i,e,i.depth)}function a(e,t){var n=r.styles[t];return n?"["+r.colors[n][0]+"m"+e+"["+r.colors[n][1]+"m":e}function l(e,t){return e}function d(e,n,i){if(e.customInspect&&n&&T(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(i,e);return g(o)||(o=d(e,o,i)),o}var s=function(e,t){if(f(t))return e.stylize("undefined","undefined");if(g(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return y(t)?e.stylize(""+t,"number"):p(t)?e.stylize(""+t,"boolean"):v(t)?e.stylize("null","null"):void 0}(e,n);if(s)return s;var r=Object.keys(n),a=function(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}(r);if(e.showHidden&&(r=Object.getOwnPropertyNames(n)),k(n)&&(r.indexOf("message")>=0||r.indexOf("description")>=0))return u(n);if(0===r.length){if(T(n)){var l=n.name?": "+n.name:"";return e.stylize("[Function"+l+"]","special")}if($(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(m(n))return e.stylize(Date.prototype.toString.call(n),"date");if(k(n))return u(n)}var w,b="",F=!1,E=["{","}"];return h(n)&&(F=!0,E=["[","]"]),T(n)&&(b=" [Function"+(n.name?": "+n.name:"")+"]"),$(n)&&(b=" "+RegExp.prototype.toString.call(n)),m(n)&&(b=" "+Date.prototype.toUTCString.call(n)),k(n)&&(b=" "+u(n)),0!==r.length||F&&0!=n.length?i<0?$(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),w=F?function(e,t,n,i,o){for(var s=[],r=0,a=t.length;r<a;++r)j(t,String(r))?s.push(c(e,t,n,i,String(r),!0)):s.push("");return o.forEach(function(o){o.match(/^\d+$/)||s.push(c(e,t,n,i,o,!0))}),s}(e,n,i,a,r):r.map(function(t){return c(e,n,i,a,t,F)}),e.seen.pop(),function(e,t,n){return e.reduce(function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}(w,b,E)):E[0]+b+E[1]}function u(e){return"["+Error.prototype.toString.call(e)+"]"}function c(e,t,n,i,o,s){var r,a,l;if((l=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?a=l.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):l.set&&(a=e.stylize("[Setter]","special")),j(i,o)||(r="["+o+"]"),a||(e.seen.indexOf(l.value)<0?(a=v(n)?d(e,l.value,null):d(e,l.value,n-1)).indexOf("\n")>-1&&(a=s?a.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+a.split("\n").map(function(e){return" "+e}).join("\n")):a=e.stylize("[Circular]","special")),f(r)){if(s&&o.match(/^\d+$/))return a;(r=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(r=r.substr(1,r.length-2),r=e.stylize(r,"name")):(r=r.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),r=e.stylize(r,"string"))}return r+": "+a}function h(e){return Array.isArray(e)}function p(e){return"boolean"==typeof e}function v(e){return null===e}function y(e){return"number"==typeof e}function g(e){return"string"==typeof e}function f(e){return void 0===e}function $(e){return w(e)&&"[object RegExp]"===b(e)}function w(e){return"object"==typeof e&&null!==e}function m(e){return w(e)&&"[object Date]"===b(e)}function k(e){return w(e)&&("[object Error]"===b(e)||e instanceof Error)}function T(e){return"function"==typeof e}function b(e){return Object.prototype.toString.call(e)}function F(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(f(o)&&(o=process.env.NODE_DEBUG||""),e=e.toUpperCase(),!s[e])if(new RegExp("\\b"+e+"\\b","i").test(o)){var n=process.pid;s[e]=function(){var i=t.format.apply(t,arguments);console.error("%s %d: %s",e,n,i)}}else s[e]=function(){};return s[e]},t.inspect=r,r.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},r.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=p,t.isNull=v,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=g,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=f,t.isRegExp=$,t.isObject=w,t.isDate=m,t.isError=k,t.isFunction=T,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(98);var E=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function j(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,n;console.log("%s - %s",(n=[F((e=new Date).getHours()),F(e.getMinutes()),F(e.getSeconds())].join(":"),[e.getDate(),E[e.getMonth()],n].join(" ")),t.format.apply(t,arguments))},t.inherits=n(597),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),i=n.length;i--;)e[n[i]]=t[n[i]];return e}},897(e,t){"use strict";t.type=function(e){return e.split(/ *; */).shift()},t.params=function(e){return e.split(/ *; */).reduce(function(e,t){var n=t.split(/ *= */),i=n.shift(),o=n.shift();return i&&o&&(e[i]=o),e},{})},t.parseLinks=function(e){return e.split(/ *, */).reduce(function(e,t){var n=t.split(/ *; */),i=n[0].slice(1,-1);return e[n[1].split(/ *= */)[1].slice(1,-1)]=i,e},{})},t.cleanHeader=function(e,t){return delete e["content-type"],delete e["content-length"],delete e["transfer-encoding"],delete e.host,t&&(delete e.authorization,delete e.cookie),e}},960(e){function t(e){if(e)return function(e){for(var n in t.prototype)e[n]=t.prototype[n];return e}(e)}e.exports=t,t.prototype.on=t.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},t.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},t.prototype.off=t.prototype.removeListener=t.prototype.removeAllListeners=t.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,i=this._callbacks["$"+e];if(!i)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var o=0;o<i.length;o++)if((n=i[o])===t||n.fn===t){i.splice(o,1);break}return 0===i.length&&delete this._callbacks["$"+e],this},t.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),n=this._callbacks["$"+e],i=1;i<arguments.length;i++)t[i-1]=arguments[i];if(n){i=0;for(var o=(n=n.slice(0)).length;i<o;++i)n[i].apply(this,t)}return this},t.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},t.prototype.hasListeners=function(e){return!!this.listeners(e).length}},965(){}},t={};function n(i){var o=t[i];if(void 0!==o)return o.exports;var s=t[i]={exports:{}};return e[i](s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};return(()=>{"use strict";n.d(i,{default:()=>$l});var e,t=n(585),o=n.n(t);class s{constructor(){}static constructFromObject(e,t){if(e){if(t=t||new s,e.hasOwnProperty("links")&&null!==e.links&&void 0!==e.links)for(const n of e.links)if(n.hasOwnProperty("rel")&&n.hasOwnProperty("href"))switch(n.rel){case"first":t.linkFirst=n.href;break;case"prev":t.linkPrev=n.href;break;case"next":t.linkNext=n.href;break;case"last":t.linkLast=n.href}e.hasOwnProperty("totalAvailableResults")&&(t.resultsTotal=e.totalAvailableResults)}return t}getFirstPage(){return this.isFirstPage()?Promise.reject("Cannot navigate to first page : already on first page"):null===this.linkFirst?Promise.reject("No link to first page provided in previous API response"):this._getLink(this.linkFirst)}getPrevPage(){return this.isFirstPage()?Promise.reject("Cannot navigate to previous page : already on first page"):null===this.linkPrev?Promise.reject("No link to previous page provided in previous API response"):this._getLink(this.linkPrev)}getNextPage(){return this.isLastPage()?Promise.reject("Cannot navigate to next page : already on last page"):null===this.linkNext?Promise.reject("No link to next page provided in previous API response"):this._getLink(this.linkNext)}getLastPage(){return this.isLastPage()?Promise.reject("Cannot navigate to last page : already on last page"):null===this.linkLast?Promise.reject("No link to last page provided in previous API response"):this._getLink(this.linkLast)}currentPage(){return null===this.page?0:this.page}countPages(){return null===this.resultsPerPage||null===this.resultsTotal||0===this.resultsPerPage?1:Math.ceil(this.resultsTotal/this.resultsPerPage)}isFirstPage(){return 0===this.currentPage()}isLastPage(){return this.currentPage()===this.countPages()-1}populatePaginationMetadata(e,t,n){this.apiClient=e,this.page=t,this.resultsPerPage=n}_getLink(e){null===this.apiClient&&(this.apiClient=le.instance);const t=this.constructor;return this.apiClient.callApi(e,"GET",{},{},{},{},{},[],[],["application/json"],t)}}s.prototype.linkFirst=null,s.prototype.linkPrev=null,s.prototype.linkNext=null,s.prototype.linkLast=null,s.prototype.apiClient=null,s.prototype.page=null,s.prototype.resultsPerPage=null,s.prototype.resultsTotal=null;var r=new Uint8Array(16);function a(){if(!e&&!(e="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return e(r)}const l=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;for(var d=[],u=0;u<256;++u)d.push((u+256).toString(16).substr(1));const c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(d[e[t+0]]+d[e[t+1]]+d[e[t+2]]+d[e[t+3]]+"-"+d[e[t+4]]+d[e[t+5]]+"-"+d[e[t+6]]+d[e[t+7]]+"-"+d[e[t+8]]+d[e[t+9]]+"-"+d[e[t+10]]+d[e[t+11]]+d[e[t+12]]+d[e[t+13]]+d[e[t+14]]+d[e[t+15]]).toLowerCase();if(!function(e){return"string"==typeof e&&l.test(e)}(n))throw TypeError("Stringified UUID is invalid");return n},h=function(e,t,n){var i=(e=e||{}).random||(e.rng||a)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,t){n=n||0;for(var o=0;o<16;++o)t[n+o]=i[o];return t}return c(i)};var p=n(540),v=n.n(p),y=n(545),g=n.n(y),f=n(799),$=n.n(f),w=n(784),m=n.n(w),k=n(548);const T={DEFAULT:"DEFAULT",constructFromObject:function(e){if("string"==typeof e||e instanceof String)return T[e];throw new Error("Received object name is not an instance of String")},validate:function(e){if(null!=e){if(e===T.DEFAULT)return;throw new Error("Invalid : must be ValidationScopes.{ }")}}};Object.freeze(T);const b=T;class F{static validateMaximum(e,t){return!(null===t||e>t)}static validateMinimum(e,t){return!(null===t||e<t)}static validateExclusiveMaximum(e,t){return!(null===t||e>t)}static validateExclusiveMinimum(e,t){return!(null===t||e>t)}static validateMultipleOf(e,t){return!(null===t||e%t===0)}static validateMaxLength(e,t){return!(null===t||e.length>t)}static validateMinLength(e,t){return!(null===t||e.length<t)}static validatePattern(e,t){return!(null===t||null===e.match(t))}static validateMaxItems(e,t){return!(null===t||e.length>t)}static validateMinItems(e,t){return!(null===t||e.length<t)}static validateUniqueItems(e,t){return!(null===t||!t||e.length!==new Set(e).size)}}class E{constructor(e,t){this.name=e,this.message=t}getName(){return this.name}setName(e){this.name=e}getMessage(){return this.message}setMessage(e){this.message=e}toJson(){return{name:this.getName(),message:this.getMessage()}}}var j=new WeakSet;class O{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=j),t.add(e),this.$objectType="common.v1.config.Flag",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new O,e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("value")&&null!==e.value&&void 0!==e.value&&t.setValue(e.value),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getValue(){return this.value}setValue(e){this.value=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getValue()&&null!==this.getValue()?{value:this.getValue()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,128))return new E("name","does not satisfy required maxLength constraint: 128");if(!F.validateMinLength(this.name,3))return new E("name","does not satisfy required minLength constraint: 3")}return"value"!==t||void 0!==this.value&&null!==this.value?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("value","undefined or null")}}function I(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}O.prototype.name=void 0,O.prototype.value=!1,O.prototype.$reserved=void 0,O.prototype.$objectType=void 0,O.prototype.$unknownFields=void 0;var P=new WeakSet;class R{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=P),t.add(e),this.$objectType="common.v1.config.MapOfStringWrapper",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new R,e.hasOwnProperty("map")&&null!==e.map&&void 0!==e.map&&t.setMap(e.map),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMap(){return this.map}setMap(e){this.map=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMap()&&null!==this.getMap()?{map:I(P,this,x).call(this,this.getMap(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMap()&&null!==this.getMap()?{map:I(P,this,x).call(this,this.getMap())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"map"!==t||void 0!==this.map&&null!==this.map?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("map","undefined or null")}}function x(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function A(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}R.prototype.map=void 0,R.prototype.$reserved=void 0,R.prototype.$objectType=void 0,R.prototype.$unknownFields=void 0;var C=new WeakSet;class S{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=C),t.add(e),this.$objectType="common.v1.config.KVPair",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r,a;if(e){if(t=t||new S,e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("value")&&null!==e.value&&void 0!==e.value)if(Array.isArray(e.value))if(0===e.value.length)t.setValue([]);else{for(r=[],i=e.value,a=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],s=0;s<i.length;s++)switch(a){case"string":case"integer":case"number":r.push(i[s]);break;case"common.v1.config.MapOfStringWrapper":o=R.constructFromObject(i[s],void 0),r.push(o);break;default:throw"Unknown list of type "+a+" in data"}t.setValue(r)}else switch(a=e.value.hasOwnProperty("$objectType")?e.value.$objectType:typeof e.value,a){case"string":case"boolean":case"number":t.setValue(e.value);break;case"object":t.setValue(new Map(Object.entries(e.value)));break;default:throw"Unknown datatype "+a+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getValue(){return this.value}setValue(e){this.value=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getValue()&&null!==this.getValue()?{value:void 0!==this.getValue().toJson?this.getValue().toJson(!1):Array.isArray(this.getValue())?this.getValue().map(e=>void 0!==e.toJson?e.toJson(!1):e):A(C,this,D).call(this,this.getValue(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getValue()&&null!==this.getValue()?{value:void 0!==this.getValue().toJson?this.getValue().toJson():Array.isArray(this.getValue())?this.getValue().map(e=>void 0!==e.toJson?e.toJson():e):A(C,this,D).call(this,this.getValue())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,128))return new E("name","does not satisfy required maxLength constraint: 128");if(!F.validateMinLength(this.name,3))return new E("name","does not satisfy required minLength constraint: 3")}return"value"!==t||void 0!==this.value&&null!==this.value?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("value","undefined or null")}}function D(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}S.prototype.name=void 0,S.prototype.value=void 0,S.prototype.$reserved=void 0,S.prototype.$objectType=void 0,S.prototype.$unknownFields=void 0;const N={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",INFO:"INFO",WARNING:"WARNING",ERROR:"ERROR",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(N).find(t=>N[t]===e);return null==t?N.$UNKNOWN:N[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case N.$UNKNOWN:case N.$REDACTED:case N.INFO:case N.WARNING:case N.ERROR:return;default:throw new Error("Invalid : must be MessageSeverity.{ $UNKNOWN|$REDACTED|INFO|WARNING|ERROR }")}}};Object.freeze(N);const U=N;var M=new WeakSet;class J{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=M),t.add(e),this.$objectType="common.v1.config.Message",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new J,e.hasOwnProperty("code")&&null!==e.code&&void 0!==e.code&&t.setCode(e.code),e.hasOwnProperty("message")&&null!==e.message&&void 0!==e.message&&t.setMessage(e.message),e.hasOwnProperty("locale")&&null!==e.locale&&void 0!==e.locale&&t.setLocale(e.locale),e.hasOwnProperty("severity")&&null!==e.severity&&void 0!==e.severity&&t.setSeverity(U.constructFromObject(e.severity)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getCode(){return this.code}setCode(e){this.code=e}getMessage(){return this.message}setMessage(e){this.message=e}getLocale(){return this.locale}setLocale(e){this.locale=e}getSeverity(){return this.severity}setSeverity(e){this.severity=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getCode()&&null!==this.getCode()?{code:this.getCode()}:{},...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getLocale()&&null!==this.getLocale()?{locale:this.getLocale()}:{},...void 0!==this.getSeverity()&&null!==this.getSeverity()?{severity:this.getSeverity()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"code"!==t||void 0!==this.code&&null!==this.code?"message"!==t||void 0!==this.message&&null!==this.message?"locale"!==t||void 0!==this.locale&&null!==this.locale?"severity"!==t||void 0!==this.severity&&null!==this.severity?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("severity","undefined or null"):new E("locale","undefined or null"):new E("message","undefined or null"):new E("code","undefined or null")}}J.prototype.code=void 0,J.prototype.message=void 0,J.prototype.locale="en_US",J.prototype.severity=void 0,J.prototype.$reserved=void 0,J.prototype.$objectType=void 0,J.prototype.$unknownFields=void 0;var _=new WeakSet;class L{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=_),t.add(e),this.$objectType="common.v1.response.ApiLink",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new L,e.hasOwnProperty("href")&&null!==e.href&&void 0!==e.href&&t.setHref(e.href),e.hasOwnProperty("rel")&&null!==e.rel&&void 0!==e.rel&&t.setRel(e.rel),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getHref(){return this.href}setHref(e){this.href=e}getRel(){return this.rel}setRel(e){this.rel=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getHref()&&null!==this.getHref()?{href:this.getHref()}:{},...void 0!==this.getRel()&&null!==this.getRel()?{rel:this.getRel()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"href"!==t||void 0!==this.href&&null!==this.href?"rel"!==t||void 0!==this.rel&&null!==this.rel?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("rel","undefined or null"):new E("href","undefined or null")}}L.prototype.href=void 0,L.prototype.rel=void 0,L.prototype.$reserved=void 0,L.prototype.$objectType=void 0,L.prototype.$unknownFields=void 0;var G,V=new WeakSet;class W{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=V),t.add(e),this.$objectType="common.v1.response.ApiResponseMetadata",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new W,e.hasOwnProperty("flags")&&null!==e.flags&&void 0!==e.flags){for(r=[],i=e.flags,s=0;s<i.length;s++)o=O.constructFromObject(i[s],void 0),r.push(o);t.setFlags(r)}if(e.hasOwnProperty("links")&&null!==e.links&&void 0!==e.links){for(r=[],i=e.links,s=0;s<i.length;s++)o=L.constructFromObject(i[s],void 0),r.push(o);t.setLinks(r)}if(e.hasOwnProperty("totalAvailableResults")&&null!==e.totalAvailableResults&&void 0!==e.totalAvailableResults&&t.setTotalAvailableResults(e.totalAvailableResults),e.hasOwnProperty("messages")&&null!==e.messages&&void 0!==e.messages){for(r=[],i=e.messages,s=0;s<i.length;s++)o=J.constructFromObject(i[s],void 0),r.push(o);t.setMessages(r)}if(e.hasOwnProperty("extraInfo")&&null!==e.extraInfo&&void 0!==e.extraInfo){for(r=[],i=e.extraInfo,s=0;s<i.length;s++)o=S.constructFromObject(i[s],void 0),r.push(o);t.setExtraInfo(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getFlags(){return this.flags}setFlags(e){this.flags=e}getLinks(){return this.links}setLinks(e){this.links=e}getTotalAvailableResults(){return this.totalAvailableResults}setTotalAvailableResults(e){this.totalAvailableResults=e}getMessages(){return this.messages}setMessages(e){this.messages=e}getExtraInfo(){return this.extraInfo}setExtraInfo(e){this.extraInfo=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getFlags()&&null!==this.getFlags()?{flags:this.getFlags().map(e=>e.toJson(!1))}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTotalAvailableResults()&&null!==this.getTotalAvailableResults()?{totalAvailableResults:this.getTotalAvailableResults()}:{},...void 0!==this.getMessages()&&null!==this.getMessages()?{messages:this.getMessages().map(e=>e.toJson(!1))}:{},...void 0!==this.getExtraInfo()&&null!==this.getExtraInfo()?{extraInfo:this.getExtraInfo().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("flags"===t){if(void 0===this.flags||null===this.flags)return new E("flags","undefined or null");if(!F.validateMaxItems(this.flags,20))return new E("flags","does not satisfy required maxItems constraint: 20")}if("links"===t){if(void 0===this.links||null===this.links)return new E("links","undefined or null");if(!F.validateMaxItems(this.links,20))return new E("links","does not satisfy required maxItems constraint: 20")}if("totalAvailableResults"===t&&(void 0===this.totalAvailableResults||null===this.totalAvailableResults))return new E("totalAvailableResults","undefined or null");if("messages"===t){if(void 0===this.messages||null===this.messages)return new E("messages","undefined or null");if(!F.validateMaxItems(this.messages,20))return new E("messages","does not satisfy required maxItems constraint: 20")}if("extraInfo"===t){if(void 0===this.extraInfo||null===this.extraInfo)return new E("extraInfo","undefined or null");if(!F.validateMaxItems(this.extraInfo,20))return new E("extraInfo","does not satisfy required maxItems constraint: 20")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}function B(e,t,n){q(e,t),t.set(e,n)}function q(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function z(e,t){return e.get(Y(e,t))}function K(e,t,n){return e.set(Y(e,t),n),n}function Y(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}W.prototype.flags=void 0,W.prototype.links=void 0,W.prototype.totalAvailableResults=void 0,W.prototype.messages=void 0,W.prototype.extraInfo=void 0,W.prototype.$reserved=void 0,W.prototype.$objectType=void 0,W.prototype.$unknownFields=void 0,v()(o());var H=new WeakMap,X=new WeakMap,Z=new WeakMap,Q=new WeakMap,ee=new WeakMap,te=new WeakMap,ne=new WeakMap,ie=new WeakMap,oe=new WeakMap,se=new WeakMap,re=new WeakMap,ae=new WeakSet;class le{constructor(){var e;q(this,e=ae),e.add(this),B(this,H,void 0),B(this,X,void 0),B(this,Z,void 0),B(this,Q,void 0),B(this,ee,void 0),B(this,te,void 0),B(this,ne,void 0),B(this,ie,void 0),B(this,oe,void 0),B(this,se,void 0),B(this,re,void 0),K(re,this,Object.freeze({DEBUG:{key:"DEBUG",value:Symbol(0)},INFO:{key:"INFO",value:Symbol(1)},WARN:{key:"WARN",value:Symbol(2)},ERROR:{key:"ERROR",value:Symbol(3)}})),this.scheme="https",K(ie,this,"undefined"==typeof self?"localhost":self.location.hostname),this.port="undefined"==typeof self?"9440":self.location.port,this.authentications={apiKeyAuthScheme:{type:"apiKey",in:"header",name:"X-ntnx-api-key"},basicAuthScheme:{type:"basic"}},this.defaultHeaders={},K(ee,this,3e4),K(te,this,3e4),K(ne,this,108e5),this.readTimeout=z(te,this),this.connectTimeout=z(ee,this),this.cache=!0,K(X,this,null),this.maxRedirects=1,this.maxRetryAttempts=5,this.retryInterval=3e3,this.withCredentials=!1,"undefined"==typeof self&&(this.agent=new(o().agent)),this.requestAgent=null,K(se,this,null),this.allowVersionNegotiation=!0,K(oe,this,!1),this.debug=!1,K(Z,this,null),this.username=null,this.password=null,K(Q,this,!0),this.downloadDestination=null,this.loggerFile=null}set verifySsl(e){this.requestAgent=e?null:new(g().Agent)({rejectUnauthorized:e}),K(Q,this,e)}get verifySsl(){return z(Q,this)}set host(e){K(ie,this,e),K(oe,this,!1),K(se,this,null)}get host(){return z(ie,this)}set loggerFile(e){null!=e&&(("string"==typeof e||e instanceof String)&&(e=$().createWriteStream(e,{flags:"a"})),K(Z,this,new console.Console({stdout:e,stderr:e})))}addDefaultHeader(e,t){"Authorization"===e&&K(X,this,null),this.defaultHeaders[e]=t}paramToString(e){return null==e||null==e?"":e instanceof Date?e.toJSON():e.toString()}buildUrl(e,t){if(e.match(/^\//)||(e="/"+e),void 0!==z(se,this)&&null!==z(se,this)&&null!==z(se,this).match(/v\d+\.\d+(\.[a|b]\d+)?/)&&"v4.2"!==z(se,this)){Y(ae,this,be).call(this,z(re,this).INFO,null,"Changing uri",e,"to negotiated version",z(se,this));var n=new RegExp("(?<=/[-\\w]+/)v\\d+\\.\\d+(\\.[a|b]\\d+)?(?=/.*)","i");e=e.replace(n,z(se,this))}K(H,this,"undefined"==typeof self?this.scheme+":":self.location.protocol);let i="";""!==z(H,this)&&""!==this.host&&""!==this.port?i=z(H,this)+"//"+this.host+":"+this.port:"undefined"!=typeof self&&(i=self.origin);var o=i+e;return o.replace(/\{([\w-]+)\}/g,(e,n)=>{var i;return i=t.hasOwnProperty(n)?this.paramToString(t[n]):e,encodeURIComponent(i)})}buildCollectionParam(e,t){if(null==e)return null;switch(t){case"csv":return e.map(this.paramToString).join(",");case"ssv":return e.map(this.paramToString).join(" ");case"tsv":return e.map(this.paramToString).join("\t");case"pipes":return e.map(this.paramToString).join("|");case"multi":return e.map(this.paramToString);default:throw new Error("Unknown collection format: "+t)}}setApiKey(e){this.authentications.apiKeyAuthScheme.apiKey=null==e||"string"==typeof e||e instanceof String?e:void 0}addEtagToReservedMap(e,t){if(e.hasOwnProperty("headers")&&e.headers.hasOwnProperty("etag")){let i=e.headers.etag;if(void 0!==t.getData())if(Array.isArray(t.getData())&&t.getData().length>0)for(var n of t.getData())n.hasOwnProperty("$reserved")&&void 0!==n.get$Reserved()&&(n.get$Reserved().ETag=i);else t.getData().hasOwnProperty("$reserved")&&void 0!==t.getData().get$Reserved()&&(t.getData().get$Reserved().ETag=i)}return t}static getEtag(e){let t=null;return void 0!==e&&(e.hasOwnProperty("$reserved")&&void 0!==e.get$Reserved()&&(t=this.getValueForCaseInsensitiveKeyMatch(e.get$Reserved(),"ETag")),null==t&&e.hasOwnProperty("data")&&e.getData().hasOwnProperty("$reserved")&&void 0!==e.getData().get$Reserved()&&(t=this.getValueForCaseInsensitiveKeyMatch(e.getData().get$Reserved(),"ETag"))),t}static getValueForCaseInsensitiveKeyMatch(e,t){if(e&&t){const n=t.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===n);return i?e[i]:null}return null}getNegotiatedVersion(){return z(se,this)}negotiateVersion(e,t){return new Promise(n=>{!0===this.allowVersionNegotiation&&!1===z(oe,this)?this.callApiInternal("/api/dataprotection/unversioned/info","OPTIONS",{},{},{},{},null,t,[],["application/json"],Object).then(({data:t,response:i})=>{if(200===i.status&&t.hasOwnProperty("data")&&null!==t.data){const i=t.data,o="v4.2";if(Y(ae,this,$e).call(this,Y(ae,this,we).call(this,i),Y(ae,this,we).call(this,o)))return Y(ae,this,be).call(this,z(re,this).WARN,null,"Server version",i,"is below minimum supported version",o,". Version negotiation will not be performed."),K(se,this,null),K(oe,this,!1),void n(e);K(se,this,Y(ae,this,fe).call(this,"v4.2",i)),K(oe,this,!0),Y(ae,this,be).call(this,z(re,this).INFO,null,"Negotiated Version with server :",z(se,this)),n(e)}else Y(ae,this,be).call(this,z(re,this).ERROR,null,"Could not fetch supported versions from server"),K(se,this,null),K(oe,this,!1),n(e)}).catch(t=>{Y(ae,this,be).call(this,z(re,this).ERROR,null,"Could not fetch supported versions from server"),K(se,this,null),K(oe,this,!1),n(e)}):n(e)})}callApi(e,t,n,i,o,s,r,a,l,d,u){return this.negotiateVersion(this,a).then(function(c){return c.callApiInternal(e,t,n,i,o,s,r,a,l,d,u)})}callApiInternal(e,t,i,s,r,a,l,d,u,c,p){var v=this.buildUrl(e,i);const y="undefined"!=typeof window&&void 0!==window.document;let g=["application/octet-stream","application/pdf","application/zip"];if(c&&c.length>0&&c.some(e=>g.includes(e))&&y&&this.downloadDestination)return new Promise((e,n)=>{const i=Y(ae,this,Oe).call(this,v,t,s,r,l,d,u,c);fetch(i.url,i.options).then(t=>{if(!t.ok){const e=new Error(`HTTP error ${t.status}`);e.status=t.status,Y(ae,this,be).call(this,z(re,this).ERROR,null,"Error downloading file:",e),n(e)}if(!(this.downloadDestination instanceof WritableStream)){let e="Incompatible downloadDestination for Browser Environment, must be WritableStream";Y(ae,this,be).call(this,z(re,this).ERROR,null,e),n(e)}const i=t.body.getReader(),o=this.downloadDestination.getWriter(),s=()=>i.read().then(({done:n,value:i})=>(n&&(o.close(),Y(ae,this,be).call(this,z(re,this).INFO,null,"Finished streaming response"),e({data:{},response:t})),o.write(i).then(s)));return s()}).catch(e=>{Y(ae,this,be).call(this,z(re,this).ERROR,null,"Caught the following error :",e),n(e)})});var f=o()(t,v);if(f.oldCallback=f.callback,f.callback=function(e,t){if(t&&t.status){const e=t.status;if(e>=400&&408!==e&&429!==e&&503!==e&&504!==e&&(this._maxRetries=0),401===t.status&&this.header.Cookie&&(this.unset("Cookie"),this._maxRetries=1),429===e){let e=t.headers["retry-after"];if(e){let t=1e3*parseInt(e,10);this._retryDelays[this._retries]=t}}}this.oldCallback(e,t)},Y(ae,this,pe).call(this,f,d),"GET"===t.toUpperCase()&&!1===this.cache&&(s._=(new Date).getTime()),f.query(Y(ae,this,he).call(this,s)),f.set(this.defaultHeaders).set(Y(ae,this,he).call(this,r)),!(null!==this.defaultHeaders["NTNX-Request-Id"]&&void 0!==this.defaultHeaders["NTNX-Request-Id"]||null!==r["NTNX-Request-Id"]&&void 0!==r["NTNX-Request-Id"])){let e=h();f.set(Y(ae,this,he).call(this,{"NTNX-Request-Id":e}))}y||(this.downloadDestination=".",f.set(Y(ae,this,he).call(this,{"User-Agent":"Nutanix-dataprotection-js-client/4.2.1"}))),this.requestAgent&&f.agent(this.requestAgent);var w={};w.response=Y(ae,this,me).call(this,this.connectTimeout,z(ee,this)),w.deadline=Y(ae,this,me).call(this,this.readTimeout,z(te,this)),f.timeout(w);var m=r.hasOwnProperty("Content-Type")?r["Content-Type"]:Y(ae,this,ue).call(this,u);if(m?"multipart/form-data"!=m&&f.type(m):f.header["Content-Type"]||f.type("application/json"),Y(ae,this,be).call(this,z(re,this).INFO,null,"Request URL :",t,v),Y(ae,this,be).call(this,z(re,this).DEBUG,Y(ae,this,Ee),"Request Headers :",void 0===f.header?"":f.header),"application/x-www-form-urlencoded"===m)f.send(Y(ae,this,he).call(this,a));else if("multipart/form-data"==m){var k=Y(ae,this,he).call(this,a);for(var T in k)k.hasOwnProperty(T)&&(Y(ae,this,ce).call(this,k[T])?f.attach(T,k[T]):f.field(T,k[T]))}else{if("application/octet-stream"===m&&null!=l&&"function"==typeof l.pipe){if(Y(ae,this,be).call(this,z(re,this).INFO,null,"Piping octet-stream request"),"function"==typeof l.pipe)l.pipe(f);else{let e;try{e=n(965)}catch(e){Y(ae,this,be).call(this,z(re,this).ERROR,null,"Error fetching steam/web")}l instanceof e.ReadableStream?l.pipeTo(new e.WritableStream({write(e){f.write(e)},close(){Y(ae,this,be).call(this,z(re,this).INFO,null,"READABLE STREAM CLOSED")},abort(e){Y(ae,this,be).call(this,z(re,this).ERROR,null,"READABLE STREAM ABORTED")}})):f.send(l)}return new Promise((t,n)=>{f.on("error",e=>{Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Caught the following error :",e),n(e)}).on("response",i=>{Y(ae,this,je).call(this,i,e,s,p,t,n)})})}["POST","PUT","PATCH"].includes(t.toUpperCase())&&l&&f.send(l)}"Blob"==typeof p?f.responseType("blob"):"String"===p&&f.responseType("string"),Y(ae,this,Te).call(this,f),Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Request Body :",void 0===f._data?"":f._data);var b=r.hasOwnProperty("Accept")&&null!=r.Accept?r.Accept:c.join(", ");return b&&f.accept(b),new Promise((n,i)=>{f.buffer(!1).redirects(0).retry(this.maxRetryAttempts,this.retryInterval,[]).withCredentials(this.withCredentials).on("error",e=>{Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Caught the following error :",e)}).end((r,a)=>{if(r)Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Caught error during the request!"),Y(ae,this,be).call(this,z(re,this).ERROR,null,r),404===r.status&&(K(oe,this,!1),K(se,this,null)),null!==r.response&&void 0!==r.response?r.data=Y(ae,this,ye).call(this,r.response,p):r.data=Y(ae,this,ve).call(this,r),i(r);else{Y(ae,this,be).call(this,z(re,this).INFO,null,"Response Status :",a.status),Y(ae,this,be).call(this,z(re,this).DEBUG,Y(ae,this,Ee),"Response Headers :",a.headers);let r="";if(a.headers.hasOwnProperty("content-type")&&(r=a.headers["content-type"]),g.includes(r)){if(!y){let e=this.downloadDestination+"/downloaded_file_"+Date.now()+".txt",t=$().createWriteStream(e);Y(ae,this,Ie).call(this,a,t,e,n,i,p)}}else if(302==a.status){let e=this.downloadDestination+"/downloaded_file_"+Date.now()+".txt",s=this;Y(ae,this,be).call(this,z(re,this).INFO,null,"Redirecting to :",a.headers.location);var l=o()(t,a.headers.location);l.set(f.header),a.headers.hasOwnProperty("x-redirect-token")&&(Y(ae,this,be).call(this,z(re,this).INFO,null,"Writing X-Redirect-Token into Cookie"),l.set("Cookie",a.headers["x-redirect-token"])),this.requestAgent&&l.agent(this.requestAgent),l.redirects(0),l.withCredentials(this.withCredentials),l.buffer(!1);let r=$().createWriteStream(e);l.pipe(r),l.on("response",function(t){Y(ae,s,be).call(s,z(re,s).INFO,null,"Received response after redirection :",t.status),Y(ae,s,Ie).call(s,t,r,e,n,i,p)})}else Y(ae,this,je).call(this,a,e,s,p,n,i)}})})}static addEtagReferenceToHeader(e,t){if(null!=e&&e.hasOwnProperty("$reserved")&&e.$reserved.hasOwnProperty("ETag")){let n=e.$reserved.ETag;null!=n&&""!==n&&(t["If-Match"]=n)}}static parseDate(e){return new Date(e)}static parseQueryParam(e,t,n,i){let o=null;if(void 0!==t&&t.hasOwnProperty(n)&&(o=t[n]),null===o&&("string"==typeof e||e instanceof String)){const t=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),i=e.match(new RegExp(`${t}=([0-9]+)`));i&&(o=i[1])}return null===o&&(o=i),o}static convertToType(e,t){if(null==e)return e;switch(t){case"Boolean":return Boolean(e);case"Integer":return parseInt(e,10);case"Number":return parseFloat(e);case"String":return String(e);case"Date":return le.parseDate(String(e));case"Blob":return e;default:if(t===Object)return e;if("function"==typeof t)return t.constructFromObject(e);if(Array.isArray(t)){var n=t[0];return e.map(e=>le.convertToType(e,n))}if("object"==typeof t){var i,o;for(var s in t)if(t.hasOwnProperty(s)){i=s,o=t[s];break}var r={};for(var s in e)if(e.hasOwnProperty(s)){var a=le.convertToType(s,i),l=le.convertToType(e[s],o);r[a]=l}return r}return e}}static constructFromObject(e,t,n){if(Array.isArray(e))for(var i=0;i<e.length;i++)e.hasOwnProperty(i)&&(t[i]=le.convertToType(e[i],n));else for(var o in e)e.hasOwnProperty(o)&&(t[o]=le.convertToType(e[o],n))}}function de(e){return Boolean(null!=e&&e.match(/^application\/json(;.*)?$/i))}function ue(e){for(var t=0;t<e.length;t++)if(Y(ae,this,de).call(this,e[t]))return e[t];return e[0]}function ce(e){{let t;try{t=n(799)}catch(e){}if(t&&t.ReadStream&&e instanceof t.ReadStream)return!0}return"function"==typeof Buffer&&e instanceof Buffer||"function"==typeof k.Blob&&e instanceof k.Blob||"function"==typeof File&&e instanceof File}function he(e){var t={};for(var n in e)if(e.hasOwnProperty(n)&&null!=e[n]&&null!=e[n]){var i=e[n];Y(ae,this,ce).call(this,i)||Array.isArray(i)?t[n]=i:t[n]=this.paramToString(i)}return t}function pe(e,t){t.forEach(t=>{var n=this.authentications[t];switch(n.type){case"basic":n.username||n.password?e.auth(n.username||"",n.password||""):(this.username||this.password)&&e.auth(this.username||"",this.password||""),Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Basic Auth applied to request");break;case"apiKey":if(n.apiKey){var i={};n.apiKeyPrefix?i[n.name]=n.apiKeyPrefix+" "+n.apiKey:i[n.name]=n.apiKey,"header"===n.in?e.set(i):e.query(i)}Y(ae,this,be).call(this,z(re,this).DEBUG,null,"apiKey applied to request");break;case"oauth2":n.accessToken&&e.set({Authorization:"Bearer "+n.accessToken}),Y(ae,this,be).call(this,z(re,this).DEBUG,null,"oauth2 applied to request");break;default:throw Y(ae,this,be).call(this,z(re,this).ERROR,null,"Unknown authentication type:",n.type),new Error("Unknown authentication type: "+n.type)}})}function ve(e){var t={data:{},metadata:{}};t.data.status=e.status,t.data.message=e.message}function ye(e,t){if(null==e||null==t||204==e.status)return null;if(e.headers&&["text/event-stream","text/html","text/xml","text/csv","text/javascript","text/markdown","text/vcard"].includes(e.headers["content-type"])){(n=new t).data=new k.Blob([e.text],{type:e.headers["content-type"]});let i=new O;i.name="hasError",i.value=!1;let o=[i],s=new W;return s.flags=o,n.metadata=s,n}var n;return(null==(n=e.body)||"object"==typeof n&&void 0===n.length&&!Object.keys(n).length)&&(n=e.text),G.convertToType(n,t)}function ge(e,t,n){if(!(e instanceof s))return;const i=parseInt(this.constructor.parseQueryParam(t,n,"$page","0"),10),o=parseInt(this.constructor.parseQueryParam(t,n,"$limit","50"),10);e.populatePaginationMetadata(this,i,o)}function fe(e,t){if(!e||!t)return e;let n=Y(ae,this,we).call(this,e),i=Y(ae,this,we).call(this,t);return!n.family===i.family||Y(ae,this,$e).call(this,n,i)?e:t}function $e(e,t){if(parseInt(e.revision)!=parseInt(t.revision))return parseInt(e.revision)<parseInt(t.revision);if("released"===e.versionType)return!1;let n=e.versionType.substring(0,1),i=t.versionType.substring(0,1),o=parseInt(e.versionType.substring(1)),s="released"===t.versionType?0:parseInt(t.versionType.substring(1));return n===i?o<s:"a"===n||"released"===t.versionType}function we(e){let t={};if("unversioned"===e)t.family="unversioned",t.versionType="released";else{let n=e.toString().split(".");"unversioned"===n[0]?(t.family="unversioned",t.versionType=n[1]):(t.family=n[0].substring(1),t.revision=n[1],2==n.length?t.versionType="released":t.versionType=n[2])}return t}function me(e,t){return e<=0?e=t:e>z(ne,this)&&(e=z(ne,this)),e}function ke(e){if(e.hasOwnProperty("headers")&&e.headers.hasOwnProperty("set-cookie")){let t="",n=e.headers["set-cookie"];if(n.length>0){for(let e of n)e=e.split(";")[0],e.includes("=")&&(e.trim(),t=t.concat(e).concat(";"));""!==t&&(t=t.substr(0,t.length-1))}K(X,this,t),Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Retained cookie :",t)}else K(X,this,null)}function Te(e){null!=z(X,this)&&e.set(Y(ae,this,he).call(this,{Cookie:z(X,this)}))}function be(e,t,...n){if("object"==typeof e&&"key"in e&&"value"in e&&"symbol"==typeof e.value||(e=z(re,this).INFO),!Y(ae,this,Fe).call(this,e)){n=n.map(e=>"string"==typeof e?e:t?t(e):JSON.stringify(e));let i=n.join(" ");i=(new Date).toISOString()+" "+e.key+" - "+i,void 0!==z(Z,this)&&null!==z(Z,this)&&"function"==typeof z(Z,this).log?z(Z,this).log(i):console.log(i)}}function Fe(e){return!this.debug&&e===z(re,this).DEBUG}function Ee(e){if("object"!=typeof e)return e;let t="\n";return e&&Object.keys(e).forEach(n=>{t+=n+"=["+e[n]+"]\n"}),"\n"===t?e:t}function je(e,t,n,i,o,s){try{var r=Y(ae,this,ye).call(this,e,i);Y(ae,this,be).call(this,z(re,this).INFO,null,"Response Status :",e.status),Y(ae,this,be).call(this,z(re,this).DEBUG,Y(ae,this,Ee),"Response Headers :",e.headers),Y(ae,this,ke).call(this,e||{}),Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Response Body :",r),204==e.status&&null==r?o({data:r,response:e}):e.ok&&null!=r?(this.addEtagToReservedMap(e,r),Y(ae,this,ge).call(this,r,t,n),o({data:r,response:e})):(Y(ae,this,be).call(this,z(re,this).ERROR,null,r),s({...e.error,data:r}))}catch(e){Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Caught error while processing response!"),Y(ae,this,be).call(this,z(re,this).ERROR,null,e),e.data=Y(ae,this,ve).call(this,e),s(e)}}function Oe(e,t,n,i,o,s,r,a){let l={};s.forEach(e=>{const t=this.authentications[e];switch(t.type){case"basic":let e="",i="";if(t.username||t.password?(e=t.username||"",i=t.password||""):(this.username||this.password)&&(e=this.username||"",i=this.password||""),e||i){const t=btoa(`${e}:${i}`);l.Authorization=`Basic ${t}`}Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Basic Auth applied to request");break;case"apiKey":if(t.apiKey){let e="";e=t.apiKeyPrefix?t.apiKeyPrefix+" "+t.apiKey:t.apiKey,"header"===t.in?l[t.name]="Bearer "+e:"query"===t.in&&(n[t.name]=e)}Y(ae,this,be).call(this,z(re,this).DEBUG,null,"apiKey applied to request");break;case"oauth2":t.accessToken&&(l.Authorization="Bearer "+t.accessToken),Y(ae,this,be).call(this,z(re,this).DEBUG,null,"oauth2 applied to request");break;default:throw Y(ae,this,be).call(this,z(re,this).ERROR,null,"Unknown authentication type:",t.type),new Error("Unknown authentication type: "+t.type)}}),"GET"===t.toUpperCase()&&!1===this.cache&&(n.cache="false");const d=Y(ae,this,he).call(this,n),u=Object.keys(d).map(e=>`${encodeURIComponent(e)}=${encodeURIComponent(d[e])}`).join("&");let c=e;u&&(c+=(c.includes("?")?"&":"?")+u);const p={...this.defaultHeaders,...Y(ae,this,he).call(this,i),...l};if(!(null!==this.defaultHeaders["NTNX-Request-Id"]&&void 0!==this.defaultHeaders["NTNX-Request-Id"]||null!==i["NTNX-Request-Id"]&&void 0!==i["NTNX-Request-Id"])){let e=h();p["NTNX-Request-Id"]=e}null!=z(X,this)&&(p.Cookie=Y(ae,this,he).call(this,{Cookie:z(X,this)}));var v=i.hasOwnProperty("Content-Type")?i["Content-Type"]:Y(ae,this,ue).call(this,r);p["Content-Type"]=v;var y=i.hasOwnProperty("Accept")&&null!=i.Accept?i.Accept:a.join(", ");return y&&(p.Accept=y),Y(ae,this,be).call(this,z(re,this).INFO,null,"Request URL :",t,e),Y(ae,this,be).call(this,z(re,this).DEBUG,Y(ae,this,Ee),"Request Headers :",p),Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Request Body :",o||""),{url:c,options:{method:t,headers:p,body:o,credentials:this.withCredentials?"include":"same-origin"}}}function Ie(e,t,n,i,o,s){Y(ae,this,be).call(this,z(re,this).INFO,null,"Streaming response to : ",n);try{e.on("data",e=>{t.write(e)})}catch(e){Y(ae,this,be).call(this,z(re,this).ERROR,null,"Issue while downloading file",e)}let r=new s,a="";if(void 0!==e.headers["content-disposition"]&&null!==e.headers["content-disposition"]){let t=e.headers["content-disposition"].match(/.*filename=\"(?<filename>.*)\".*/),n=m().parse(t.groups.filename);a=this.downloadDestination+"/"+n.name+"_"+Date.now()+n.ext,r.data={path:m().parse(a),$objectType:"Path"};let i=new O;i.name="hasError",i.value=!1;let o=[i],s=new W;s.flags=o,r.metadata=s}e.on("end",()=>{Y(ae,this,be).call(this,z(re,this).INFO,null,"Finished streaming response"),0!==a.length?(Y(ae,this,be).call(this,z(re,this).INFO,null,"Content-Disposition header found [",a,"] is final filename"),t.close(),$().renameSync(n,a),i({data:r,response:e})):(Y(ae,this,be).call(this,z(re,this).ERROR,null,"Content-Disposition header not found [",n,"] is final filename"),i({data:r,response:e}))}),e.on("error",e=>{Y(ae,this,be).call(this,z(re,this).ERROR,null,"Caught the following error :",e),error.data=Y(ae,this,ve).call(this,error),o(e)})}G=le,le.instance=new le;var Pe=new WeakSet;class Re{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Pe),t.add(e),this.$objectType="common.v1.config.TenantAwareModel",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Re,e.hasOwnProperty("tenantId")&&null!==e.tenantId&&void 0!==e.tenantId&&t.setTenantId(e.tenantId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getTenantId(){return this.tenantId}setTenantId(e){this.tenantId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("tenantId"===t){if(void 0===this.tenantId||null===this.tenantId)return new E("tenantId","undefined or null");if(!F.validatePattern(this.tenantId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("tenantId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Re.prototype.tenantId=void 0,Re.prototype.$reserved=void 0,Re.prototype.$objectType=void 0,Re.prototype.$unknownFields=void 0;var xe=new WeakSet;class Ae extends Re{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=xe),t.add(e),this.$objectType="common.v1.response.ExternalizableAbstractModel",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Ae,Re.constructFromObject(e,t,!0),e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("links")&&null!==e.links&&void 0!==e.links){for(r=[],i=e.links,s=0;s<i.length;s++)o=L.constructFromObject(i[s],void 0),r.push(o);t.setLinks(r)}if(!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}getLinks(){return this.links}setLinks(e){this.links=e}toJson(e){return!1===e?{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(null==e){if(!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}else if(e===b.update&&!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("links"===t){if(void 0===this.links||null===this.links)return new E("links","undefined or null");if(!F.validateMaxItems(this.links,20))return new E("links","does not satisfy required maxItems constraint: 20")}return new E(t,"no such property exists")}}Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;const Ce={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",SUPPORTS_NEAR_SYNC:"SUPPORTS_NEAR_SYNC",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Ce).find(t=>Ce[t]===e);return null==t?Ce.$UNKNOWN:Ce[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Ce.$UNKNOWN:case Ce.$REDACTED:case Ce.SUPPORTS_NEAR_SYNC:return;default:throw new Error("Invalid : must be DataProtectionCapabilityName.{ $UNKNOWN|$REDACTED|SUPPORTS_NEAR_SYNC }")}}};Object.freeze(Ce);const Se=Ce;var De=new WeakSet;class Ne{constructor(e,t){var n,i;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(n=this,i=De),i.add(n),this.capabilityName=e,this.isSupported=t,this.$objectType="dataprotection.v4.config.Capability",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Ne,e.hasOwnProperty("capabilityName")&&null!==e.capabilityName&&void 0!==e.capabilityName&&t.setCapabilityName(Se.constructFromObject(e.capabilityName)),e.hasOwnProperty("isSupported")&&null!==e.isSupported&&void 0!==e.isSupported&&t.setIsSupported(e.isSupported),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getCapabilityName(){return this.capabilityName}setCapabilityName(e){this.capabilityName=e}getIsSupported(){return this.isSupported}setIsSupported(e){this.isSupported=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getCapabilityName()&&null!==this.getCapabilityName()?{capabilityName:this.getCapabilityName()}:{},...void 0!==this.getIsSupported()&&null!==this.getIsSupported()?{isSupported:this.getIsSupported()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["capabilityName","isSupported"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"capabilityName"!==t||void 0!==this.capabilityName&&null!==this.capabilityName?"isSupported"!==t||void 0!==this.isSupported&&null!==this.isSupported?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("isSupported","undefined or null"):new E("capabilityName","undefined or null")}}Ne.prototype.capabilityName=void 0,Ne.prototype.isSupported=void 0,Ne.prototype.$reserved=void 0,Ne.prototype.$objectType=void 0,Ne.prototype.$unknownFields=void 0;var Ue=new WeakSet;class Me extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ue),t.add(e),this.$objectType="dataprotection.v4.config.DataProtectionClusterCapability",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Me,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("clusterExtId")&&null!==e.clusterExtId&&void 0!==e.clusterExtId&&t.setClusterExtId(e.clusterExtId),e.hasOwnProperty("capabilities")&&null!==e.capabilities&&void 0!==e.capabilities){for(r=[],i=e.capabilities,s=0;s<i.length;s++)o=Ne.constructFromObject(i[s],void 0),r.push(o);t.setCapabilities(r)}if(!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getClusterExtId(){return this.clusterExtId}setClusterExtId(e){this.clusterExtId=e}getCapabilities(){return this.capabilities}setCapabilities(e){this.capabilities=e}toJson(e){return!1===e?{...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},...void 0!==this.getCapabilities()&&null!==this.getCapabilities()?{capabilities:this.getCapabilities().map(e=>e.toJson(!1))}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("clusterExtId"===t){if(void 0===this.clusterExtId||null===this.clusterExtId)return new E("clusterExtId","undefined or null");if(!F.validatePattern(this.clusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("capabilities"===t){if(void 0===this.capabilities||null===this.capabilities)return new E("capabilities","undefined or null");if(!F.validateMaxItems(this.capabilities,10))return new E("capabilities","does not satisfy required maxItems constraint: 10")}return new E(t,"no such property exists")}}Me.prototype.clusterExtId=void 0,Me.prototype.capabilities=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class Je extends Me{constructor(){super(),this.$objectType="dataprotection.v4.config.DataProtectionClusterCapabilityProjection",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Je,Me.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function _e(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Le=new WeakSet;class Ge{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Le),t.add(e),this.$objectType="dataprotection.v4.error.AppMessage",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Ge,e.hasOwnProperty("message")&&null!==e.message&&void 0!==e.message&&t.setMessage(e.message),e.hasOwnProperty("severity")&&null!==e.severity&&void 0!==e.severity&&t.setSeverity(U.constructFromObject(e.severity)),e.hasOwnProperty("code")&&null!==e.code&&void 0!==e.code&&t.setCode(e.code),e.hasOwnProperty("locale")&&null!==e.locale&&void 0!==e.locale&&t.setLocale(e.locale),e.hasOwnProperty("errorGroup")&&null!==e.errorGroup&&void 0!==e.errorGroup&&t.setErrorGroup(e.errorGroup),e.hasOwnProperty("argumentsMap")&&null!==e.argumentsMap&&void 0!==e.argumentsMap&&t.setArgumentsMap(e.argumentsMap),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMessage(){return this.message}setMessage(e){this.message=e}getSeverity(){return this.severity}setSeverity(e){this.severity=e}getCode(){return this.code}setCode(e){this.code=e}getLocale(){return this.locale}setLocale(e){this.locale=e}getErrorGroup(){return this.errorGroup}setErrorGroup(e){this.errorGroup=e}getArgumentsMap(){return this.argumentsMap}setArgumentsMap(e){this.argumentsMap=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getSeverity()&&null!==this.getSeverity()?{severity:this.getSeverity()}:{},...void 0!==this.getCode()&&null!==this.getCode()?{code:this.getCode()}:{},...void 0!==this.getLocale()&&null!==this.getLocale()?{locale:this.getLocale()}:{},...void 0!==this.getErrorGroup()&&null!==this.getErrorGroup()?{errorGroup:this.getErrorGroup()}:{},...void 0!==this.getArgumentsMap()&&null!==this.getArgumentsMap()?{argumentsMap:_e(Le,this,Ve).call(this,this.getArgumentsMap(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getSeverity()&&null!==this.getSeverity()?{severity:this.getSeverity()}:{},...void 0!==this.getCode()&&null!==this.getCode()?{code:this.getCode()}:{},...void 0!==this.getLocale()&&null!==this.getLocale()?{locale:this.getLocale()}:{},...void 0!==this.getErrorGroup()&&null!==this.getErrorGroup()?{errorGroup:this.getErrorGroup()}:{},...void 0!==this.getArgumentsMap()&&null!==this.getArgumentsMap()?{argumentsMap:_e(Le,this,Ve).call(this,this.getArgumentsMap())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"message"!==t||void 0!==this.message&&null!==this.message?"severity"!==t||void 0!==this.severity&&null!==this.severity?"code"!==t||void 0!==this.code&&null!==this.code?"locale"!==t||void 0!==this.locale&&null!==this.locale?"errorGroup"!==t||void 0!==this.errorGroup&&null!==this.errorGroup?"argumentsMap"!==t||void 0!==this.argumentsMap&&null!==this.argumentsMap?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("argumentsMap","undefined or null"):new E("errorGroup","undefined or null"):new E("locale","undefined or null"):new E("code","undefined or null"):new E("severity","undefined or null"):new E("message","undefined or null")}}function Ve(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Ge.prototype.message=void 0,Ge.prototype.severity=void 0,Ge.prototype.code=void 0,Ge.prototype.locale="en_US",Ge.prototype.errorGroup=void 0,Ge.prototype.argumentsMap=void 0,Ge.prototype.$reserved=void 0,Ge.prototype.$objectType=void 0,Ge.prototype.$unknownFields=void 0;var We=new WeakSet;class Be{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=We),t.add(e),this.$objectType="dataprotection.v4.error.SchemaValidationErrorMessage",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Be,e.hasOwnProperty("location")&&null!==e.location&&void 0!==e.location&&t.setLocation(e.location),e.hasOwnProperty("message")&&null!==e.message&&void 0!==e.message&&t.setMessage(e.message),e.hasOwnProperty("attributePath")&&null!==e.attributePath&&void 0!==e.attributePath&&t.setAttributePath(e.attributePath),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getLocation(){return this.location}setLocation(e){this.location=e}getMessage(){return this.message}setMessage(e){this.message=e}getAttributePath(){return this.attributePath}setAttributePath(e){this.attributePath=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getLocation()&&null!==this.getLocation()?{location:this.getLocation()}:{},...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getAttributePath()&&null!==this.getAttributePath()?{attributePath:this.getAttributePath()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"location"!==t||void 0!==this.location&&null!==this.location?"message"!==t||void 0!==this.message&&null!==this.message?"attributePath"!==t||void 0!==this.attributePath&&null!==this.attributePath?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("attributePath","undefined or null"):new E("message","undefined or null"):new E("location","undefined or null")}}function qe(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Be.prototype.location=void 0,Be.prototype.message=void 0,Be.prototype.attributePath=void 0,Be.prototype.$reserved=void 0,Be.prototype.$objectType=void 0,Be.prototype.$unknownFields=void 0;var ze=new WeakSet;class Ke{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=ze),t.add(e),this.$objectType="dataprotection.v4.error.SchemaValidationError",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Ke,e.hasOwnProperty("timestamp")&&null!==e.timestamp&&void 0!==e.timestamp&&t.setTimestamp(e.timestamp),e.hasOwnProperty("statusCode")&&null!==e.statusCode&&void 0!==e.statusCode&&t.setStatusCode(e.statusCode),e.hasOwnProperty("error")&&null!==e.error&&void 0!==e.error&&t.setError(e.error),e.hasOwnProperty("path")&&null!==e.path&&void 0!==e.path&&t.setPath(e.path),e.hasOwnProperty("validationErrorMessages")&&null!==e.validationErrorMessages&&void 0!==e.validationErrorMessages){for(r=[],i=e.validationErrorMessages,s=0;s<i.length;s++)o=Be.constructFromObject(i[s],void 0),r.push(o);t.setValidationErrorMessages(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getTimestamp(){return this.timestamp}setTimestamp(e){this.timestamp=e}getStatusCode(){return this.statusCode}setStatusCode(e){this.statusCode=e}getError(){return this.error}setError(e){this.error=e}getPath(){return this.path}setPath(e){this.path=e}getValidationErrorMessages(){return this.validationErrorMessages}setValidationErrorMessages(e){this.validationErrorMessages=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getTimestamp()&&null!==this.getTimestamp()?{timestamp:qe(ze,this,Ye).call(this,this.getTimestamp(),!1)}:{},...void 0!==this.getStatusCode()&&null!==this.getStatusCode()?{statusCode:this.getStatusCode()}:{},...void 0!==this.getError()&&null!==this.getError()?{error:this.getError()}:{},...void 0!==this.getPath()&&null!==this.getPath()?{path:this.getPath()}:{},...void 0!==this.getValidationErrorMessages()&&null!==this.getValidationErrorMessages()?{validationErrorMessages:this.getValidationErrorMessages().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"timestamp"!==t||void 0!==this.timestamp&&null!==this.timestamp?"statusCode"!==t||void 0!==this.statusCode&&null!==this.statusCode?"error"!==t||void 0!==this.error&&null!==this.error?"path"!==t||void 0!==this.path&&null!==this.path?"validationErrorMessages"!==t||void 0!==this.validationErrorMessages&&null!==this.validationErrorMessages?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("validationErrorMessages","undefined or null"):new E("path","undefined or null"):new E("error","undefined or null"):new E("statusCode","undefined or null"):new E("timestamp","undefined or null")}}function Ye(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}function He(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Ke.prototype.timestamp=void 0,Ke.prototype.statusCode=void 0,Ke.prototype.error=void 0,Ke.prototype.path=void 0,Ke.prototype.validationErrorMessages=void 0,Ke.prototype.$reserved=void 0,Ke.prototype.$objectType=void 0,Ke.prototype.$unknownFields=void 0;var Xe=new WeakSet;class Ze{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Xe),t.add(e),this.$objectType="dataprotection.v4.error.ErrorResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r,a;if(e){if(t=t||new Ze,e.hasOwnProperty("error")&&null!==e.error&&void 0!==e.error)if(Array.isArray(e.error))if(0===e.error.length)t.setError([]);else{for(r=[],i=e.error,a=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],s=0;s<i.length;s++){if("dataprotection.v4.error.AppMessage"!==a)throw"Unknown list of type "+a+" in data";o=Ge.constructFromObject(i[s],void 0),r.push(o)}t.setError(r)}else{if(a=e.error.hasOwnProperty("$objectType")?e.error.$objectType:typeof e.error,"dataprotection.v4.error.SchemaValidationError"!==a)throw"Unknown datatype "+a+" in data";t.setError(Ke.constructFromObject(e.error,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getError(){return this.error}setError(e){this.error=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getError()&&null!==this.getError()?{error:void 0!==this.getError().toJson?this.getError().toJson(!1):Array.isArray(this.getError())?this.getError().map(e=>void 0!==e.toJson?e.toJson(!1):e):He(Xe,this,Qe).call(this,this.getError(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getError()&&null!==this.getError()?{error:void 0!==this.getError().toJson?this.getError().toJson():Array.isArray(this.getError())?this.getError().map(e=>void 0!==e.toJson?e.toJson():e):He(Xe,this,Qe).call(this,this.getError())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"error"!==t||void 0!==this.error&&null!==this.error?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("error","undefined or null")}}function Qe(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function et(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Ze.prototype.error=void 0,Ze.prototype.$reserved=void 0,Ze.prototype.$objectType=void 0,Ze.prototype.$unknownFields=void 0;var tt=new WeakSet;class nt extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=tt),t.add(e),this.$objectType="dataprotection.v4.config.ListDPClusterCapabilitiesApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new nt,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++)switch(l){case"dataprotection.v4.config.DataProtectionClusterCapability":o=Me.constructFromObject(i[r],void 0),a.push(o);break;case"dataprotection.v4.config.DataProtectionClusterCapabilityProjection":o=Je.constructFromObject(i[r],void 0),a.push(o);break;default:throw"Unknown list of type "+l+" in data"}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):et(tt,this,it).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):et(tt,this,it).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function it(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}nt.prototype.metadata=void 0,nt.prototype.data=void 0,nt.prototype.$reserved=void 0,nt.prototype.$objectType=void 0,nt.prototype.$unknownFields=void 0;const ot={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",VM:"VM",VOLUME_GROUP:"VOLUME_GROUP",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(ot).find(t=>ot[t]===e);return null==t?ot.$UNKNOWN:ot[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case ot.$UNKNOWN:case ot.$REDACTED:case ot.VM:case ot.VOLUME_GROUP:return;default:throw new Error("Invalid : must be ConsistencyGroupMemberType.{ $UNKNOWN|$REDACTED|VM|VOLUME_GROUP }")}}};Object.freeze(ot);const st=ot;var rt=new WeakSet;class at{constructor(e,t){var n,i;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(n=this,i=rt),i.add(n),this.entityExtId=e,this.entityType=t,this.$objectType="dataprotection.v4.config.ConsistencyGroupMember",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new at,e.hasOwnProperty("entityExtId")&&null!==e.entityExtId&&void 0!==e.entityExtId&&t.setEntityExtId(e.entityExtId),e.hasOwnProperty("entityType")&&null!==e.entityType&&void 0!==e.entityType&&t.setEntityType(st.constructFromObject(e.entityType)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getEntityExtId(){return this.entityExtId}setEntityExtId(e){this.entityExtId=e}getEntityType(){return this.entityType}setEntityType(e){this.entityType=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getEntityExtId()&&null!==this.getEntityExtId()?{entityExtId:this.getEntityExtId()}:{},...void 0!==this.getEntityType()&&null!==this.getEntityType()?{entityType:this.getEntityType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["entityExtId","entityType"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("entityExtId"===t){if(void 0===this.entityExtId||null===this.entityExtId)return new E("entityExtId","undefined or null");if(!F.validatePattern(this.entityExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("entityExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"entityType"!==t||void 0!==this.entityType&&null!==this.entityType?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("entityType","undefined or null")}}at.prototype.entityExtId=void 0,at.prototype.entityType=void 0,at.prototype.$reserved=void 0,at.prototype.$objectType=void 0,at.prototype.$unknownFields=void 0;var lt=new WeakSet;class dt extends Ae{constructor(e,t){var n,i;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(n=this,i=lt),i.add(n),this.name=e,this.members=t,this.$objectType="dataprotection.v4.config.ConsistencyGroup",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new dt,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("ownerExtId")&&null!==e.ownerExtId&&void 0!==e.ownerExtId&&t.setOwnerExtId(e.ownerExtId),e.hasOwnProperty("members")&&null!==e.members&&void 0!==e.members){for(r=[],i=e.members,s=0;s<i.length;s++)o=at.constructFromObject(i[s],void 0),r.push(o);t.setMembers(r)}if(e.hasOwnProperty("clusterExtId")&&null!==e.clusterExtId&&void 0!==e.clusterExtId&&t.setClusterExtId(e.clusterExtId),e.hasOwnProperty("protectionPolicyExtId")&&null!==e.protectionPolicyExtId&&void 0!==e.protectionPolicyExtId&&t.setProtectionPolicyExtId(e.protectionPolicyExtId),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getOwnerExtId(){return this.ownerExtId}setOwnerExtId(e){this.ownerExtId=e}getMembers(){return this.members}setMembers(e){this.members=e}getClusterExtId(){return this.clusterExtId}setClusterExtId(e){this.clusterExtId=e}getProtectionPolicyExtId(){return this.protectionPolicyExtId}setProtectionPolicyExtId(e){this.protectionPolicyExtId=e}toJson(e){return!1===e?{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getOwnerExtId()&&null!==this.getOwnerExtId()?{ownerExtId:this.getOwnerExtId()}:{},...void 0!==this.getMembers()&&null!==this.getMembers()?{members:this.getMembers().map(e=>e.toJson(!1))}:{},...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},...void 0!==this.getProtectionPolicyExtId()&&null!==this.getProtectionPolicyExtId()?{protectionPolicyExtId:this.getProtectionPolicyExtId()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getMembers()&&null!==this.getMembers()?{members:this.getMembers().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["name","members"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}if("ownerExtId"===t){if(void 0===this.ownerExtId||null===this.ownerExtId)return new E("ownerExtId","undefined or null");if(!F.validatePattern(this.ownerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("ownerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("members"===t){if(void 0===this.members||null===this.members)return new E("members","undefined or null");if(!F.validateMaxItems(this.members,30))return new E("members","does not satisfy required maxItems constraint: 30");if(!F.validateMinItems(this.members,1))return new E("members","does not satisfy required minItems constraint: 1")}if("clusterExtId"===t){if(void 0===this.clusterExtId||null===this.clusterExtId)return new E("clusterExtId","undefined or null");if(!F.validatePattern(this.clusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("protectionPolicyExtId"===t){if(void 0===this.protectionPolicyExtId||null===this.protectionPolicyExtId)return new E("protectionPolicyExtId","undefined or null");if(!F.validatePattern(this.protectionPolicyExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("protectionPolicyExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return new E(t,"no such property exists")}}function ut(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}dt.prototype.name=void 0,dt.prototype.ownerExtId=void 0,dt.prototype.members=void 0,dt.prototype.clusterExtId=void 0,dt.prototype.protectionPolicyExtId=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var ct=new WeakSet;class ht extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=ct),t.add(e),this.$objectType="dataprotection.v4.config.GetConsistencyGroupApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new ht,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"dataprotection.v4.config.ConsistencyGroup":t.setData(dt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):ut(ct,this,pt).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):ut(ct,this,pt).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function pt(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function vt(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}ht.prototype.metadata=void 0,ht.prototype.data=void 0,ht.prototype.$reserved=void 0,ht.prototype.$objectType=void 0,ht.prototype.$unknownFields=void 0;var yt=new WeakSet;class gt extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=yt),t.add(e),this.$objectType="dataprotection.v4.config.UpdateConsistencyGroupApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new gt,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++){if("dataprotection.v4.error.AppMessage"!==l)throw"Unknown list of type "+l+" in data";o=Ge.constructFromObject(i[r],void 0),a.push(o)}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):vt(yt,this,ft).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):vt(yt,this,ft).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function ft(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function $t(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}gt.prototype.metadata=void 0,gt.prototype.data=void 0,gt.prototype.$reserved=void 0,gt.prototype.$objectType=void 0,gt.prototype.$unknownFields=void 0;var wt=new WeakSet;class mt extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=wt),t.add(e),this.$objectType="dataprotection.v4.config.CreateConsistencyGroupApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new mt,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"dataprotection.v4.config.ConsistencyGroup":t.setData(dt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):$t(wt,this,kt).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):$t(wt,this,kt).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function kt(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function Tt(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}mt.prototype.metadata=void 0,mt.prototype.data=void 0,mt.prototype.$reserved=void 0,mt.prototype.$objectType=void 0,mt.prototype.$unknownFields=void 0;var bt=new WeakSet;class Ft extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=bt),t.add(e),this.$objectType="dataprotection.v4.config.DeleteConsistencyGroupApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Ft,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(null===e.data&&t.setData(null),i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;case"":t.setData(Void.constructFromObject(e[""],void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Tt(bt,this,Et).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Tt(bt,this,Et).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Et(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Ft.prototype.metadata=void 0,Ft.prototype.data=void 0,Ft.prototype.$reserved=void 0,Ft.prototype.$objectType=void 0,Ft.prototype.$unknownFields=void 0;class jt extends dt{constructor(e,t){super(e,t),this.$objectType="dataprotection.v4.config.ConsistencyGroupProjection",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new jt,dt.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["name","members"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function Ot(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var It=new WeakSet;class Pt extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=It),t.add(e),this.$objectType="dataprotection.v4.config.ListConsistencyGroupsApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new Pt,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++)switch(l){case"dataprotection.v4.config.ConsistencyGroup":o=dt.constructFromObject(i[r],void 0),a.push(o);break;case"dataprotection.v4.config.ConsistencyGroupProjection":o=jt.constructFromObject(i[r],void 0),a.push(o);break;default:throw"Unknown list of type "+l+" in data"}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Ot(It,this,Rt).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Ot(It,this,Rt).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Rt(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Pt.prototype.metadata=void 0,Pt.prototype.data=void 0,Pt.prototype.$reserved=void 0,Pt.prototype.$objectType=void 0,Pt.prototype.$unknownFields=void 0;var xt=new WeakSet;class At{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=xt),n.add(t),this.domainManagerExtId=e,this.$objectType="dataprotection.v4.config.DataProtectionSiteReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new At,e.hasOwnProperty("domainManagerExtId")&&null!==e.domainManagerExtId&&void 0!==e.domainManagerExtId&&t.setDomainManagerExtId(e.domainManagerExtId),e.hasOwnProperty("clusterExtId")&&null!==e.clusterExtId&&void 0!==e.clusterExtId&&t.setClusterExtId(e.clusterExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getDomainManagerExtId(){return this.domainManagerExtId}setDomainManagerExtId(e){this.domainManagerExtId=e}getClusterExtId(){return this.clusterExtId}setClusterExtId(e){this.clusterExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getDomainManagerExtId()&&null!==this.getDomainManagerExtId()?{domainManagerExtId:this.getDomainManagerExtId()}:{},...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["domainManagerExtId"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("domainManagerExtId"===t){if(void 0===this.domainManagerExtId||null===this.domainManagerExtId)return new E("domainManagerExtId","undefined or null");if(!F.validatePattern(this.domainManagerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("domainManagerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("clusterExtId"===t){if(void 0===this.clusterExtId||null===this.clusterExtId)return new E("clusterExtId","undefined or null");if(!F.validatePattern(this.clusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}At.prototype.domainManagerExtId=void 0,At.prototype.clusterExtId=void 0,At.prototype.$reserved=void 0,At.prototype.$objectType=void 0,At.prototype.$unknownFields=void 0;const Ct={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",VM:"VM",VOLUME_GROUP:"VOLUME_GROUP",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Ct).find(t=>Ct[t]===e);return null==t?Ct.$UNKNOWN:Ct[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Ct.$UNKNOWN:case Ct.$REDACTED:case Ct.VM:case Ct.VOLUME_GROUP:return;default:throw new Error("Invalid : must be ProtectedEntityType.{ $UNKNOWN|$REDACTED|VM|VOLUME_GROUP }")}}};Object.freeze(Ct);const St=Ct,Dt={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",IN_SYNC:"IN_SYNC",SYNCING:"SYNCING",OUT_OF_SYNC:"OUT_OF_SYNC",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Dt).find(t=>Dt[t]===e);return null==t?Dt.$UNKNOWN:Dt[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Dt.$UNKNOWN:case Dt.$REDACTED:case Dt.IN_SYNC:case Dt.SYNCING:case Dt.OUT_OF_SYNC:return;default:throw new Error("Invalid : must be ProtectedResourceReplicationStatus.{ $UNKNOWN|$REDACTED|IN_SYNC|SYNCING|OUT_OF_SYNC }")}}};Object.freeze(Dt);const Nt=Dt;var Ut=new WeakSet;class Mt{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Ut),t.add(e),this.$objectType="dataprotection.v4.config.ReplicationState",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Mt,e.hasOwnProperty("protectionPolicyExtId")&&null!==e.protectionPolicyExtId&&void 0!==e.protectionPolicyExtId&&t.setProtectionPolicyExtId(e.protectionPolicyExtId),e.hasOwnProperty("recoveryPointObjectiveSeconds")&&null!==e.recoveryPointObjectiveSeconds&&void 0!==e.recoveryPointObjectiveSeconds&&t.setRecoveryPointObjectiveSeconds(e.recoveryPointObjectiveSeconds),e.hasOwnProperty("replicationStatus")&&null!==e.replicationStatus&&void 0!==e.replicationStatus&&t.setReplicationStatus(Nt.constructFromObject(e.replicationStatus)),e.hasOwnProperty("targetSiteReference")&&null!==e.targetSiteReference&&void 0!==e.targetSiteReference&&t.setTargetSiteReference(At.constructFromObject(e.targetSiteReference)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getProtectionPolicyExtId(){return this.protectionPolicyExtId}setProtectionPolicyExtId(e){this.protectionPolicyExtId=e}getRecoveryPointObjectiveSeconds(){return this.recoveryPointObjectiveSeconds}setRecoveryPointObjectiveSeconds(e){this.recoveryPointObjectiveSeconds=e}getReplicationStatus(){return this.replicationStatus}setReplicationStatus(e){this.replicationStatus=e}getTargetSiteReference(){return this.targetSiteReference}setTargetSiteReference(e){this.targetSiteReference=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getProtectionPolicyExtId()&&null!==this.getProtectionPolicyExtId()?{protectionPolicyExtId:this.getProtectionPolicyExtId()}:{},...void 0!==this.getRecoveryPointObjectiveSeconds()&&null!==this.getRecoveryPointObjectiveSeconds()?{recoveryPointObjectiveSeconds:this.getRecoveryPointObjectiveSeconds()}:{},...void 0!==this.getReplicationStatus()&&null!==this.getReplicationStatus()?{replicationStatus:this.getReplicationStatus()}:{},...void 0!==this.getTargetSiteReference()&&null!==this.getTargetSiteReference()?{targetSiteReference:this.getTargetSiteReference().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("protectionPolicyExtId"===t){if(void 0===this.protectionPolicyExtId||null===this.protectionPolicyExtId)return new E("protectionPolicyExtId","undefined or null");if(!F.validatePattern(this.protectionPolicyExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("protectionPolicyExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("recoveryPointObjectiveSeconds"===t){if(void 0===this.recoveryPointObjectiveSeconds||null===this.recoveryPointObjectiveSeconds)return new E("recoveryPointObjectiveSeconds","undefined or null");if(!F.validateMaximum(this.recoveryPointObjectiveSeconds,2419200))return new E("recoveryPointObjectiveSeconds","does not satisfy required maximum constraint: 2419200");if(!F.validateMinimum(this.recoveryPointObjectiveSeconds,0))return new E("recoveryPointObjectiveSeconds","does not satisfy required minimum constraint: 0")}return"replicationStatus"!==t||void 0!==this.replicationStatus&&null!==this.replicationStatus?"targetSiteReference"!==t||void 0!==this.targetSiteReference&&null!==this.targetSiteReference?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("targetSiteReference","undefined or null"):new E("replicationStatus","undefined or null")}}function Jt(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Mt.prototype.protectionPolicyExtId=void 0,Mt.prototype.recoveryPointObjectiveSeconds=void 0,Mt.prototype.replicationStatus=void 0,Mt.prototype.targetSiteReference=void 0,Mt.prototype.$reserved=void 0,Mt.prototype.$objectType=void 0,Mt.prototype.$unknownFields=void 0;var _t=new WeakSet;class Lt{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=_t),t.add(e),this.$objectType="dataprotection.v4.config.RestorableTimeRange",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Lt,e.hasOwnProperty("startTime")&&null!==e.startTime&&void 0!==e.startTime&&t.setStartTime(e.startTime),e.hasOwnProperty("endTime")&&null!==e.endTime&&void 0!==e.endTime&&t.setEndTime(e.endTime),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getStartTime(){return this.startTime}setStartTime(e){this.startTime=e}getEndTime(){return this.endTime}setEndTime(e){this.endTime=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getStartTime()&&null!==this.getStartTime()?{startTime:Jt(_t,this,Gt).call(this,this.getStartTime(),!1)}:{},...void 0!==this.getEndTime()&&null!==this.getEndTime()?{endTime:Jt(_t,this,Gt).call(this,this.getEndTime(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"startTime"!==t||void 0!==this.startTime&&null!==this.startTime?"endTime"!==t||void 0!==this.endTime&&null!==this.endTime?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("endTime","undefined or null"):new E("startTime","undefined or null")}}function Gt(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}Lt.prototype.startTime=void 0,Lt.prototype.endTime=void 0,Lt.prototype.$reserved=void 0,Lt.prototype.$objectType=void 0,Lt.prototype.$unknownFields=void 0;var Vt=new WeakSet;class Wt{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Vt),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryInfo",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Wt,e.hasOwnProperty("restorableTimeRanges")&&null!==e.restorableTimeRanges&&void 0!==e.restorableTimeRanges){for(r=[],i=e.restorableTimeRanges,s=0;s<i.length;s++)o=Lt.constructFromObject(i[s],void 0),r.push(o);t.setRestorableTimeRanges(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getRestorableTimeRanges(){return this.restorableTimeRanges}setRestorableTimeRanges(e){this.restorableTimeRanges=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getRestorableTimeRanges()&&null!==this.getRestorableTimeRanges()?{restorableTimeRanges:this.getRestorableTimeRanges().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("restorableTimeRanges"===t){if(void 0===this.restorableTimeRanges||null===this.restorableTimeRanges)return new E("restorableTimeRanges","undefined or null");if(!F.validateMaxItems(this.restorableTimeRanges,30))return new E("restorableTimeRanges","does not satisfy required maxItems constraint: 30")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Wt.prototype.restorableTimeRanges=void 0,Wt.prototype.$reserved=void 0,Wt.prototype.$objectType=void 0,Wt.prototype.$unknownFields=void 0;const Bt={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",PRIMARY:"PRIMARY",SECONDARY:"SECONDARY",INDEPENDENT:"INDEPENDENT",DECOUPLED:"DECOUPLED",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Bt).find(t=>Bt[t]===e);return null==t?Bt.$UNKNOWN:Bt[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Bt.$UNKNOWN:case Bt.$REDACTED:case Bt.PRIMARY:case Bt.SECONDARY:case Bt.INDEPENDENT:case Bt.DECOUPLED:return;default:throw new Error("Invalid : must be SynchronousReplicationRole.{ $UNKNOWN|$REDACTED|PRIMARY|SECONDARY|INDEPENDENT|DECOUPLED }")}}};Object.freeze(Bt);const qt=Bt;var zt=new WeakSet;class Kt{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=zt),t.add(e),this.$objectType="dataprotection.v4.config.SiteProtectionInfo",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Kt,e.hasOwnProperty("recoveryInfo")&&null!==e.recoveryInfo&&void 0!==e.recoveryInfo&&t.setRecoveryInfo(Wt.constructFromObject(e.recoveryInfo)),e.hasOwnProperty("locationReference")&&null!==e.locationReference&&void 0!==e.locationReference&&t.setLocationReference(At.constructFromObject(e.locationReference)),e.hasOwnProperty("synchronousReplicationRole")&&null!==e.synchronousReplicationRole&&void 0!==e.synchronousReplicationRole&&t.setSynchronousReplicationRole(qt.constructFromObject(e.synchronousReplicationRole)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getRecoveryInfo(){return this.recoveryInfo}setRecoveryInfo(e){this.recoveryInfo=e}getLocationReference(){return this.locationReference}setLocationReference(e){this.locationReference=e}getSynchronousReplicationRole(){return this.synchronousReplicationRole}setSynchronousReplicationRole(e){this.synchronousReplicationRole=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getRecoveryInfo()&&null!==this.getRecoveryInfo()?{recoveryInfo:this.getRecoveryInfo().toJson(!1)}:{},...void 0!==this.getLocationReference()&&null!==this.getLocationReference()?{locationReference:this.getLocationReference().toJson(!1)}:{},...void 0!==this.getSynchronousReplicationRole()&&null!==this.getSynchronousReplicationRole()?{synchronousReplicationRole:this.getSynchronousReplicationRole()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"recoveryInfo"!==t||void 0!==this.recoveryInfo&&null!==this.recoveryInfo?"locationReference"!==t||void 0!==this.locationReference&&null!==this.locationReference?"synchronousReplicationRole"!==t||void 0!==this.synchronousReplicationRole&&null!==this.synchronousReplicationRole?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("synchronousReplicationRole","undefined or null"):new E("locationReference","undefined or null"):new E("recoveryInfo","undefined or null")}}Kt.prototype.recoveryInfo=void 0,Kt.prototype.locationReference=void 0,Kt.prototype.synchronousReplicationRole=void 0,Kt.prototype.$reserved=void 0,Kt.prototype.$objectType=void 0,Kt.prototype.$unknownFields=void 0;var Yt=new WeakSet;class Ht extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Yt),t.add(e),this.$objectType="dataprotection.v4.config.ProtectedResource",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Ht,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("entityExtId")&&null!==e.entityExtId&&void 0!==e.entityExtId&&t.setEntityExtId(e.entityExtId),e.hasOwnProperty("entityType")&&null!==e.entityType&&void 0!==e.entityType&&t.setEntityType(St.constructFromObject(e.entityType)),e.hasOwnProperty("sourceSiteReference")&&null!==e.sourceSiteReference&&void 0!==e.sourceSiteReference&&t.setSourceSiteReference(At.constructFromObject(e.sourceSiteReference)),e.hasOwnProperty("siteProtectionInfo")&&null!==e.siteProtectionInfo&&void 0!==e.siteProtectionInfo){for(r=[],i=e.siteProtectionInfo,s=0;s<i.length;s++)o=Kt.constructFromObject(i[s],void 0),r.push(o);t.setSiteProtectionInfo(r)}if(e.hasOwnProperty("replicationStates")&&null!==e.replicationStates&&void 0!==e.replicationStates){for(r=[],i=e.replicationStates,s=0;s<i.length;s++)o=Mt.constructFromObject(i[s],void 0),r.push(o);t.setReplicationStates(r)}if(e.hasOwnProperty("consistencyGroupExtId")&&null!==e.consistencyGroupExtId&&void 0!==e.consistencyGroupExtId&&t.setConsistencyGroupExtId(e.consistencyGroupExtId),e.hasOwnProperty("categoryFqNames")&&null!==e.categoryFqNames&&void 0!==e.categoryFqNames){for(r=[],i=e.categoryFqNames,s=0;s<i.length;s++)r.push(i[s]);t.setCategoryFqNames(r)}if(!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getEntityExtId(){return this.entityExtId}setEntityExtId(e){this.entityExtId=e}getEntityType(){return this.entityType}setEntityType(e){this.entityType=e}getSourceSiteReference(){return this.sourceSiteReference}setSourceSiteReference(e){this.sourceSiteReference=e}getSiteProtectionInfo(){return this.siteProtectionInfo}setSiteProtectionInfo(e){this.siteProtectionInfo=e}getReplicationStates(){return this.replicationStates}setReplicationStates(e){this.replicationStates=e}getConsistencyGroupExtId(){return this.consistencyGroupExtId}setConsistencyGroupExtId(e){this.consistencyGroupExtId=e}getCategoryFqNames(){return this.categoryFqNames}setCategoryFqNames(e){this.categoryFqNames=e}toJson(e){return!1===e?{...void 0!==this.getEntityExtId()&&null!==this.getEntityExtId()?{entityExtId:this.getEntityExtId()}:{},...void 0!==this.getEntityType()&&null!==this.getEntityType()?{entityType:this.getEntityType()}:{},...void 0!==this.getSourceSiteReference()&&null!==this.getSourceSiteReference()?{sourceSiteReference:this.getSourceSiteReference().toJson(!1)}:{},...void 0!==this.getSiteProtectionInfo()&&null!==this.getSiteProtectionInfo()?{siteProtectionInfo:this.getSiteProtectionInfo().map(e=>e.toJson(!1))}:{},...void 0!==this.getReplicationStates()&&null!==this.getReplicationStates()?{replicationStates:this.getReplicationStates().map(e=>e.toJson(!1))}:{},...void 0!==this.getConsistencyGroupExtId()&&null!==this.getConsistencyGroupExtId()?{consistencyGroupExtId:this.getConsistencyGroupExtId()}:{},...void 0!==this.getCategoryFqNames()&&null!==this.getCategoryFqNames()?{categoryFqNames:this.getCategoryFqNames()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getEntityExtId()&&null!==this.getEntityExtId()?{entityExtId:this.getEntityExtId()}:{},...void 0!==this.getEntityType()&&null!==this.getEntityType()?{entityType:this.getEntityType()}:{},...void 0!==this.getSourceSiteReference()&&null!==this.getSourceSiteReference()?{sourceSiteReference:this.getSourceSiteReference().toJson(!1)}:{},...void 0!==this.getSiteProtectionInfo()&&null!==this.getSiteProtectionInfo()?{siteProtectionInfo:this.getSiteProtectionInfo().map(e=>e.toJson(!1))}:{},...void 0!==this.getReplicationStates()&&null!==this.getReplicationStates()?{replicationStates:this.getReplicationStates().map(e=>e.toJson(!1))}:{},...void 0!==this.getConsistencyGroupExtId()&&null!==this.getConsistencyGroupExtId()?{consistencyGroupExtId:this.getConsistencyGroupExtId()}:{},...void 0!==this.getCategoryFqNames()&&null!==this.getCategoryFqNames()?{categoryFqNames:this.getCategoryFqNames()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("entityExtId"===t){if(void 0===this.entityExtId||null===this.entityExtId)return new E("entityExtId","undefined or null");if(!F.validatePattern(this.entityExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("entityExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("entityType"===t&&(void 0===this.entityType||null===this.entityType))return new E("entityType","undefined or null");if("sourceSiteReference"===t&&(void 0===this.sourceSiteReference||null===this.sourceSiteReference))return new E("sourceSiteReference","undefined or null");if("siteProtectionInfo"===t){if(void 0===this.siteProtectionInfo||null===this.siteProtectionInfo)return new E("siteProtectionInfo","undefined or null");if(!F.validateMaxItems(this.siteProtectionInfo,20))return new E("siteProtectionInfo","does not satisfy required maxItems constraint: 20")}if("replicationStates"===t){if(void 0===this.replicationStates||null===this.replicationStates)return new E("replicationStates","undefined or null");if(!F.validateMaxItems(this.replicationStates,20))return new E("replicationStates","does not satisfy required maxItems constraint: 20")}if("consistencyGroupExtId"===t){if(void 0===this.consistencyGroupExtId||null===this.consistencyGroupExtId)return new E("consistencyGroupExtId","undefined or null");if(!F.validatePattern(this.consistencyGroupExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("consistencyGroupExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("categoryFqNames"===t){if(void 0===this.categoryFqNames||null===this.categoryFqNames)return new E("categoryFqNames","undefined or null");if(!F.validateMaxItems(this.categoryFqNames,1200))return new E("categoryFqNames","does not satisfy required maxItems constraint: 1200")}return new E(t,"no such property exists")}}function Xt(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Ht.prototype.entityExtId=void 0,Ht.prototype.entityType=void 0,Ht.prototype.sourceSiteReference=void 0,Ht.prototype.siteProtectionInfo=void 0,Ht.prototype.replicationStates=void 0,Ht.prototype.consistencyGroupExtId=void 0,Ht.prototype.categoryFqNames=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var Zt=new WeakSet;class Qt extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Zt),t.add(e),this.$objectType="dataprotection.v4.config.GetProtectedResourceApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Qt,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"dataprotection.v4.config.ProtectedResource":t.setData(Ht.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Xt(Zt,this,en).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Xt(Zt,this,en).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function en(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Qt.prototype.metadata=void 0,Qt.prototype.data=void 0,Qt.prototype.$reserved=void 0,Qt.prototype.$objectType=void 0,Qt.prototype.$unknownFields=void 0;var tn=new WeakSet;class nn{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=tn),t.add(e),this.$objectType="prism.v4.config.TaskReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new nn,e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(!F.validatePattern(this.extId,/^[a-zA-Z0-9\/+]*={0,2}:[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}/))return new E("extId","does not satisfy required pattern: /^[a-zA-Z0-9/+]*={0,2}:[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}function on(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}nn.prototype.extId=void 0,nn.prototype.$reserved=void 0,nn.prototype.$objectType=void 0,nn.prototype.$unknownFields=void 0;var sn=new WeakSet;class rn extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=sn),t.add(e),this.$objectType="dataprotection.v4.config.ProtectedResourceRestoreApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new rn,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(nn.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):on(sn,this,an).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):on(sn,this,an).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function an(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function ln(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}rn.prototype.metadata=void 0,rn.prototype.data=void 0,rn.prototype.$reserved=void 0,rn.prototype.$objectType=void 0,rn.prototype.$unknownFields=void 0;var dn=new WeakSet;class un extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=dn),t.add(e),this.$objectType="dataprotection.v4.config.ProtectedResourcePromoteApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new un,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(nn.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):ln(dn,this,cn).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):ln(dn,this,cn).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function cn(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function hn(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}un.prototype.metadata=void 0,un.prototype.data=void 0,un.prototype.$reserved=void 0,un.prototype.$objectType=void 0,un.prototype.$unknownFields=void 0;var pn=new WeakSet;class vn{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=pn),n.add(t),this.clusterExtId=e,this.$objectType="dataprotection.v4.config.ProtectedResourceRestoreSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new vn,e.hasOwnProperty("clusterExtId")&&null!==e.clusterExtId&&void 0!==e.clusterExtId&&t.setClusterExtId(e.clusterExtId),e.hasOwnProperty("restoreTime")&&null!==e.restoreTime&&void 0!==e.restoreTime&&t.setRestoreTime(e.restoreTime),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getClusterExtId(){return this.clusterExtId}setClusterExtId(e){this.clusterExtId=e}getRestoreTime(){return this.restoreTime}setRestoreTime(e){this.restoreTime=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},...void 0!==this.getRestoreTime()&&null!==this.getRestoreTime()?{restoreTime:hn(pn,this,yn).call(this,this.getRestoreTime(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["clusterExtId"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("clusterExtId"===t){if(void 0===this.clusterExtId||null===this.clusterExtId)return new E("clusterExtId","undefined or null");if(!F.validatePattern(this.clusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"restoreTime"!==t||void 0!==this.restoreTime&&null!==this.restoreTime?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("restoreTime","undefined or null")}}function yn(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}function gn(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}vn.prototype.clusterExtId=void 0,vn.prototype.restoreTime=void 0,vn.prototype.$reserved=void 0,vn.prototype.$objectType=void 0,vn.prototype.$unknownFields=void 0;var fn=new WeakSet;class $n extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=fn),t.add(e),this.$objectType="dataprotection.v4.operations.UnplannedFailoverRecoveryPlanApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new $n,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(nn.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):gn(fn,this,wn).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):gn(fn,this,wn).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function wn(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}$n.prototype.metadata=void 0,$n.prototype.data=void 0,$n.prototype.$reserved=void 0,$n.prototype.$objectType=void 0,$n.prototype.$unknownFields=void 0;var mn=new WeakSet;class kn{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=mn),n.add(t),this.extId=e,this.$objectType="dataprotection.v4.config.EntityReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new kn,e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["extId"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}kn.prototype.extId=void 0,kn.prototype.$reserved=void 0,kn.prototype.$objectType=void 0,kn.prototype.$unknownFields=void 0;var Tn=new WeakSet;class bn{constructor(e,t){var n,i;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(n=this,i=Tn),i.add(n),this.sourceDomainManagerExtId=e,this.targetDomainManagerExtId=t,this.$objectType="dataprotection.v4.config.FailoverDirection",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new bn,e.hasOwnProperty("sourceDomainManagerExtId")&&null!==e.sourceDomainManagerExtId&&void 0!==e.sourceDomainManagerExtId&&t.setSourceDomainManagerExtId(e.sourceDomainManagerExtId),e.hasOwnProperty("sourceCluster")&&null!==e.sourceCluster&&void 0!==e.sourceCluster&&t.setSourceCluster(kn.constructFromObject(e.sourceCluster)),e.hasOwnProperty("targetDomainManagerExtId")&&null!==e.targetDomainManagerExtId&&void 0!==e.targetDomainManagerExtId&&t.setTargetDomainManagerExtId(e.targetDomainManagerExtId),e.hasOwnProperty("targetCluster")&&null!==e.targetCluster&&void 0!==e.targetCluster&&t.setTargetCluster(kn.constructFromObject(e.targetCluster)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getSourceDomainManagerExtId(){return this.sourceDomainManagerExtId}setSourceDomainManagerExtId(e){this.sourceDomainManagerExtId=e}getSourceCluster(){return this.sourceCluster}setSourceCluster(e){this.sourceCluster=e}getTargetDomainManagerExtId(){return this.targetDomainManagerExtId}setTargetDomainManagerExtId(e){this.targetDomainManagerExtId=e}getTargetCluster(){return this.targetCluster}setTargetCluster(e){this.targetCluster=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getSourceDomainManagerExtId()&&null!==this.getSourceDomainManagerExtId()?{sourceDomainManagerExtId:this.getSourceDomainManagerExtId()}:{},...void 0!==this.getSourceCluster()&&null!==this.getSourceCluster()?{sourceCluster:this.getSourceCluster().toJson(!1)}:{},...void 0!==this.getTargetDomainManagerExtId()&&null!==this.getTargetDomainManagerExtId()?{targetDomainManagerExtId:this.getTargetDomainManagerExtId()}:{},...void 0!==this.getTargetCluster()&&null!==this.getTargetCluster()?{targetCluster:this.getTargetCluster().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["sourceDomainManagerExtId","targetDomainManagerExtId"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("sourceDomainManagerExtId"===t){if(void 0===this.sourceDomainManagerExtId||null===this.sourceDomainManagerExtId)return new E("sourceDomainManagerExtId","undefined or null");if(!F.validatePattern(this.sourceDomainManagerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("sourceDomainManagerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("sourceCluster"===t&&(void 0===this.sourceCluster||null===this.sourceCluster))return new E("sourceCluster","undefined or null");if("targetDomainManagerExtId"===t){if(void 0===this.targetDomainManagerExtId||null===this.targetDomainManagerExtId)return new E("targetDomainManagerExtId","undefined or null");if(!F.validatePattern(this.targetDomainManagerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("targetDomainManagerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"targetCluster"!==t||void 0!==this.targetCluster&&null!==this.targetCluster?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("targetCluster","undefined or null")}}bn.prototype.sourceDomainManagerExtId=void 0,bn.prototype.sourceCluster=void 0,bn.prototype.targetDomainManagerExtId=void 0,bn.prototype.targetCluster=void 0,bn.prototype.$reserved=void 0,bn.prototype.$objectType=void 0,bn.prototype.$unknownFields=void 0;var Fn=new WeakSet;class En{constructor(e,t){var n,i;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(n=this,i=Fn),i.add(n),this.name=e,this.failoverDirections=t,this.$objectType="dataprotection.v4.operations.BaseRecoveryPlanActionSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new En,e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("failoverDirections")&&null!==e.failoverDirections&&void 0!==e.failoverDirections){for(r=[],i=e.failoverDirections,s=0;s<i.length;s++)o=bn.constructFromObject(i[s],void 0),r.push(o);t.setFailoverDirections(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getFailoverDirections(){return this.failoverDirections}setFailoverDirections(e){this.failoverDirections=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getFailoverDirections()&&null!==this.getFailoverDirections()?{failoverDirections:this.getFailoverDirections().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["name","failoverDirections"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}if("failoverDirections"===t){if(void 0===this.failoverDirections||null===this.failoverDirections)return new E("failoverDirections","undefined or null");if(!F.validateMaxItems(this.failoverDirections,50))return new E("failoverDirections","does not satisfy required maxItems constraint: 50");if(!F.validateMinItems(this.failoverDirections,1))return new E("failoverDirections","does not satisfy required minItems constraint: 1")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}En.prototype.name=void 0,En.prototype.failoverDirections=void 0,En.prototype.$reserved=void 0,En.prototype.$objectType=void 0,En.prototype.$unknownFields=void 0;var jn=new WeakSet;class On extends En{constructor(e,t){var n,i;super(e,t),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(n=this,i=jn),i.add(n),this.$objectType="dataprotection.v4.operations.PlannedFailoverSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new On,En.constructFromObject(e,t,!0),e.hasOwnProperty("shouldIgnoreWarnings")&&null!==e.shouldIgnoreWarnings&&void 0!==e.shouldIgnoreWarnings&&t.setShouldIgnoreWarnings(e.shouldIgnoreWarnings),e.hasOwnProperty("shouldLiveMigrateVMs")&&null!==e.shouldLiveMigrateVMs&&void 0!==e.shouldLiveMigrateVMs&&t.setShouldLiveMigrateVMs(e.shouldLiveMigrateVMs),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getShouldIgnoreWarnings(){return this.shouldIgnoreWarnings}setShouldIgnoreWarnings(e){this.shouldIgnoreWarnings=e}getShouldLiveMigrateVMs(){return this.shouldLiveMigrateVMs}setShouldLiveMigrateVMs(e){this.shouldLiveMigrateVMs=e}toJson(e){return{...void 0!==this.getShouldIgnoreWarnings()&&null!==this.getShouldIgnoreWarnings()?{shouldIgnoreWarnings:this.getShouldIgnoreWarnings()}:{},...void 0!==this.getShouldLiveMigrateVMs()&&null!==this.getShouldLiveMigrateVMs()?{shouldLiveMigrateVMs:this.getShouldLiveMigrateVMs()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getFailoverDirections()&&null!==this.getFailoverDirections()?{failoverDirections:this.getFailoverDirections().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["name","failoverDirections"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"shouldIgnoreWarnings"!==t||void 0!==this.shouldIgnoreWarnings&&null!==this.shouldIgnoreWarnings?"shouldLiveMigrateVMs"!==t||void 0!==this.shouldLiveMigrateVMs&&null!==this.shouldLiveMigrateVMs?new E(t,"no such property exists"):new E("shouldLiveMigrateVMs","undefined or null"):new E("shouldIgnoreWarnings","undefined or null")}}On.prototype.shouldIgnoreWarnings=!1,On.prototype.shouldLiveMigrateVMs=!1,En.prototype.name=void 0,En.prototype.failoverDirections=void 0;var In=new WeakSet;class Pn extends En{constructor(e,t){var n,i;super(e,t),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(n=this,i=In),i.add(n),this.$objectType="dataprotection.v4.operations.TestFailoverSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Pn,En.constructFromObject(e,t,!0),e.hasOwnProperty("shouldIgnoreWarnings")&&null!==e.shouldIgnoreWarnings&&void 0!==e.shouldIgnoreWarnings&&t.setShouldIgnoreWarnings(e.shouldIgnoreWarnings),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getShouldIgnoreWarnings(){return this.shouldIgnoreWarnings}setShouldIgnoreWarnings(e){this.shouldIgnoreWarnings=e}toJson(e){return{...void 0!==this.getShouldIgnoreWarnings()&&null!==this.getShouldIgnoreWarnings()?{shouldIgnoreWarnings:this.getShouldIgnoreWarnings()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getFailoverDirections()&&null!==this.getFailoverDirections()?{failoverDirections:this.getFailoverDirections().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["name","failoverDirections"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"shouldIgnoreWarnings"!==t||void 0!==this.shouldIgnoreWarnings&&null!==this.shouldIgnoreWarnings?new E(t,"no such property exists"):new E("shouldIgnoreWarnings","undefined or null")}}function Rn(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Pn.prototype.shouldIgnoreWarnings=!1,En.prototype.name=void 0,En.prototype.failoverDirections=void 0;var xn=new WeakSet;class An extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=xn),t.add(e),this.$objectType="dataprotection.v4.operations.ValidateRecoveryPlanApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new An,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(nn.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Rn(xn,this,Cn).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Rn(xn,this,Cn).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Cn(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function Sn(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}An.prototype.metadata=void 0,An.prototype.data=void 0,An.prototype.$reserved=void 0,An.prototype.$objectType=void 0,An.prototype.$unknownFields=void 0;var Dn=new WeakSet;class Nn extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Dn),t.add(e),this.$objectType="dataprotection.v4.operations.CleanupRecoveryPlanResourcesApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Nn,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(nn.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Sn(Dn,this,Un).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Sn(Dn,this,Un).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Un(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function Mn(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Nn.prototype.metadata=void 0,Nn.prototype.data=void 0,Nn.prototype.$reserved=void 0,Nn.prototype.$objectType=void 0,Nn.prototype.$unknownFields=void 0;var Jn=new WeakSet;class _n extends En{constructor(e,t){var n,i;super(e,t),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(n=this,i=Jn),i.add(n),this.$objectType="dataprotection.v4.operations.UnplannedFailoverSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new _n,En.constructFromObject(e,t,!0),e.hasOwnProperty("recoveryReferenceTime")&&null!==e.recoveryReferenceTime&&void 0!==e.recoveryReferenceTime&&t.setRecoveryReferenceTime(e.recoveryReferenceTime),e.hasOwnProperty("shouldIgnoreWarnings")&&null!==e.shouldIgnoreWarnings&&void 0!==e.shouldIgnoreWarnings&&t.setShouldIgnoreWarnings(e.shouldIgnoreWarnings),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getRecoveryReferenceTime(){return this.recoveryReferenceTime}setRecoveryReferenceTime(e){this.recoveryReferenceTime=e}getShouldIgnoreWarnings(){return this.shouldIgnoreWarnings}setShouldIgnoreWarnings(e){this.shouldIgnoreWarnings=e}toJson(e){return{...void 0!==this.getRecoveryReferenceTime()&&null!==this.getRecoveryReferenceTime()?{recoveryReferenceTime:Mn(Jn,this,Ln).call(this,this.getRecoveryReferenceTime(),!1)}:{},...void 0!==this.getShouldIgnoreWarnings()&&null!==this.getShouldIgnoreWarnings()?{shouldIgnoreWarnings:this.getShouldIgnoreWarnings()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getFailoverDirections()&&null!==this.getFailoverDirections()?{failoverDirections:this.getFailoverDirections().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["name","failoverDirections"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"recoveryReferenceTime"!==t||void 0!==this.recoveryReferenceTime&&null!==this.recoveryReferenceTime?"shouldIgnoreWarnings"!==t||void 0!==this.shouldIgnoreWarnings&&null!==this.shouldIgnoreWarnings?new E(t,"no such property exists"):new E("shouldIgnoreWarnings","undefined or null"):new E("recoveryReferenceTime","undefined or null")}}function Ln(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}function Gn(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}_n.prototype.recoveryReferenceTime=void 0,_n.prototype.shouldIgnoreWarnings=!1,En.prototype.name=void 0,En.prototype.failoverDirections=void 0;var Vn=new WeakSet;class Wn extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Vn),t.add(e),this.$objectType="dataprotection.v4.operations.TestFailoverRecoveryPlanApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Wn,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(nn.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Gn(Vn,this,Bn).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Gn(Vn,this,Bn).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Bn(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function qn(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Wn.prototype.metadata=void 0,Wn.prototype.data=void 0,Wn.prototype.$reserved=void 0,Wn.prototype.$objectType=void 0,Wn.prototype.$unknownFields=void 0;var zn=new WeakSet;class Kn extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=zn),t.add(e),this.$objectType="dataprotection.v4.operations.PlannedFailoverRecoveryPlanApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Kn,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(nn.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):qn(zn,this,Yn).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):qn(zn,this,Yn).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Yn(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Kn.prototype.metadata=void 0,Kn.prototype.data=void 0,Kn.prototype.$reserved=void 0,Kn.prototype.$objectType=void 0,Kn.prototype.$unknownFields=void 0;const Hn={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",SUCCEEDED:"SUCCEEDED",RUNNING:"RUNNING",ABORTED:"ABORTED",FAILED:"FAILED",QUEUED:"QUEUED",SUCCEEDED_WITH_VALIDATION_WARNING:"SUCCEEDED_WITH_VALIDATION_WARNING",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Hn).find(t=>Hn[t]===e);return null==t?Hn.$UNKNOWN:Hn[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Hn.$UNKNOWN:case Hn.$REDACTED:case Hn.SUCCEEDED:case Hn.RUNNING:case Hn.ABORTED:case Hn.FAILED:case Hn.QUEUED:case Hn.SUCCEEDED_WITH_VALIDATION_WARNING:return;default:throw new Error("Invalid : must be RecoveryPlanJobExecutionStatus.{ $UNKNOWN|$REDACTED|SUCCEEDED|RUNNING|ABORTED|FAILED|QUEUED|SUCCEEDED_WITH_VALIDATION_WARNING }")}}};Object.freeze(Hn);const Xn=Hn,Zn={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",PRE_PROCESSING:"PRE_PROCESSING",ENTITY_RECOVERY:"ENTITY_RECOVERY",POST_PROCESSING:"POST_PROCESSING",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Zn).find(t=>Zn[t]===e);return null==t?Zn.$UNKNOWN:Zn[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Zn.$UNKNOWN:case Zn.$REDACTED:case Zn.PRE_PROCESSING:case Zn.ENTITY_RECOVERY:case Zn.POST_PROCESSING:return;default:throw new Error("Invalid : must be RecoveryPlanJobPhaseType.{ $UNKNOWN|$REDACTED|PRE_PROCESSING|ENTITY_RECOVERY|POST_PROCESSING }")}}};Object.freeze(Zn);const Qn=Zn;var ei=new WeakSet;class ti{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=ei),t.add(e),this.$objectType="dataprotection.v4.config.Summary",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ti,e.hasOwnProperty("status")&&null!==e.status&&void 0!==e.status&&t.setStatus(Xn.constructFromObject(e.status)),e.hasOwnProperty("percentageComplete")&&null!==e.percentageComplete&&void 0!==e.percentageComplete&&t.setPercentageComplete(e.percentageComplete),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getStatus(){return this.status}setStatus(e){this.status=e}getPercentageComplete(){return this.percentageComplete}setPercentageComplete(e){this.percentageComplete=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getPercentageComplete()&&null!==this.getPercentageComplete()?{percentageComplete:this.getPercentageComplete()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("status"===t&&(void 0===this.status||null===this.status))return new E("status","undefined or null");if("percentageComplete"===t){if(void 0===this.percentageComplete||null===this.percentageComplete)return new E("percentageComplete","undefined or null");if(!F.validateMaximum(this.percentageComplete,100))return new E("percentageComplete","does not satisfy required maximum constraint: 100");if(!F.validateMinimum(this.percentageComplete,0))return new E("percentageComplete","does not satisfy required minimum constraint: 0")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}ti.prototype.status=void 0,ti.prototype.percentageComplete=void 0,ti.prototype.$reserved=void 0,ti.prototype.$objectType=void 0,ti.prototype.$unknownFields=void 0;var ni=new WeakSet;class ii extends ti{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=ni),t.add(e),this.$objectType="dataprotection.v4.config.StageSummary",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ii,ti.constructFromObject(e,t,!0),e.hasOwnProperty("stageExtId")&&null!==e.stageExtId&&void 0!==e.stageExtId&&t.setStageExtId(e.stageExtId),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getStageExtId(){return this.stageExtId}setStageExtId(e){this.stageExtId=e}toJson(e){return{...void 0!==this.getStageExtId()&&null!==this.getStageExtId()?{stageExtId:this.getStageExtId()}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getPercentageComplete()&&null!==this.getPercentageComplete()?{percentageComplete:this.getPercentageComplete()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("stageExtId"===t){if(void 0===this.stageExtId||null===this.stageExtId)return new E("stageExtId","undefined or null");if(!F.validatePattern(this.stageExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("stageExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return new E(t,"no such property exists")}}ii.prototype.stageExtId=void 0,ti.prototype.status=void 0,ti.prototype.percentageComplete=void 0;var oi=new WeakSet;class si extends ti{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=oi),t.add(e),this.$objectType="dataprotection.v4.config.PhaseSummary",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new si,ti.constructFromObject(e,t,!0),e.hasOwnProperty("phaseType")&&null!==e.phaseType&&void 0!==e.phaseType&&t.setPhaseType(Qn.constructFromObject(e.phaseType)),e.hasOwnProperty("stages")&&null!==e.stages&&void 0!==e.stages){for(r=[],i=e.stages,s=0;s<i.length;s++)o=ii.constructFromObject(i[s],void 0),r.push(o);t.setStages(r)}if(!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getPhaseType(){return this.phaseType}setPhaseType(e){this.phaseType=e}getStages(){return this.stages}setStages(e){this.stages=e}toJson(e){return{...void 0!==this.getPhaseType()&&null!==this.getPhaseType()?{phaseType:this.getPhaseType()}:{},...void 0!==this.getStages()&&null!==this.getStages()?{stages:this.getStages().map(e=>e.toJson(!1))}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getPercentageComplete()&&null!==this.getPercentageComplete()?{percentageComplete:this.getPercentageComplete()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("phaseType"===t&&(void 0===this.phaseType||null===this.phaseType))return new E("phaseType","undefined or null");if("stages"===t){if(void 0===this.stages||null===this.stages)return new E("stages","undefined or null");if(!F.validateMaxItems(this.stages,100))return new E("stages","does not satisfy required maxItems constraint: 100");if(!F.validateMinItems(this.stages,1))return new E("stages","does not satisfy required minItems constraint: 1")}return new E(t,"no such property exists")}}si.prototype.phaseType=void 0,si.prototype.stages=void 0,ti.prototype.status=void 0,ti.prototype.percentageComplete=void 0;const ri={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",VALIDATE:"VALIDATE",PLANNED_FAILOVER:"PLANNED_FAILOVER",UNPLANNED_FAILOVER:"UNPLANNED_FAILOVER",TEST_FAILOVER:"TEST_FAILOVER",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(ri).find(t=>ri[t]===e);return null==t?ri.$UNKNOWN:ri[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case ri.$UNKNOWN:case ri.$REDACTED:case ri.VALIDATE:case ri.PLANNED_FAILOVER:case ri.UNPLANNED_FAILOVER:case ri.TEST_FAILOVER:return;default:throw new Error("Invalid : must be RecoveryPlanActionType.{ $UNKNOWN|$REDACTED|VALIDATE|PLANNED_FAILOVER|UNPLANNED_FAILOVER|TEST_FAILOVER }")}}};Object.freeze(ri);const ai=ri;function li(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var di=new WeakSet;class ui extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=di),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPlanJob",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new ui,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("recoveryPlanExtId")&&null!==e.recoveryPlanExtId&&void 0!==e.recoveryPlanExtId&&t.setRecoveryPlanExtId(e.recoveryPlanExtId),e.hasOwnProperty("failoverDirections")&&null!==e.failoverDirections&&void 0!==e.failoverDirections){for(r=[],i=e.failoverDirections,s=0;s<i.length;s++)o=bn.constructFromObject(i[s],void 0),r.push(o);t.setFailoverDirections(r)}if(e.hasOwnProperty("actionType")&&null!==e.actionType&&void 0!==e.actionType&&t.setActionType(ai.constructFromObject(e.actionType)),e.hasOwnProperty("recoveryReferenceTime")&&null!==e.recoveryReferenceTime&&void 0!==e.recoveryReferenceTime&&t.setRecoveryReferenceTime(e.recoveryReferenceTime),e.hasOwnProperty("isLiveMigrateVMs")&&null!==e.isLiveMigrateVMs&&void 0!==e.isLiveMigrateVMs&&t.setIsLiveMigrateVMs(e.isLiveMigrateVMs),e.hasOwnProperty("startTime")&&null!==e.startTime&&void 0!==e.startTime&&t.setStartTime(e.startTime),e.hasOwnProperty("endTime")&&null!==e.endTime&&void 0!==e.endTime&&t.setEndTime(e.endTime),e.hasOwnProperty("status")&&null!==e.status&&void 0!==e.status&&t.setStatus(Xn.constructFromObject(e.status)),e.hasOwnProperty("percentageComplete")&&null!==e.percentageComplete&&void 0!==e.percentageComplete&&t.setPercentageComplete(e.percentageComplete),e.hasOwnProperty("validationStatus")&&null!==e.validationStatus&&void 0!==e.validationStatus&&t.setValidationStatus(ti.constructFromObject(e.validationStatus)),e.hasOwnProperty("executionPhases")&&null!==e.executionPhases&&void 0!==e.executionPhases){for(r=[],i=e.executionPhases,s=0;s<i.length;s++)o=si.constructFromObject(i[s],void 0),r.push(o);t.setExecutionPhases(r)}if(e.hasOwnProperty("isInitiatedByWitness")&&null!==e.isInitiatedByWitness&&void 0!==e.isInitiatedByWitness&&t.setIsInitiatedByWitness(e.isInitiatedByWitness),e.hasOwnProperty("ownerExtId")&&null!==e.ownerExtId&&void 0!==e.ownerExtId&&t.setOwnerExtId(e.ownerExtId),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getRecoveryPlanExtId(){return this.recoveryPlanExtId}setRecoveryPlanExtId(e){this.recoveryPlanExtId=e}getFailoverDirections(){return this.failoverDirections}setFailoverDirections(e){this.failoverDirections=e}getActionType(){return this.actionType}setActionType(e){this.actionType=e}getRecoveryReferenceTime(){return this.recoveryReferenceTime}setRecoveryReferenceTime(e){this.recoveryReferenceTime=e}getIsLiveMigrateVMs(){return this.isLiveMigrateVMs}setIsLiveMigrateVMs(e){this.isLiveMigrateVMs=e}getStartTime(){return this.startTime}setStartTime(e){this.startTime=e}getEndTime(){return this.endTime}setEndTime(e){this.endTime=e}getStatus(){return this.status}setStatus(e){this.status=e}getPercentageComplete(){return this.percentageComplete}setPercentageComplete(e){this.percentageComplete=e}getValidationStatus(){return this.validationStatus}setValidationStatus(e){this.validationStatus=e}getExecutionPhases(){return this.executionPhases}setExecutionPhases(e){this.executionPhases=e}getIsInitiatedByWitness(){return this.isInitiatedByWitness}setIsInitiatedByWitness(e){this.isInitiatedByWitness=e}getOwnerExtId(){return this.ownerExtId}setOwnerExtId(e){this.ownerExtId=e}toJson(e){return!1===e?{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getRecoveryPlanExtId()&&null!==this.getRecoveryPlanExtId()?{recoveryPlanExtId:this.getRecoveryPlanExtId()}:{},...void 0!==this.getFailoverDirections()&&null!==this.getFailoverDirections()?{failoverDirections:this.getFailoverDirections().map(e=>e.toJson(!1))}:{},...void 0!==this.getActionType()&&null!==this.getActionType()?{actionType:this.getActionType()}:{},...void 0!==this.getRecoveryReferenceTime()&&null!==this.getRecoveryReferenceTime()?{recoveryReferenceTime:li(di,this,ci).call(this,this.getRecoveryReferenceTime(),!1)}:{},...void 0!==this.getIsLiveMigrateVMs()&&null!==this.getIsLiveMigrateVMs()?{isLiveMigrateVMs:this.getIsLiveMigrateVMs()}:{},...void 0!==this.getStartTime()&&null!==this.getStartTime()?{startTime:li(di,this,ci).call(this,this.getStartTime(),!1)}:{},...void 0!==this.getEndTime()&&null!==this.getEndTime()?{endTime:li(di,this,ci).call(this,this.getEndTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getPercentageComplete()&&null!==this.getPercentageComplete()?{percentageComplete:this.getPercentageComplete()}:{},...void 0!==this.getValidationStatus()&&null!==this.getValidationStatus()?{validationStatus:this.getValidationStatus().toJson(!1)}:{},...void 0!==this.getExecutionPhases()&&null!==this.getExecutionPhases()?{executionPhases:this.getExecutionPhases().map(e=>e.toJson(!1))}:{},...void 0!==this.getIsInitiatedByWitness()&&null!==this.getIsInitiatedByWitness()?{isInitiatedByWitness:this.getIsInitiatedByWitness()}:{},...void 0!==this.getOwnerExtId()&&null!==this.getOwnerExtId()?{ownerExtId:this.getOwnerExtId()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getRecoveryPlanExtId()&&null!==this.getRecoveryPlanExtId()?{recoveryPlanExtId:this.getRecoveryPlanExtId()}:{},...void 0!==this.getFailoverDirections()&&null!==this.getFailoverDirections()?{failoverDirections:this.getFailoverDirections().map(e=>e.toJson(!1))}:{},...void 0!==this.getActionType()&&null!==this.getActionType()?{actionType:this.getActionType()}:{},...void 0!==this.getRecoveryReferenceTime()&&null!==this.getRecoveryReferenceTime()?{recoveryReferenceTime:li(di,this,ci).call(this,this.getRecoveryReferenceTime(),!1)}:{},...void 0!==this.getIsLiveMigrateVMs()&&null!==this.getIsLiveMigrateVMs()?{isLiveMigrateVMs:this.getIsLiveMigrateVMs()}:{},...void 0!==this.getStartTime()&&null!==this.getStartTime()?{startTime:li(di,this,ci).call(this,this.getStartTime(),!1)}:{},...void 0!==this.getEndTime()&&null!==this.getEndTime()?{endTime:li(di,this,ci).call(this,this.getEndTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getPercentageComplete()&&null!==this.getPercentageComplete()?{percentageComplete:this.getPercentageComplete()}:{},...void 0!==this.getValidationStatus()&&null!==this.getValidationStatus()?{validationStatus:this.getValidationStatus().toJson(!1)}:{},...void 0!==this.getExecutionPhases()&&null!==this.getExecutionPhases()?{executionPhases:this.getExecutionPhases().map(e=>e.toJson(!1))}:{},...void 0!==this.getIsInitiatedByWitness()&&null!==this.getIsInitiatedByWitness()?{isInitiatedByWitness:this.getIsInitiatedByWitness()}:{},...void 0!==this.getOwnerExtId()&&null!==this.getOwnerExtId()?{ownerExtId:this.getOwnerExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}if("recoveryPlanExtId"===t){if(void 0===this.recoveryPlanExtId||null===this.recoveryPlanExtId)return new E("recoveryPlanExtId","undefined or null");if(!F.validatePattern(this.recoveryPlanExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("recoveryPlanExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("failoverDirections"===t){if(void 0===this.failoverDirections||null===this.failoverDirections)return new E("failoverDirections","undefined or null");if(!F.validateMaxItems(this.failoverDirections,50))return new E("failoverDirections","does not satisfy required maxItems constraint: 50");if(!F.validateMinItems(this.failoverDirections,1))return new E("failoverDirections","does not satisfy required minItems constraint: 1")}if("actionType"===t&&(void 0===this.actionType||null===this.actionType))return new E("actionType","undefined or null");if("recoveryReferenceTime"===t&&(void 0===this.recoveryReferenceTime||null===this.recoveryReferenceTime))return new E("recoveryReferenceTime","undefined or null");if("isLiveMigrateVMs"===t&&(void 0===this.isLiveMigrateVMs||null===this.isLiveMigrateVMs))return new E("isLiveMigrateVMs","undefined or null");if("startTime"===t&&(void 0===this.startTime||null===this.startTime))return new E("startTime","undefined or null");if("endTime"===t&&(void 0===this.endTime||null===this.endTime))return new E("endTime","undefined or null");if("status"===t&&(void 0===this.status||null===this.status))return new E("status","undefined or null");if("percentageComplete"===t){if(void 0===this.percentageComplete||null===this.percentageComplete)return new E("percentageComplete","undefined or null");if(!F.validateMaximum(this.percentageComplete,100))return new E("percentageComplete","does not satisfy required maximum constraint: 100");if(!F.validateMinimum(this.percentageComplete,0))return new E("percentageComplete","does not satisfy required minimum constraint: 0")}if("validationStatus"===t&&(void 0===this.validationStatus||null===this.validationStatus))return new E("validationStatus","undefined or null");if("executionPhases"===t){if(void 0===this.executionPhases||null===this.executionPhases)return new E("executionPhases","undefined or null");if(!F.validateMaxItems(this.executionPhases,5))return new E("executionPhases","does not satisfy required maxItems constraint: 5");if(!F.validateMinItems(this.executionPhases,1))return new E("executionPhases","does not satisfy required minItems constraint: 1")}if("isInitiatedByWitness"===t&&(void 0===this.isInitiatedByWitness||null===this.isInitiatedByWitness))return new E("isInitiatedByWitness","undefined or null");if("ownerExtId"===t){if(void 0===this.ownerExtId||null===this.ownerExtId)return new E("ownerExtId","undefined or null");if(!F.validatePattern(this.ownerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("ownerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return new E(t,"no such property exists")}}function ci(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}function hi(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}ui.prototype.name=void 0,ui.prototype.recoveryPlanExtId=void 0,ui.prototype.failoverDirections=void 0,ui.prototype.actionType=void 0,ui.prototype.recoveryReferenceTime=void 0,ui.prototype.isLiveMigrateVMs=void 0,ui.prototype.startTime=void 0,ui.prototype.endTime=void 0,ui.prototype.status=void 0,ui.prototype.percentageComplete=void 0,ui.prototype.validationStatus=void 0,ui.prototype.executionPhases=void 0,ui.prototype.isInitiatedByWitness=void 0,ui.prototype.ownerExtId=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var pi=new WeakSet;class vi extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=pi),t.add(e),this.$objectType="dataprotection.v4.config.GetRecoveryPlanJobApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new vi,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"dataprotection.v4.config.RecoveryPlanJob":t.setData(ui.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):hi(pi,this,yi).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):hi(pi,this,yi).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function yi(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function gi(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}vi.prototype.metadata=void 0,vi.prototype.data=void 0,vi.prototype.$reserved=void 0,vi.prototype.$objectType=void 0,vi.prototype.$unknownFields=void 0;var fi=new WeakSet;class $i extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=fi),t.add(e),this.$objectType="dataprotection.v4.config.DeleteRecoveryPlanJobApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new $i,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(nn.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):gi(fi,this,wi).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):gi(fi,this,wi).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function wi(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}$i.prototype.metadata=void 0,$i.prototype.data=void 0,$i.prototype.$reserved=void 0,$i.prototype.$objectType=void 0,$i.prototype.$unknownFields=void 0;const mi={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",CLUSTER:"CLUSTER",VM:"VM",STORAGE_CONTAINER:"STORAGE_CONTAINER",VOLUME_GROUP:"VOLUME_GROUP",TASK:"TASK",IMAGE:"IMAGE",CATEGORY:"CATEGORY",NODE:"NODE",VPC:"VPC",SUBNET:"SUBNET",ROUTING_POLICY:"ROUTING_POLICY",FLOATING_IP:"FLOATING_IP",VPN_GATEWAY:"VPN_GATEWAY",VPN_CONNECTION:"VPN_CONNECTION",DIRECT_CONNECT:"DIRECT_CONNECT",DIRECT_CONNECT_VIF:"DIRECT_CONNECT_VIF",VIRTUAL_NIC:"VIRTUAL_NIC",VIRTUAL_SWITCH:"VIRTUAL_SWITCH",VM_DISK:"VM_DISK",VOLUME_DISK:"VOLUME_DISK",DISK_RECOVERY_POINT:"DISK_RECOVERY_POINT",VTEP_GATEWAY:"VTEP_GATEWAY",RECOVERY_PLAN:"RECOVERY_PLAN",RECOVERY_PLAN_JOB:"RECOVERY_PLAN_JOB",AVAILABILITY_ZONE:"AVAILABILITY_ZONE",VIRTUAL_NETWORK:"VIRTUAL_NETWORK",CONSISTENCY_GROUP:"CONSISTENCY_GROUP",SUBNET_EXTENSION:"SUBNET_EXTENSION",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(mi).find(t=>mi[t]===e);return null==t?mi.$UNKNOWN:mi[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case mi.$UNKNOWN:case mi.$REDACTED:case mi.CLUSTER:case mi.VM:case mi.STORAGE_CONTAINER:case mi.VOLUME_GROUP:case mi.TASK:case mi.IMAGE:case mi.CATEGORY:case mi.NODE:case mi.VPC:case mi.SUBNET:case mi.ROUTING_POLICY:case mi.FLOATING_IP:case mi.VPN_GATEWAY:case mi.VPN_CONNECTION:case mi.DIRECT_CONNECT:case mi.DIRECT_CONNECT_VIF:case mi.VIRTUAL_NIC:case mi.VIRTUAL_SWITCH:case mi.VM_DISK:case mi.VOLUME_DISK:case mi.DISK_RECOVERY_POINT:case mi.VTEP_GATEWAY:case mi.RECOVERY_PLAN:case mi.RECOVERY_PLAN_JOB:case mi.AVAILABILITY_ZONE:case mi.VIRTUAL_NETWORK:case mi.CONSISTENCY_GROUP:case mi.SUBNET_EXTENSION:return;default:throw new Error("Invalid : must be EntityType.{ $UNKNOWN|$REDACTED|CLUSTER|VM|STORAGE_CONTAINER|VOLUME_GROUP|TASK|IMAGE|CATEGORY|NODE|VPC|SUBNET|ROUTING_POLICY|FLOATING_IP|VPN_GATEWAY|VPN_CONNECTION|DIRECT_CONNECT|DIRECT_CONNECT_VIF|VIRTUAL_NIC|VIRTUAL_SWITCH|VM_DISK|VOLUME_DISK|DISK_RECOVERY_POINT|VTEP_GATEWAY|RECOVERY_PLAN|RECOVERY_PLAN_JOB|AVAILABILITY_ZONE|VIRTUAL_NETWORK|CONSISTENCY_GROUP|SUBNET_EXTENSION }")}}};Object.freeze(mi);const ki=mi;var Ti=new WeakSet;class bi{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Ti),t.add(e),this.$objectType="common.v1.config.EntityReference",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s;if(e){if(t=t||new bi,e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("uris")&&null!==e.uris&&void 0!==e.uris){for(s=[],i=e.uris,o=0;o<i.length;o++)s.push(i[o]);t.setUris(s)}if(e.hasOwnProperty("entityType")&&null!==e.entityType&&void 0!==e.entityType&&t.setEntityType(ki.constructFromObject(e.entityType)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}getName(){return this.name}setName(e){this.name=e}getUris(){return this.uris}setUris(e){this.uris=e}getEntityType(){return this.entityType}setEntityType(e){this.entityType=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getUris()&&null!==this.getUris()?{uris:this.getUris()}:{},...void 0!==this.getEntityType()&&null!==this.getEntityType()?{entityType:this.getEntityType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}if("uris"===t){if(void 0===this.uris||null===this.uris)return new E("uris","undefined or null");if(!F.validateMaxItems(this.uris,100))return new E("uris","does not satisfy required maxItems constraint: 100")}return"entityType"!==t||void 0!==this.entityType&&null!==this.entityType?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("entityType","undefined or null")}}bi.prototype.extId=void 0,bi.prototype.name=void 0,bi.prototype.uris=void 0,bi.prototype.entityType=void 0,bi.prototype.$reserved=void 0,bi.prototype.$objectType=void 0,bi.prototype.$unknownFields=void 0;const Fi={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",ENTITY:"ENTITY",NETWORK:"NETWORK",RECOVERY_POINT:"RECOVERY_POINT",CATEGORY:"CATEGORY",CONNECTIVITY:"CONNECTIVITY",INFRASTRUCTURE:"INFRASTRUCTURE",CLUSTER_LICENSE:"CLUSTER_LICENSE",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Fi).find(t=>Fi[t]===e);return null==t?Fi.$UNKNOWN:Fi[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Fi.$UNKNOWN:case Fi.$REDACTED:case Fi.ENTITY:case Fi.NETWORK:case Fi.RECOVERY_POINT:case Fi.CATEGORY:case Fi.CONNECTIVITY:case Fi.INFRASTRUCTURE:case Fi.CLUSTER_LICENSE:return;default:throw new Error("Invalid : must be ErrorGroup.{ $UNKNOWN|$REDACTED|ENTITY|NETWORK|RECOVERY_POINT|CATEGORY|CONNECTIVITY|INFRASTRUCTURE|CLUSTER_LICENSE }")}}};Object.freeze(Fi);const Ei=Fi,ji={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",ERROR:"ERROR",WARNING:"WARNING",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(ji).find(t=>ji[t]===e);return null==t?ji.$UNKNOWN:ji[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case ji.$UNKNOWN:case ji.$REDACTED:case ji.ERROR:case ji.WARNING:return;default:throw new Error("Invalid : must be Severity.{ $UNKNOWN|$REDACTED|ERROR|WARNING }")}}};Object.freeze(ji);const Oi=ji;var Ii=new WeakSet;class Pi extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ii),t.add(e),this.$objectType="dataprotection.v4.config.ErrorMessage",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Pi,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("errorCode")&&null!==e.errorCode&&void 0!==e.errorCode&&t.setErrorCode(e.errorCode),e.hasOwnProperty("errorGroup")&&null!==e.errorGroup&&void 0!==e.errorGroup&&t.setErrorGroup(Ei.constructFromObject(e.errorGroup)),e.hasOwnProperty("message")&&null!==e.message&&void 0!==e.message&&t.setMessage(e.message),e.hasOwnProperty("severity")&&null!==e.severity&&void 0!==e.severity&&t.setSeverity(Oi.constructFromObject(e.severity)),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getErrorCode(){return this.errorCode}setErrorCode(e){this.errorCode=e}getErrorGroup(){return this.errorGroup}setErrorGroup(e){this.errorGroup=e}getMessage(){return this.message}setMessage(e){this.message=e}getSeverity(){return this.severity}setSeverity(e){this.severity=e}toJson(e){return!1===e?{...void 0!==this.getErrorCode()&&null!==this.getErrorCode()?{errorCode:this.getErrorCode()}:{},...void 0!==this.getErrorGroup()&&null!==this.getErrorGroup()?{errorGroup:this.getErrorGroup()}:{},...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getSeverity()&&null!==this.getSeverity()?{severity:this.getSeverity()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getErrorCode()&&null!==this.getErrorCode()?{errorCode:this.getErrorCode()}:{},...void 0!==this.getErrorGroup()&&null!==this.getErrorGroup()?{errorGroup:this.getErrorGroup()}:{},...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getSeverity()&&null!==this.getSeverity()?{severity:this.getSeverity()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"errorCode"!==t||void 0!==this.errorCode&&null!==this.errorCode?"errorGroup"!==t||void 0!==this.errorGroup&&null!==this.errorGroup?"message"!==t||void 0!==this.message&&null!==this.message?"severity"!==t||void 0!==this.severity&&null!==this.severity?new E(t,"no such property exists"):new E("severity","undefined or null"):new E("message","undefined or null"):new E("errorGroup","undefined or null"):new E("errorCode","undefined or null")}}Pi.prototype.errorCode=void 0,Pi.prototype.errorGroup=void 0,Pi.prototype.message=void 0,Pi.prototype.severity=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var Ri=new WeakSet;class xi{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Ri),t.add(e),this.$objectType="dataprotection.v4.config.RootCauseAnalysis",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s;if(e){if(t=t||new xi,e.hasOwnProperty("cause")&&null!==e.cause&&void 0!==e.cause&&t.setCause(e.cause),e.hasOwnProperty("resolutions")&&null!==e.resolutions&&void 0!==e.resolutions){for(s=[],i=e.resolutions,o=0;o<i.length;o++)s.push(i[o]);t.setResolutions(s)}if(e.hasOwnProperty("impacts")&&null!==e.impacts&&void 0!==e.impacts){for(s=[],i=e.impacts,o=0;o<i.length;o++)s.push(i[o]);t.setImpacts(s)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getCause(){return this.cause}setCause(e){this.cause=e}getResolutions(){return this.resolutions}setResolutions(e){this.resolutions=e}getImpacts(){return this.impacts}setImpacts(e){this.impacts=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getCause()&&null!==this.getCause()?{cause:this.getCause()}:{},...void 0!==this.getResolutions()&&null!==this.getResolutions()?{resolutions:this.getResolutions()}:{},...void 0!==this.getImpacts()&&null!==this.getImpacts()?{impacts:this.getImpacts()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("cause"===t&&(void 0===this.cause||null===this.cause))return new E("cause","undefined or null");if("resolutions"===t){if(void 0===this.resolutions||null===this.resolutions)return new E("resolutions","undefined or null");if(!F.validateMaxItems(this.resolutions,5))return new E("resolutions","does not satisfy required maxItems constraint: 5");if(!F.validateMinItems(this.resolutions,1))return new E("resolutions","does not satisfy required minItems constraint: 1")}if("impacts"===t){if(void 0===this.impacts||null===this.impacts)return new E("impacts","undefined or null");if(!F.validateMaxItems(this.impacts,5))return new E("impacts","does not satisfy required maxItems constraint: 5");if(!F.validateMinItems(this.impacts,1))return new E("impacts","does not satisfy required minItems constraint: 1")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}xi.prototype.cause=void 0,xi.prototype.resolutions=void 0,xi.prototype.impacts=void 0,xi.prototype.$reserved=void 0,xi.prototype.$objectType=void 0,xi.prototype.$unknownFields=void 0;var Ai=new WeakSet;class Ci extends Pi{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ai),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPlanValidationError",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Ci,Pi.constructFromObject(e,t,!0),e.hasOwnProperty("affectedEntities")&&null!==e.affectedEntities&&void 0!==e.affectedEntities){for(r=[],i=e.affectedEntities,s=0;s<i.length;s++)o=bi.constructFromObject(i[s],void 0),r.push(o);t.setAffectedEntities(r)}if(e.hasOwnProperty("rootCauseAnalysis")&&null!==e.rootCauseAnalysis&&void 0!==e.rootCauseAnalysis&&t.setRootCauseAnalysis(xi.constructFromObject(e.rootCauseAnalysis)),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getAffectedEntities(){return this.affectedEntities}setAffectedEntities(e){this.affectedEntities=e}getRootCauseAnalysis(){return this.rootCauseAnalysis}setRootCauseAnalysis(e){this.rootCauseAnalysis=e}toJson(e){return!1===e?{...void 0!==this.getAffectedEntities()&&null!==this.getAffectedEntities()?{affectedEntities:this.getAffectedEntities().map(e=>e.toJson(!1))}:{},...void 0!==this.getRootCauseAnalysis()&&null!==this.getRootCauseAnalysis()?{rootCauseAnalysis:this.getRootCauseAnalysis().toJson(!1)}:{},...void 0!==this.getErrorCode()&&null!==this.getErrorCode()?{errorCode:this.getErrorCode()}:{},...void 0!==this.getErrorGroup()&&null!==this.getErrorGroup()?{errorGroup:this.getErrorGroup()}:{},...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getSeverity()&&null!==this.getSeverity()?{severity:this.getSeverity()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getAffectedEntities()&&null!==this.getAffectedEntities()?{affectedEntities:this.getAffectedEntities().map(e=>e.toJson(!1))}:{},...void 0!==this.getRootCauseAnalysis()&&null!==this.getRootCauseAnalysis()?{rootCauseAnalysis:this.getRootCauseAnalysis().toJson(!1)}:{},...void 0!==this.getErrorCode()&&null!==this.getErrorCode()?{errorCode:this.getErrorCode()}:{},...void 0!==this.getErrorGroup()&&null!==this.getErrorGroup()?{errorGroup:this.getErrorGroup()}:{},...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getSeverity()&&null!==this.getSeverity()?{severity:this.getSeverity()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("affectedEntities"===t){if(void 0===this.affectedEntities||null===this.affectedEntities)return new E("affectedEntities","undefined or null");if(!F.validateMaxItems(this.affectedEntities,100))return new E("affectedEntities","does not satisfy required maxItems constraint: 100");if(!F.validateMinItems(this.affectedEntities,1))return new E("affectedEntities","does not satisfy required minItems constraint: 1")}return"rootCauseAnalysis"!==t||void 0!==this.rootCauseAnalysis&&null!==this.rootCauseAnalysis?new E(t,"no such property exists"):new E("rootCauseAnalysis","undefined or null")}}Ci.prototype.affectedEntities=void 0,Ci.prototype.rootCauseAnalysis=void 0,Pi.prototype.errorCode=void 0,Pi.prototype.errorGroup=void 0,Pi.prototype.message=void 0,Pi.prototype.severity=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class Si extends Ci{constructor(){super(),this.$objectType="dataprotection.v4.config.RecoveryPlanValidationErrorProjection",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Si,Ci.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function Di(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Ni=new WeakSet;class Ui extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ni),t.add(e),this.$objectType="dataprotection.v4.config.ListRecoveryPlanJobValidationErrorsApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new Ui,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++)switch(l){case"dataprotection.v4.config.RecoveryPlanValidationError":o=Ci.constructFromObject(i[r],void 0),a.push(o);break;case"dataprotection.v4.config.RecoveryPlanValidationErrorProjection":o=Si.constructFromObject(i[r],void 0),a.push(o);break;default:throw"Unknown list of type "+l+" in data"}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Di(Ni,this,Mi).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Di(Ni,this,Mi).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Mi(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Ui.prototype.metadata=void 0,Ui.prototype.data=void 0,Ui.prototype.$reserved=void 0,Ui.prototype.$objectType=void 0,Ui.prototype.$unknownFields=void 0;class Ji extends ui{constructor(){super(),this.$objectType="dataprotection.v4.config.RecoveryPlanJobProjection",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Ji,ui.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function _i(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Li=new WeakSet;class Gi extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Li),t.add(e),this.$objectType="dataprotection.v4.config.ListRecoveryPlanJobsApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new Gi,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++)switch(l){case"dataprotection.v4.config.RecoveryPlanJob":o=ui.constructFromObject(i[r],void 0),a.push(o);break;case"dataprotection.v4.config.RecoveryPlanJobProjection":o=Ji.constructFromObject(i[r],void 0),a.push(o);break;default:throw"Unknown list of type "+l+" in data"}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):_i(Li,this,Vi).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):_i(Li,this,Vi).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Vi(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Gi.prototype.metadata=void 0,Gi.prototype.data=void 0,Gi.prototype.$reserved=void 0,Gi.prototype.$objectType=void 0,Gi.prototype.$unknownFields=void 0;const Wi={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",VM:"VM",SUBNET:"SUBNET",AVAILABILITY_ZONE:"AVAILABILITY_ZONE",RECOVERY_PLAN:"RECOVERY_PLAN",VIRTUAL_NETWORK:"VIRTUAL_NETWORK",VOLUME_GROUP:"VOLUME_GROUP",CONSISTENCY_GROUP:"CONSISTENCY_GROUP",CATEGORY:"CATEGORY",VPN_GATEWAY:"VPN_GATEWAY",SUBNET_EXTENSION:"SUBNET_EXTENSION",VPC:"VPC",RECOVERY_PLAN_JOB:"RECOVERY_PLAN_JOB",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Wi).find(t=>Wi[t]===e);return null==t?Wi.$UNKNOWN:Wi[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Wi.$UNKNOWN:case Wi.$REDACTED:case Wi.VM:case Wi.SUBNET:case Wi.AVAILABILITY_ZONE:case Wi.RECOVERY_PLAN:case Wi.VIRTUAL_NETWORK:case Wi.VOLUME_GROUP:case Wi.CONSISTENCY_GROUP:case Wi.CATEGORY:case Wi.VPN_GATEWAY:case Wi.SUBNET_EXTENSION:case Wi.VPC:case Wi.RECOVERY_PLAN_JOB:return;default:throw new Error("Invalid : must be ExecutionStepEntityType.{ $UNKNOWN|$REDACTED|VM|SUBNET|AVAILABILITY_ZONE|RECOVERY_PLAN|VIRTUAL_NETWORK|VOLUME_GROUP|CONSISTENCY_GROUP|CATEGORY|VPN_GATEWAY|SUBNET_EXTENSION|VPC|RECOVERY_PLAN_JOB }")}}};Object.freeze(Wi);const Bi=Wi;var qi=new WeakSet;class zi{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=qi),t.add(e),this.$objectType="dataprotection.v4.config.ExecutionStepEntityReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new zi,e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("entityType")&&null!==e.entityType&&void 0!==e.entityType&&t.setEntityType(Bi.constructFromObject(e.entityType)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}getName(){return this.name}setName(e){this.name=e}getEntityType(){return this.entityType}setEntityType(e){this.entityType=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getEntityType()&&null!==this.getEntityType()?{entityType:this.getEntityType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}return"entityType"!==t||void 0!==this.entityType&&null!==this.entityType?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("entityType","undefined or null")}}zi.prototype.extId=void 0,zi.prototype.name=void 0,zi.prototype.entityType=void 0,zi.prototype.$reserved=void 0,zi.prototype.$objectType=void 0,zi.prototype.$unknownFields=void 0;var Ki=new WeakSet;class Yi{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Ki),t.add(e),this.$objectType="dataprotection.v4.config.EntityRecoveryResult",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Yi,e.hasOwnProperty("sourceEntityExtId")&&null!==e.sourceEntityExtId&&void 0!==e.sourceEntityExtId&&t.setSourceEntityExtId(e.sourceEntityExtId),e.hasOwnProperty("recoveredEntityExtId")&&null!==e.recoveredEntityExtId&&void 0!==e.recoveredEntityExtId&&t.setRecoveredEntityExtId(e.recoveredEntityExtId),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("entityType")&&null!==e.entityType&&void 0!==e.entityType&&t.setEntityType(ki.constructFromObject(e.entityType)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getSourceEntityExtId(){return this.sourceEntityExtId}setSourceEntityExtId(e){this.sourceEntityExtId=e}getRecoveredEntityExtId(){return this.recoveredEntityExtId}setRecoveredEntityExtId(e){this.recoveredEntityExtId=e}getName(){return this.name}setName(e){this.name=e}getEntityType(){return this.entityType}setEntityType(e){this.entityType=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getSourceEntityExtId()&&null!==this.getSourceEntityExtId()?{sourceEntityExtId:this.getSourceEntityExtId()}:{},...void 0!==this.getRecoveredEntityExtId()&&null!==this.getRecoveredEntityExtId()?{recoveredEntityExtId:this.getRecoveredEntityExtId()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getEntityType()&&null!==this.getEntityType()?{entityType:this.getEntityType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("sourceEntityExtId"===t){if(void 0===this.sourceEntityExtId||null===this.sourceEntityExtId)return new E("sourceEntityExtId","undefined or null");if(!F.validatePattern(this.sourceEntityExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("sourceEntityExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("recoveredEntityExtId"===t){if(void 0===this.recoveredEntityExtId||null===this.recoveredEntityExtId)return new E("recoveredEntityExtId","undefined or null");if(!F.validatePattern(this.recoveredEntityExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("recoveredEntityExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}return"entityType"!==t||void 0!==this.entityType&&null!==this.entityType?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("entityType","undefined or null")}}function Hi(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Yi.prototype.sourceEntityExtId=void 0,Yi.prototype.recoveredEntityExtId=void 0,Yi.prototype.name=void 0,Yi.prototype.entityType=void 0,Yi.prototype.$reserved=void 0,Yi.prototype.$objectType=void 0,Yi.prototype.$unknownFields=void 0;var Xi=new WeakSet;class Zi{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=Xi),n.add(t),this.result=e,this.$objectType="dataprotection.v4.config.ExecutionStepResult",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Zi,e.hasOwnProperty("result")&&null!==e.result&&void 0!==e.result){if(i=e.result.hasOwnProperty("$objectType")?e.result.$objectType:typeof e.result,"dataprotection.v4.config.EntityRecoveryResult"!==i)throw"Unknown datatype "+i+" in data";t.setResult(Yi.constructFromObject(e.result,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getResult(){return this.result}setResult(e){this.result=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getResult()&&null!==this.getResult()?{result:void 0!==this.getResult().toJson?this.getResult().toJson(!1):Array.isArray(this.getResult())?this.getResult().map(e=>void 0!==e.toJson?e.toJson(!1):e):Hi(Xi,this,Qi).call(this,this.getResult(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getResult()&&null!==this.getResult()?{result:void 0!==this.getResult().toJson?this.getResult().toJson():Array.isArray(this.getResult())?this.getResult().map(e=>void 0!==e.toJson?e.toJson():e):Hi(Xi,this,Qi).call(this,this.getResult())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["result"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"result"!==t||void 0!==this.result&&null!==this.result?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("result","undefined or null")}}function Qi(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Zi.prototype.result=void 0,Zi.prototype.$reserved=void 0,Zi.prototype.$objectType=void 0,Zi.prototype.$unknownFields=void 0;const eo={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",NETWORK_CREATION:"NETWORK_CREATION",SUBNET_EXTENSION_CREATION:"SUBNET_EXTENSION_CREATION",NETWORK_GATEWAY_CREATION:"NETWORK_GATEWAY_CREATION",VPC_UPDATION:"VPC_UPDATION",SYNC_RECOVERY_POINTS:"SYNC_RECOVERY_POINTS",FLOATING_IP_CREATION:"FLOATING_IP_CREATION",RESOURCE_RESERVATION:"RESOURCE_RESERVATION",NOTIFY_WITNESS:"NOTIFY_WITNESS",VPC_CREATION:"VPC_CREATION",CONFIGURE_MANUAL_PROTECTION:"CONFIGURE_MANUAL_PROTECTION",DELAY:"DELAY",ENTITY_MIGRATION:"ENTITY_MIGRATION",ENTITY_RESTORATION:"ENTITY_RESTORATION",ENTITY_LIVE_MIGRATION:"ENTITY_LIVE_MIGRATION",VM_POWER_ON:"VM_POWER_ON",ASSIGN_FLOATING_IP:"ASSIGN_FLOATING_IP",STATIC_IP_VALIDATION:"STATIC_IP_VALIDATION",SCRIPT_EXECUTION:"SCRIPT_EXECUTION",VM_VOLUME_IQN_ATTACHMENT:"VM_VOLUME_IQN_ATTACHMENT",VM_VOLUME_ATTACHMENT:"VM_VOLUME_ATTACHMENT",ENTITY_SNAPSHOT_SYNC:"ENTITY_SNAPSHOT_SYNC",AUDIT:"AUDIT",NETWORK_DELETION:"NETWORK_DELETION",CONSISTENCY_GROUP_CREATE:"CONSISTENCY_GROUP_CREATE",SUBNET_EXTENSION_DELETION:"SUBNET_EXTENSION_DELETION",NETWORK_GATEWAY_DELETION:"NETWORK_GATEWAY_DELETION",STAGE_RECOVERY:"STAGE_RECOVERY",ENTITY_RECOVERY:"ENTITY_RECOVERY",IP_CUSTOMIZATION:"IP_CUSTOMIZATION",ENTITIES_CLEANUP:"ENTITIES_CLEANUP",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(eo).find(t=>eo[t]===e);return null==t?eo.$UNKNOWN:eo[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case eo.$UNKNOWN:case eo.$REDACTED:case eo.NETWORK_CREATION:case eo.SUBNET_EXTENSION_CREATION:case eo.NETWORK_GATEWAY_CREATION:case eo.VPC_UPDATION:case eo.SYNC_RECOVERY_POINTS:case eo.FLOATING_IP_CREATION:case eo.RESOURCE_RESERVATION:case eo.NOTIFY_WITNESS:case eo.VPC_CREATION:case eo.CONFIGURE_MANUAL_PROTECTION:case eo.DELAY:case eo.ENTITY_MIGRATION:case eo.ENTITY_RESTORATION:case eo.ENTITY_LIVE_MIGRATION:case eo.VM_POWER_ON:case eo.ASSIGN_FLOATING_IP:case eo.STATIC_IP_VALIDATION:case eo.SCRIPT_EXECUTION:case eo.VM_VOLUME_IQN_ATTACHMENT:case eo.VM_VOLUME_ATTACHMENT:case eo.ENTITY_SNAPSHOT_SYNC:case eo.AUDIT:case eo.NETWORK_DELETION:case eo.CONSISTENCY_GROUP_CREATE:case eo.SUBNET_EXTENSION_DELETION:case eo.NETWORK_GATEWAY_DELETION:case eo.STAGE_RECOVERY:case eo.ENTITY_RECOVERY:case eo.IP_CUSTOMIZATION:case eo.ENTITIES_CLEANUP:return;default:throw new Error("Invalid : must be OperationType.{ $UNKNOWN|$REDACTED|NETWORK_CREATION|SUBNET_EXTENSION_CREATION|NETWORK_GATEWAY_CREATION|VPC_UPDATION|SYNC_RECOVERY_POINTS|FLOATING_IP_CREATION|RESOURCE_RESERVATION|NOTIFY_WITNESS|VPC_CREATION|CONFIGURE_MANUAL_PROTECTION|DELAY|ENTITY_MIGRATION|ENTITY_RESTORATION|ENTITY_LIVE_MIGRATION|VM_POWER_ON|ASSIGN_FLOATING_IP|STATIC_IP_VALIDATION|SCRIPT_EXECUTION|VM_VOLUME_IQN_ATTACHMENT|VM_VOLUME_ATTACHMENT|ENTITY_SNAPSHOT_SYNC|AUDIT|NETWORK_DELETION|CONSISTENCY_GROUP_CREATE|SUBNET_EXTENSION_DELETION|NETWORK_GATEWAY_DELETION|STAGE_RECOVERY|ENTITY_RECOVERY|IP_CUSTOMIZATION|ENTITIES_CLEANUP }")}}};Object.freeze(eo);const to=eo;function no(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var io=new WeakSet;class oo extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=io),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPlanJobExecutionStep",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new oo,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("errorMessage")&&null!==e.errorMessage&&void 0!==e.errorMessage&&t.setErrorMessage(Ge.constructFromObject(e.errorMessage)),e.hasOwnProperty("stageExtId")&&null!==e.stageExtId&&void 0!==e.stageExtId&&t.setStageExtId(e.stageExtId),e.hasOwnProperty("phase")&&null!==e.phase&&void 0!==e.phase&&t.setPhase(Qn.constructFromObject(e.phase)),e.hasOwnProperty("operationType")&&null!==e.operationType&&void 0!==e.operationType&&t.setOperationType(to.constructFromObject(e.operationType)),e.hasOwnProperty("stepDescription")&&null!==e.stepDescription&&void 0!==e.stepDescription&&t.setStepDescription(e.stepDescription),e.hasOwnProperty("affectedEntities")&&null!==e.affectedEntities&&void 0!==e.affectedEntities){for(r=[],i=e.affectedEntities,s=0;s<i.length;s++)o=zi.constructFromObject(i[s],void 0),r.push(o);t.setAffectedEntities(r)}if(e.hasOwnProperty("executionStepResults")&&null!==e.executionStepResults&&void 0!==e.executionStepResults){for(r=[],i=e.executionStepResults,s=0;s<i.length;s++)o=Zi.constructFromObject(i[s],void 0),r.push(o);t.setExecutionStepResults(r)}if(e.hasOwnProperty("status")&&null!==e.status&&void 0!==e.status&&t.setStatus(Xn.constructFromObject(e.status)),e.hasOwnProperty("startTime")&&null!==e.startTime&&void 0!==e.startTime&&t.setStartTime(e.startTime),e.hasOwnProperty("endTime")&&null!==e.endTime&&void 0!==e.endTime&&t.setEndTime(e.endTime),e.hasOwnProperty("percentageComplete")&&null!==e.percentageComplete&&void 0!==e.percentageComplete&&t.setPercentageComplete(e.percentageComplete),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getErrorMessage(){return this.errorMessage}setErrorMessage(e){this.errorMessage=e}getStageExtId(){return this.stageExtId}setStageExtId(e){this.stageExtId=e}getPhase(){return this.phase}setPhase(e){this.phase=e}getOperationType(){return this.operationType}setOperationType(e){this.operationType=e}getStepDescription(){return this.stepDescription}setStepDescription(e){this.stepDescription=e}getAffectedEntities(){return this.affectedEntities}setAffectedEntities(e){this.affectedEntities=e}getExecutionStepResults(){return this.executionStepResults}setExecutionStepResults(e){this.executionStepResults=e}getStatus(){return this.status}setStatus(e){this.status=e}getStartTime(){return this.startTime}setStartTime(e){this.startTime=e}getEndTime(){return this.endTime}setEndTime(e){this.endTime=e}getPercentageComplete(){return this.percentageComplete}setPercentageComplete(e){this.percentageComplete=e}toJson(e){return!1===e?{...void 0!==this.getErrorMessage()&&null!==this.getErrorMessage()?{errorMessage:this.getErrorMessage().toJson(!1)}:{},...void 0!==this.getStageExtId()&&null!==this.getStageExtId()?{stageExtId:this.getStageExtId()}:{},...void 0!==this.getPhase()&&null!==this.getPhase()?{phase:this.getPhase()}:{},...void 0!==this.getOperationType()&&null!==this.getOperationType()?{operationType:this.getOperationType()}:{},...void 0!==this.getStepDescription()&&null!==this.getStepDescription()?{stepDescription:this.getStepDescription()}:{},...void 0!==this.getAffectedEntities()&&null!==this.getAffectedEntities()?{affectedEntities:this.getAffectedEntities().map(e=>e.toJson(!1))}:{},...void 0!==this.getExecutionStepResults()&&null!==this.getExecutionStepResults()?{executionStepResults:this.getExecutionStepResults().map(e=>e.toJson(!1))}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getStartTime()&&null!==this.getStartTime()?{startTime:no(io,this,so).call(this,this.getStartTime(),!1)}:{},...void 0!==this.getEndTime()&&null!==this.getEndTime()?{endTime:no(io,this,so).call(this,this.getEndTime(),!1)}:{},...void 0!==this.getPercentageComplete()&&null!==this.getPercentageComplete()?{percentageComplete:this.getPercentageComplete()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getErrorMessage()&&null!==this.getErrorMessage()?{errorMessage:this.getErrorMessage().toJson(!1)}:{},...void 0!==this.getStageExtId()&&null!==this.getStageExtId()?{stageExtId:this.getStageExtId()}:{},...void 0!==this.getPhase()&&null!==this.getPhase()?{phase:this.getPhase()}:{},...void 0!==this.getOperationType()&&null!==this.getOperationType()?{operationType:this.getOperationType()}:{},...void 0!==this.getStepDescription()&&null!==this.getStepDescription()?{stepDescription:this.getStepDescription()}:{},...void 0!==this.getAffectedEntities()&&null!==this.getAffectedEntities()?{affectedEntities:this.getAffectedEntities().map(e=>e.toJson(!1))}:{},...void 0!==this.getExecutionStepResults()&&null!==this.getExecutionStepResults()?{executionStepResults:this.getExecutionStepResults().map(e=>e.toJson(!1))}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getStartTime()&&null!==this.getStartTime()?{startTime:no(io,this,so).call(this,this.getStartTime(),!1)}:{},...void 0!==this.getEndTime()&&null!==this.getEndTime()?{endTime:no(io,this,so).call(this,this.getEndTime(),!1)}:{},...void 0!==this.getPercentageComplete()&&null!==this.getPercentageComplete()?{percentageComplete:this.getPercentageComplete()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("errorMessage"===t&&(void 0===this.errorMessage||null===this.errorMessage))return new E("errorMessage","undefined or null");if("stageExtId"===t){if(void 0===this.stageExtId||null===this.stageExtId)return new E("stageExtId","undefined or null");if(!F.validatePattern(this.stageExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("stageExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("phase"===t&&(void 0===this.phase||null===this.phase))return new E("phase","undefined or null");if("operationType"===t&&(void 0===this.operationType||null===this.operationType))return new E("operationType","undefined or null");if("stepDescription"===t){if(void 0===this.stepDescription||null===this.stepDescription)return new E("stepDescription","undefined or null");if(!F.validateMaxLength(this.stepDescription,1e3))return new E("stepDescription","does not satisfy required maxLength constraint: 1000")}if("affectedEntities"===t){if(void 0===this.affectedEntities||null===this.affectedEntities)return new E("affectedEntities","undefined or null");if(!F.validateMaxItems(this.affectedEntities,100))return new E("affectedEntities","does not satisfy required maxItems constraint: 100");if(!F.validateMinItems(this.affectedEntities,1))return new E("affectedEntities","does not satisfy required minItems constraint: 1")}if("executionStepResults"===t){if(void 0===this.executionStepResults||null===this.executionStepResults)return new E("executionStepResults","undefined or null");if(!F.validateMaxItems(this.executionStepResults,1))return new E("executionStepResults","does not satisfy required maxItems constraint: 1");if(!F.validateMinItems(this.executionStepResults,1))return new E("executionStepResults","does not satisfy required minItems constraint: 1")}if("status"===t&&(void 0===this.status||null===this.status))return new E("status","undefined or null");if("startTime"===t&&(void 0===this.startTime||null===this.startTime))return new E("startTime","undefined or null");if("endTime"===t&&(void 0===this.endTime||null===this.endTime))return new E("endTime","undefined or null");if("percentageComplete"===t){if(void 0===this.percentageComplete||null===this.percentageComplete)return new E("percentageComplete","undefined or null");if(!F.validateMaximum(this.percentageComplete,100))return new E("percentageComplete","does not satisfy required maximum constraint: 100");if(!F.validateMinimum(this.percentageComplete,0))return new E("percentageComplete","does not satisfy required minimum constraint: 0")}return new E(t,"no such property exists")}}function so(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}oo.prototype.errorMessage=void 0,oo.prototype.stageExtId=void 0,oo.prototype.phase=void 0,oo.prototype.operationType=void 0,oo.prototype.stepDescription=void 0,oo.prototype.affectedEntities=void 0,oo.prototype.executionStepResults=void 0,oo.prototype.status=void 0,oo.prototype.startTime=void 0,oo.prototype.endTime=void 0,oo.prototype.percentageComplete=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class ro extends oo{constructor(){super(),this.$objectType="dataprotection.v4.config.RecoveryPlanJobExecutionStepProjection",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ro,oo.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function ao(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var lo=new WeakSet;class uo extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=lo),t.add(e),this.$objectType="dataprotection.v4.config.ListRecoveryPlanJobExecutionStepsApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new uo,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++)switch(l){case"dataprotection.v4.config.RecoveryPlanJobExecutionStep":o=oo.constructFromObject(i[r],void 0),a.push(o);break;case"dataprotection.v4.config.RecoveryPlanJobExecutionStepProjection":o=ro.constructFromObject(i[r],void 0),a.push(o);break;default:throw"Unknown list of type "+l+" in data"}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):ao(lo,this,co).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):ao(lo,this,co).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function co(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function ho(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}uo.prototype.metadata=void 0,uo.prototype.data=void 0,uo.prototype.$reserved=void 0,uo.prototype.$objectType=void 0,uo.prototype.$unknownFields=void 0;var po=new WeakSet;class vo extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=po),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPointReplicateApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new vo,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(nn.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):ho(po,this,yo).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):ho(po,this,yo).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function yo(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}vo.prototype.metadata=void 0,vo.prototype.data=void 0,vo.prototype.$reserved=void 0,vo.prototype.$objectType=void 0,vo.prototype.$unknownFields=void 0;const go={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",GET_VSS_METADATA:"GET_VSS_METADATA",COMPUTE_CHANGED_REGIONS:"COMPUTE_CHANGED_REGIONS",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(go).find(t=>go[t]===e);return null==t?go.$UNKNOWN:go[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case go.$UNKNOWN:case go.$REDACTED:case go.GET_VSS_METADATA:case go.COMPUTE_CHANGED_REGIONS:return;default:throw new Error("Invalid : must be ClusterDiscoverOperation.{ $UNKNOWN|$REDACTED|GET_VSS_METADATA|COMPUTE_CHANGED_REGIONS }")}}};Object.freeze(go);const fo=go;var $o=new WeakSet;class wo{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=$o),t.add(e),this.$objectType="dataprotection.v4.content.DiskRecoveryPointReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new wo,e.hasOwnProperty("recoveryPointExtId")&&null!==e.recoveryPointExtId&&void 0!==e.recoveryPointExtId&&t.setRecoveryPointExtId(e.recoveryPointExtId),e.hasOwnProperty("diskRecoveryPointExtId")&&null!==e.diskRecoveryPointExtId&&void 0!==e.diskRecoveryPointExtId&&t.setDiskRecoveryPointExtId(e.diskRecoveryPointExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getRecoveryPointExtId(){return this.recoveryPointExtId}setRecoveryPointExtId(e){this.recoveryPointExtId=e}getDiskRecoveryPointExtId(){return this.diskRecoveryPointExtId}setDiskRecoveryPointExtId(e){this.diskRecoveryPointExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getRecoveryPointExtId()&&null!==this.getRecoveryPointExtId()?{recoveryPointExtId:this.getRecoveryPointExtId()}:{},...void 0!==this.getDiskRecoveryPointExtId()&&null!==this.getDiskRecoveryPointExtId()?{diskRecoveryPointExtId:this.getDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("recoveryPointExtId"===t){if(void 0===this.recoveryPointExtId||null===this.recoveryPointExtId)return new E("recoveryPointExtId","undefined or null");if(!F.validatePattern(this.recoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("recoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("diskRecoveryPointExtId"===t){if(void 0===this.diskRecoveryPointExtId||null===this.diskRecoveryPointExtId)return new E("diskRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.diskRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("diskRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}wo.prototype.recoveryPointExtId=void 0,wo.prototype.diskRecoveryPointExtId=void 0,wo.prototype.$reserved=void 0,wo.prototype.$objectType=void 0,wo.prototype.$unknownFields=void 0;var mo=new WeakSet;class ko extends wo{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=mo),t.add(e),this.$objectType="dataprotection.v4.content.VmDiskRecoveryPointReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ko,wo.constructFromObject(e,t,!0),e.hasOwnProperty("vmRecoveryPointExtId")&&null!==e.vmRecoveryPointExtId&&void 0!==e.vmRecoveryPointExtId&&t.setVmRecoveryPointExtId(e.vmRecoveryPointExtId),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getVmRecoveryPointExtId(){return this.vmRecoveryPointExtId}setVmRecoveryPointExtId(e){this.vmRecoveryPointExtId=e}toJson(e){return{...void 0!==this.getVmRecoveryPointExtId()&&null!==this.getVmRecoveryPointExtId()?{vmRecoveryPointExtId:this.getVmRecoveryPointExtId()}:{},...void 0!==this.getRecoveryPointExtId()&&null!==this.getRecoveryPointExtId()?{recoveryPointExtId:this.getRecoveryPointExtId()}:{},...void 0!==this.getDiskRecoveryPointExtId()&&null!==this.getDiskRecoveryPointExtId()?{diskRecoveryPointExtId:this.getDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("vmRecoveryPointExtId"===t){if(void 0===this.vmRecoveryPointExtId||null===this.vmRecoveryPointExtId)return new E("vmRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.vmRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("vmRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return new E(t,"no such property exists")}}ko.prototype.vmRecoveryPointExtId=void 0,wo.prototype.recoveryPointExtId=void 0,wo.prototype.diskRecoveryPointExtId=void 0;var To=new WeakSet;class bo extends wo{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=To),t.add(e),this.$objectType="dataprotection.v4.content.VolumeGroupDiskRecoveryPointReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new bo,wo.constructFromObject(e,t,!0),e.hasOwnProperty("volumeGroupRecoveryPointExtId")&&null!==e.volumeGroupRecoveryPointExtId&&void 0!==e.volumeGroupRecoveryPointExtId&&t.setVolumeGroupRecoveryPointExtId(e.volumeGroupRecoveryPointExtId),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getVolumeGroupRecoveryPointExtId(){return this.volumeGroupRecoveryPointExtId}setVolumeGroupRecoveryPointExtId(e){this.volumeGroupRecoveryPointExtId=e}toJson(e){return{...void 0!==this.getVolumeGroupRecoveryPointExtId()&&null!==this.getVolumeGroupRecoveryPointExtId()?{volumeGroupRecoveryPointExtId:this.getVolumeGroupRecoveryPointExtId()}:{},...void 0!==this.getRecoveryPointExtId()&&null!==this.getRecoveryPointExtId()?{recoveryPointExtId:this.getRecoveryPointExtId()}:{},...void 0!==this.getDiskRecoveryPointExtId()&&null!==this.getDiskRecoveryPointExtId()?{diskRecoveryPointExtId:this.getDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("volumeGroupRecoveryPointExtId"===t){if(void 0===this.volumeGroupRecoveryPointExtId||null===this.volumeGroupRecoveryPointExtId)return new E("volumeGroupRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.volumeGroupRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("volumeGroupRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return new E(t,"no such property exists")}}function Fo(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}bo.prototype.volumeGroupRecoveryPointExtId=void 0,wo.prototype.recoveryPointExtId=void 0,wo.prototype.diskRecoveryPointExtId=void 0;var Eo=new WeakSet;class jo{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=Eo),n.add(t),this.diskRecoveryPoint=e,this.$objectType="dataprotection.v4.content.ComputeChangedRegionsClusterDiscoverSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new jo,e.hasOwnProperty("diskRecoveryPoint")&&null!==e.diskRecoveryPoint&&void 0!==e.diskRecoveryPoint)switch(i=e.diskRecoveryPoint.hasOwnProperty("$objectType")?e.diskRecoveryPoint.$objectType:typeof e.diskRecoveryPoint,i){case"dataprotection.v4.content.VmDiskRecoveryPointReference":t.setDiskRecoveryPoint(ko.constructFromObject(e.diskRecoveryPoint,void 0));break;case"dataprotection.v4.content.VolumeGroupDiskRecoveryPointReference":t.setDiskRecoveryPoint(bo.constructFromObject(e.diskRecoveryPoint,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("referenceDiskRecoveryPoint")&&null!==e.referenceDiskRecoveryPoint&&void 0!==e.referenceDiskRecoveryPoint)switch(i=e.referenceDiskRecoveryPoint.hasOwnProperty("$objectType")?e.referenceDiskRecoveryPoint.$objectType:typeof e.referenceDiskRecoveryPoint,i){case"dataprotection.v4.content.VmDiskRecoveryPointReference":t.setReferenceDiskRecoveryPoint(ko.constructFromObject(e.referenceDiskRecoveryPoint,void 0));break;case"dataprotection.v4.content.VolumeGroupDiskRecoveryPointReference":t.setReferenceDiskRecoveryPoint(bo.constructFromObject(e.referenceDiskRecoveryPoint,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getDiskRecoveryPoint(){return this.diskRecoveryPoint}setDiskRecoveryPoint(e){this.diskRecoveryPoint=e}getReferenceDiskRecoveryPoint(){return this.referenceDiskRecoveryPoint}setReferenceDiskRecoveryPoint(e){this.referenceDiskRecoveryPoint=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getDiskRecoveryPoint()&&null!==this.getDiskRecoveryPoint()?{diskRecoveryPoint:void 0!==this.getDiskRecoveryPoint().toJson?this.getDiskRecoveryPoint().toJson(!1):Array.isArray(this.getDiskRecoveryPoint())?this.getDiskRecoveryPoint().map(e=>void 0!==e.toJson?e.toJson(!1):e):Fo(Eo,this,Oo).call(this,this.getDiskRecoveryPoint(),!1)}:{},...void 0!==this.getReferenceDiskRecoveryPoint()&&null!==this.getReferenceDiskRecoveryPoint()?{referenceDiskRecoveryPoint:void 0!==this.getReferenceDiskRecoveryPoint().toJson?this.getReferenceDiskRecoveryPoint().toJson(!1):Array.isArray(this.getReferenceDiskRecoveryPoint())?this.getReferenceDiskRecoveryPoint().map(e=>void 0!==e.toJson?e.toJson(!1):e):Fo(Eo,this,Oo).call(this,this.getReferenceDiskRecoveryPoint(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getDiskRecoveryPoint()&&null!==this.getDiskRecoveryPoint()?{diskRecoveryPoint:void 0!==this.getDiskRecoveryPoint().toJson?this.getDiskRecoveryPoint().toJson():Array.isArray(this.getDiskRecoveryPoint())?this.getDiskRecoveryPoint().map(e=>void 0!==e.toJson?e.toJson():e):Fo(Eo,this,Oo).call(this,this.getDiskRecoveryPoint())}:{},...void 0!==this.getReferenceDiskRecoveryPoint()&&null!==this.getReferenceDiskRecoveryPoint()?{referenceDiskRecoveryPoint:void 0!==this.getReferenceDiskRecoveryPoint().toJson?this.getReferenceDiskRecoveryPoint().toJson():Array.isArray(this.getReferenceDiskRecoveryPoint())?this.getReferenceDiskRecoveryPoint().map(e=>void 0!==e.toJson?e.toJson():e):Fo(Eo,this,Oo).call(this,this.getReferenceDiskRecoveryPoint())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["diskRecoveryPoint"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"diskRecoveryPoint"!==t||void 0!==this.diskRecoveryPoint&&null!==this.diskRecoveryPoint?"referenceDiskRecoveryPoint"!==t||void 0!==this.referenceDiskRecoveryPoint&&null!==this.referenceDiskRecoveryPoint?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("referenceDiskRecoveryPoint","undefined or null"):new E("diskRecoveryPoint","undefined or null")}}function Oo(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}jo.prototype.diskRecoveryPoint=void 0,jo.prototype.referenceDiskRecoveryPoint=void 0,jo.prototype.$reserved=void 0,jo.prototype.$objectType=void 0,jo.prototype.$unknownFields=void 0;var Io=new WeakSet;class Po{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=Io),n.add(t),this.vmRecoveryPointExtId=e,this.$objectType="dataprotection.v4.content.GetVssMetadataClusterDiscoverSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Po,e.hasOwnProperty("vmRecoveryPointExtId")&&null!==e.vmRecoveryPointExtId&&void 0!==e.vmRecoveryPointExtId&&t.setVmRecoveryPointExtId(e.vmRecoveryPointExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getVmRecoveryPointExtId(){return this.vmRecoveryPointExtId}setVmRecoveryPointExtId(e){this.vmRecoveryPointExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getVmRecoveryPointExtId()&&null!==this.getVmRecoveryPointExtId()?{vmRecoveryPointExtId:this.getVmRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["vmRecoveryPointExtId"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("vmRecoveryPointExtId"===t){if(void 0===this.vmRecoveryPointExtId||null===this.vmRecoveryPointExtId)return new E("vmRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.vmRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("vmRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}function Ro(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Po.prototype.vmRecoveryPointExtId=void 0,Po.prototype.$reserved=void 0,Po.prototype.$objectType=void 0,Po.prototype.$unknownFields=void 0;var xo=new WeakSet;class Ao{constructor(e,t){var n,i;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(n=this,i=xo),i.add(n),this.operation=e,this.spec=t,this.$objectType="dataprotection.v4.content.ClusterDiscoverSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Ao,e.hasOwnProperty("operation")&&null!==e.operation&&void 0!==e.operation&&t.setOperation(fo.constructFromObject(e.operation)),e.hasOwnProperty("spec")&&null!==e.spec&&void 0!==e.spec)switch(i=e.spec.hasOwnProperty("$objectType")?e.spec.$objectType:typeof e.spec,i){case"dataprotection.v4.content.GetVssMetadataClusterDiscoverSpec":t.setSpec(Po.constructFromObject(e.spec,void 0));break;case"dataprotection.v4.content.ComputeChangedRegionsClusterDiscoverSpec":t.setSpec(jo.constructFromObject(e.spec,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getOperation(){return this.operation}setOperation(e){this.operation=e}getSpec(){return this.spec}setSpec(e){this.spec=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getOperation()&&null!==this.getOperation()?{operation:this.getOperation()}:{},...void 0!==this.getSpec()&&null!==this.getSpec()?{spec:void 0!==this.getSpec().toJson?this.getSpec().toJson(!1):Array.isArray(this.getSpec())?this.getSpec().map(e=>void 0!==e.toJson?e.toJson(!1):e):Ro(xo,this,Co).call(this,this.getSpec(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getOperation()&&null!==this.getOperation()?{operation:this.getOperation()}:{},...void 0!==this.getSpec()&&null!==this.getSpec()?{spec:void 0!==this.getSpec().toJson?this.getSpec().toJson():Array.isArray(this.getSpec())?this.getSpec().map(e=>void 0!==e.toJson?e.toJson():e):Ro(xo,this,Co).call(this,this.getSpec())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["operation","spec"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"operation"!==t||void 0!==this.operation&&null!==this.operation?"spec"!==t||void 0!==this.spec&&null!==this.spec?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("spec","undefined or null"):new E("operation","undefined or null")}}function Co(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Ao.prototype.operation=void 0,Ao.prototype.spec=void 0,Ao.prototype.$reserved=void 0,Ao.prototype.$objectType=void 0,Ao.prototype.$unknownFields=void 0;var So=new WeakSet;class Do{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=So),t.add(e),this.$objectType="dataprotection.v4.content.BaseRecoveryPointSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Do,e.hasOwnProperty("referenceRecoveryPointExtId")&&null!==e.referenceRecoveryPointExtId&&void 0!==e.referenceRecoveryPointExtId&&t.setReferenceRecoveryPointExtId(e.referenceRecoveryPointExtId),e.hasOwnProperty("referenceDiskRecoveryPointExtId")&&null!==e.referenceDiskRecoveryPointExtId&&void 0!==e.referenceDiskRecoveryPointExtId&&t.setReferenceDiskRecoveryPointExtId(e.referenceDiskRecoveryPointExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getReferenceRecoveryPointExtId(){return this.referenceRecoveryPointExtId}setReferenceRecoveryPointExtId(e){this.referenceRecoveryPointExtId=e}getReferenceDiskRecoveryPointExtId(){return this.referenceDiskRecoveryPointExtId}setReferenceDiskRecoveryPointExtId(e){this.referenceDiskRecoveryPointExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getReferenceRecoveryPointExtId()&&null!==this.getReferenceRecoveryPointExtId()?{referenceRecoveryPointExtId:this.getReferenceRecoveryPointExtId()}:{},...void 0!==this.getReferenceDiskRecoveryPointExtId()&&null!==this.getReferenceDiskRecoveryPointExtId()?{referenceDiskRecoveryPointExtId:this.getReferenceDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("referenceRecoveryPointExtId"===t){if(void 0===this.referenceRecoveryPointExtId||null===this.referenceRecoveryPointExtId)return new E("referenceRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.referenceRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("referenceRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("referenceDiskRecoveryPointExtId"===t){if(void 0===this.referenceDiskRecoveryPointExtId||null===this.referenceDiskRecoveryPointExtId)return new E("referenceDiskRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.referenceDiskRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("referenceDiskRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Do.prototype.referenceRecoveryPointExtId=void 0,Do.prototype.referenceDiskRecoveryPointExtId=void 0,Do.prototype.$reserved=void 0,Do.prototype.$objectType=void 0,Do.prototype.$unknownFields=void 0;var No=new WeakSet;class Uo extends Do{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=No),t.add(e),this.$objectType="dataprotection.v4.content.VmDiskRecoveryPointClusterDiscoverSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Uo,Do.constructFromObject(e,t,!0),e.hasOwnProperty("referenceVmRecoveryPointExtId")&&null!==e.referenceVmRecoveryPointExtId&&void 0!==e.referenceVmRecoveryPointExtId&&t.setReferenceVmRecoveryPointExtId(e.referenceVmRecoveryPointExtId),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getReferenceVmRecoveryPointExtId(){return this.referenceVmRecoveryPointExtId}setReferenceVmRecoveryPointExtId(e){this.referenceVmRecoveryPointExtId=e}toJson(e){return{...void 0!==this.getReferenceVmRecoveryPointExtId()&&null!==this.getReferenceVmRecoveryPointExtId()?{referenceVmRecoveryPointExtId:this.getReferenceVmRecoveryPointExtId()}:{},...void 0!==this.getReferenceRecoveryPointExtId()&&null!==this.getReferenceRecoveryPointExtId()?{referenceRecoveryPointExtId:this.getReferenceRecoveryPointExtId()}:{},...void 0!==this.getReferenceDiskRecoveryPointExtId()&&null!==this.getReferenceDiskRecoveryPointExtId()?{referenceDiskRecoveryPointExtId:this.getReferenceDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("referenceVmRecoveryPointExtId"===t){if(void 0===this.referenceVmRecoveryPointExtId||null===this.referenceVmRecoveryPointExtId)return new E("referenceVmRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.referenceVmRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("referenceVmRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return new E(t,"no such property exists")}}Uo.prototype.referenceVmRecoveryPointExtId=void 0,Do.prototype.referenceRecoveryPointExtId=void 0,Do.prototype.referenceDiskRecoveryPointExtId=void 0;var Mo=new WeakSet;class Jo extends Uo{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Mo),t.add(e),this.$objectType="dataprotection.v4.content.VmRecoveryPointChangedRegionsComputeSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Jo,Uo.constructFromObject(e,t,!0),e.hasOwnProperty("offset")&&null!==e.offset&&void 0!==e.offset&&t.setOffset(e.offset),e.hasOwnProperty("length")&&null!==e.length&&void 0!==e.length&&t.setLength(e.length),e.hasOwnProperty("blockSizeByte")&&null!==e.blockSizeByte&&void 0!==e.blockSizeByte&&t.setBlockSizeByte(e.blockSizeByte),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getOffset(){return this.offset}setOffset(e){this.offset=e}getLength(){return this.length}setLength(e){this.length=e}getBlockSizeByte(){return this.blockSizeByte}setBlockSizeByte(e){this.blockSizeByte=e}toJson(e){return{...void 0!==this.getOffset()&&null!==this.getOffset()?{offset:this.getOffset()}:{},...void 0!==this.getLength()&&null!==this.getLength()?{length:this.getLength()}:{},...void 0!==this.getBlockSizeByte()&&null!==this.getBlockSizeByte()?{blockSizeByte:this.getBlockSizeByte()}:{},...void 0!==this.getReferenceVmRecoveryPointExtId()&&null!==this.getReferenceVmRecoveryPointExtId()?{referenceVmRecoveryPointExtId:this.getReferenceVmRecoveryPointExtId()}:{},...void 0!==this.getReferenceRecoveryPointExtId()&&null!==this.getReferenceRecoveryPointExtId()?{referenceRecoveryPointExtId:this.getReferenceRecoveryPointExtId()}:{},...void 0!==this.getReferenceDiskRecoveryPointExtId()&&null!==this.getReferenceDiskRecoveryPointExtId()?{referenceDiskRecoveryPointExtId:this.getReferenceDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("offset"===t&&(void 0===this.offset||null===this.offset))return new E("offset","undefined or null");if("length"===t&&(void 0===this.length||null===this.length))return new E("length","undefined or null");if("blockSizeByte"===t){if(void 0===this.blockSizeByte||null===this.blockSizeByte)return new E("blockSizeByte","undefined or null");if(!F.validateMaximum(this.blockSizeByte,262144))return new E("blockSizeByte","does not satisfy required maximum constraint: 262144");if(!F.validateMinimum(this.blockSizeByte,32768))return new E("blockSizeByte","does not satisfy required minimum constraint: 32768")}return new E(t,"no such property exists")}}Jo.prototype.offset=void 0,Jo.prototype.length=void 0,Jo.prototype.blockSizeByte=void 0,Uo.prototype.referenceVmRecoveryPointExtId=void 0,Do.prototype.referenceRecoveryPointExtId=void 0,Do.prototype.referenceDiskRecoveryPointExtId=void 0;var _o=new WeakSet;class Lo{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=_o),n.add(t),this.value=e,this.$objectType="common.v1.config.IPv4Address",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Lo,e.hasOwnProperty("value")&&null!==e.value&&void 0!==e.value&&t.setValue(e.value),e.hasOwnProperty("prefixLength")&&null!==e.prefixLength&&void 0!==e.prefixLength&&t.setPrefixLength(e.prefixLength),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getValue(){return this.value}setValue(e){this.value=e}getPrefixLength(){return this.prefixLength}setPrefixLength(e){this.prefixLength=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getValue()&&null!==this.getValue()?{value:this.getValue()}:{},...void 0!==this.getPrefixLength()&&null!==this.getPrefixLength()?{prefixLength:this.getPrefixLength()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["value"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("value"===t){if(void 0===this.value||null===this.value)return new E("value","undefined or null");if(!F.validatePattern(this.value,/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/))return new E("value","does not satisfy required pattern: /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/")}if("prefixLength"===t){if(void 0===this.prefixLength||null===this.prefixLength)return new E("prefixLength","undefined or null");if(!F.validateMaximum(this.prefixLength,32))return new E("prefixLength","does not satisfy required maximum constraint: 32");if(!F.validateMinimum(this.prefixLength,0))return new E("prefixLength","does not satisfy required minimum constraint: 0")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Lo.prototype.value=void 0,Lo.prototype.prefixLength=32,Lo.prototype.$reserved=void 0,Lo.prototype.$objectType=void 0,Lo.prototype.$unknownFields=void 0;var Go=new WeakSet;class Vo{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=Go),n.add(t),this.value=e,this.$objectType="common.v1.config.IPv6Address",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Vo,e.hasOwnProperty("value")&&null!==e.value&&void 0!==e.value&&t.setValue(e.value),e.hasOwnProperty("prefixLength")&&null!==e.prefixLength&&void 0!==e.prefixLength&&t.setPrefixLength(e.prefixLength),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getValue(){return this.value}setValue(e){this.value=e}getPrefixLength(){return this.prefixLength}setPrefixLength(e){this.prefixLength=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getValue()&&null!==this.getValue()?{value:this.getValue()}:{},...void 0!==this.getPrefixLength()&&null!==this.getPrefixLength()?{prefixLength:this.getPrefixLength()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["value"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("value"===t){if(void 0===this.value||null===this.value)return new E("value","undefined or null");if(!F.validatePattern(this.value,/^(?:(?:(?:[A-Fa-f0-9]{1,4}:){6}|(?=(?:[A-Fa-f0-9]{0,4}:){0,6}(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$)(([0-9a-fA-F]{1,4}:){0,5}|:)((:[0-9a-fA-F]{1,4}){1,5}:|:)|::(?:[A-Fa-f0-9]{1,4}:){5})(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])|(?:[A-Fa-f0-9]{1,4}:){7}[A-Fa-f0-9]{1,4}|(?=(?:[A-Fa-f0-9]{0,4}:){0,7}[A-Fa-f0-9]{0,4}$)(([0-9a-fA-F]{1,4}:){1,7}|:)((:[0-9a-fA-F]{1,4}){1,7}|:)|(?:[A-Fa-f0-9]{1,4}:){7}:|:(:[A-Fa-f0-9]{1,4}){7})$/))return new E("value","does not satisfy required pattern: /^(?:(?:(?:[A-Fa-f0-9]{1,4}:){6}|(?=(?:[A-Fa-f0-9]{0,4}:){0,6}(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$)(([0-9a-fA-F]{1,4}:){0,5}|:)((:[0-9a-fA-F]{1,4}){1,5}:|:)|::(?:[A-Fa-f0-9]{1,4}:){5})(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])|(?:[A-Fa-f0-9]{1,4}:){7}[A-Fa-f0-9]{1,4}|(?=(?:[A-Fa-f0-9]{0,4}:){0,7}[A-Fa-f0-9]{0,4}$)(([0-9a-fA-F]{1,4}:){1,7}|:)((:[0-9a-fA-F]{1,4}){1,7}|:)|(?:[A-Fa-f0-9]{1,4}:){7}:|:(:[A-Fa-f0-9]{1,4}){7})$/")}if("prefixLength"===t){if(void 0===this.prefixLength||null===this.prefixLength)return new E("prefixLength","undefined or null");if(!F.validateMaximum(this.prefixLength,128))return new E("prefixLength","does not satisfy required maximum constraint: 128");if(!F.validateMinimum(this.prefixLength,0))return new E("prefixLength","does not satisfy required minimum constraint: 0")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Vo.prototype.value=void 0,Vo.prototype.prefixLength=128,Vo.prototype.$reserved=void 0,Vo.prototype.$objectType=void 0,Vo.prototype.$unknownFields=void 0;var Wo=new WeakSet;class Bo{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Wo),t.add(e),this.$objectType="common.v1.config.IPAddress",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Bo,e.hasOwnProperty("ipv4")&&null!==e.ipv4&&void 0!==e.ipv4&&t.setIpv4(Lo.constructFromObject(e.ipv4)),e.hasOwnProperty("ipv6")&&null!==e.ipv6&&void 0!==e.ipv6&&t.setIpv6(Vo.constructFromObject(e.ipv6)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getIpv4(){return this.ipv4}setIpv4(e){this.ipv4=e}getIpv6(){return this.ipv6}setIpv6(e){this.ipv6=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}hasIpv4(){return!(void 0===this.ipv4||null===this.ipv4)}hasIpv6(){return!(void 0===this.ipv6||null===this.ipv6)}isValid(){return this.hasIpv4()||this.hasIpv6()}toJson(e){return{...void 0!==this.getIpv4()&&null!==this.getIpv4()?{ipv4:this.getIpv4().toJson(!1)}:{},...void 0!==this.getIpv6()&&null!==this.getIpv6()?{ipv6:this.getIpv6().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"ipv4"!==t||void 0!==this.ipv4&&null!==this.ipv4?"ipv6"!==t||void 0!==this.ipv6&&null!==this.ipv6?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("ipv6","undefined or null"):new E("ipv4","undefined or null")}}Bo.prototype.ipv4=void 0,Bo.prototype.ipv6=void 0,Bo.prototype.$reserved=void 0,Bo.prototype.$objectType=void 0,Bo.prototype.$unknownFields=void 0;var qo=new WeakSet;class zo{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=qo),t.add(e),this.$objectType="dataprotection.v4.common.ClusterInfo",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new zo,e.hasOwnProperty("jwtToken")&&null!==e.jwtToken&&void 0!==e.jwtToken&&t.setJwtToken(e.jwtToken),e.hasOwnProperty("clusterIp")&&null!==e.clusterIp&&void 0!==e.clusterIp&&t.setClusterIp(Bo.constructFromObject(e.clusterIp)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getJwtToken(){return this.jwtToken}setJwtToken(e){this.jwtToken=e}getClusterIp(){return this.clusterIp}setClusterIp(e){this.clusterIp=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getJwtToken()&&null!==this.getJwtToken()?{jwtToken:this.getJwtToken()}:{},...void 0!==this.getClusterIp()&&null!==this.getClusterIp()?{clusterIp:this.getClusterIp().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"jwtToken"!==t||void 0!==this.jwtToken&&null!==this.jwtToken?"clusterIp"!==t||void 0!==this.clusterIp&&null!==this.clusterIp?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("clusterIp","undefined or null"):new E("jwtToken","undefined or null")}}function Ko(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}zo.prototype.jwtToken=void 0,zo.prototype.clusterIp=void 0,zo.prototype.$reserved=void 0,zo.prototype.$objectType=void 0,zo.prototype.$unknownFields=void 0;var Yo=new WeakSet;class Ho extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Yo),t.add(e),this.$objectType="dataprotection.v4.config.ClusterInfoApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Ho,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"dataprotection.v4.common.ClusterInfo":t.setData(zo.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Ko(Yo,this,Xo).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Ko(Yo,this,Xo).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Xo(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Ho.prototype.metadata=void 0,Ho.prototype.data=void 0,Ho.prototype.$reserved=void 0,Ho.prototype.$objectType=void 0,Ho.prototype.$unknownFields=void 0;const Zo={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",COMPLETE:"COMPLETE",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Zo).find(t=>Zo[t]===e);return null==t?Zo.$UNKNOWN:Zo[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Zo.$UNKNOWN:case Zo.$REDACTED:case Zo.COMPLETE:return;default:throw new Error("Invalid : must be RecoveryPointStatus.{ $UNKNOWN|$REDACTED|COMPLETE }")}}};Object.freeze(Zo);const Qo=Zo,es={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",CRASH_CONSISTENT:"CRASH_CONSISTENT",APPLICATION_CONSISTENT:"APPLICATION_CONSISTENT",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(es).find(t=>es[t]===e);return null==t?es.$UNKNOWN:es[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case es.$UNKNOWN:case es.$REDACTED:case es.CRASH_CONSISTENT:case es.APPLICATION_CONSISTENT:return;default:throw new Error("Invalid : must be RecoveryPointType.{ $UNKNOWN|$REDACTED|CRASH_CONSISTENT|APPLICATION_CONSISTENT }")}}};Object.freeze(es);const ts=es;function ns(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var is=new WeakSet;class os extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=is),t.add(e),this.$objectType="dataprotection.v4.common.BaseRecoveryPoint",this.$reserved={$fv:"v4.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new os,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("locationAgnosticId")&&null!==e.locationAgnosticId&&void 0!==e.locationAgnosticId&&t.setLocationAgnosticId(e.locationAgnosticId),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("creationTime")&&null!==e.creationTime&&void 0!==e.creationTime&&t.setCreationTime(e.creationTime),e.hasOwnProperty("expirationTime")&&null!==e.expirationTime&&void 0!==e.expirationTime&&t.setExpirationTime(e.expirationTime),e.hasOwnProperty("status")&&null!==e.status&&void 0!==e.status&&t.setStatus(Qo.constructFromObject(e.status)),e.hasOwnProperty("recoveryPointType")&&null!==e.recoveryPointType&&void 0!==e.recoveryPointType&&t.setRecoveryPointType(ts.constructFromObject(e.recoveryPointType)),e.hasOwnProperty("totalExclusiveUsageBytes")&&null!==e.totalExclusiveUsageBytes&&void 0!==e.totalExclusiveUsageBytes&&t.setTotalExclusiveUsageBytes(e.totalExclusiveUsageBytes),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getLocationAgnosticId(){return this.locationAgnosticId}setLocationAgnosticId(e){this.locationAgnosticId=e}getName(){return this.name}setName(e){this.name=e}getCreationTime(){return this.creationTime}setCreationTime(e){this.creationTime=e}getExpirationTime(){return this.expirationTime}setExpirationTime(e){this.expirationTime=e}getStatus(){return this.status}setStatus(e){this.status=e}getRecoveryPointType(){return this.recoveryPointType}setRecoveryPointType(e){this.recoveryPointType=e}getTotalExclusiveUsageBytes(){return this.totalExclusiveUsageBytes}setTotalExclusiveUsageBytes(e){this.totalExclusiveUsageBytes=e}toJson(e){return!1===e?{...void 0!==this.getLocationAgnosticId()&&null!==this.getLocationAgnosticId()?{locationAgnosticId:this.getLocationAgnosticId()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getCreationTime()&&null!==this.getCreationTime()?{creationTime:ns(is,this,ss).call(this,this.getCreationTime(),!1)}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:ns(is,this,ss).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},...void 0!==this.getTotalExclusiveUsageBytes()&&null!==this.getTotalExclusiveUsageBytes()?{totalExclusiveUsageBytes:this.getTotalExclusiveUsageBytes()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:ns(is,this,ss).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("locationAgnosticId"===t){if(void 0===this.locationAgnosticId||null===this.locationAgnosticId)return new E("locationAgnosticId","undefined or null");if(!F.validatePattern(this.locationAgnosticId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("locationAgnosticId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}return"creationTime"!==t||void 0!==this.creationTime&&null!==this.creationTime?"expirationTime"!==t||void 0!==this.expirationTime&&null!==this.expirationTime?"status"!==t||void 0!==this.status&&null!==this.status?"recoveryPointType"!==t||void 0!==this.recoveryPointType&&null!==this.recoveryPointType?"totalExclusiveUsageBytes"!==t||void 0!==this.totalExclusiveUsageBytes&&null!==this.totalExclusiveUsageBytes?new E(t,"no such property exists"):new E("totalExclusiveUsageBytes","undefined or null"):new E("recoveryPointType","undefined or null"):new E("status","undefined or null"):new E("expirationTime","undefined or null"):new E("creationTime","undefined or null")}}function ss(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}os.prototype.locationAgnosticId=void 0,os.prototype.name=void 0,os.prototype.creationTime=void 0,os.prototype.expirationTime=void 0,os.prototype.status=void 0,os.prototype.recoveryPointType=void 0,os.prototype.totalExclusiveUsageBytes=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var rs=new WeakSet;class as{constructor(e,t){var n,i;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(n=this,i=rs),i.add(n),this.domainManagerExtId=e,this.clusterExtIds=t,this.$objectType="dataprotection.v4.config.DisasterRecoveryLocation",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s;if(e){if(t=t||new as,e.hasOwnProperty("domainManagerExtId")&&null!==e.domainManagerExtId&&void 0!==e.domainManagerExtId&&t.setDomainManagerExtId(e.domainManagerExtId),e.hasOwnProperty("clusterExtIds")&&null!==e.clusterExtIds&&void 0!==e.clusterExtIds){for(s=[],i=e.clusterExtIds,o=0;o<i.length;o++)s.push(i[o]);t.setClusterExtIds(s)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getDomainManagerExtId(){return this.domainManagerExtId}setDomainManagerExtId(e){this.domainManagerExtId=e}getClusterExtIds(){return this.clusterExtIds}setClusterExtIds(e){this.clusterExtIds=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getDomainManagerExtId()&&null!==this.getDomainManagerExtId()?{domainManagerExtId:this.getDomainManagerExtId()}:{},...void 0!==this.getClusterExtIds()&&null!==this.getClusterExtIds()?{clusterExtIds:this.getClusterExtIds()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["domainManagerExtId","clusterExtIds"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("domainManagerExtId"===t){if(void 0===this.domainManagerExtId||null===this.domainManagerExtId)return new E("domainManagerExtId","undefined or null");if(!F.validatePattern(this.domainManagerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("domainManagerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("clusterExtIds"===t){if(void 0===this.clusterExtIds||null===this.clusterExtIds)return new E("clusterExtIds","undefined or null");if(!F.validateMaxItems(this.clusterExtIds,100))return new E("clusterExtIds","does not satisfy required maxItems constraint: 100")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}as.prototype.domainManagerExtId=void 0,as.prototype.clusterExtIds=void 0,as.prototype.$reserved=void 0,as.prototype.$objectType=void 0,as.prototype.$unknownFields=void 0;var ls=new WeakSet;class ds{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=ls),t.add(e),this.$objectType="dataprotection.v4.config.LocationReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ds,e.hasOwnProperty("locationExtId")&&null!==e.locationExtId&&void 0!==e.locationExtId&&t.setLocationExtId(e.locationExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getLocationExtId(){return this.locationExtId}setLocationExtId(e){this.locationExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getLocationExtId()&&null!==this.getLocationExtId()?{locationExtId:this.getLocationExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("locationExtId"===t){if(void 0===this.locationExtId||null===this.locationExtId)return new E("locationExtId","undefined or null");if(!F.validatePattern(this.locationExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("locationExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}ds.prototype.locationExtId=void 0,ds.prototype.$reserved=void 0,ds.prototype.$objectType=void 0,ds.prototype.$unknownFields=void 0;var us=new WeakSet;class cs{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=us),t.add(e),this.$objectType="dataprotection.v4.common.DiskRecoveryPoint",this.$reserved={$fv:"v4.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new cs,e.hasOwnProperty("diskRecoveryPointExtId")&&null!==e.diskRecoveryPointExtId&&void 0!==e.diskRecoveryPointExtId&&t.setDiskRecoveryPointExtId(e.diskRecoveryPointExtId),e.hasOwnProperty("diskExtId")&&null!==e.diskExtId&&void 0!==e.diskExtId&&t.setDiskExtId(e.diskExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getDiskRecoveryPointExtId(){return this.diskRecoveryPointExtId}setDiskRecoveryPointExtId(e){this.diskRecoveryPointExtId=e}getDiskExtId(){return this.diskExtId}setDiskExtId(e){this.diskExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getDiskRecoveryPointExtId()&&null!==this.getDiskRecoveryPointExtId()?{diskRecoveryPointExtId:this.getDiskRecoveryPointExtId()}:{},...void 0!==this.getDiskExtId()&&null!==this.getDiskExtId()?{diskExtId:this.getDiskExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("diskRecoveryPointExtId"===t){if(void 0===this.diskRecoveryPointExtId||null===this.diskRecoveryPointExtId)return new E("diskRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.diskRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("diskRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("diskExtId"===t){if(void 0===this.diskExtId||null===this.diskExtId)return new E("diskExtId","undefined or null");if(!F.validatePattern(this.diskExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("diskExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}cs.prototype.diskRecoveryPointExtId=void 0,cs.prototype.diskExtId=void 0,cs.prototype.$reserved=void 0,cs.prototype.$objectType=void 0,cs.prototype.$unknownFields=void 0;const hs={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",FULL_BACKUP:"FULL_BACKUP",COPY_BACKUP:"COPY_BACKUP",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(hs).find(t=>hs[t]===e);return null==t?hs.$UNKNOWN:hs[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case hs.$UNKNOWN:case hs.$REDACTED:case hs.FULL_BACKUP:case hs.COPY_BACKUP:return;default:throw new Error("Invalid : must be BackupType.{ $UNKNOWN|$REDACTED|FULL_BACKUP|COPY_BACKUP }")}}};Object.freeze(hs);const ps=hs;var vs=new WeakSet;class ys{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=vs),n.add(t),this.backupType=e,this.$objectType="dataprotection.v4.common.VssProperties",this.$reserved={$fv:"v4.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s;if(e){if(t=t||new ys,e.hasOwnProperty("backupType")&&null!==e.backupType&&void 0!==e.backupType&&t.setBackupType(ps.constructFromObject(e.backupType)),e.hasOwnProperty("shouldIncludeWriters")&&null!==e.shouldIncludeWriters&&void 0!==e.shouldIncludeWriters&&t.setShouldIncludeWriters(e.shouldIncludeWriters),e.hasOwnProperty("writers")&&null!==e.writers&&void 0!==e.writers){for(s=[],i=e.writers,o=0;o<i.length;o++)s.push(i[o]);t.setWriters(s)}if(e.hasOwnProperty("shouldStoreVssMetadata")&&null!==e.shouldStoreVssMetadata&&void 0!==e.shouldStoreVssMetadata&&t.setShouldStoreVssMetadata(e.shouldStoreVssMetadata),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getBackupType(){return this.backupType}setBackupType(e){this.backupType=e}getShouldIncludeWriters(){return this.shouldIncludeWriters}setShouldIncludeWriters(e){this.shouldIncludeWriters=e}getWriters(){return this.writers}setWriters(e){this.writers=e}getShouldStoreVssMetadata(){return this.shouldStoreVssMetadata}setShouldStoreVssMetadata(e){this.shouldStoreVssMetadata=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getBackupType()&&null!==this.getBackupType()?{backupType:this.getBackupType()}:{},...void 0!==this.getShouldIncludeWriters()&&null!==this.getShouldIncludeWriters()?{shouldIncludeWriters:this.getShouldIncludeWriters()}:{},...void 0!==this.getWriters()&&null!==this.getWriters()?{writers:this.getWriters()}:{},...void 0!==this.getShouldStoreVssMetadata()&&null!==this.getShouldStoreVssMetadata()?{shouldStoreVssMetadata:this.getShouldStoreVssMetadata()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["backupType"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("backupType"===t&&(void 0===this.backupType||null===this.backupType))return new E("backupType","undefined or null");if("shouldIncludeWriters"===t&&(void 0===this.shouldIncludeWriters||null===this.shouldIncludeWriters))return new E("shouldIncludeWriters","undefined or null");if("writers"===t){if(void 0===this.writers||null===this.writers)return new E("writers","undefined or null");if(!F.validateMaxItems(this.writers,25))return new E("writers","does not satisfy required maxItems constraint: 25");if(!F.validateMinItems(this.writers,1))return new E("writers","does not satisfy required minItems constraint: 1")}return"shouldStoreVssMetadata"!==t||void 0!==this.shouldStoreVssMetadata&&null!==this.shouldStoreVssMetadata?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("shouldStoreVssMetadata","undefined or null")}}function gs(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}ys.prototype.backupType=void 0,ys.prototype.shouldIncludeWriters=!1,ys.prototype.writers=void 0,ys.prototype.shouldStoreVssMetadata=!1,ys.prototype.$reserved=void 0,ys.prototype.$objectType=void 0,ys.prototype.$unknownFields=void 0;var fs=new WeakSet;class $s extends os{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=fs),t.add(e),this.$objectType="dataprotection.v4.common.BaseVmRecoveryPoint",this.$reserved={$fv:"v4.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r,a;if(e){if(t=t||new $s,os.constructFromObject(e,t,!0),e.hasOwnProperty("consistencyGroupExtId")&&null!==e.consistencyGroupExtId&&void 0!==e.consistencyGroupExtId&&t.setConsistencyGroupExtId(e.consistencyGroupExtId),e.hasOwnProperty("diskRecoveryPoints")&&null!==e.diskRecoveryPoints&&void 0!==e.diskRecoveryPoints){for(r=[],i=e.diskRecoveryPoints,s=0;s<i.length;s++)o=cs.constructFromObject(i[s],void 0),r.push(o);t.setDiskRecoveryPoints(r)}if(e.hasOwnProperty("vmExtId")&&null!==e.vmExtId&&void 0!==e.vmExtId&&t.setVmExtId(e.vmExtId),e.hasOwnProperty("vmCategories")&&null!==e.vmCategories&&void 0!==e.vmCategories){for(r=[],i=e.vmCategories,s=0;s<i.length;s++)r.push(i[s]);t.setVmCategories(r)}if(e.hasOwnProperty("applicationConsistentProperties")&&null!==e.applicationConsistentProperties&&void 0!==e.applicationConsistentProperties){if(a=e.applicationConsistentProperties.hasOwnProperty("$objectType")?e.applicationConsistentProperties.$objectType:typeof e.applicationConsistentProperties,"dataprotection.v4.common.VssProperties"!==a)throw"Unknown datatype "+a+" in data";t.setApplicationConsistentProperties(ys.constructFromObject(e.applicationConsistentProperties,void 0))}if(!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getConsistencyGroupExtId(){return this.consistencyGroupExtId}setConsistencyGroupExtId(e){this.consistencyGroupExtId=e}getDiskRecoveryPoints(){return this.diskRecoveryPoints}setDiskRecoveryPoints(e){this.diskRecoveryPoints=e}getVmExtId(){return this.vmExtId}setVmExtId(e){this.vmExtId=e}getVmCategories(){return this.vmCategories}setVmCategories(e){this.vmCategories=e}getApplicationConsistentProperties(){return this.applicationConsistentProperties}setApplicationConsistentProperties(e){this.applicationConsistentProperties=e}toJson(e){return!1===e?{...void 0!==this.getConsistencyGroupExtId()&&null!==this.getConsistencyGroupExtId()?{consistencyGroupExtId:this.getConsistencyGroupExtId()}:{},...void 0!==this.getDiskRecoveryPoints()&&null!==this.getDiskRecoveryPoints()?{diskRecoveryPoints:this.getDiskRecoveryPoints().map(e=>e.toJson(!1))}:{},...void 0!==this.getVmExtId()&&null!==this.getVmExtId()?{vmExtId:this.getVmExtId()}:{},...void 0!==this.getVmCategories()&&null!==this.getVmCategories()?{vmCategories:this.getVmCategories()}:{},...void 0!==this.getApplicationConsistentProperties()&&null!==this.getApplicationConsistentProperties()?{applicationConsistentProperties:void 0!==this.getApplicationConsistentProperties().toJson?this.getApplicationConsistentProperties().toJson(!1):Array.isArray(this.getApplicationConsistentProperties())?this.getApplicationConsistentProperties().map(e=>void 0!==e.toJson?e.toJson(!1):e):gs(fs,this,ws).call(this,this.getApplicationConsistentProperties(),!1)}:{},...void 0!==this.getLocationAgnosticId()&&null!==this.getLocationAgnosticId()?{locationAgnosticId:this.getLocationAgnosticId()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getCreationTime()&&null!==this.getCreationTime()?{creationTime:gs(fs,this,ms).call(this,this.getCreationTime(),!1)}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:gs(fs,this,ms).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},...void 0!==this.getTotalExclusiveUsageBytes()&&null!==this.getTotalExclusiveUsageBytes()?{totalExclusiveUsageBytes:this.getTotalExclusiveUsageBytes()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getVmExtId()&&null!==this.getVmExtId()?{vmExtId:this.getVmExtId()}:{},...void 0!==this.getApplicationConsistentProperties()&&null!==this.getApplicationConsistentProperties()?{applicationConsistentProperties:void 0!==this.getApplicationConsistentProperties().toJson?this.getApplicationConsistentProperties().toJson():Array.isArray(this.getApplicationConsistentProperties())?this.getApplicationConsistentProperties().map(e=>void 0!==e.toJson?e.toJson():e):gs(fs,this,ws).call(this,this.getApplicationConsistentProperties())}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:gs(fs,this,ms).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("consistencyGroupExtId"===t){if(void 0===this.consistencyGroupExtId||null===this.consistencyGroupExtId)return new E("consistencyGroupExtId","undefined or null");if(!F.validatePattern(this.consistencyGroupExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("consistencyGroupExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("diskRecoveryPoints"===t){if(void 0===this.diskRecoveryPoints||null===this.diskRecoveryPoints)return new E("diskRecoveryPoints","undefined or null");if(!F.validateMaxItems(this.diskRecoveryPoints,1024))return new E("diskRecoveryPoints","does not satisfy required maxItems constraint: 1024");if(!F.validateMinItems(this.diskRecoveryPoints,1))return new E("diskRecoveryPoints","does not satisfy required minItems constraint: 1")}if("vmExtId"===t){if(void 0===this.vmExtId||null===this.vmExtId)return new E("vmExtId","undefined or null");if(!F.validatePattern(this.vmExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("vmExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("vmCategories"===t){if(void 0===this.vmCategories||null===this.vmCategories)return new E("vmCategories","undefined or null");if(!F.validateMaxItems(this.vmCategories,256))return new E("vmCategories","does not satisfy required maxItems constraint: 256");if(!F.validateMinItems(this.vmCategories,1))return new E("vmCategories","does not satisfy required minItems constraint: 1")}return"applicationConsistentProperties"!==t||void 0!==this.applicationConsistentProperties&&null!==this.applicationConsistentProperties?new E(t,"no such property exists"):new E("applicationConsistentProperties","undefined or null")}}function ws(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function ms(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}$s.prototype.consistencyGroupExtId=void 0,$s.prototype.diskRecoveryPoints=void 0,$s.prototype.vmExtId=void 0,$s.prototype.vmCategories=void 0,$s.prototype.applicationConsistentProperties=void 0,os.prototype.locationAgnosticId=void 0,os.prototype.name=void 0,os.prototype.creationTime=void 0,os.prototype.expirationTime=void 0,os.prototype.status=void 0,os.prototype.recoveryPointType=void 0,os.prototype.totalExclusiveUsageBytes=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;const ks={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",AHV:"AHV",ESXI:"ESXI",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(ks).find(t=>ks[t]===e);return null==t?ks.$UNKNOWN:ks[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case ks.$UNKNOWN:case ks.$REDACTED:case ks.AHV:case ks.ESXI:return;default:throw new Error("Invalid : must be HypervisorType.{ $UNKNOWN|$REDACTED|AHV|ESXI }")}}};Object.freeze(ks);const Ts=ks;function bs(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Fs=new WeakSet;class Es extends $s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Fs),t.add(e),this.$objectType="dataprotection.v4.config.VmRecoveryPoint",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Es,$s.constructFromObject(e,t,!0),e.hasOwnProperty("hypervisorType")&&null!==e.hypervisorType&&void 0!==e.hypervisorType&&t.setHypervisorType(Ts.constructFromObject(e.hypervisorType)),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getHypervisorType(){return this.hypervisorType}setHypervisorType(e){this.hypervisorType=e}toJson(e){return!1===e?{...void 0!==this.getHypervisorType()&&null!==this.getHypervisorType()?{hypervisorType:this.getHypervisorType()}:{},...void 0!==this.getConsistencyGroupExtId()&&null!==this.getConsistencyGroupExtId()?{consistencyGroupExtId:this.getConsistencyGroupExtId()}:{},...void 0!==this.getDiskRecoveryPoints()&&null!==this.getDiskRecoveryPoints()?{diskRecoveryPoints:this.getDiskRecoveryPoints().map(e=>e.toJson(!1))}:{},...void 0!==this.getVmExtId()&&null!==this.getVmExtId()?{vmExtId:this.getVmExtId()}:{},...void 0!==this.getVmCategories()&&null!==this.getVmCategories()?{vmCategories:this.getVmCategories()}:{},...void 0!==this.getApplicationConsistentProperties()&&null!==this.getApplicationConsistentProperties()?{applicationConsistentProperties:void 0!==this.getApplicationConsistentProperties().toJson?this.getApplicationConsistentProperties().toJson(!1):Array.isArray(this.getApplicationConsistentProperties())?this.getApplicationConsistentProperties().map(e=>void 0!==e.toJson?e.toJson(!1):e):bs(Fs,this,js).call(this,this.getApplicationConsistentProperties(),!1)}:{},...void 0!==this.getLocationAgnosticId()&&null!==this.getLocationAgnosticId()?{locationAgnosticId:this.getLocationAgnosticId()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getCreationTime()&&null!==this.getCreationTime()?{creationTime:bs(Fs,this,Os).call(this,this.getCreationTime(),!1)}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:bs(Fs,this,Os).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},...void 0!==this.getTotalExclusiveUsageBytes()&&null!==this.getTotalExclusiveUsageBytes()?{totalExclusiveUsageBytes:this.getTotalExclusiveUsageBytes()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getHypervisorType()&&null!==this.getHypervisorType()?{hypervisorType:this.getHypervisorType()}:{},...void 0!==this.getVmExtId()&&null!==this.getVmExtId()?{vmExtId:this.getVmExtId()}:{},...void 0!==this.getApplicationConsistentProperties()&&null!==this.getApplicationConsistentProperties()?{applicationConsistentProperties:void 0!==this.getApplicationConsistentProperties().toJson?this.getApplicationConsistentProperties().toJson():Array.isArray(this.getApplicationConsistentProperties())?this.getApplicationConsistentProperties().map(e=>void 0!==e.toJson?e.toJson():e):bs(Fs,this,js).call(this,this.getApplicationConsistentProperties())}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:bs(Fs,this,Os).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"hypervisorType"!==t||void 0!==this.hypervisorType&&null!==this.hypervisorType?new E(t,"no such property exists"):new E("hypervisorType","undefined or null")}}function js(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function Os(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}Es.prototype.hypervisorType=void 0,$s.prototype.consistencyGroupExtId=void 0,$s.prototype.diskRecoveryPoints=void 0,$s.prototype.vmExtId=void 0,$s.prototype.vmCategories=void 0,$s.prototype.applicationConsistentProperties=void 0,os.prototype.locationAgnosticId=void 0,os.prototype.name=void 0,os.prototype.creationTime=void 0,os.prototype.expirationTime=void 0,os.prototype.status=void 0,os.prototype.recoveryPointType=void 0,os.prototype.totalExclusiveUsageBytes=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var Is=new WeakSet;class Ps extends Ae{constructor(e){var t,n;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(t=this,n=Is),n.add(t),this.volumeGroupExtId=e,this.$objectType="dataprotection.v4.config.VolumeGroupRecoveryPoint",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Ps,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("consistencyGroupExtId")&&null!==e.consistencyGroupExtId&&void 0!==e.consistencyGroupExtId&&t.setConsistencyGroupExtId(e.consistencyGroupExtId),e.hasOwnProperty("locationAgnosticId")&&null!==e.locationAgnosticId&&void 0!==e.locationAgnosticId&&t.setLocationAgnosticId(e.locationAgnosticId),e.hasOwnProperty("volumeGroupExtId")&&null!==e.volumeGroupExtId&&void 0!==e.volumeGroupExtId&&t.setVolumeGroupExtId(e.volumeGroupExtId),e.hasOwnProperty("volumeGroupCategories")&&null!==e.volumeGroupCategories&&void 0!==e.volumeGroupCategories){for(r=[],i=e.volumeGroupCategories,s=0;s<i.length;s++)r.push(i[s]);t.setVolumeGroupCategories(r)}if(e.hasOwnProperty("diskRecoveryPoints")&&null!==e.diskRecoveryPoints&&void 0!==e.diskRecoveryPoints){for(r=[],i=e.diskRecoveryPoints,s=0;s<i.length;s++)o=cs.constructFromObject(i[s],void 0),r.push(o);t.setDiskRecoveryPoints(r)}if(e.hasOwnProperty("totalExclusiveUsageBytes")&&null!==e.totalExclusiveUsageBytes&&void 0!==e.totalExclusiveUsageBytes&&t.setTotalExclusiveUsageBytes(e.totalExclusiveUsageBytes),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getConsistencyGroupExtId(){return this.consistencyGroupExtId}setConsistencyGroupExtId(e){this.consistencyGroupExtId=e}getLocationAgnosticId(){return this.locationAgnosticId}setLocationAgnosticId(e){this.locationAgnosticId=e}getVolumeGroupExtId(){return this.volumeGroupExtId}setVolumeGroupExtId(e){this.volumeGroupExtId=e}getVolumeGroupCategories(){return this.volumeGroupCategories}setVolumeGroupCategories(e){this.volumeGroupCategories=e}getDiskRecoveryPoints(){return this.diskRecoveryPoints}setDiskRecoveryPoints(e){this.diskRecoveryPoints=e}getTotalExclusiveUsageBytes(){return this.totalExclusiveUsageBytes}setTotalExclusiveUsageBytes(e){this.totalExclusiveUsageBytes=e}toJson(e){return!1===e?{...void 0!==this.getConsistencyGroupExtId()&&null!==this.getConsistencyGroupExtId()?{consistencyGroupExtId:this.getConsistencyGroupExtId()}:{},...void 0!==this.getLocationAgnosticId()&&null!==this.getLocationAgnosticId()?{locationAgnosticId:this.getLocationAgnosticId()}:{},...void 0!==this.getVolumeGroupExtId()&&null!==this.getVolumeGroupExtId()?{volumeGroupExtId:this.getVolumeGroupExtId()}:{},...void 0!==this.getVolumeGroupCategories()&&null!==this.getVolumeGroupCategories()?{volumeGroupCategories:this.getVolumeGroupCategories()}:{},...void 0!==this.getDiskRecoveryPoints()&&null!==this.getDiskRecoveryPoints()?{diskRecoveryPoints:this.getDiskRecoveryPoints().map(e=>e.toJson(!1))}:{},...void 0!==this.getTotalExclusiveUsageBytes()&&null!==this.getTotalExclusiveUsageBytes()?{totalExclusiveUsageBytes:this.getTotalExclusiveUsageBytes()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getVolumeGroupExtId()&&null!==this.getVolumeGroupExtId()?{volumeGroupExtId:this.getVolumeGroupExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["volumeGroupExtId"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("consistencyGroupExtId"===t){if(void 0===this.consistencyGroupExtId||null===this.consistencyGroupExtId)return new E("consistencyGroupExtId","undefined or null");if(!F.validatePattern(this.consistencyGroupExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("consistencyGroupExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("locationAgnosticId"===t){if(void 0===this.locationAgnosticId||null===this.locationAgnosticId)return new E("locationAgnosticId","undefined or null");if(!F.validatePattern(this.locationAgnosticId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("locationAgnosticId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("volumeGroupExtId"===t){if(void 0===this.volumeGroupExtId||null===this.volumeGroupExtId)return new E("volumeGroupExtId","undefined or null");if(!F.validatePattern(this.volumeGroupExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("volumeGroupExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("volumeGroupCategories"===t){if(void 0===this.volumeGroupCategories||null===this.volumeGroupCategories)return new E("volumeGroupCategories","undefined or null");if(!F.validateMaxItems(this.volumeGroupCategories,20))return new E("volumeGroupCategories","does not satisfy required maxItems constraint: 20");if(!F.validateMinItems(this.volumeGroupCategories,1))return new E("volumeGroupCategories","does not satisfy required minItems constraint: 1")}if("diskRecoveryPoints"===t){if(void 0===this.diskRecoveryPoints||null===this.diskRecoveryPoints)return new E("diskRecoveryPoints","undefined or null");if(!F.validateMaxItems(this.diskRecoveryPoints,1024))return new E("diskRecoveryPoints","does not satisfy required maxItems constraint: 1024");if(!F.validateMinItems(this.diskRecoveryPoints,1))return new E("diskRecoveryPoints","does not satisfy required minItems constraint: 1")}return"totalExclusiveUsageBytes"!==t||void 0!==this.totalExclusiveUsageBytes&&null!==this.totalExclusiveUsageBytes?new E(t,"no such property exists"):new E("totalExclusiveUsageBytes","undefined or null")}}function Rs(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Ps.prototype.consistencyGroupExtId=void 0,Ps.prototype.locationAgnosticId=void 0,Ps.prototype.volumeGroupExtId=void 0,Ps.prototype.volumeGroupCategories=void 0,Ps.prototype.diskRecoveryPoints=void 0,Ps.prototype.totalExclusiveUsageBytes=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var xs=new WeakSet;class As extends os{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=xs),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPoint",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new As,os.constructFromObject(e,t,!0),e.hasOwnProperty("ownerExtId")&&null!==e.ownerExtId&&void 0!==e.ownerExtId&&t.setOwnerExtId(e.ownerExtId),e.hasOwnProperty("locationReferences")&&null!==e.locationReferences&&void 0!==e.locationReferences){for(r=[],i=e.locationReferences,s=0;s<i.length;s++)o=ds.constructFromObject(i[s],void 0),r.push(o);t.setLocationReferences(r)}if(e.hasOwnProperty("vmRecoveryPoints")&&null!==e.vmRecoveryPoints&&void 0!==e.vmRecoveryPoints){for(r=[],i=e.vmRecoveryPoints,s=0;s<i.length;s++)o=Es.constructFromObject(i[s],void 0),r.push(o);t.setVmRecoveryPoints(r)}if(e.hasOwnProperty("volumeGroupRecoveryPoints")&&null!==e.volumeGroupRecoveryPoints&&void 0!==e.volumeGroupRecoveryPoints){for(r=[],i=e.volumeGroupRecoveryPoints,s=0;s<i.length;s++)o=Ps.constructFromObject(i[s],void 0),r.push(o);t.setVolumeGroupRecoveryPoints(r)}if(e.hasOwnProperty("isSecure")&&null!==e.isSecure&&void 0!==e.isSecure&&t.setIsSecure(e.isSecure),e.hasOwnProperty("sourceLocation")&&null!==e.sourceLocation&&void 0!==e.sourceLocation&&t.setSourceLocation(as.constructFromObject(e.sourceLocation)),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getOwnerExtId(){return this.ownerExtId}setOwnerExtId(e){this.ownerExtId=e}getLocationReferences(){return this.locationReferences}setLocationReferences(e){this.locationReferences=e}getVmRecoveryPoints(){return this.vmRecoveryPoints}setVmRecoveryPoints(e){this.vmRecoveryPoints=e}getVolumeGroupRecoveryPoints(){return this.volumeGroupRecoveryPoints}setVolumeGroupRecoveryPoints(e){this.volumeGroupRecoveryPoints=e}getIsSecure(){return this.isSecure}setIsSecure(e){this.isSecure=e}getSourceLocation(){return this.sourceLocation}setSourceLocation(e){this.sourceLocation=e}toJson(e){return!1===e?{...void 0!==this.getOwnerExtId()&&null!==this.getOwnerExtId()?{ownerExtId:this.getOwnerExtId()}:{},...void 0!==this.getLocationReferences()&&null!==this.getLocationReferences()?{locationReferences:this.getLocationReferences().map(e=>e.toJson(!1))}:{},...void 0!==this.getVmRecoveryPoints()&&null!==this.getVmRecoveryPoints()?{vmRecoveryPoints:this.getVmRecoveryPoints().map(e=>e.toJson(!1))}:{},...void 0!==this.getVolumeGroupRecoveryPoints()&&null!==this.getVolumeGroupRecoveryPoints()?{volumeGroupRecoveryPoints:this.getVolumeGroupRecoveryPoints().map(e=>e.toJson(!1))}:{},...void 0!==this.getIsSecure()&&null!==this.getIsSecure()?{isSecure:this.getIsSecure()}:{},...void 0!==this.getSourceLocation()&&null!==this.getSourceLocation()?{sourceLocation:this.getSourceLocation().toJson(!1)}:{},...void 0!==this.getLocationAgnosticId()&&null!==this.getLocationAgnosticId()?{locationAgnosticId:this.getLocationAgnosticId()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getCreationTime()&&null!==this.getCreationTime()?{creationTime:Rs(xs,this,Cs).call(this,this.getCreationTime(),!1)}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:Rs(xs,this,Cs).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},...void 0!==this.getTotalExclusiveUsageBytes()&&null!==this.getTotalExclusiveUsageBytes()?{totalExclusiveUsageBytes:this.getTotalExclusiveUsageBytes()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getVmRecoveryPoints()&&null!==this.getVmRecoveryPoints()?{vmRecoveryPoints:this.getVmRecoveryPoints().map(e=>e.toJson(!1))}:{},...void 0!==this.getVolumeGroupRecoveryPoints()&&null!==this.getVolumeGroupRecoveryPoints()?{volumeGroupRecoveryPoints:this.getVolumeGroupRecoveryPoints().map(e=>e.toJson(!1))}:{},...void 0!==this.getSourceLocation()&&null!==this.getSourceLocation()?{sourceLocation:this.getSourceLocation().toJson(!1)}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:Rs(xs,this,Cs).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("ownerExtId"===t){if(void 0===this.ownerExtId||null===this.ownerExtId)return new E("ownerExtId","undefined or null");if(!F.validatePattern(this.ownerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("ownerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("locationReferences"===t){if(void 0===this.locationReferences||null===this.locationReferences)return new E("locationReferences","undefined or null");if(!F.validateMaxItems(this.locationReferences,1))return new E("locationReferences","does not satisfy required maxItems constraint: 1");if(!F.validateMinItems(this.locationReferences,1))return new E("locationReferences","does not satisfy required minItems constraint: 1")}if("vmRecoveryPoints"===t){if(void 0===this.vmRecoveryPoints||null===this.vmRecoveryPoints)return new E("vmRecoveryPoints","undefined or null");if(!F.validateMaxItems(this.vmRecoveryPoints,32))return new E("vmRecoveryPoints","does not satisfy required maxItems constraint: 32");if(!F.validateMinItems(this.vmRecoveryPoints,1))return new E("vmRecoveryPoints","does not satisfy required minItems constraint: 1")}if("volumeGroupRecoveryPoints"===t){if(void 0===this.volumeGroupRecoveryPoints||null===this.volumeGroupRecoveryPoints)return new E("volumeGroupRecoveryPoints","undefined or null");if(!F.validateMaxItems(this.volumeGroupRecoveryPoints,32))return new E("volumeGroupRecoveryPoints","does not satisfy required maxItems constraint: 32");if(!F.validateMinItems(this.volumeGroupRecoveryPoints,1))return new E("volumeGroupRecoveryPoints","does not satisfy required minItems constraint: 1")}return"isSecure"!==t||void 0!==this.isSecure&&null!==this.isSecure?"sourceLocation"!==t||void 0!==this.sourceLocation&&null!==this.sourceLocation?new E(t,"no such property exists"):new E("sourceLocation","undefined or null"):new E("isSecure","undefined or null")}}function Cs(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}As.prototype.ownerExtId=void 0,As.prototype.locationReferences=void 0,As.prototype.vmRecoveryPoints=void 0,As.prototype.volumeGroupRecoveryPoints=void 0,As.prototype.isSecure=void 0,As.prototype.sourceLocation=void 0,os.prototype.locationAgnosticId=void 0,os.prototype.name=void 0,os.prototype.creationTime=void 0,os.prototype.expirationTime=void 0,os.prototype.status=void 0,os.prototype.recoveryPointType=void 0,os.prototype.totalExclusiveUsageBytes=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class Ss extends As{constructor(){super(),this.$objectType="dataprotection.v4.config.RecoveryPointProjection",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Ss,As.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function Ds(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Ns=new WeakSet;class Us extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ns),t.add(e),this.$objectType="dataprotection.v4.config.ListRecoveryPointsApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new Us,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++)switch(l){case"dataprotection.v4.config.RecoveryPoint":o=As.constructFromObject(i[r],void 0),a.push(o);break;case"dataprotection.v4.config.RecoveryPointProjection":o=Ss.constructFromObject(i[r],void 0),a.push(o);break;default:throw"Unknown list of type "+l+" in data"}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Ds(Ns,this,Ms).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Ds(Ns,this,Ms).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Ms(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Us.prototype.metadata=void 0,Us.prototype.data=void 0,Us.prototype.$reserved=void 0,Us.prototype.$objectType=void 0,Us.prototype.$unknownFields=void 0;var Js=new WeakSet;class _s{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Js),t.add(e),this.$objectType="vmm.v4.ahv.config.CategoryReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new _s,e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}_s.prototype.extId=void 0,_s.prototype.$reserved=void 0,_s.prototype.$objectType=void 0,_s.prototype.$unknownFields=void 0;var Ls=new WeakSet;class Gs{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Ls),t.add(e),this.$objectType="vmm.v4.ahv.config.OwnerReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Gs,e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Gs.prototype.extId=void 0,Gs.prototype.$reserved=void 0,Gs.prototype.$objectType=void 0,Gs.prototype.$unknownFields=void 0;var Vs=new WeakSet;class Ws{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Vs),t.add(e),this.$objectType="vmm.v4.ahv.config.OwnershipInfo",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Ws,e.hasOwnProperty("owner")&&null!==e.owner&&void 0!==e.owner&&t.setOwner(Gs.constructFromObject(e.owner)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getOwner(){return this.owner}setOwner(e){this.owner=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getOwner()&&null!==this.getOwner()?{owner:this.getOwner().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"owner"!==t||void 0!==this.owner&&null!==this.owner?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("owner","undefined or null")}}Ws.prototype.owner=void 0,Ws.prototype.$reserved=void 0,Ws.prototype.$objectType=void 0,Ws.prototype.$unknownFields=void 0;var Bs=new WeakSet;class qs{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Bs),t.add(e),this.$objectType="vmm.v4.ahv.config.VmRestoreGuestToolsSpecification",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new qs,e.hasOwnProperty("shouldClearInGuestVolumeGroupAttachments")&&null!==e.shouldClearInGuestVolumeGroupAttachments&&void 0!==e.shouldClearInGuestVolumeGroupAttachments&&t.setShouldClearInGuestVolumeGroupAttachments(e.shouldClearInGuestVolumeGroupAttachments),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getShouldClearInGuestVolumeGroupAttachments(){return this.shouldClearInGuestVolumeGroupAttachments}setShouldClearInGuestVolumeGroupAttachments(e){this.shouldClearInGuestVolumeGroupAttachments=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getShouldClearInGuestVolumeGroupAttachments()&&null!==this.getShouldClearInGuestVolumeGroupAttachments()?{shouldClearInGuestVolumeGroupAttachments:this.getShouldClearInGuestVolumeGroupAttachments()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"shouldClearInGuestVolumeGroupAttachments"!==t||void 0!==this.shouldClearInGuestVolumeGroupAttachments&&null!==this.shouldClearInGuestVolumeGroupAttachments?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("shouldClearInGuestVolumeGroupAttachments","undefined or null")}}qs.prototype.shouldClearInGuestVolumeGroupAttachments=!1,qs.prototype.$reserved=void 0,qs.prototype.$objectType=void 0,qs.prototype.$unknownFields=void 0;var zs=new WeakSet;class Ks{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=zs),t.add(e),this.$objectType="vmm.v4.ahv.config.GuestStaticIpSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Ks,e.hasOwnProperty("ipv4Address")&&null!==e.ipv4Address&&void 0!==e.ipv4Address&&t.setIpv4Address(Lo.constructFromObject(e.ipv4Address)),e.hasOwnProperty("gatewayIpv4AddressList")&&null!==e.gatewayIpv4AddressList&&void 0!==e.gatewayIpv4AddressList){for(r=[],i=e.gatewayIpv4AddressList,s=0;s<i.length;s++)o=Lo.constructFromObject(i[s],void 0),r.push(o);t.setGatewayIpv4AddressList(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getIpv4Address(){return this.ipv4Address}setIpv4Address(e){this.ipv4Address=e}getGatewayIpv4AddressList(){return this.gatewayIpv4AddressList}setGatewayIpv4AddressList(e){this.gatewayIpv4AddressList=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getIpv4Address()&&null!==this.getIpv4Address()?{ipv4Address:this.getIpv4Address().toJson(!1)}:{},...void 0!==this.getGatewayIpv4AddressList()&&null!==this.getGatewayIpv4AddressList()?{gatewayIpv4AddressList:this.getGatewayIpv4AddressList().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("ipv4Address"===t&&(void 0===this.ipv4Address||null===this.ipv4Address))return new E("ipv4Address","undefined or null");if("gatewayIpv4AddressList"===t){if(void 0===this.gatewayIpv4AddressList||null===this.gatewayIpv4AddressList)return new E("gatewayIpv4AddressList","undefined or null");if(!F.validateMaxItems(this.gatewayIpv4AddressList,100))return new E("gatewayIpv4AddressList","does not satisfy required maxItems constraint: 100")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Ks.prototype.ipv4Address=void 0,Ks.prototype.gatewayIpv4AddressList=void 0,Ks.prototype.$reserved=void 0,Ks.prototype.$objectType=void 0,Ks.prototype.$unknownFields=void 0;var Ys=new WeakSet;class Hs{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Ys),t.add(e),this.$objectType="vmm.v4.ahv.config.VmRestoreGuestNicInfoOverrideSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Hs,e.hasOwnProperty("guestStaticIpList")&&null!==e.guestStaticIpList&&void 0!==e.guestStaticIpList){for(r=[],i=e.guestStaticIpList,s=0;s<i.length;s++)o=Ks.constructFromObject(i[s],void 0),r.push(o);t.setGuestStaticIpList(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getGuestStaticIpList(){return this.guestStaticIpList}setGuestStaticIpList(e){this.guestStaticIpList=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getGuestStaticIpList()&&null!==this.getGuestStaticIpList()?{guestStaticIpList:this.getGuestStaticIpList().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("guestStaticIpList"===t){if(void 0===this.guestStaticIpList||null===this.guestStaticIpList)return new E("guestStaticIpList","undefined or null");if(!F.validateMaxItems(this.guestStaticIpList,100))return new E("guestStaticIpList","does not satisfy required maxItems constraint: 100")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Hs.prototype.guestStaticIpList=void 0,Hs.prototype.$reserved=void 0,Hs.prototype.$objectType=void 0,Hs.prototype.$unknownFields=void 0;var Xs=new WeakSet;class Zs{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Xs),t.add(e),this.$objectType="vmm.v4.ahv.config.SubnetReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Zs,e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Zs.prototype.extId=void 0,Zs.prototype.$reserved=void 0,Zs.prototype.$objectType=void 0,Zs.prototype.$unknownFields=void 0;var Qs=new WeakSet;class er{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Qs),t.add(e),this.$objectType="vmm.v4.ahv.config.VmRestoreIpv4ConfigOverrideSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new er,e.hasOwnProperty("ipAddress")&&null!==e.ipAddress&&void 0!==e.ipAddress&&t.setIpAddress(Lo.constructFromObject(e.ipAddress)),e.hasOwnProperty("secondaryIpAddressList")&&null!==e.secondaryIpAddressList&&void 0!==e.secondaryIpAddressList){for(r=[],i=e.secondaryIpAddressList,s=0;s<i.length;s++)o=Lo.constructFromObject(i[s],void 0),r.push(o);t.setSecondaryIpAddressList(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getIpAddress(){return this.ipAddress}setIpAddress(e){this.ipAddress=e}getSecondaryIpAddressList(){return this.secondaryIpAddressList}setSecondaryIpAddressList(e){this.secondaryIpAddressList=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getIpAddress()&&null!==this.getIpAddress()?{ipAddress:this.getIpAddress().toJson(!1)}:{},...void 0!==this.getSecondaryIpAddressList()&&null!==this.getSecondaryIpAddressList()?{secondaryIpAddressList:this.getSecondaryIpAddressList().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("ipAddress"===t&&(void 0===this.ipAddress||null===this.ipAddress))return new E("ipAddress","undefined or null");if("secondaryIpAddressList"===t){if(void 0===this.secondaryIpAddressList||null===this.secondaryIpAddressList)return new E("secondaryIpAddressList","undefined or null");if(!F.validateMaxItems(this.secondaryIpAddressList,100))return new E("secondaryIpAddressList","does not satisfy required maxItems constraint: 100")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}er.prototype.ipAddress=void 0,er.prototype.secondaryIpAddressList=void 0,er.prototype.$reserved=void 0,er.prototype.$objectType=void 0,er.prototype.$unknownFields=void 0;var tr=new WeakSet;class nr{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=tr),t.add(e),this.$objectType="vmm.v4.ahv.config.VmRestoreVirtualEthernetNicNetworkInfoOverrideSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new nr,e.hasOwnProperty("subnet")&&null!==e.subnet&&void 0!==e.subnet&&t.setSubnet(Zs.constructFromObject(e.subnet)),e.hasOwnProperty("ipv4Config")&&null!==e.ipv4Config&&void 0!==e.ipv4Config&&t.setIpv4Config(er.constructFromObject(e.ipv4Config)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getSubnet(){return this.subnet}setSubnet(e){this.subnet=e}getIpv4Config(){return this.ipv4Config}setIpv4Config(e){this.ipv4Config=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getSubnet()&&null!==this.getSubnet()?{subnet:this.getSubnet().toJson(!1)}:{},...void 0!==this.getIpv4Config()&&null!==this.getIpv4Config()?{ipv4Config:this.getIpv4Config().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"subnet"!==t||void 0!==this.subnet&&null!==this.subnet?"ipv4Config"!==t||void 0!==this.ipv4Config&&null!==this.ipv4Config?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("ipv4Config","undefined or null"):new E("subnet","undefined or null")}}nr.prototype.subnet=void 0,nr.prototype.ipv4Config=void 0,nr.prototype.$reserved=void 0,nr.prototype.$objectType=void 0,nr.prototype.$unknownFields=void 0;var ir=new WeakSet;class or{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=ir),t.add(e),this.$objectType="vmm.v4.ahv.config.VmRestoreVirtualEthernetNicOverrideSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new or,e.hasOwnProperty("macAddress")&&null!==e.macAddress&&void 0!==e.macAddress&&t.setMacAddress(e.macAddress),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMacAddress(){return this.macAddress}setMacAddress(e){this.macAddress=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getMacAddress()&&null!==this.getMacAddress()?{macAddress:this.getMacAddress()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("macAddress"===t){if(void 0===this.macAddress||null===this.macAddress)return new E("macAddress","undefined or null");if(!F.validatePattern(this.macAddress,/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/))return new E("macAddress","does not satisfy required pattern: /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}function sr(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}or.prototype.macAddress=void 0,or.prototype.$reserved=void 0,or.prototype.$objectType=void 0,or.prototype.$unknownFields=void 0;var rr=new WeakSet;class ar{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=rr),n.add(t),this.nicExtId=e,this.$objectType="vmm.v4.ahv.config.VmRestoreNicConfigOverrideParams",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new ar,e.hasOwnProperty("nicExtId")&&null!==e.nicExtId&&void 0!==e.nicExtId&&t.setNicExtId(e.nicExtId),e.hasOwnProperty("nicBackingInfo")&&null!==e.nicBackingInfo&&void 0!==e.nicBackingInfo){if(i=e.nicBackingInfo.hasOwnProperty("$objectType")?e.nicBackingInfo.$objectType:typeof e.nicBackingInfo,"vmm.v4.ahv.config.VmRestoreVirtualEthernetNicOverrideSpec"!==i)throw"Unknown datatype "+i+" in data";t.setNicBackingInfo(or.constructFromObject(e.nicBackingInfo,void 0))}if(e.hasOwnProperty("nicNetworkInfo")&&null!==e.nicNetworkInfo&&void 0!==e.nicNetworkInfo){if(i=e.nicNetworkInfo.hasOwnProperty("$objectType")?e.nicNetworkInfo.$objectType:typeof e.nicNetworkInfo,"vmm.v4.ahv.config.VmRestoreVirtualEthernetNicNetworkInfoOverrideSpec"!==i)throw"Unknown datatype "+i+" in data";t.setNicNetworkInfo(nr.constructFromObject(e.nicNetworkInfo,void 0))}if(e.hasOwnProperty("guestNicInfo")&&null!==e.guestNicInfo&&void 0!==e.guestNicInfo&&t.setGuestNicInfo(Hs.constructFromObject(e.guestNicInfo)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getNicExtId(){return this.nicExtId}setNicExtId(e){this.nicExtId=e}getNicBackingInfo(){return this.nicBackingInfo}setNicBackingInfo(e){this.nicBackingInfo=e}getNicNetworkInfo(){return this.nicNetworkInfo}setNicNetworkInfo(e){this.nicNetworkInfo=e}getGuestNicInfo(){return this.guestNicInfo}setGuestNicInfo(e){this.guestNicInfo=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getNicExtId()&&null!==this.getNicExtId()?{nicExtId:this.getNicExtId()}:{},...void 0!==this.getNicBackingInfo()&&null!==this.getNicBackingInfo()?{nicBackingInfo:void 0!==this.getNicBackingInfo().toJson?this.getNicBackingInfo().toJson(!1):Array.isArray(this.getNicBackingInfo())?this.getNicBackingInfo().map(e=>void 0!==e.toJson?e.toJson(!1):e):sr(rr,this,lr).call(this,this.getNicBackingInfo(),!1)}:{},...void 0!==this.getNicNetworkInfo()&&null!==this.getNicNetworkInfo()?{nicNetworkInfo:void 0!==this.getNicNetworkInfo().toJson?this.getNicNetworkInfo().toJson(!1):Array.isArray(this.getNicNetworkInfo())?this.getNicNetworkInfo().map(e=>void 0!==e.toJson?e.toJson(!1):e):sr(rr,this,lr).call(this,this.getNicNetworkInfo(),!1)}:{},...void 0!==this.getGuestNicInfo()&&null!==this.getGuestNicInfo()?{guestNicInfo:this.getGuestNicInfo().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getNicExtId()&&null!==this.getNicExtId()?{nicExtId:this.getNicExtId()}:{},...void 0!==this.getNicBackingInfo()&&null!==this.getNicBackingInfo()?{nicBackingInfo:void 0!==this.getNicBackingInfo().toJson?this.getNicBackingInfo().toJson():Array.isArray(this.getNicBackingInfo())?this.getNicBackingInfo().map(e=>void 0!==e.toJson?e.toJson():e):sr(rr,this,lr).call(this,this.getNicBackingInfo())}:{},...void 0!==this.getNicNetworkInfo()&&null!==this.getNicNetworkInfo()?{nicNetworkInfo:void 0!==this.getNicNetworkInfo().toJson?this.getNicNetworkInfo().toJson():Array.isArray(this.getNicNetworkInfo())?this.getNicNetworkInfo().map(e=>void 0!==e.toJson?e.toJson():e):sr(rr,this,lr).call(this,this.getNicNetworkInfo())}:{},...void 0!==this.getGuestNicInfo()&&null!==this.getGuestNicInfo()?{guestNicInfo:this.getGuestNicInfo().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["nicExtId"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("nicExtId"===t){if(void 0===this.nicExtId||null===this.nicExtId)return new E("nicExtId","undefined or null");if(!F.validatePattern(this.nicExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("nicExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"nicBackingInfo"!==t||void 0!==this.nicBackingInfo&&null!==this.nicBackingInfo?"nicNetworkInfo"!==t||void 0!==this.nicNetworkInfo&&null!==this.nicNetworkInfo?"guestNicInfo"!==t||void 0!==this.guestNicInfo&&null!==this.guestNicInfo?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("guestNicInfo","undefined or null"):new E("nicNetworkInfo","undefined or null"):new E("nicBackingInfo","undefined or null")}}function lr(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}ar.prototype.nicExtId=void 0,ar.prototype.nicBackingInfo=void 0,ar.prototype.nicNetworkInfo=void 0,ar.prototype.guestNicInfo=void 0,ar.prototype.$reserved=void 0,ar.prototype.$objectType=void 0,ar.prototype.$unknownFields=void 0;var dr=new WeakSet;class ur{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=dr),t.add(e),this.$objectType="vmm.v4.ahv.config.VmRestoreNicConfigSpecification",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new ur,e.hasOwnProperty("nicRemoveList")&&null!==e.nicRemoveList&&void 0!==e.nicRemoveList){for(r=[],i=e.nicRemoveList,s=0;s<i.length;s++)r.push(i[s]);t.setNicRemoveList(r)}if(e.hasOwnProperty("nicOverrideList")&&null!==e.nicOverrideList&&void 0!==e.nicOverrideList){for(r=[],i=e.nicOverrideList,s=0;s<i.length;s++)o=ar.constructFromObject(i[s],void 0),r.push(o);t.setNicOverrideList(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getNicRemoveList(){return this.nicRemoveList}setNicRemoveList(e){this.nicRemoveList=e}getNicOverrideList(){return this.nicOverrideList}setNicOverrideList(e){this.nicOverrideList=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getNicRemoveList()&&null!==this.getNicRemoveList()?{nicRemoveList:this.getNicRemoveList()}:{},...void 0!==this.getNicOverrideList()&&null!==this.getNicOverrideList()?{nicOverrideList:this.getNicOverrideList().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("nicRemoveList"===t){if(void 0===this.nicRemoveList||null===this.nicRemoveList)return new E("nicRemoveList","undefined or null");if(!F.validateMaxItems(this.nicRemoveList,64))return new E("nicRemoveList","does not satisfy required maxItems constraint: 64")}if("nicOverrideList"===t){if(void 0===this.nicOverrideList||null===this.nicOverrideList)return new E("nicOverrideList","undefined or null");if(!F.validateMaxItems(this.nicOverrideList,64))return new E("nicOverrideList","does not satisfy required maxItems constraint: 64")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}ur.prototype.nicRemoveList=void 0,ur.prototype.nicOverrideList=void 0,ur.prototype.$reserved=void 0,ur.prototype.$objectType=void 0,ur.prototype.$unknownFields=void 0;var cr=new WeakSet;class hr{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=cr),t.add(e),this.$objectType="vmm.v4.ahv.config.VmConfigOverrideSpecification",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new hr,e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("description")&&null!==e.description&&void 0!==e.description&&t.setDescription(e.description),e.hasOwnProperty("nicSpec")&&null!==e.nicSpec&&void 0!==e.nicSpec&&t.setNicSpec(ur.constructFromObject(e.nicSpec)),e.hasOwnProperty("categories")&&null!==e.categories&&void 0!==e.categories){for(r=[],i=e.categories,s=0;s<i.length;s++)o=_s.constructFromObject(i[s],void 0),r.push(o);t.setCategories(r)}if(e.hasOwnProperty("ownershipInfo")&&null!==e.ownershipInfo&&void 0!==e.ownershipInfo&&t.setOwnershipInfo(Ws.constructFromObject(e.ownershipInfo)),e.hasOwnProperty("guestToolsSpec")&&null!==e.guestToolsSpec&&void 0!==e.guestToolsSpec&&t.setGuestToolsSpec(qs.constructFromObject(e.guestToolsSpec)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getDescription(){return this.description}setDescription(e){this.description=e}getNicSpec(){return this.nicSpec}setNicSpec(e){this.nicSpec=e}getCategories(){return this.categories}setCategories(e){this.categories=e}getOwnershipInfo(){return this.ownershipInfo}setOwnershipInfo(e){this.ownershipInfo=e}getGuestToolsSpec(){return this.guestToolsSpec}setGuestToolsSpec(e){this.guestToolsSpec=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getDescription()&&null!==this.getDescription()?{description:this.getDescription()}:{},...void 0!==this.getNicSpec()&&null!==this.getNicSpec()?{nicSpec:this.getNicSpec().toJson(!1)}:{},...void 0!==this.getCategories()&&null!==this.getCategories()?{categories:this.getCategories().map(e=>e.toJson(!1))}:{},...void 0!==this.getOwnershipInfo()&&null!==this.getOwnershipInfo()?{ownershipInfo:this.getOwnershipInfo().toJson(!1)}:{},...void 0!==this.getGuestToolsSpec()&&null!==this.getGuestToolsSpec()?{guestToolsSpec:this.getGuestToolsSpec().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,80))return new E("name","does not satisfy required maxLength constraint: 80")}if("description"===t&&(void 0===this.description||null===this.description))return new E("description","undefined or null");if("nicSpec"===t&&(void 0===this.nicSpec||null===this.nicSpec))return new E("nicSpec","undefined or null");if("categories"===t){if(void 0===this.categories||null===this.categories)return new E("categories","undefined or null");if(!F.validateMaxItems(this.categories,256))return new E("categories","does not satisfy required maxItems constraint: 256")}return"ownershipInfo"!==t||void 0!==this.ownershipInfo&&null!==this.ownershipInfo?"guestToolsSpec"!==t||void 0!==this.guestToolsSpec&&null!==this.guestToolsSpec?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("guestToolsSpec","undefined or null"):new E("ownershipInfo","undefined or null")}}hr.prototype.name=void 0,hr.prototype.description=void 0,hr.prototype.nicSpec=void 0,hr.prototype.categories=void 0,hr.prototype.ownershipInfo=void 0,hr.prototype.guestToolsSpec=void 0,hr.prototype.$reserved=void 0,hr.prototype.$objectType=void 0,hr.prototype.$unknownFields=void 0;class pr extends hr{constructor(){super(),this.$objectType="dataprotection.v4.config.AhvVmOverrideSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new pr,hr.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}var vr=new WeakSet;class yr{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=vr),t.add(e),this.$objectType="dataprotection.v4.config.EsxiVmOverrideSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new yr,e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,80))return new E("name","does not satisfy required maxLength constraint: 80")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}function gr(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}yr.prototype.name=void 0,yr.prototype.$reserved=void 0,yr.prototype.$objectType=void 0,yr.prototype.$unknownFields=void 0;var fr=new WeakSet;class $r{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=fr),t.add(e),this.$objectType="dataprotection.v4.config.VmRecoveryPointRestoreOverride",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new $r,e.hasOwnProperty("vmRecoveryPointExtId")&&null!==e.vmRecoveryPointExtId&&void 0!==e.vmRecoveryPointExtId&&t.setVmRecoveryPointExtId(e.vmRecoveryPointExtId),e.hasOwnProperty("isStrictMode")&&null!==e.isStrictMode&&void 0!==e.isStrictMode&&t.setIsStrictMode(e.isStrictMode),e.hasOwnProperty("vmOverrideSpec")&&null!==e.vmOverrideSpec&&void 0!==e.vmOverrideSpec)switch(i=e.vmOverrideSpec.hasOwnProperty("$objectType")?e.vmOverrideSpec.$objectType:typeof e.vmOverrideSpec,i){case"dataprotection.v4.config.AhvVmOverrideSpec":t.setVmOverrideSpec(pr.constructFromObject(e.vmOverrideSpec,void 0));break;case"dataprotection.v4.config.EsxiVmOverrideSpec":t.setVmOverrideSpec(yr.constructFromObject(e.vmOverrideSpec,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getVmRecoveryPointExtId(){return this.vmRecoveryPointExtId}setVmRecoveryPointExtId(e){this.vmRecoveryPointExtId=e}getIsStrictMode(){return this.isStrictMode}setIsStrictMode(e){this.isStrictMode=e}getVmOverrideSpec(){return this.vmOverrideSpec}setVmOverrideSpec(e){this.vmOverrideSpec=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getVmRecoveryPointExtId()&&null!==this.getVmRecoveryPointExtId()?{vmRecoveryPointExtId:this.getVmRecoveryPointExtId()}:{},...void 0!==this.getIsStrictMode()&&null!==this.getIsStrictMode()?{isStrictMode:this.getIsStrictMode()}:{},...void 0!==this.getVmOverrideSpec()&&null!==this.getVmOverrideSpec()?{vmOverrideSpec:void 0!==this.getVmOverrideSpec().toJson?this.getVmOverrideSpec().toJson(!1):Array.isArray(this.getVmOverrideSpec())?this.getVmOverrideSpec().map(e=>void 0!==e.toJson?e.toJson(!1):e):gr(fr,this,wr).call(this,this.getVmOverrideSpec(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getVmRecoveryPointExtId()&&null!==this.getVmRecoveryPointExtId()?{vmRecoveryPointExtId:this.getVmRecoveryPointExtId()}:{},...void 0!==this.getIsStrictMode()&&null!==this.getIsStrictMode()?{isStrictMode:this.getIsStrictMode()}:{},...void 0!==this.getVmOverrideSpec()&&null!==this.getVmOverrideSpec()?{vmOverrideSpec:void 0!==this.getVmOverrideSpec().toJson?this.getVmOverrideSpec().toJson():Array.isArray(this.getVmOverrideSpec())?this.getVmOverrideSpec().map(e=>void 0!==e.toJson?e.toJson():e):gr(fr,this,wr).call(this,this.getVmOverrideSpec())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("vmRecoveryPointExtId"===t){if(void 0===this.vmRecoveryPointExtId||null===this.vmRecoveryPointExtId)return new E("vmRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.vmRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("vmRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"isStrictMode"!==t||void 0!==this.isStrictMode&&null!==this.isStrictMode?"vmOverrideSpec"!==t||void 0!==this.vmOverrideSpec&&null!==this.vmOverrideSpec?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("vmOverrideSpec","undefined or null"):new E("isStrictMode","undefined or null")}}function wr(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}$r.prototype.vmRecoveryPointExtId=void 0,$r.prototype.isStrictMode=!1,$r.prototype.vmOverrideSpec=void 0,$r.prototype.$reserved=void 0,$r.prototype.$objectType=void 0,$r.prototype.$unknownFields=void 0;var mr=new WeakSet;class kr{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=mr),t.add(e),this.$objectType="dataprotection.v4.config.VolumeGroupOverrideSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new kr,e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}kr.prototype.name=void 0,kr.prototype.$reserved=void 0,kr.prototype.$objectType=void 0,kr.prototype.$unknownFields=void 0;var Tr=new WeakSet;class br{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Tr),t.add(e),this.$objectType="dataprotection.v4.config.VolumeGroupRecoveryPointRestoreOverride",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new br,e.hasOwnProperty("volumeGroupRecoveryPointExtId")&&null!==e.volumeGroupRecoveryPointExtId&&void 0!==e.volumeGroupRecoveryPointExtId&&t.setVolumeGroupRecoveryPointExtId(e.volumeGroupRecoveryPointExtId),e.hasOwnProperty("volumeGroupOverrideSpec")&&null!==e.volumeGroupOverrideSpec&&void 0!==e.volumeGroupOverrideSpec&&t.setVolumeGroupOverrideSpec(kr.constructFromObject(e.volumeGroupOverrideSpec)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getVolumeGroupRecoveryPointExtId(){return this.volumeGroupRecoveryPointExtId}setVolumeGroupRecoveryPointExtId(e){this.volumeGroupRecoveryPointExtId=e}getVolumeGroupOverrideSpec(){return this.volumeGroupOverrideSpec}setVolumeGroupOverrideSpec(e){this.volumeGroupOverrideSpec=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getVolumeGroupRecoveryPointExtId()&&null!==this.getVolumeGroupRecoveryPointExtId()?{volumeGroupRecoveryPointExtId:this.getVolumeGroupRecoveryPointExtId()}:{},...void 0!==this.getVolumeGroupOverrideSpec()&&null!==this.getVolumeGroupOverrideSpec()?{volumeGroupOverrideSpec:this.getVolumeGroupOverrideSpec().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("volumeGroupRecoveryPointExtId"===t){if(void 0===this.volumeGroupRecoveryPointExtId||null===this.volumeGroupRecoveryPointExtId)return new E("volumeGroupRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.volumeGroupRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("volumeGroupRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"volumeGroupOverrideSpec"!==t||void 0!==this.volumeGroupOverrideSpec&&null!==this.volumeGroupOverrideSpec?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("volumeGroupOverrideSpec","undefined or null")}}br.prototype.volumeGroupRecoveryPointExtId=void 0,br.prototype.volumeGroupOverrideSpec=void 0,br.prototype.$reserved=void 0,br.prototype.$objectType=void 0,br.prototype.$unknownFields=void 0;var Fr=new WeakSet;class Er{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Fr),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPointRestorationSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Er,e.hasOwnProperty("clusterExtId")&&null!==e.clusterExtId&&void 0!==e.clusterExtId&&t.setClusterExtId(e.clusterExtId),e.hasOwnProperty("vmRecoveryPointRestoreOverrides")&&null!==e.vmRecoveryPointRestoreOverrides&&void 0!==e.vmRecoveryPointRestoreOverrides){for(r=[],i=e.vmRecoveryPointRestoreOverrides,s=0;s<i.length;s++)o=$r.constructFromObject(i[s],void 0),r.push(o);t.setVmRecoveryPointRestoreOverrides(r)}if(e.hasOwnProperty("volumeGroupRecoveryPointRestoreOverrides")&&null!==e.volumeGroupRecoveryPointRestoreOverrides&&void 0!==e.volumeGroupRecoveryPointRestoreOverrides){for(r=[],i=e.volumeGroupRecoveryPointRestoreOverrides,s=0;s<i.length;s++)o=br.constructFromObject(i[s],void 0),r.push(o);t.setVolumeGroupRecoveryPointRestoreOverrides(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getClusterExtId(){return this.clusterExtId}setClusterExtId(e){this.clusterExtId=e}getVmRecoveryPointRestoreOverrides(){return this.vmRecoveryPointRestoreOverrides}setVmRecoveryPointRestoreOverrides(e){this.vmRecoveryPointRestoreOverrides=e}getVolumeGroupRecoveryPointRestoreOverrides(){return this.volumeGroupRecoveryPointRestoreOverrides}setVolumeGroupRecoveryPointRestoreOverrides(e){this.volumeGroupRecoveryPointRestoreOverrides=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},...void 0!==this.getVmRecoveryPointRestoreOverrides()&&null!==this.getVmRecoveryPointRestoreOverrides()?{vmRecoveryPointRestoreOverrides:this.getVmRecoveryPointRestoreOverrides().map(e=>e.toJson(!1))}:{},...void 0!==this.getVolumeGroupRecoveryPointRestoreOverrides()&&null!==this.getVolumeGroupRecoveryPointRestoreOverrides()?{volumeGroupRecoveryPointRestoreOverrides:this.getVolumeGroupRecoveryPointRestoreOverrides().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("clusterExtId"===t){if(void 0===this.clusterExtId||null===this.clusterExtId)return new E("clusterExtId","undefined or null");if(!F.validatePattern(this.clusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("vmRecoveryPointRestoreOverrides"===t){if(void 0===this.vmRecoveryPointRestoreOverrides||null===this.vmRecoveryPointRestoreOverrides)return new E("vmRecoveryPointRestoreOverrides","undefined or null");if(!F.validateMaxItems(this.vmRecoveryPointRestoreOverrides,32))return new E("vmRecoveryPointRestoreOverrides","does not satisfy required maxItems constraint: 32");if(!F.validateMinItems(this.vmRecoveryPointRestoreOverrides,1))return new E("vmRecoveryPointRestoreOverrides","does not satisfy required minItems constraint: 1")}if("volumeGroupRecoveryPointRestoreOverrides"===t){if(void 0===this.volumeGroupRecoveryPointRestoreOverrides||null===this.volumeGroupRecoveryPointRestoreOverrides)return new E("volumeGroupRecoveryPointRestoreOverrides","undefined or null");if(!F.validateMaxItems(this.volumeGroupRecoveryPointRestoreOverrides,32))return new E("volumeGroupRecoveryPointRestoreOverrides","does not satisfy required maxItems constraint: 32");if(!F.validateMinItems(this.volumeGroupRecoveryPointRestoreOverrides,1))return new E("volumeGroupRecoveryPointRestoreOverrides","does not satisfy required minItems constraint: 1")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}function jr(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Er.prototype.clusterExtId=void 0,Er.prototype.vmRecoveryPointRestoreOverrides=void 0,Er.prototype.volumeGroupRecoveryPointRestoreOverrides=void 0,Er.prototype.$reserved=void 0,Er.prototype.$objectType=void 0,Er.prototype.$unknownFields=void 0;var Or=new WeakSet;class Ir extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Or),t.add(e),this.$objectType="dataprotection.v4.config.GetRecoveryPointApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Ir,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"dataprotection.v4.config.RecoveryPoint":t.setData(As.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):jr(Or,this,Pr).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):jr(Or,this,Pr).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Pr(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Ir.prototype.metadata=void 0,Ir.prototype.data=void 0,Ir.prototype.$reserved=void 0,Ir.prototype.$objectType=void 0,Ir.prototype.$unknownFields=void 0;const Rr={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",ZEROED:"ZEROED",REGULAR:"REGULAR",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Rr).find(t=>Rr[t]===e);return null==t?Rr.$UNKNOWN:Rr[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Rr.$UNKNOWN:case Rr.$REDACTED:case Rr.ZEROED:case Rr.REGULAR:return;default:throw new Error("Invalid : must be RegionType.{ $UNKNOWN|$REDACTED|ZEROED|REGULAR }")}}};Object.freeze(Rr);const xr=Rr;var Ar=new WeakSet;class Cr{constructor(e,t,n){var i,o;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(i=this,o=Ar),o.add(i),this.offset=e,this.length=t,this.regionType=n,this.$objectType="dataprotection.v4.content.ChangedRegion",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Cr,e.hasOwnProperty("offset")&&null!==e.offset&&void 0!==e.offset&&t.setOffset(e.offset),e.hasOwnProperty("length")&&null!==e.length&&void 0!==e.length&&t.setLength(e.length),e.hasOwnProperty("regionType")&&null!==e.regionType&&void 0!==e.regionType&&t.setRegionType(xr.constructFromObject(e.regionType)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getOffset(){return this.offset}setOffset(e){this.offset=e}getLength(){return this.length}setLength(e){this.length=e}getRegionType(){return this.regionType}setRegionType(e){this.regionType=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getOffset()&&null!==this.getOffset()?{offset:this.getOffset()}:{},...void 0!==this.getLength()&&null!==this.getLength()?{length:this.getLength()}:{},...void 0!==this.getRegionType()&&null!==this.getRegionType()?{regionType:this.getRegionType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["offset","length","regionType"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"offset"!==t||void 0!==this.offset&&null!==this.offset?"length"!==t||void 0!==this.length&&null!==this.length?"regionType"!==t||void 0!==this.regionType&&null!==this.regionType?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("regionType","undefined or null"):new E("length","undefined or null"):new E("offset","undefined or null")}}function Sr(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Cr.prototype.offset=void 0,Cr.prototype.length=void 0,Cr.prototype.regionType=void 0,Cr.prototype.$reserved=void 0,Cr.prototype.$objectType=void 0,Cr.prototype.$unknownFields=void 0;var Dr=new WeakSet;class Nr extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Dr),t.add(e),this.$objectType="dataprotection.v4.content.ChangedVmRegionsApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new Nr,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++){if("dataprotection.v4.content.ChangedRegion"!==l)throw"Unknown list of type "+l+" in data";o=Cr.constructFromObject(i[r],void 0),a.push(o)}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Sr(Dr,this,Ur).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Sr(Dr,this,Ur).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Ur(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function Mr(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Nr.prototype.metadata=void 0,Nr.prototype.data=void 0,Nr.prototype.$reserved=void 0,Nr.prototype.$objectType=void 0,Nr.prototype.$unknownFields=void 0;var Jr=new WeakSet;class _r{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=Jr),n.add(t),this.expirationTime=e,this.$objectType="dataprotection.v4.config.ExpirationTimeSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new _r,e.hasOwnProperty("expirationTime")&&null!==e.expirationTime&&void 0!==e.expirationTime&&t.setExpirationTime(e.expirationTime),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExpirationTime(){return this.expirationTime}setExpirationTime(e){this.expirationTime=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:Mr(Jr,this,Lr).call(this,this.getExpirationTime(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["expirationTime"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"expirationTime"!==t||void 0!==this.expirationTime&&null!==this.expirationTime?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("expirationTime","undefined or null")}}function Lr(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}function Gr(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}_r.prototype.expirationTime=void 0,_r.prototype.$reserved=void 0,_r.prototype.$objectType=void 0,_r.prototype.$unknownFields=void 0;var Vr=new WeakSet;class Wr extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Vr),t.add(e),this.$objectType="dataprotection.v4.config.CreateRecoveryPointApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Wr,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(nn.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Gr(Vr,this,Br).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Gr(Vr,this,Br).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Br(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Wr.prototype.metadata=void 0,Wr.prototype.data=void 0,Wr.prototype.$reserved=void 0,Wr.prototype.$objectType=void 0,Wr.prototype.$unknownFields=void 0;var qr=new WeakSet;class zr{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=qr),t.add(e),this.$objectType="dataprotection.v4.content.FileWrapper",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new zr,e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}get$Reserved(){return this.$reserved}get$UnknownFields(){return this.$unknownFields}get$ObjectType(){return this.$objectType}toJson(e){return{$reserved:this.get$Reserved(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{},$objectType:this.get$ObjectType()}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?new E(t,"no such property exists"):new E("$objectType","undefined or null"):new E("$unknownFields","undefined or null"):new E("$reserved","undefined or null")}}function Kr(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}zr.prototype.$reserved=void 0,zr.prototype.$unknownFields=void 0,zr.prototype.$objectType=void 0;var Yr=new WeakSet;class Hr extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Yr),t.add(e),this.$objectType="dataprotection.v4.content.GetVssMetadataApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Hr,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"dataprotection.v4.content.FileWrapper":t.setData(zr.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Kr(Yr,this,Xr).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Kr(Yr,this,Xr).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Xr(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function Zr(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Hr.prototype.metadata=void 0,Hr.prototype.data=void 0,Hr.prototype.$reserved=void 0,Hr.prototype.$objectType=void 0,Hr.prototype.$unknownFields=void 0;var Qr=new WeakSet;class ea extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Qr),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPointRestoreApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new ea,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(nn.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Zr(Qr,this,ta).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Zr(Qr,this,ta).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function ta(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function na(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}ea.prototype.metadata=void 0,ea.prototype.data=void 0,ea.prototype.$reserved=void 0,ea.prototype.$objectType=void 0,ea.prototype.$unknownFields=void 0;var ia=new WeakSet;class oa extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=ia),t.add(e),this.$objectType="dataprotection.v4.config.DeleteRecoveryPointApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new oa,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(nn.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):na(ia,this,sa).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):na(ia,this,sa).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function sa(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function ra(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}oa.prototype.metadata=void 0,oa.prototype.data=void 0,oa.prototype.$reserved=void 0,oa.prototype.$objectType=void 0,oa.prototype.$unknownFields=void 0;var aa=new WeakSet;class la extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=aa),t.add(e),this.$objectType="dataprotection.v4.config.GetVmRecoveryPointApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new la,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"dataprotection.v4.config.VmRecoveryPoint":t.setData(Es.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):ra(aa,this,da).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):ra(aa,this,da).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function da(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}la.prototype.metadata=void 0,la.prototype.data=void 0,la.prototype.$reserved=void 0,la.prototype.$objectType=void 0,la.prototype.$unknownFields=void 0;var ua=new WeakSet;class ca extends Do{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=ua),t.add(e),this.$objectType="dataprotection.v4.content.VolumeGroupDiskRecoveryPointClusterDiscoverSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ca,Do.constructFromObject(e,t,!0),e.hasOwnProperty("referenceVolumeGroupRecoveryPointExtId")&&null!==e.referenceVolumeGroupRecoveryPointExtId&&void 0!==e.referenceVolumeGroupRecoveryPointExtId&&t.setReferenceVolumeGroupRecoveryPointExtId(e.referenceVolumeGroupRecoveryPointExtId),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getReferenceVolumeGroupRecoveryPointExtId(){return this.referenceVolumeGroupRecoveryPointExtId}setReferenceVolumeGroupRecoveryPointExtId(e){this.referenceVolumeGroupRecoveryPointExtId=e}toJson(e){return{...void 0!==this.getReferenceVolumeGroupRecoveryPointExtId()&&null!==this.getReferenceVolumeGroupRecoveryPointExtId()?{referenceVolumeGroupRecoveryPointExtId:this.getReferenceVolumeGroupRecoveryPointExtId()}:{},...void 0!==this.getReferenceRecoveryPointExtId()&&null!==this.getReferenceRecoveryPointExtId()?{referenceRecoveryPointExtId:this.getReferenceRecoveryPointExtId()}:{},...void 0!==this.getReferenceDiskRecoveryPointExtId()&&null!==this.getReferenceDiskRecoveryPointExtId()?{referenceDiskRecoveryPointExtId:this.getReferenceDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("referenceVolumeGroupRecoveryPointExtId"===t){if(void 0===this.referenceVolumeGroupRecoveryPointExtId||null===this.referenceVolumeGroupRecoveryPointExtId)return new E("referenceVolumeGroupRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.referenceVolumeGroupRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("referenceVolumeGroupRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return new E(t,"no such property exists")}}ca.prototype.referenceVolumeGroupRecoveryPointExtId=void 0,Do.prototype.referenceRecoveryPointExtId=void 0,Do.prototype.referenceDiskRecoveryPointExtId=void 0;var ha=new WeakSet;class pa extends ca{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=ha),t.add(e),this.$objectType="dataprotection.v4.content.VolumeGroupRecoveryPointChangedRegionsComputeSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new pa,ca.constructFromObject(e,t,!0),e.hasOwnProperty("offset")&&null!==e.offset&&void 0!==e.offset&&t.setOffset(e.offset),e.hasOwnProperty("length")&&null!==e.length&&void 0!==e.length&&t.setLength(e.length),e.hasOwnProperty("blockSizeByte")&&null!==e.blockSizeByte&&void 0!==e.blockSizeByte&&t.setBlockSizeByte(e.blockSizeByte),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getOffset(){return this.offset}setOffset(e){this.offset=e}getLength(){return this.length}setLength(e){this.length=e}getBlockSizeByte(){return this.blockSizeByte}setBlockSizeByte(e){this.blockSizeByte=e}toJson(e){return{...void 0!==this.getOffset()&&null!==this.getOffset()?{offset:this.getOffset()}:{},...void 0!==this.getLength()&&null!==this.getLength()?{length:this.getLength()}:{},...void 0!==this.getBlockSizeByte()&&null!==this.getBlockSizeByte()?{blockSizeByte:this.getBlockSizeByte()}:{},...void 0!==this.getReferenceVolumeGroupRecoveryPointExtId()&&null!==this.getReferenceVolumeGroupRecoveryPointExtId()?{referenceVolumeGroupRecoveryPointExtId:this.getReferenceVolumeGroupRecoveryPointExtId()}:{},...void 0!==this.getReferenceRecoveryPointExtId()&&null!==this.getReferenceRecoveryPointExtId()?{referenceRecoveryPointExtId:this.getReferenceRecoveryPointExtId()}:{},...void 0!==this.getReferenceDiskRecoveryPointExtId()&&null!==this.getReferenceDiskRecoveryPointExtId()?{referenceDiskRecoveryPointExtId:this.getReferenceDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("offset"===t&&(void 0===this.offset||null===this.offset))return new E("offset","undefined or null");if("length"===t&&(void 0===this.length||null===this.length))return new E("length","undefined or null");if("blockSizeByte"===t){if(void 0===this.blockSizeByte||null===this.blockSizeByte)return new E("blockSizeByte","undefined or null");if(!F.validateMaximum(this.blockSizeByte,262144))return new E("blockSizeByte","does not satisfy required maximum constraint: 262144");if(!F.validateMinimum(this.blockSizeByte,32768))return new E("blockSizeByte","does not satisfy required minimum constraint: 32768")}return new E(t,"no such property exists")}}function va(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}pa.prototype.offset=void 0,pa.prototype.length=void 0,pa.prototype.blockSizeByte=void 0,ca.prototype.referenceVolumeGroupRecoveryPointExtId=void 0,Do.prototype.referenceRecoveryPointExtId=void 0,Do.prototype.referenceDiskRecoveryPointExtId=void 0;var ya=new WeakSet;class ga extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=ya),t.add(e),this.$objectType="dataprotection.v4.content.ChangedVolumeGroupRegionsApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new ga,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++){if("dataprotection.v4.content.ChangedRegion"!==l)throw"Unknown list of type "+l+" in data";o=Cr.constructFromObject(i[r],void 0),a.push(o)}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):va(ya,this,fa).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):va(ya,this,fa).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function fa(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}ga.prototype.metadata=void 0,ga.prototype.data=void 0,ga.prototype.$reserved=void 0,ga.prototype.$objectType=void 0,ga.prototype.$unknownFields=void 0;var $a=new WeakSet;class wa{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=$a),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPointReplicationSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new wa,e.hasOwnProperty("pcExtId")&&null!==e.pcExtId&&void 0!==e.pcExtId&&t.setPcExtId(e.pcExtId),e.hasOwnProperty("clusterExtId")&&null!==e.clusterExtId&&void 0!==e.clusterExtId&&t.setClusterExtId(e.clusterExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getPcExtId(){return this.pcExtId}setPcExtId(e){this.pcExtId=e}getClusterExtId(){return this.clusterExtId}setClusterExtId(e){this.clusterExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getPcExtId()&&null!==this.getPcExtId()?{pcExtId:this.getPcExtId()}:{},...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("pcExtId"===t){if(void 0===this.pcExtId||null===this.pcExtId)return new E("pcExtId","undefined or null");if(!F.validatePattern(this.pcExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("pcExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("clusterExtId"===t){if(void 0===this.clusterExtId||null===this.clusterExtId)return new E("clusterExtId","undefined or null");if(!F.validatePattern(this.clusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}function ma(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}wa.prototype.pcExtId=void 0,wa.prototype.clusterExtId=void 0,wa.prototype.$reserved=void 0,wa.prototype.$objectType=void 0,wa.prototype.$unknownFields=void 0;var ka=new WeakSet;class Ta extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=ka),t.add(e),this.$objectType="dataprotection.v4.config.UpdateRecoveryPointExpirationTimeApiResponse",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Ta,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(nn.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):ma(ka,this,ba).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):ma(ka,this,ba).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function ba(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Ta.prototype.metadata=void 0,Ta.prototype.data=void 0,Ta.prototype.$reserved=void 0,Ta.prototype.$objectType=void 0,Ta.prototype.$unknownFields=void 0;var Fa=new WeakSet;class Ea{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Fa),t.add(e),this.$objectType="dataprotection.v4.config.AmazonS3Bucket",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Ea,e.hasOwnProperty("bucketName")&&null!==e.bucketName&&void 0!==e.bucketName&&t.setBucketName(e.bucketName),e.hasOwnProperty("regionName")&&null!==e.regionName&&void 0!==e.regionName&&t.setRegionName(e.regionName),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getBucketName(){return this.bucketName}setBucketName(e){this.bucketName=e}getRegionName(){return this.regionName}setRegionName(e){this.regionName=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getBucketName()&&null!==this.getBucketName()?{bucketName:this.getBucketName()}:{},...void 0!==this.getRegionName()&&null!==this.getRegionName()?{regionName:this.getRegionName()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("bucketName"===t){if(void 0===this.bucketName||null===this.bucketName)return new E("bucketName","undefined or null");if(!F.validateMaxLength(this.bucketName,256))return new E("bucketName","does not satisfy required maxLength constraint: 256")}if("regionName"===t){if(void 0===this.regionName||null===this.regionName)return new E("regionName","undefined or null");if(!F.validateMaxLength(this.regionName,256))return new E("regionName","does not satisfy required maxLength constraint: 256")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Ea.prototype.bucketName=void 0,Ea.prototype.regionName=void 0,Ea.prototype.$reserved=void 0,Ea.prototype.$objectType=void 0,Ea.prototype.$unknownFields=void 0;var ja=new WeakSet;class Oa{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=ja),t.add(e),this.$objectType="dataprotection.v4.config.AzureBlobStorageContainer",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Oa,e.hasOwnProperty("storageAccountName")&&null!==e.storageAccountName&&void 0!==e.storageAccountName&&t.setStorageAccountName(e.storageAccountName),e.hasOwnProperty("containerName")&&null!==e.containerName&&void 0!==e.containerName&&t.setContainerName(e.containerName),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getStorageAccountName(){return this.storageAccountName}setStorageAccountName(e){this.storageAccountName=e}getContainerName(){return this.containerName}setContainerName(e){this.containerName=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getStorageAccountName()&&null!==this.getStorageAccountName()?{storageAccountName:this.getStorageAccountName()}:{},...void 0!==this.getContainerName()&&null!==this.getContainerName()?{containerName:this.getContainerName()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("storageAccountName"===t){if(void 0===this.storageAccountName||null===this.storageAccountName)return new E("storageAccountName","undefined or null");if(!F.validateMaxLength(this.storageAccountName,256))return new E("storageAccountName","does not satisfy required maxLength constraint: 256")}if("containerName"===t){if(void 0===this.containerName||null===this.containerName)return new E("containerName","undefined or null");if(!F.validateMaxLength(this.containerName,256))return new E("containerName","does not satisfy required maxLength constraint: 256")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Oa.prototype.storageAccountName=void 0,Oa.prototype.containerName=void 0,Oa.prototype.$reserved=void 0,Oa.prototype.$objectType=void 0,Oa.prototype.$unknownFields=void 0;var Ia=new WeakSet;class Pa{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Ia),t.add(e),this.$objectType="dataprotection.v4.config.ConsistencyGroupMigrationSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Pa,e.hasOwnProperty("targetPcExtId")&&null!==e.targetPcExtId&&void 0!==e.targetPcExtId&&t.setTargetPcExtId(e.targetPcExtId),e.hasOwnProperty("targetClusterExtId")&&null!==e.targetClusterExtId&&void 0!==e.targetClusterExtId&&t.setTargetClusterExtId(e.targetClusterExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getTargetPcExtId(){return this.targetPcExtId}setTargetPcExtId(e){this.targetPcExtId=e}getTargetClusterExtId(){return this.targetClusterExtId}setTargetClusterExtId(e){this.targetClusterExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getTargetPcExtId()&&null!==this.getTargetPcExtId()?{targetPcExtId:this.getTargetPcExtId()}:{},...void 0!==this.getTargetClusterExtId()&&null!==this.getTargetClusterExtId()?{targetClusterExtId:this.getTargetClusterExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("targetPcExtId"===t){if(void 0===this.targetPcExtId||null===this.targetPcExtId)return new E("targetPcExtId","undefined or null");if(!F.validatePattern(this.targetPcExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("targetPcExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("targetClusterExtId"===t){if(void 0===this.targetClusterExtId||null===this.targetClusterExtId)return new E("targetClusterExtId","undefined or null");if(!F.validatePattern(this.targetClusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("targetClusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}function Ra(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Pa.prototype.targetPcExtId=void 0,Pa.prototype.targetClusterExtId=void 0,Pa.prototype.$reserved=void 0,Pa.prototype.$objectType=void 0,Pa.prototype.$unknownFields=void 0;var xa=new WeakSet;class Aa{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=xa),t.add(e),this.$objectType="dataprotection.v4.config.CreationTimeRange",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Aa,e.hasOwnProperty("firstCreationTime")&&null!==e.firstCreationTime&&void 0!==e.firstCreationTime&&t.setFirstCreationTime(e.firstCreationTime),e.hasOwnProperty("lastCreationTime")&&null!==e.lastCreationTime&&void 0!==e.lastCreationTime&&t.setLastCreationTime(e.lastCreationTime),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getFirstCreationTime(){return this.firstCreationTime}setFirstCreationTime(e){this.firstCreationTime=e}getLastCreationTime(){return this.lastCreationTime}setLastCreationTime(e){this.lastCreationTime=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getFirstCreationTime()&&null!==this.getFirstCreationTime()?{firstCreationTime:Ra(xa,this,Ca).call(this,this.getFirstCreationTime(),!1)}:{},...void 0!==this.getLastCreationTime()&&null!==this.getLastCreationTime()?{lastCreationTime:Ra(xa,this,Ca).call(this,this.getLastCreationTime(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"firstCreationTime"!==t||void 0!==this.firstCreationTime&&null!==this.firstCreationTime?"lastCreationTime"!==t||void 0!==this.lastCreationTime&&null!==this.lastCreationTime?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("lastCreationTime","undefined or null"):new E("firstCreationTime","undefined or null")}}function Ca(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}Aa.prototype.firstCreationTime=void 0,Aa.prototype.lastCreationTime=void 0,Aa.prototype.$reserved=void 0,Aa.prototype.$objectType=void 0,Aa.prototype.$unknownFields=void 0;var Sa=new WeakSet;class Da{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Sa),t.add(e),this.$objectType="dataprotection.v4.config.ForceDeleteAllRecoveryPointsSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s;if(e){if(t=t||new Da,e.hasOwnProperty("clusterExtIds")&&null!==e.clusterExtIds&&void 0!==e.clusterExtIds){for(s=[],i=e.clusterExtIds,o=0;o<i.length;o++)s.push(i[o]);t.setClusterExtIds(s)}if(e.hasOwnProperty("timeRange")&&null!==e.timeRange&&void 0!==e.timeRange&&t.setTimeRange(Aa.constructFromObject(e.timeRange)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getClusterExtIds(){return this.clusterExtIds}setClusterExtIds(e){this.clusterExtIds=e}getTimeRange(){return this.timeRange}setTimeRange(e){this.timeRange=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getClusterExtIds()&&null!==this.getClusterExtIds()?{clusterExtIds:this.getClusterExtIds()}:{},...void 0!==this.getTimeRange()&&null!==this.getTimeRange()?{timeRange:this.getTimeRange().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("clusterExtIds"===t){if(void 0===this.clusterExtIds||null===this.clusterExtIds)return new E("clusterExtIds","undefined or null");if(!F.validateMaxItems(this.clusterExtIds,30))return new E("clusterExtIds","does not satisfy required maxItems constraint: 30")}return"timeRange"!==t||void 0!==this.timeRange&&null!==this.timeRange?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("timeRange","undefined or null")}}Da.prototype.clusterExtIds=void 0,Da.prototype.timeRange=void 0,Da.prototype.$reserved=void 0,Da.prototype.$objectType=void 0,Da.prototype.$unknownFields=void 0;const Na={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",PRISM_ELEMENT:"PRISM_ELEMENT",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Na).find(t=>Na[t]===e);return null==t?Na.$UNKNOWN:Na[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Na.$UNKNOWN:case Na.$REDACTED:case Na.PRISM_ELEMENT:return;default:throw new Error("Invalid : must be HostType.{ $UNKNOWN|$REDACTED|PRISM_ELEMENT }")}}};Object.freeze(Na);const Ua=Na;var Ma=new WeakSet;class Ja extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ma),t.add(e),this.$objectType="dataprotection.v4.config.HostReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Ja,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("hostType")&&null!==e.hostType&&void 0!==e.hostType&&t.setHostType(Ua.constructFromObject(e.hostType)),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getHostType(){return this.hostType}setHostType(e){this.hostType=e}getName(){return this.name}setName(e){this.name=e}toJson(e){return!1===e?{...void 0!==this.getHostType()&&null!==this.getHostType()?{hostType:this.getHostType()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getHostType()&&null!==this.getHostType()?{hostType:this.getHostType()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("hostType"===t&&(void 0===this.hostType||null===this.hostType))return new E("hostType","undefined or null");if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}return new E(t,"no such property exists")}}Ja.prototype.hostType=void 0,Ja.prototype.name=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var _a=new WeakSet;class La{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=_a),t.add(e),this.$objectType="dataprotection.v4.config.NutanixObjectsBucket",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new La,e.hasOwnProperty("endPoint")&&null!==e.endPoint&&void 0!==e.endPoint&&t.setEndPoint(e.endPoint),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getEndPoint(){return this.endPoint}setEndPoint(e){this.endPoint=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getEndPoint()&&null!==this.getEndPoint()?{endPoint:this.getEndPoint()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"endPoint"!==t||void 0!==this.endPoint&&null!==this.endPoint?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("endPoint","undefined or null")}}La.prototype.endPoint=void 0,La.prototype.$reserved=void 0,La.prototype.$objectType=void 0,La.prototype.$unknownFields=void 0;const Ga={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",AZURE_BLOB_STORAGE:"AZURE_BLOB_STORAGE",AMAZON_S3:"AMAZON_S3",NUTANIX_OBJECTS:"NUTANIX_OBJECTS",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Ga).find(t=>Ga[t]===e);return null==t?Ga.$UNKNOWN:Ga[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Ga.$UNKNOWN:case Ga.$REDACTED:case Ga.AZURE_BLOB_STORAGE:case Ga.AMAZON_S3:case Ga.NUTANIX_OBJECTS:return;default:throw new Error("Invalid : must be ObjectStorageType.{ $UNKNOWN|$REDACTED|AZURE_BLOB_STORAGE|AMAZON_S3|NUTANIX_OBJECTS }")}}};Object.freeze(Ga);const Va=Ga;function Wa(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Ba=new WeakSet;class qa extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ba),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPointRepository",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new qa,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("objectStorageType")&&null!==e.objectStorageType&&void 0!==e.objectStorageType&&t.setObjectStorageType(Va.constructFromObject(e.objectStorageType)),e.hasOwnProperty("objectStorageReference")&&null!==e.objectStorageReference&&void 0!==e.objectStorageReference)switch(i=e.objectStorageReference.hasOwnProperty("$objectType")?e.objectStorageReference.$objectType:typeof e.objectStorageReference,i){case"dataprotection.v4.config.AzureBlobStorageContainer":t.setObjectStorageReference(Oa.constructFromObject(e.objectStorageReference,void 0));break;case"dataprotection.v4.config.AmazonS3Bucket":t.setObjectStorageReference(Ea.constructFromObject(e.objectStorageReference,void 0));break;case"dataprotection.v4.config.NutanixObjectsBucket":t.setObjectStorageReference(La.constructFromObject(e.objectStorageReference,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getObjectStorageType(){return this.objectStorageType}setObjectStorageType(e){this.objectStorageType=e}getObjectStorageReference(){return this.objectStorageReference}setObjectStorageReference(e){this.objectStorageReference=e}toJson(e){return!1===e?{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getObjectStorageType()&&null!==this.getObjectStorageType()?{objectStorageType:this.getObjectStorageType()}:{},...void 0!==this.getObjectStorageReference()&&null!==this.getObjectStorageReference()?{objectStorageReference:void 0!==this.getObjectStorageReference().toJson?this.getObjectStorageReference().toJson(!1):Array.isArray(this.getObjectStorageReference())?this.getObjectStorageReference().map(e=>void 0!==e.toJson?e.toJson(!1):e):Wa(Ba,this,za).call(this,this.getObjectStorageReference(),!1)}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getObjectStorageType()&&null!==this.getObjectStorageType()?{objectStorageType:this.getObjectStorageType()}:{},...void 0!==this.getObjectStorageReference()&&null!==this.getObjectStorageReference()?{objectStorageReference:void 0!==this.getObjectStorageReference().toJson?this.getObjectStorageReference().toJson():Array.isArray(this.getObjectStorageReference())?this.getObjectStorageReference().map(e=>void 0!==e.toJson?e.toJson():e):Wa(Ba,this,za).call(this,this.getObjectStorageReference())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}return"objectStorageType"!==t||void 0!==this.objectStorageType&&null!==this.objectStorageType?"objectStorageReference"!==t||void 0!==this.objectStorageReference&&null!==this.objectStorageReference?new E(t,"no such property exists"):new E("objectStorageReference","undefined or null"):new E("objectStorageType","undefined or null")}}function za(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}qa.prototype.name=void 0,qa.prototype.objectStorageType=void 0,qa.prototype.objectStorageReference=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class Ka extends qa{constructor(){super(),this.$objectType="dataprotection.v4.config.RecoveryPointRepositoryProjection",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Ka,qa.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function Ya(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Ha=new WeakSet;class Xa extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ha),t.add(e),this.$objectType="dataprotection.v4.config.RecycleBinEntry",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s;if(e){if(t=t||new Xa,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("expirationTime")&&null!==e.expirationTime&&void 0!==e.expirationTime&&t.setExpirationTime(e.expirationTime),e.hasOwnProperty("deletionTime")&&null!==e.deletionTime&&void 0!==e.deletionTime&&t.setDeletionTime(e.deletionTime),e.hasOwnProperty("spaceConsumedBytes")&&null!==e.spaceConsumedBytes&&void 0!==e.spaceConsumedBytes&&t.setSpaceConsumedBytes(e.spaceConsumedBytes),e.hasOwnProperty("deletedByUserExtId")&&null!==e.deletedByUserExtId&&void 0!==e.deletedByUserExtId&&t.setDeletedByUserExtId(e.deletedByUserExtId),e.hasOwnProperty("clusterExtId")&&null!==e.clusterExtId&&void 0!==e.clusterExtId&&t.setClusterExtId(e.clusterExtId),e.hasOwnProperty("categoryIds")&&null!==e.categoryIds&&void 0!==e.categoryIds){for(s=[],i=e.categoryIds,o=0;o<i.length;o++)s.push(i[o]);t.setCategoryIds(s)}if(!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExpirationTime(){return this.expirationTime}setExpirationTime(e){this.expirationTime=e}getDeletionTime(){return this.deletionTime}setDeletionTime(e){this.deletionTime=e}getSpaceConsumedBytes(){return this.spaceConsumedBytes}setSpaceConsumedBytes(e){this.spaceConsumedBytes=e}getDeletedByUserExtId(){return this.deletedByUserExtId}setDeletedByUserExtId(e){this.deletedByUserExtId=e}getClusterExtId(){return this.clusterExtId}setClusterExtId(e){this.clusterExtId=e}getCategoryIds(){return this.categoryIds}setCategoryIds(e){this.categoryIds=e}toJson(e){return!1===e?{...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:Ya(Ha,this,Za).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getDeletionTime()&&null!==this.getDeletionTime()?{deletionTime:Ya(Ha,this,Za).call(this,this.getDeletionTime(),!1)}:{},...void 0!==this.getSpaceConsumedBytes()&&null!==this.getSpaceConsumedBytes()?{spaceConsumedBytes:this.getSpaceConsumedBytes()}:{},...void 0!==this.getDeletedByUserExtId()&&null!==this.getDeletedByUserExtId()?{deletedByUserExtId:this.getDeletedByUserExtId()}:{},...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},...void 0!==this.getCategoryIds()&&null!==this.getCategoryIds()?{categoryIds:this.getCategoryIds()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("expirationTime"===t&&(void 0===this.expirationTime||null===this.expirationTime))return new E("expirationTime","undefined or null");if("deletionTime"===t&&(void 0===this.deletionTime||null===this.deletionTime))return new E("deletionTime","undefined or null");if("spaceConsumedBytes"===t&&(void 0===this.spaceConsumedBytes||null===this.spaceConsumedBytes))return new E("spaceConsumedBytes","undefined or null");if("deletedByUserExtId"===t){if(void 0===this.deletedByUserExtId||null===this.deletedByUserExtId)return new E("deletedByUserExtId","undefined or null");if(!F.validatePattern(this.deletedByUserExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("deletedByUserExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("clusterExtId"===t){if(void 0===this.clusterExtId||null===this.clusterExtId)return new E("clusterExtId","undefined or null");if(!F.validatePattern(this.clusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"categoryIds"!==t||void 0!==this.categoryIds&&null!==this.categoryIds?new E(t,"no such property exists"):new E("categoryIds","undefined or null")}}function Za(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}function Qa(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Xa.prototype.expirationTime=void 0,Xa.prototype.deletionTime=void 0,Xa.prototype.spaceConsumedBytes=void 0,Xa.prototype.deletedByUserExtId=void 0,Xa.prototype.clusterExtId=void 0,Xa.prototype.categoryIds=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var el=new WeakSet;class tl extends Xa{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=el),t.add(e),this.$objectType="dataprotection.v4.config.RecycleBinVm",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new tl,Xa.constructFromObject(e,t,!0),e.hasOwnProperty("vmExtId")&&null!==e.vmExtId&&void 0!==e.vmExtId&&t.setVmExtId(e.vmExtId),e.hasOwnProperty("vmOwnerExtId")&&null!==e.vmOwnerExtId&&void 0!==e.vmOwnerExtId&&t.setVmOwnerExtId(e.vmOwnerExtId),e.hasOwnProperty("vmName")&&null!==e.vmName&&void 0!==e.vmName&&t.setVmName(e.vmName),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getVmExtId(){return this.vmExtId}setVmExtId(e){this.vmExtId=e}getVmOwnerExtId(){return this.vmOwnerExtId}setVmOwnerExtId(e){this.vmOwnerExtId=e}getVmName(){return this.vmName}setVmName(e){this.vmName=e}toJson(e){return!1===e?{...void 0!==this.getVmExtId()&&null!==this.getVmExtId()?{vmExtId:this.getVmExtId()}:{},...void 0!==this.getVmOwnerExtId()&&null!==this.getVmOwnerExtId()?{vmOwnerExtId:this.getVmOwnerExtId()}:{},...void 0!==this.getVmName()&&null!==this.getVmName()?{vmName:this.getVmName()}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:Qa(el,this,nl).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getDeletionTime()&&null!==this.getDeletionTime()?{deletionTime:Qa(el,this,nl).call(this,this.getDeletionTime(),!1)}:{},...void 0!==this.getSpaceConsumedBytes()&&null!==this.getSpaceConsumedBytes()?{spaceConsumedBytes:this.getSpaceConsumedBytes()}:{},...void 0!==this.getDeletedByUserExtId()&&null!==this.getDeletedByUserExtId()?{deletedByUserExtId:this.getDeletedByUserExtId()}:{},...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},...void 0!==this.getCategoryIds()&&null!==this.getCategoryIds()?{categoryIds:this.getCategoryIds()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("vmExtId"===t){if(void 0===this.vmExtId||null===this.vmExtId)return new E("vmExtId","undefined or null");if(!F.validatePattern(this.vmExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("vmExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("vmOwnerExtId"===t){if(void 0===this.vmOwnerExtId||null===this.vmOwnerExtId)return new E("vmOwnerExtId","undefined or null");if(!F.validatePattern(this.vmOwnerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("vmOwnerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("vmName"===t){if(void 0===this.vmName||null===this.vmName)return new E("vmName","undefined or null");if(!F.validateMaxLength(this.vmName,256))return new E("vmName","does not satisfy required maxLength constraint: 256")}return new E(t,"no such property exists")}}function nl(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}tl.prototype.vmExtId=void 0,tl.prototype.vmOwnerExtId=void 0,tl.prototype.vmName=void 0,Xa.prototype.expirationTime=void 0,Xa.prototype.deletionTime=void 0,Xa.prototype.spaceConsumedBytes=void 0,Xa.prototype.deletedByUserExtId=void 0,Xa.prototype.clusterExtId=void 0,Xa.prototype.categoryIds=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class il extends tl{constructor(){super(),this.$objectType="dataprotection.v4.config.RecycleBinVmProjection",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new il,tl.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function ol(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var sl=new WeakSet;class rl extends Xa{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=sl),t.add(e),this.$objectType="dataprotection.v4.config.RecycleBinVolumeGroup",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new rl,Xa.constructFromObject(e,t,!0),e.hasOwnProperty("volumeGroupExtId")&&null!==e.volumeGroupExtId&&void 0!==e.volumeGroupExtId&&t.setVolumeGroupExtId(e.volumeGroupExtId),e.hasOwnProperty("volumeGroupOwnerExtId")&&null!==e.volumeGroupOwnerExtId&&void 0!==e.volumeGroupOwnerExtId&&t.setVolumeGroupOwnerExtId(e.volumeGroupOwnerExtId),e.hasOwnProperty("volumeGroupName")&&null!==e.volumeGroupName&&void 0!==e.volumeGroupName&&t.setVolumeGroupName(e.volumeGroupName),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getVolumeGroupExtId(){return this.volumeGroupExtId}setVolumeGroupExtId(e){this.volumeGroupExtId=e}getVolumeGroupOwnerExtId(){return this.volumeGroupOwnerExtId}setVolumeGroupOwnerExtId(e){this.volumeGroupOwnerExtId=e}getVolumeGroupName(){return this.volumeGroupName}setVolumeGroupName(e){this.volumeGroupName=e}toJson(e){return!1===e?{...void 0!==this.getVolumeGroupExtId()&&null!==this.getVolumeGroupExtId()?{volumeGroupExtId:this.getVolumeGroupExtId()}:{},...void 0!==this.getVolumeGroupOwnerExtId()&&null!==this.getVolumeGroupOwnerExtId()?{volumeGroupOwnerExtId:this.getVolumeGroupOwnerExtId()}:{},...void 0!==this.getVolumeGroupName()&&null!==this.getVolumeGroupName()?{volumeGroupName:this.getVolumeGroupName()}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:ol(sl,this,al).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getDeletionTime()&&null!==this.getDeletionTime()?{deletionTime:ol(sl,this,al).call(this,this.getDeletionTime(),!1)}:{},...void 0!==this.getSpaceConsumedBytes()&&null!==this.getSpaceConsumedBytes()?{spaceConsumedBytes:this.getSpaceConsumedBytes()}:{},...void 0!==this.getDeletedByUserExtId()&&null!==this.getDeletedByUserExtId()?{deletedByUserExtId:this.getDeletedByUserExtId()}:{},...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},...void 0!==this.getCategoryIds()&&null!==this.getCategoryIds()?{categoryIds:this.getCategoryIds()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("volumeGroupExtId"===t){if(void 0===this.volumeGroupExtId||null===this.volumeGroupExtId)return new E("volumeGroupExtId","undefined or null");if(!F.validatePattern(this.volumeGroupExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("volumeGroupExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("volumeGroupOwnerExtId"===t){if(void 0===this.volumeGroupOwnerExtId||null===this.volumeGroupOwnerExtId)return new E("volumeGroupOwnerExtId","undefined or null");if(!F.validatePattern(this.volumeGroupOwnerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("volumeGroupOwnerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("volumeGroupName"===t){if(void 0===this.volumeGroupName||null===this.volumeGroupName)return new E("volumeGroupName","undefined or null");if(!F.validateMaxLength(this.volumeGroupName,256))return new E("volumeGroupName","does not satisfy required maxLength constraint: 256")}return new E(t,"no such property exists")}}function al(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}rl.prototype.volumeGroupExtId=void 0,rl.prototype.volumeGroupOwnerExtId=void 0,rl.prototype.volumeGroupName=void 0,Xa.prototype.expirationTime=void 0,Xa.prototype.deletionTime=void 0,Xa.prototype.spaceConsumedBytes=void 0,Xa.prototype.deletedByUserExtId=void 0,Xa.prototype.clusterExtId=void 0,Xa.prototype.categoryIds=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class ll extends rl{constructor(){super(),this.$objectType="dataprotection.v4.config.RecycleBinVolumeGroupProjection",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ll,rl.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}var dl=new WeakSet;class ul{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=dl),t.add(e),this.$objectType="dataprotection.v4.config.SiteReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ul,e.hasOwnProperty("availabilityZoneReference")&&null!==e.availabilityZoneReference&&void 0!==e.availabilityZoneReference&&t.setAvailabilityZoneReference(e.availabilityZoneReference),e.hasOwnProperty("clusterReference")&&null!==e.clusterReference&&void 0!==e.clusterReference&&t.setClusterReference(e.clusterReference),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getAvailabilityZoneReference(){return this.availabilityZoneReference}setAvailabilityZoneReference(e){this.availabilityZoneReference=e}getClusterReference(){return this.clusterReference}setClusterReference(e){this.clusterReference=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getAvailabilityZoneReference()&&null!==this.getAvailabilityZoneReference()?{availabilityZoneReference:this.getAvailabilityZoneReference()}:{},...void 0!==this.getClusterReference()&&null!==this.getClusterReference()?{clusterReference:this.getClusterReference()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("availabilityZoneReference"===t){if(void 0===this.availabilityZoneReference||null===this.availabilityZoneReference)return new E("availabilityZoneReference","undefined or null");if(!F.validatePattern(this.availabilityZoneReference,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("availabilityZoneReference","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("clusterReference"===t){if(void 0===this.clusterReference||null===this.clusterReference)return new E("clusterReference","undefined or null");if(!F.validatePattern(this.clusterReference,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterReference","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}ul.prototype.availabilityZoneReference=void 0,ul.prototype.clusterReference=void 0,ul.prototype.$reserved=void 0,ul.prototype.$objectType=void 0,ul.prototype.$unknownFields=void 0;var cl=new WeakSet;class hl extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=cl),t.add(e),this.$objectType="dataprotection.v4.config.VolumeGroupSyncContext",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new hl,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("primarySite")&&null!==e.primarySite&&void 0!==e.primarySite&&t.setPrimarySite(ul.constructFromObject(e.primarySite)),e.hasOwnProperty("secondarySite")&&null!==e.secondarySite&&void 0!==e.secondarySite&&t.setSecondarySite(ul.constructFromObject(e.secondarySite)),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getPrimarySite(){return this.primarySite}setPrimarySite(e){this.primarySite=e}getSecondarySite(){return this.secondarySite}setSecondarySite(e){this.secondarySite=e}toJson(e){return!1===e?{...void 0!==this.getPrimarySite()&&null!==this.getPrimarySite()?{primarySite:this.getPrimarySite().toJson(!1)}:{},...void 0!==this.getSecondarySite()&&null!==this.getSecondarySite()?{secondarySite:this.getSecondarySite().toJson(!1)}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getPrimarySite()&&null!==this.getPrimarySite()?{primarySite:this.getPrimarySite().toJson(!1)}:{},...void 0!==this.getSecondarySite()&&null!==this.getSecondarySite()?{secondarySite:this.getSecondarySite().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"primarySite"!==t||void 0!==this.primarySite&&null!==this.primarySite?"secondarySite"!==t||void 0!==this.secondarySite&&null!==this.secondarySite?new E(t,"no such property exists"):new E("secondarySite","undefined or null"):new E("primarySite","undefined or null")}}hl.prototype.primarySite=void 0,hl.prototype.secondarySite=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;const pl={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",AVAILABLE:"AVAILABLE",UNAVAILABLE:"UNAVAILABLE",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(pl).find(t=>pl[t]===e);return null==t?pl.$UNKNOWN:pl[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case pl.$UNKNOWN:case pl.$REDACTED:case pl.AVAILABLE:case pl.UNAVAILABLE:return;default:throw new Error("Invalid : must be WitnessAvailabilityStatus.{ $UNKNOWN|$REDACTED|AVAILABLE|UNAVAILABLE }")}}};Object.freeze(pl);const vl=pl;var yl=new WeakSet;class gl extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=yl),t.add(e),this.$objectType="dataprotection.v4.config.Witness",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new gl,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("hostReferences")&&null!==e.hostReferences&&void 0!==e.hostReferences){for(r=[],i=e.hostReferences,s=0;s<i.length;s++)o=Ja.constructFromObject(i[s],void 0),r.push(o);t.setHostReferences(r)}if(e.hasOwnProperty("ipAddresses")&&null!==e.ipAddresses&&void 0!==e.ipAddresses){for(r=[],i=e.ipAddresses,s=0;s<i.length;s++)r.push(i[s]);t.setIpAddresses(r)}if(e.hasOwnProperty("status")&&null!==e.status&&void 0!==e.status&&t.setStatus(vl.constructFromObject(e.status)),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getHostReferences(){return this.hostReferences}setHostReferences(e){this.hostReferences=e}getIpAddresses(){return this.ipAddresses}setIpAddresses(e){this.ipAddresses=e}getStatus(){return this.status}setStatus(e){this.status=e}toJson(e){return!1===e?{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getHostReferences()&&null!==this.getHostReferences()?{hostReferences:this.getHostReferences().map(e=>e.toJson(!1))}:{},...void 0!==this.getIpAddresses()&&null!==this.getIpAddresses()?{ipAddresses:this.getIpAddresses()}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getHostReferences()&&null!==this.getHostReferences()?{hostReferences:this.getHostReferences().map(e=>e.toJson(!1))}:{},...void 0!==this.getIpAddresses()&&null!==this.getIpAddresses()?{ipAddresses:this.getIpAddresses()}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}if("hostReferences"===t){if(void 0===this.hostReferences||null===this.hostReferences)return new E("hostReferences","undefined or null");if(!F.validateMaxItems(this.hostReferences,100))return new E("hostReferences","does not satisfy required maxItems constraint: 100");if(!F.validateMinItems(this.hostReferences,1))return new E("hostReferences","does not satisfy required minItems constraint: 1")}if("ipAddresses"===t){if(void 0===this.ipAddresses||null===this.ipAddresses)return new E("ipAddresses","undefined or null");if(!F.validateMaxItems(this.ipAddresses,100))return new E("ipAddresses","does not satisfy required maxItems constraint: 100");if(!F.validateMinItems(this.ipAddresses,1))return new E("ipAddresses","does not satisfy required minItems constraint: 1")}return"status"!==t||void 0!==this.status&&null!==this.status?new E(t,"no such property exists"):new E("status","undefined or null")}}gl.prototype.name=void 0,gl.prototype.hostReferences=void 0,gl.prototype.ipAddresses=void 0,gl.prototype.status=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class fl extends En{constructor(e,t){super(e,t),this.$objectType="dataprotection.v4.operations.ValidateSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new fl,En.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}const $l={ApiClient:le,DataProtectionClusterCapabilitiesApi:class{#e;static get ApiClient(){return le}constructor(e){this.apiClient=e||le.instance,this.#e=new Set,this.#e.add("authorization"),this.#e.add("cookie"),this.#e.add("host"),this.#e.add("user-agent")}listDataProtectionClusterCapabilities(e,...t){let n=t.length>0?t[0]:{};const i={...(e=e||{}).hasOwnProperty("$page")?{$page:e.$page}:{},...e.hasOwnProperty("$limit")?{$limit:e.$limit}:{},...e.hasOwnProperty("$filter")?{$filter:e.$filter}:{},...e.hasOwnProperty("$orderby")?{$orderby:e.$orderby}:{},...e.hasOwnProperty("$select")?{$select:e.$select}:{}};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=nt;return this.apiClient.callApi("/api/dataprotection/v4.2/config/cluster-capabilities","GET",{},i,s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}},ConsistencyGroupsApi:class{#e;static get ApiClient(){return le}constructor(e){this.apiClient=e||le.instance,this.#e=new Set,this.#e.add("authorization"),this.#e.add("cookie"),this.#e.add("host"),this.#e.add("user-agent")}createConsistencyGroup(e,...t){let n=t.length>0?t[0]:{},i=null;if(i=e instanceof dt&&"function"==typeof e.toJson?e.toJson():e,null==i)throw new Error("Invalid body when calling createConsistencyGroup");let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o};le.addEtagReferenceToHeader(e,s);const r=mt;return this.apiClient.callApi("/api/dataprotection/v4.2/config/consistency-groups","POST",{},{},s,{},i,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],r)}deleteConsistencyGroupById(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'extId' when calling deleteConsistencyGroupById");const i={extId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=Ft;return this.apiClient.callApi("/api/dataprotection/v4.2/config/consistency-groups/{extId}","DELETE",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}getConsistencyGroupById(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'extId' when calling getConsistencyGroupById");const i={extId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=ht;return this.apiClient.callApi("/api/dataprotection/v4.2/config/consistency-groups/{extId}","GET",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}listConsistencyGroups(e,...t){let n=t.length>0?t[0]:{};const i={...(e=e||{}).hasOwnProperty("$page")?{$page:e.$page}:{},...e.hasOwnProperty("$limit")?{$limit:e.$limit}:{},...e.hasOwnProperty("$filter")?{$filter:e.$filter}:{},...e.hasOwnProperty("$orderby")?{$orderby:e.$orderby}:{},...e.hasOwnProperty("$select")?{$select:e.$select}:{}};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=Pt;return this.apiClient.callApi("/api/dataprotection/v4.2/config/consistency-groups","GET",{},i,s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}updateConsistencyGroupById(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof dt&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'extId' when calling updateConsistencyGroupById");if(null==o)throw new Error("Invalid body when calling updateConsistencyGroupById");const s={extId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=gt;return this.apiClient.callApi("/api/dataprotection/v4.2/config/consistency-groups/{extId}","PUT",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}},ProtectedResourcesApi:class{#e;static get ApiClient(){return le}constructor(e){this.apiClient=e||le.instance,this.#e=new Set,this.#e.add("authorization"),this.#e.add("cookie"),this.#e.add("host"),this.#e.add("user-agent")}getProtectedResourceById(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'extId' when calling getProtectedResourceById");const i={extId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=Qt;return this.apiClient.callApi("/api/dataprotection/v4.2/config/protected-resources/{extId}","GET",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}promoteProtectedResource(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'extId' when calling promoteProtectedResource");const i={extId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=un;return this.apiClient.callApi("/api/dataprotection/v4.2/config/protected-resources/{extId}/$actions/promote","POST",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}restoreProtectedResource(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof vn&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'extId' when calling restoreProtectedResource");if(null==o)throw new Error("Invalid body when calling restoreProtectedResource");const s={extId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=rn;return this.apiClient.callApi("/api/dataprotection/v4.2/config/protected-resources/{extId}/$actions/restore","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}},RecoveryPlanActionsApi:class{#e;static get ApiClient(){return le}constructor(e){this.apiClient=e||le.instance,this.#e=new Set,this.#e.add("authorization"),this.#e.add("cookie"),this.#e.add("host"),this.#e.add("user-agent")}cleanupRecoveryPlanResources(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'recoveryPlanExtId' when calling cleanupRecoveryPlanResources");const i={recoveryPlanExtId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=Nn;return this.apiClient.callApi("/api/dataprotection/v4.2/operations/recovery-plans/{recoveryPlanExtId}/$actions/clean-up-resources","POST",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}plannedFailoverRecoveryPlan(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof On&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'recoveryPlanExtId' when calling plannedFailoverRecoveryPlan");if(null==o)throw new Error("Invalid body when calling plannedFailoverRecoveryPlan");const s={recoveryPlanExtId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=Kn;return this.apiClient.callApi("/api/dataprotection/v4.2/operations/recovery-plans/{recoveryPlanExtId}/$actions/planned-failover","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}testFailoverRecoveryPlan(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof Pn&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'recoveryPlanExtId' when calling testFailoverRecoveryPlan");if(null==o)throw new Error("Invalid body when calling testFailoverRecoveryPlan");const s={recoveryPlanExtId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=Wn;return this.apiClient.callApi("/api/dataprotection/v4.2/operations/recovery-plans/{recoveryPlanExtId}/$actions/test-failover","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}unplannedFailoverRecoveryPlan(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof _n&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'recoveryPlanExtId' when calling unplannedFailoverRecoveryPlan");if(null==o)throw new Error("Invalid body when calling unplannedFailoverRecoveryPlan");const s={recoveryPlanExtId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=$n;return this.apiClient.callApi("/api/dataprotection/v4.2/operations/recovery-plans/{recoveryPlanExtId}/$actions/unplanned-failover","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}validateRecoveryPlan(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof En&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'recoveryPlanExtId' when calling validateRecoveryPlan");if(null==o)throw new Error("Invalid body when calling validateRecoveryPlan");const s={recoveryPlanExtId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=An;return this.apiClient.callApi("/api/dataprotection/v4.2/operations/recovery-plans/{recoveryPlanExtId}/$actions/validate","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}},RecoveryPlanJobsApi:class{#e;static get ApiClient(){return le}constructor(e){this.apiClient=e||le.instance,this.#e=new Set,this.#e.add("authorization"),this.#e.add("cookie"),this.#e.add("host"),this.#e.add("user-agent")}deleteRecoveryPlanJobById(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'extId' when calling deleteRecoveryPlanJobById");const i={extId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=$i;return this.apiClient.callApi("/api/dataprotection/v4.2/config/recovery-plan-jobs/{extId}","DELETE",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}getRecoveryPlanJobById(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'extId' when calling getRecoveryPlanJobById");const i={extId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=vi;return this.apiClient.callApi("/api/dataprotection/v4.2/config/recovery-plan-jobs/{extId}","GET",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}listExecutionStepsByRecoveryPlanJobId(e,t,...n){let i=n.length>0?n[0]:{};if(t=t||{},null==e)throw new Error("Missing the required parameter 'recoveryPlanJobExtId' when calling listExecutionStepsByRecoveryPlanJobId");const o={recoveryPlanJobExtId:e},s={...t.hasOwnProperty("$page")?{$page:t.$page}:{},...t.hasOwnProperty("$limit")?{$limit:t.$limit}:{},...t.hasOwnProperty("$filter")?{$filter:t.$filter}:{},...t.hasOwnProperty("$orderby")?{$orderby:t.$orderby}:{}};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r},l=uo;return this.apiClient.callApi("/api/dataprotection/v4.2/config/recovery-plan-jobs/{recoveryPlanJobExtId}/execution-steps","GET",o,s,a,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],l)}listRecoveryPlanJobs(e,...t){let n=t.length>0?t[0]:{};const i={...(e=e||{}).hasOwnProperty("$page")?{$page:e.$page}:{},...e.hasOwnProperty("$limit")?{$limit:e.$limit}:{},...e.hasOwnProperty("$filter")?{$filter:e.$filter}:{},...e.hasOwnProperty("$orderby")?{$orderby:e.$orderby}:{},...e.hasOwnProperty("$select")?{$select:e.$select}:{}};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=Gi;return this.apiClient.callApi("/api/dataprotection/v4.2/config/recovery-plan-jobs","GET",{},i,s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}listValidationErrorsByRecoveryPlanJobId(e,t,...n){let i=n.length>0?n[0]:{};if(t=t||{},null==e)throw new Error("Missing the required parameter 'recoveryPlanJobExtId' when calling listValidationErrorsByRecoveryPlanJobId");const o={recoveryPlanJobExtId:e},s={...t.hasOwnProperty("$page")?{$page:t.$page}:{},...t.hasOwnProperty("$limit")?{$limit:t.$limit}:{},...t.hasOwnProperty("$filter")?{$filter:t.$filter}:{},...t.hasOwnProperty("$orderby")?{$orderby:t.$orderby}:{}};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r},l=Ui;return this.apiClient.callApi("/api/dataprotection/v4.2/config/recovery-plan-jobs/{recoveryPlanJobExtId}/validation-errors","GET",o,s,a,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],l)}},RecoveryPointsApi:class{#e;static get ApiClient(){return le}constructor(e){this.apiClient=e||le.instance,this.#e=new Set,this.#e.add("authorization"),this.#e.add("cookie"),this.#e.add("host"),this.#e.add("user-agent")}createRecoveryPoint(e,...t){let n=t.length>0?t[0]:{},i=null;if(i=e instanceof As&&"function"==typeof e.toJson?e.toJson():e,null==i)throw new Error("Invalid body when calling createRecoveryPoint");let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o};le.addEtagReferenceToHeader(e,s);const r=Wr;return this.apiClient.callApi("/api/dataprotection/v4.2/config/recovery-points","POST",{},{},s,{},i,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],r)}deleteRecoveryPointById(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'extId' when calling deleteRecoveryPointById");const i={extId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=oa;return this.apiClient.callApi("/api/dataprotection/v4.2/config/recovery-points/{extId}","DELETE",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}discoverClusterForRecoveryPointId(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof Ao&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'extId' when calling discoverClusterForRecoveryPointId");if(null==o)throw new Error("Invalid body when calling discoverClusterForRecoveryPointId");const s={extId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=Ho;return this.apiClient.callApi("/api/dataprotection/v4.2/config/recovery-points/{extId}/$actions/discover-cluster","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}getRecoveryPointById(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'extId' when calling getRecoveryPointById");const i={extId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=Ir;return this.apiClient.callApi("/api/dataprotection/v4.2/config/recovery-points/{extId}","GET",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}getVmRecoveryPointById(e,t,...n){let i=n.length>0?n[0]:{};if(null==e)throw new Error("Missing the required parameter 'recoveryPointExtId' when calling getVmRecoveryPointById");if(null==t)throw new Error("Missing the required parameter 'extId' when calling getVmRecoveryPointById");const o={recoveryPointExtId:e,extId:t};let s={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(s[e]=i[e])});const r={...s},a=la;return this.apiClient.callApi("/api/dataprotection/v4.2/config/recovery-points/{recoveryPointExtId}/vm-recovery-points/{extId}","GET",o,{},r,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],a)}getVssMetadataByVmRecoveryPointId(e,t,...n){let i=n.length>0?n[0]:{};if(null==e)throw new Error("Missing the required parameter 'recoveryPointExtId' when calling getVssMetadataByVmRecoveryPointId");if(null==t)throw new Error("Missing the required parameter 'vmRecoveryPointExtId' when calling getVssMetadataByVmRecoveryPointId");const o={recoveryPointExtId:e,vmRecoveryPointExtId:t};let s={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(s[e]=i[e])});const r={...s},a=Hr;return this.apiClient.callApi("/api/dataprotection/v4.2/content/recovery-points/{recoveryPointExtId}/vm-recovery-points/{vmRecoveryPointExtId}/vss-metadata","GET",o,{},r,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/octet-stream","application/json"],a)}listRecoveryPoints(e,...t){let n=t.length>0?t[0]:{};const i={...(e=e||{}).hasOwnProperty("$page")?{$page:e.$page}:{},...e.hasOwnProperty("$limit")?{$limit:e.$limit}:{},...e.hasOwnProperty("$filter")?{$filter:e.$filter}:{},...e.hasOwnProperty("$orderby")?{$orderby:e.$orderby}:{},...e.hasOwnProperty("$select")?{$select:e.$select}:{}};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={"X-Cluster-Id":e.xClusterId,...o},r=Us;return this.apiClient.callApi("/api/dataprotection/v4.2/config/recovery-points","GET",{},i,s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}replicateRecoveryPoint(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof wa&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'extId' when calling replicateRecoveryPoint");if(null==o)throw new Error("Invalid body when calling replicateRecoveryPoint");const s={extId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=vo;return this.apiClient.callApi("/api/dataprotection/v4.2/config/recovery-points/{extId}/$actions/replicate","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}restoreRecoveryPoint(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof Er&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'extId' when calling restoreRecoveryPoint");const s={extId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=ea;return this.apiClient.callApi("/api/dataprotection/v4.2/config/recovery-points/{extId}/$actions/restore","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}setRecoveryPointExpirationTime(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof _r&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'extId' when calling setRecoveryPointExpirationTime");if(null==o)throw new Error("Invalid body when calling setRecoveryPointExpirationTime");const s={extId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=Ta;return this.apiClient.callApi("/api/dataprotection/v4.2/config/recovery-points/{extId}/$actions/set-expiration-time","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}vmRecoveryPointComputeChangedRegions(e,t,n,i,...o){let s=o.length>0?o[0]:{},r=null;if(r=i instanceof Jo&&"function"==typeof i.toJson?i.toJson():i,null==e)throw new Error("Missing the required parameter 'recoveryPointExtId' when calling vmRecoveryPointComputeChangedRegions");if(null==t)throw new Error("Missing the required parameter 'vmRecoveryPointExtId' when calling vmRecoveryPointComputeChangedRegions");if(null==n)throw new Error("Missing the required parameter 'extId' when calling vmRecoveryPointComputeChangedRegions");if(null==r)throw new Error("Invalid body when calling vmRecoveryPointComputeChangedRegions");const a={recoveryPointExtId:e,vmRecoveryPointExtId:t,extId:n};let l={};Object.keys(s).forEach(e=>{this.#e.has(e.toLowerCase())||(l[e]=s[e])});const d={...l};le.addEtagReferenceToHeader(i,d);const u=Nr;return this.apiClient.callApi("/api/dataprotection/v4.2/content/recovery-points/{recoveryPointExtId}/vm-recovery-points/{vmRecoveryPointExtId}/disk-recovery-points/{extId}/$actions/compute-changed-regions","POST",a,{},d,{},r,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],u)}volumeGroupRecoveryPointComputeChangedRegions(e,t,n,i,...o){let s=o.length>0?o[0]:{},r=null;if(r=i instanceof pa&&"function"==typeof i.toJson?i.toJson():i,null==e)throw new Error("Missing the required parameter 'recoveryPointExtId' when calling volumeGroupRecoveryPointComputeChangedRegions");if(null==t)throw new Error("Missing the required parameter 'volumeGroupRecoveryPointExtId' when calling volumeGroupRecoveryPointComputeChangedRegions");if(null==n)throw new Error("Missing the required parameter 'extId' when calling volumeGroupRecoveryPointComputeChangedRegions");if(null==r)throw new Error("Invalid body when calling volumeGroupRecoveryPointComputeChangedRegions");const a={recoveryPointExtId:e,volumeGroupRecoveryPointExtId:t,extId:n};let l={};Object.keys(s).forEach(e=>{this.#e.has(e.toLowerCase())||(l[e]=s[e])});const d={...l};le.addEtagReferenceToHeader(i,d);const u=ga;return this.apiClient.callApi("/api/dataprotection/v4.2/content/recovery-points/{recoveryPointExtId}/volume-group-recovery-points/{volumeGroupRecoveryPointExtId}/disk-recovery-points/{extId}/$actions/compute-changed-regions","POST",a,{},d,{},r,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],u)}},CommonConfigEntityReference:bi,EntityType:ki,Flag:O,IPAddress:Bo,IPv4Address:Lo,IPv6Address:Vo,KVPair:S,MapOfStringWrapper:R,Message:J,MessageSeverity:U,TenantAwareModel:Re,ApiLink:L,ApiResponseMetadata:W,ExternalizableAbstractModel:Ae,BackupType:ps,BaseRecoveryPoint:os,BaseVmRecoveryPoint:$s,ClusterInfo:zo,DiskRecoveryPoint:cs,RecoveryPointStatus:Qo,RecoveryPointType:ts,VssProperties:ys,AhvVmOverrideSpec:pr,AmazonS3Bucket:Ea,AzureBlobStorageContainer:Oa,Capability:Ne,ClusterInfoApiResponse:Ho,ConsistencyGroup:dt,ConsistencyGroupMember:at,ConsistencyGroupMemberType:st,ConsistencyGroupMigrationSpec:Pa,ConsistencyGroupProjection:jt,CreateConsistencyGroupApiResponse:mt,CreateRecoveryPointApiResponse:Wr,CreationTimeRange:Aa,DataProtectionCapabilityName:Se,DataProtectionClusterCapability:Me,DataProtectionClusterCapabilityProjection:Je,DataProtectionSiteReference:At,DeleteConsistencyGroupApiResponse:Ft,DeleteRecoveryPlanJobApiResponse:$i,DeleteRecoveryPointApiResponse:oa,DisasterRecoveryLocation:as,EntityRecoveryResult:Yi,DataprotectionConfigEntityReference:kn,ErrorGroup:Ei,ErrorMessage:Pi,EsxiVmOverrideSpec:yr,ExecutionStepEntityReference:zi,ExecutionStepEntityType:Bi,ExecutionStepResult:Zi,ExpirationTimeSpec:_r,FailoverDirection:bn,ForceDeleteAllRecoveryPointsSpec:Da,GetConsistencyGroupApiResponse:ht,GetProtectedResourceApiResponse:Qt,GetRecoveryPlanJobApiResponse:vi,GetRecoveryPointApiResponse:Ir,GetVmRecoveryPointApiResponse:la,HostReference:Ja,HostType:Ua,HypervisorType:Ts,ListConsistencyGroupsApiResponse:Pt,ListDPClusterCapabilitiesApiResponse:nt,ListRecoveryPlanJobExecutionStepsApiResponse:uo,ListRecoveryPlanJobValidationErrorsApiResponse:Ui,ListRecoveryPlanJobsApiResponse:Gi,ListRecoveryPointsApiResponse:Us,LocationReference:ds,NutanixObjectsBucket:La,ObjectStorageType:Va,OperationType:to,PhaseSummary:si,ProtectedEntityType:St,ProtectedResource:Ht,ProtectedResourcePromoteApiResponse:un,ProtectedResourceReplicationStatus:Nt,ProtectedResourceRestoreApiResponse:rn,ProtectedResourceRestoreSpec:vn,RecoveryInfo:Wt,RecoveryPlanActionType:ai,RecoveryPlanJob:ui,RecoveryPlanJobExecutionStatus:Xn,RecoveryPlanJobExecutionStep:oo,RecoveryPlanJobExecutionStepProjection:ro,RecoveryPlanJobPhaseType:Qn,RecoveryPlanJobProjection:Ji,RecoveryPlanValidationError:Ci,RecoveryPlanValidationErrorProjection:Si,RecoveryPoint:As,RecoveryPointProjection:Ss,RecoveryPointReplicateApiResponse:vo,RecoveryPointReplicationSpec:wa,RecoveryPointRepository:qa,RecoveryPointRepositoryProjection:Ka,RecoveryPointRestorationSpec:Er,RecoveryPointRestoreApiResponse:ea,RecycleBinEntry:Xa,RecycleBinVm:tl,RecycleBinVmProjection:il,RecycleBinVolumeGroup:rl,RecycleBinVolumeGroupProjection:ll,ReplicationState:Mt,RestorableTimeRange:Lt,RootCauseAnalysis:xi,Severity:Oi,SiteProtectionInfo:Kt,SiteReference:ul,StageSummary:ii,Summary:ti,SynchronousReplicationRole:qt,UpdateConsistencyGroupApiResponse:gt,UpdateRecoveryPointExpirationTimeApiResponse:Ta,VmRecoveryPoint:Es,VmRecoveryPointRestoreOverride:$r,VolumeGroupOverrideSpec:kr,VolumeGroupRecoveryPoint:Ps,VolumeGroupRecoveryPointRestoreOverride:br,VolumeGroupSyncContext:hl,Witness:gl,WitnessAvailabilityStatus:vl,BaseRecoveryPointSpec:Do,ChangedRegion:Cr,ChangedVmRegionsApiResponse:Nr,ChangedVolumeGroupRegionsApiResponse:ga,ClusterDiscoverOperation:fo,ClusterDiscoverSpec:Ao,ComputeChangedRegionsClusterDiscoverSpec:jo,DiskRecoveryPointReference:wo,FileWrapper:zr,GetVssMetadataApiResponse:Hr,GetVssMetadataClusterDiscoverSpec:Po,RegionType:xr,VmDiskRecoveryPointClusterDiscoverSpec:Uo,VmDiskRecoveryPointReference:ko,VmRecoveryPointChangedRegionsComputeSpec:Jo,VolumeGroupDiskRecoveryPointClusterDiscoverSpec:ca,VolumeGroupDiskRecoveryPointReference:bo,VolumeGroupRecoveryPointChangedRegionsComputeSpec:pa,AppMessage:Ge,ErrorResponse:Ze,SchemaValidationError:Ke,SchemaValidationErrorMessage:Be,BaseRecoveryPlanActionSpec:En,CleanupRecoveryPlanResourcesApiResponse:Nn,PlannedFailoverRecoveryPlanApiResponse:Kn,PlannedFailoverSpec:On,TestFailoverRecoveryPlanApiResponse:Wn,TestFailoverSpec:Pn,UnplannedFailoverRecoveryPlanApiResponse:$n,UnplannedFailoverSpec:_n,ValidateRecoveryPlanApiResponse:An,ValidateSpec:fl,TaskReference:nn,CategoryReference:_s,GuestStaticIpSpec:Ks,OwnerReference:Gs,OwnershipInfo:Ws,SubnetReference:Zs,VmConfigOverrideSpecification:hr,VmRestoreGuestNicInfoOverrideSpec:Hs,VmRestoreGuestToolsSpecification:qs,VmRestoreIpv4ConfigOverrideSpec:er,VmRestoreNicConfigOverrideParams:ar,VmRestoreNicConfigSpecification:ur,VmRestoreVirtualEthernetNicNetworkInfoOverrideSpec:nr,VmRestoreVirtualEthernetNicOverrideSpec:or}})(),i.default})());
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Ntnx=t():(e.Ntnx=e.Ntnx||{},e.Ntnx.Dataprotection=t())}(Object("undefined"==typeof self?this:self),()=>(()=>{var e={960(e){function t(e){if(e)return function(e){for(var n in t.prototype)e[n]=t.prototype[n];return e}(e)}e.exports=t,t.prototype.on=t.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},t.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},t.prototype.off=t.prototype.removeListener=t.prototype.removeAllListeners=t.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,i=this._callbacks["$"+e];if(!i)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var o=0;o<i.length;o++)if((n=i[o])===t||n.fn===t){i.splice(o,1);break}return 0===i.length&&delete this._callbacks["$"+e],this},t.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),n=this._callbacks["$"+e],i=1;i<arguments.length;i++)t[i-1]=arguments[i];if(n){i=0;for(var o=(n=n.slice(0)).length;i<o;++i)n[i].apply(this,t)}return this},t.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},t.prototype.hasListeners=function(e){return!!this.listeners(e).length}},340(e){e.exports=r,r.default=r,r.stable=u,r.stableStringify=u;var t="[...]",n="[Circular]",i=[],o=[];function s(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function r(e,t,n,r){var a;void 0===r&&(r=s()),l(e,"",0,[],void 0,0,r);try{a=0===o.length?JSON.stringify(e,t,n):JSON.stringify(e,h(t),n)}catch(e){return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;0!==i.length;){var d=i.pop();4===d.length?Object.defineProperty(d[0],d[1],d[3]):d[0][d[1]]=d[2]}}return a}function a(e,t,n,s){var r=Object.getOwnPropertyDescriptor(s,n);void 0!==r.get?r.configurable?(Object.defineProperty(s,n,{value:e}),i.push([s,n,t,r])):o.push([t,n,e]):(s[n]=e,i.push([s,n,t]))}function l(e,i,o,s,r,d,u){var c;if(d+=1,"object"==typeof e&&null!==e){for(c=0;c<s.length;c++)if(s[c]===e)return void a(n,e,i,r);if(void 0!==u.depthLimit&&d>u.depthLimit)return void a(t,e,i,r);if(void 0!==u.edgesLimit&&o+1>u.edgesLimit)return void a(t,e,i,r);if(s.push(e),Array.isArray(e))for(c=0;c<e.length;c++)l(e[c],c,c,s,e,d,u);else{var h=Object.keys(e);for(c=0;c<h.length;c++){var p=h[c];l(e[p],p,c,s,e,d,u)}}s.pop()}}function d(e,t){return e<t?-1:e>t?1:0}function u(e,t,n,r){void 0===r&&(r=s());var a,l=c(e,"",0,[],void 0,0,r)||e;try{a=0===o.length?JSON.stringify(l,t,n):JSON.stringify(l,h(t),n)}catch(e){return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;0!==i.length;){var d=i.pop();4===d.length?Object.defineProperty(d[0],d[1],d[3]):d[0][d[1]]=d[2]}}return a}function c(e,o,s,r,l,u,h){var p;if(u+=1,"object"==typeof e&&null!==e){for(p=0;p<r.length;p++)if(r[p]===e)return void a(n,e,o,l);try{if("function"==typeof e.toJSON)return}catch(e){return}if(void 0!==h.depthLimit&&u>h.depthLimit)return void a(t,e,o,l);if(void 0!==h.edgesLimit&&s+1>h.edgesLimit)return void a(t,e,o,l);if(r.push(e),Array.isArray(e))for(p=0;p<e.length;p++)c(e[p],p,p,r,e,u,h);else{var v={},y=Object.keys(e).sort(d);for(p=0;p<y.length;p++){var g=y[p];c(e[g],g,p,r,e,u,h),v[g]=e[g]}if(void 0===l)return v;i.push([l,o,e]),l[o]=v}r.pop()}}function h(e){return e=void 0!==e?e:function(e,t){return t},function(t,n){if(o.length>0)for(var i=0;i<o.length;i++){var s=o[i];if(s[1]===t&&s[0]===n){n=s[2],o.splice(i,1);break}}return e.call(this,t,n)}}},784(e,t,n){"use strict";var i="win32"===process.platform,o=n(818);function s(e,t){for(var n=[],i=0;i<e.length;i++){var o=e[i];o&&"."!==o&&(".."===o?n.length&&".."!==n[n.length-1]?n.pop():t&&n.push(".."):n.push(o))}return n}function r(e){for(var t=e.length-1,n=0;n<=t&&!e[n];n++);for(var i=t;i>=0&&!e[i];i--);return 0===n&&i===t?e:n>i?[]:e.slice(n,i+1)}var a=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/,l=/^([\s\S]*?)((?:\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))(?:[\\\/]*)$/,d={};function u(e){var t=a.exec(e),n=(t[1]||"")+(t[2]||""),i=t[3]||"",o=l.exec(i);return[n,o[1],o[2],o[3]]}function c(e){var t=a.exec(e),n=t[1]||"",i=!!n&&":"!==n[1];return{device:n,isUnc:i,isAbsolute:i||!!t[2],tail:t[3]}}function h(e){return"\\\\"+e.replace(/^[\\\/]+/,"").replace(/[\\\/]+/g,"\\")}d.resolve=function(){for(var e="",t="",n=!1,i=arguments.length-1;i>=-1;i--){var r;if(i>=0?r=arguments[i]:e?(r=process.env["="+e])&&r.substr(0,3).toLowerCase()===e.toLowerCase()+"\\"||(r=e+"\\"):r=process.cwd(),!o.isString(r))throw new TypeError("Arguments to path.resolve must be strings");if(r){var a=c(r),l=a.device,d=a.isUnc,u=a.isAbsolute,p=a.tail;if((!l||!e||l.toLowerCase()===e.toLowerCase())&&(e||(e=l),n||(t=p+"\\"+t,n=u),e&&n))break}}return d&&(e=h(e)),e+(n?"\\":"")+(t=s(t.split(/[\\\/]+/),!n).join("\\"))||"."},d.normalize=function(e){var t=c(e),n=t.device,i=t.isUnc,o=t.isAbsolute,r=t.tail,a=/[\\\/]$/.test(r);return(r=s(r.split(/[\\\/]+/),!o).join("\\"))||o||(r="."),r&&a&&(r+="\\"),i&&(n=h(n)),n+(o?"\\":"")+r},d.isAbsolute=function(e){return c(e).isAbsolute},d.join=function(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(!o.isString(n))throw new TypeError("Arguments to path.join must be strings");n&&e.push(n)}var i=e.join("\\");return/^[\\\/]{2}[^\\\/]/.test(e[0])||(i=i.replace(/^[\\\/]{2,}/,"\\")),d.normalize(i)},d.relative=function(e,t){e=d.resolve(e),t=d.resolve(t);for(var n=e.toLowerCase(),i=t.toLowerCase(),o=r(t.split("\\")),s=r(n.split("\\")),a=r(i.split("\\")),l=Math.min(s.length,a.length),u=l,c=0;c<l;c++)if(s[c]!==a[c]){u=c;break}if(0==u)return t;var h=[];for(c=u;c<s.length;c++)h.push("..");return(h=h.concat(o.slice(u))).join("\\")},d._makeLong=function(e){if(!o.isString(e))return e;if(!e)return"";var t=d.resolve(e);return/^[a-zA-Z]\:\\/.test(t)?"\\\\?\\"+t:/^\\\\[^?.]/.test(t)?"\\\\?\\UNC\\"+t.substring(2):e},d.dirname=function(e){var t=u(e),n=t[0],i=t[1];return n||i?(i&&(i=i.substr(0,i.length-1)),n+i):"."},d.basename=function(e,t){var n=u(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},d.extname=function(e){return u(e)[3]},d.format=function(e){if(!o.isObject(e))throw new TypeError("Parameter 'pathObject' must be an object, not "+typeof e);var t=e.root||"";if(!o.isString(t))throw new TypeError("'pathObject.root' must be a string or undefined, not "+typeof e.root);var n=e.dir,i=e.base||"";return n?n[n.length-1]===d.sep?n+i:n+d.sep+i:i},d.parse=function(e){if(!o.isString(e))throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=u(e);if(!t||4!==t.length)throw new TypeError("Invalid path '"+e+"'");return{root:t[0],dir:t[0]+t[1].slice(0,-1),base:t[2],ext:t[3],name:t[2].slice(0,t[2].length-t[3].length)}},d.sep="\\",d.delimiter=";";var p=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,v={};function y(e){return p.exec(e).slice(1)}v.resolve=function(){for(var e="",t=!1,n=arguments.length-1;n>=-1&&!t;n--){var i=n>=0?arguments[n]:process.cwd();if(!o.isString(i))throw new TypeError("Arguments to path.resolve must be strings");i&&(e=i+"/"+e,t="/"===i[0])}return(t?"/":"")+(e=s(e.split("/"),!t).join("/"))||"."},v.normalize=function(e){var t=v.isAbsolute(e),n=e&&"/"===e[e.length-1];return(e=s(e.split("/"),!t).join("/"))||t||(e="."),e&&n&&(e+="/"),(t?"/":"")+e},v.isAbsolute=function(e){return"/"===e.charAt(0)},v.join=function(){for(var e="",t=0;t<arguments.length;t++){var n=arguments[t];if(!o.isString(n))throw new TypeError("Arguments to path.join must be strings");n&&(e+=e?"/"+n:n)}return v.normalize(e)},v.relative=function(e,t){e=v.resolve(e).substr(1),t=v.resolve(t).substr(1);for(var n=r(e.split("/")),i=r(t.split("/")),o=Math.min(n.length,i.length),s=o,a=0;a<o;a++)if(n[a]!==i[a]){s=a;break}var l=[];for(a=s;a<n.length;a++)l.push("..");return(l=l.concat(i.slice(s))).join("/")},v._makeLong=function(e){return e},v.dirname=function(e){var t=y(e),n=t[0],i=t[1];return n||i?(i&&(i=i.substr(0,i.length-1)),n+i):"."},v.basename=function(e,t){var n=y(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},v.extname=function(e){return y(e)[3]},v.format=function(e){if(!o.isObject(e))throw new TypeError("Parameter 'pathObject' must be an object, not "+typeof e);var t=e.root||"";if(!o.isString(t))throw new TypeError("'pathObject.root' must be a string or undefined, not "+typeof e.root);return(e.dir?e.dir+v.sep:"")+(e.base||"")},v.parse=function(e){if(!o.isString(e))throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=y(e);if(!t||4!==t.length)throw new TypeError("Invalid path '"+e+"'");return t[1]=t[1]||"",t[2]=t[2]||"",t[3]=t[3]||"",{root:t[0],dir:t[0]+t[1].slice(0,-1),base:t[2],ext:t[3],name:t[2].slice(0,t[2].length-t[3].length)}},v.sep="/",v.delimiter=":",e.exports=i?d:v,e.exports.posix=v,e.exports.win32=d},540(e){function t(e,t){if(this._maxRetries&&this._retries++<this._maxRetries&&function(e,t,n,i){if(i)return i(e,t);if(e&&e.code&&~["ECONNRESET","ETIMEDOUT","EADDRINFO","ESOCKETTIMEDOUT","ENOTFOUND","ECONNREFUSED"].indexOf(e.code))return!0;if(t&&t.status){const e=t.status;if(e>=500)return!0;if((e>=400||e<200)&&-1===n.indexOf(e))return!0}return!(!e||!("timeout"in e)||"ECONNABORTED"!==e.code)||e&&"crossDomain"in e}(e,t,this._allowedStatuses,this._retryCallback)){let e;e=this._retries?this._retryDelays[this._retries-1]:0;const t=this;return setTimeout(function(){return t._retry()},e)}const n=this._callback;this.clearTimeout(),e&&(this._maxRetries&&(e.retries=this._retries-1),this.emit("error",e)),n(e,t)}function n(e,t,n,i){0!==arguments.length&&!0!==e||(e=1),e<=0&&(e=0),"number"==typeof t&&(t=[t]);const o=t.length,s=e-o;if(0!==s){if(s<0)throw new Error("Cannot have more delays than retries");{const e=t[o-1];for(let n=0;n<s+1;n++)t.push(e)}}return this._maxRetries=e,this._retries=0,this._retryDelays=t||[0],this._allowedStatuses=n||[],this._retryCallback=i,this}e.exports=function(e){const i=e.Request;return i.prototype.oldRetry=i.prototype.retry,i.prototype.retry=n,i.prototype.callback=t,e}},619(e){"use strict";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}function n(){this._defaults=[]}["use","on","once","set","query","type","accept","auth","withCredentials","sortQuery","retry","ok","redirects","timeout","buffer","serialize","parse","ca","key","pfx","cert","disableTLSCerts"].forEach(function(e){n.prototype[e]=function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return this._defaults.push({fn:e,args:n}),this}}),n.prototype._setDefaults=function(e){this._defaults.forEach(function(n){var i;e[n.fn].apply(e,function(e){if(Array.isArray(e))return t(e)}(i=n.args)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(i)||function(e,n){if(e){if("string"==typeof e)return t(e,n);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?t(e,n):void 0}}(i)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())})},e.exports=n},585(e,t,n){"use strict";function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}var o;"undefined"!=typeof window?o=window:"undefined"==typeof self?(console.warn("Using browser-only version of superagent in non-browser environment"),o=void 0):o=self;var s=n(960),r=n(340),a=n(695),l=n(388),d=n(19),u=n(619);function c(){}e.exports=function(e,n){return"function"==typeof n?new t.Request("GET",e).end(n):1===arguments.length?new t.Request("GET",e):new t.Request(e,n)};var h=t=e.exports;t.Request=w,h.getXHR=function(){if(o.XMLHttpRequest&&(!o.location||"file:"!==o.location.protocol||!o.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}throw new Error("Browser-only version of superagent could not find XHR")};var p="".trim?function(e){return e.trim()}:function(e){return e.replace(/(^\s*|\s*$)/g,"")};function v(e){if(!l(e))return e;var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&y(t,n,e[n]);return t.join("&")}function y(e,t,n){if(void 0!==n)if(null!==n)if(Array.isArray(n))n.forEach(function(n){y(e,t,n)});else if(l(n))for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&y(e,"".concat(t,"[").concat(i,"]"),n[i]);else e.push(encodeURI(t)+"="+encodeURIComponent(n));else e.push(encodeURI(t))}function g(e){for(var t,n,i={},o=e.split("&"),s=0,r=o.length;s<r;++s)-1===(n=(t=o[s]).indexOf("="))?i[decodeURIComponent(t)]="":i[decodeURIComponent(t.slice(0,n))]=decodeURIComponent(t.slice(n+1));return i}function f(e){return/[/+]json($|[^-\w])/.test(e)}function $(e){this.req=e,this.xhr=this.req.xhr,this.text="HEAD"!==this.req.method&&(""===this.xhr.responseType||"text"===this.xhr.responseType)||void 0===this.xhr.responseType?this.xhr.responseText:null,this.statusText=this.req.xhr.statusText;var t=this.xhr.status;1223===t&&(t=204),this._setStatusProperties(t),this.headers=function(e){for(var t,n,i,o,s=e.split(/\r?\n/),r={},a=0,l=s.length;a<l;++a)-1!==(t=(n=s[a]).indexOf(":"))&&(i=n.slice(0,t).toLowerCase(),o=p(n.slice(t+1)),r[i]=o);return r}(this.xhr.getAllResponseHeaders()),this.header=this.headers,this.header["content-type"]=this.xhr.getResponseHeader("content-type"),this._setHeaderProperties(this.header),null===this.text&&e._responseType?this.body=this.xhr.response:this.body="HEAD"===this.req.method?null:this._parseBody(this.text?this.text:this.xhr.response)}function w(e,t){var n=this;this._query=this._query||[],this.method=e,this.url=t,this.header={},this._header={},this.on("end",function(){var e,t=null,i=null;try{i=new $(n)}catch(e){return(t=new Error("Parser is unable to parse the response")).parse=!0,t.original=e,n.xhr?(t.rawResponse=void 0===n.xhr.responseType?n.xhr.responseText:n.xhr.response,t.status=n.xhr.status?n.xhr.status:null,t.statusCode=t.status):(t.rawResponse=null,t.status=null),n.callback(t)}n.emit("response",i);try{n._isResponseOK(i)||(e=new Error(i.statusText||i.text||"Unsuccessful HTTP response"))}catch(t){e=t}e?(e.original=t,e.response=i,e.status=i.status,n.callback(e,i)):n.callback(null,i)})}function m(e,t,n){var i=h("DELETE",e);return"function"==typeof t&&(n=t,t=null),t&&i.send(t),n&&i.end(n),i}h.serializeObject=v,h.parseString=g,h.types={html:"text/html",json:"application/json",xml:"text/xml",urlencoded:"application/x-www-form-urlencoded",form:"application/x-www-form-urlencoded","form-data":"application/x-www-form-urlencoded"},h.serialize={"application/x-www-form-urlencoded":v,"application/json":r},h.parse={"application/x-www-form-urlencoded":g,"application/json":JSON.parse},d($.prototype),$.prototype._parseBody=function(e){var t=h.parse[this.type];return this.req._parser?this.req._parser(this,e):(!t&&f(this.type)&&(t=h.parse["application/json"]),t&&e&&(e.length>0||e instanceof Object)?t(e):null)},$.prototype.toError=function(){var e=this.req,t=e.method,n=e.url,i="cannot ".concat(t," ").concat(n," (").concat(this.status,")"),o=new Error(i);return o.status=this.status,o.method=t,o.url=n,o},h.Response=$,s(w.prototype),a(w.prototype),w.prototype.type=function(e){return this.set("Content-Type",h.types[e]||e),this},w.prototype.accept=function(e){return this.set("Accept",h.types[e]||e),this},w.prototype.auth=function(e,t,n){return 1===arguments.length&&(t=""),"object"===i(t)&&null!==t&&(n=t,t=""),n||(n={type:"function"==typeof btoa?"basic":"auto"}),this._auth(e,t,n,function(e){if("function"==typeof btoa)return btoa(e);throw new Error("Cannot use basic auth, btoa is not a function")})},w.prototype.query=function(e){return"string"!=typeof e&&(e=v(e)),e&&this._query.push(e),this},w.prototype.attach=function(e,t,n){if(t){if(this._data)throw new Error("superagent can't mix .send() and .attach()");this._getFormData().append(e,t,n||t.name)}return this},w.prototype._getFormData=function(){return this._formData||(this._formData=new o.FormData),this._formData},w.prototype.callback=function(e,t){if(this._shouldRetry(e,t))return this._retry();var n=this._callback;this.clearTimeout(),e&&(this._maxRetries&&(e.retries=this._retries-1),this.emit("error",e)),n(e,t)},w.prototype.crossDomainError=function(){var e=new Error("Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.");e.crossDomain=!0,e.status=this.status,e.method=this.method,e.url=this.url,this.callback(e)},w.prototype.agent=function(){return console.warn("This is not supported in browser version of superagent"),this},w.prototype.ca=w.prototype.agent,w.prototype.buffer=w.prototype.ca,w.prototype.write=function(){throw new Error("Streaming is not supported in browser version of superagent")},w.prototype.pipe=w.prototype.write,w.prototype._isHost=function(e){return e&&"object"===i(e)&&!Array.isArray(e)&&"[object Object]"!==Object.prototype.toString.call(e)},w.prototype.end=function(e){this._endCalled&&console.warn("Warning: .end() was called twice. This is not supported in superagent"),this._endCalled=!0,this._callback=e||c,this._finalizeQueryString(),this._end()},w.prototype._setUploadTimeout=function(){var e=this;this._uploadTimeout&&!this._uploadTimeoutTimer&&(this._uploadTimeoutTimer=setTimeout(function(){e._timeoutError("Upload timeout of ",e._uploadTimeout,"ETIMEDOUT")},this._uploadTimeout))},w.prototype._end=function(){if(this._aborted)return this.callback(new Error("The request has been aborted even before .end() was called"));var e=this;this.xhr=h.getXHR();var t=this.xhr,n=this._formData||this._data;this._setTimeouts(),t.onreadystatechange=function(){var n=t.readyState;if(n>=2&&e._responseTimeoutTimer&&clearTimeout(e._responseTimeoutTimer),4===n){var i;try{i=t.status}catch(e){i=0}if(!i){if(e.timedout||e._aborted)return;return e.crossDomainError()}e.emit("end")}};var i=function(t,n){n.total>0&&(n.percent=n.loaded/n.total*100,100===n.percent&&clearTimeout(e._uploadTimeoutTimer)),n.direction=t,e.emit("progress",n)};if(this.hasListeners("progress"))try{t.addEventListener("progress",i.bind(null,"download")),t.upload&&t.upload.addEventListener("progress",i.bind(null,"upload"))}catch(e){}t.upload&&this._setUploadTimeout();try{this.username&&this.password?t.open(this.method,this.url,!0,this.username,this.password):t.open(this.method,this.url,!0)}catch(e){return this.callback(e)}if(this._withCredentials&&(t.withCredentials=!0),!this._formData&&"GET"!==this.method&&"HEAD"!==this.method&&"string"!=typeof n&&!this._isHost(n)){var o=this._header["content-type"],s=this._serializer||h.serialize[o?o.split(";")[0]:""];!s&&f(o)&&(s=h.serialize["application/json"]),s&&(n=s(n))}for(var r in this.header)null!==this.header[r]&&Object.prototype.hasOwnProperty.call(this.header,r)&&t.setRequestHeader(r,this.header[r]);this._responseType&&(t.responseType=this._responseType),this.emit("request",this),t.send(void 0===n?null:n)},h.agent=function(){return new u},["GET","POST","OPTIONS","PATCH","PUT","DELETE"].forEach(function(e){u.prototype[e.toLowerCase()]=function(t,n){var i=new h.Request(e,t);return this._setDefaults(i),n&&i.end(n),i}}),u.prototype.del=u.prototype.delete,h.get=function(e,t,n){var i=h("GET",e);return"function"==typeof t&&(n=t,t=null),t&&i.query(t),n&&i.end(n),i},h.head=function(e,t,n){var i=h("HEAD",e);return"function"==typeof t&&(n=t,t=null),t&&i.query(t),n&&i.end(n),i},h.options=function(e,t,n){var i=h("OPTIONS",e);return"function"==typeof t&&(n=t,t=null),t&&i.send(t),n&&i.end(n),i},h.del=m,h.delete=m,h.patch=function(e,t,n){var i=h("PATCH",e);return"function"==typeof t&&(n=t,t=null),t&&i.send(t),n&&i.end(n),i},h.post=function(e,t,n){var i=h("POST",e);return"function"==typeof t&&(n=t,t=null),t&&i.send(t),n&&i.end(n),i},h.put=function(e,t,n){var i=h("PUT",e);return"function"==typeof t&&(n=t,t=null),t&&i.send(t),n&&i.end(n),i}},388(e){"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}e.exports=function(e){return null!==e&&"object"===t(e)}},695(e,t,n){"use strict";function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}var o=n(388);function s(e){if(e)return function(e){for(var t in s.prototype)Object.prototype.hasOwnProperty.call(s.prototype,t)&&(e[t]=s.prototype[t]);return e}(e)}e.exports=s,s.prototype.clearTimeout=function(){return clearTimeout(this._timer),clearTimeout(this._responseTimeoutTimer),clearTimeout(this._uploadTimeoutTimer),delete this._timer,delete this._responseTimeoutTimer,delete this._uploadTimeoutTimer,this},s.prototype.parse=function(e){return this._parser=e,this},s.prototype.responseType=function(e){return this._responseType=e,this},s.prototype.serialize=function(e){return this._serializer=e,this},s.prototype.timeout=function(e){if(!e||"object"!==i(e))return this._timeout=e,this._responseTimeout=0,this._uploadTimeout=0,this;for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))switch(t){case"deadline":this._timeout=e.deadline;break;case"response":this._responseTimeout=e.response;break;case"upload":this._uploadTimeout=e.upload;break;default:console.warn("Unknown timeout option",t)}return this},s.prototype.retry=function(e,t){return 0!==arguments.length&&!0!==e||(e=1),e<=0&&(e=0),this._maxRetries=e,this._retries=0,this._retryCallback=t,this};var r=["ECONNRESET","ETIMEDOUT","EADDRINFO","ESOCKETTIMEDOUT"];s.prototype._shouldRetry=function(e,t){if(!this._maxRetries||this._retries++>=this._maxRetries)return!1;if(this._retryCallback)try{var n=this._retryCallback(e,t);if(!0===n)return!0;if(!1===n)return!1}catch(e){console.error(e)}if(t&&t.status&&t.status>=500&&501!==t.status)return!0;if(e){if(e.code&&r.includes(e.code))return!0;if(e.timeout&&"ECONNABORTED"===e.code)return!0;if(e.crossDomain)return!0}return!1},s.prototype._retry=function(){return this.clearTimeout(),this.req&&(this.req=null,this.req=this.request()),this._aborted=!1,this.timedout=!1,this.timedoutError=null,this._end()},s.prototype.then=function(e,t){var n=this;if(!this._fullfilledPromise){var i=this;this._endCalled&&console.warn("Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"),this._fullfilledPromise=new Promise(function(e,t){i.on("abort",function(){if(!(n._maxRetries&&n._maxRetries>n._retries))if(n.timedout&&n.timedoutError)t(n.timedoutError);else{var e=new Error("Aborted");e.code="ABORTED",e.status=n.status,e.method=n.method,e.url=n.url,t(e)}}),i.end(function(n,i){n?t(n):e(i)})})}return this._fullfilledPromise.then(e,t)},s.prototype.catch=function(e){return this.then(void 0,e)},s.prototype.use=function(e){return e(this),this},s.prototype.ok=function(e){if("function"!=typeof e)throw new Error("Callback required");return this._okCallback=e,this},s.prototype._isResponseOK=function(e){return!!e&&(this._okCallback?this._okCallback(e):e.status>=200&&e.status<300)},s.prototype.get=function(e){return this._header[e.toLowerCase()]},s.prototype.getHeader=s.prototype.get,s.prototype.set=function(e,t){if(o(e)){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&this.set(n,e[n]);return this}return this._header[e.toLowerCase()]=t,this.header[e]=t,this},s.prototype.unset=function(e){return delete this._header[e.toLowerCase()],delete this.header[e],this},s.prototype.field=function(e,t){if(null==e)throw new Error(".field(name, val) name can not be empty");if(this._data)throw new Error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()");if(o(e)){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&this.field(n,e[n]);return this}if(Array.isArray(t)){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&this.field(e,t[i]);return this}if(null==t)throw new Error(".field(name, val) val can not be empty");return"boolean"==typeof t&&(t=String(t)),this._getFormData().append(e,t),this},s.prototype.abort=function(){return this._aborted||(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit("abort")),this},s.prototype._auth=function(e,t,n,i){switch(n.type){case"basic":this.set("Authorization","Basic ".concat(i("".concat(e,":").concat(t))));break;case"auto":this.username=e,this.password=t;break;case"bearer":this.set("Authorization","Bearer ".concat(e))}return this},s.prototype.withCredentials=function(e){return void 0===e&&(e=!0),this._withCredentials=e,this},s.prototype.redirects=function(e){return this._maxRedirects=e,this},s.prototype.maxResponseSize=function(e){if("number"!=typeof e)throw new TypeError("Invalid argument");return this._maxResponseSize=e,this},s.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},s.prototype.send=function(e){var t=o(e),n=this._header["content-type"];if(this._formData)throw new Error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()");if(t&&!this._data)Array.isArray(e)?this._data=[]:this._isHost(e)||(this._data={});else if(e&&this._data&&this._isHost(this._data))throw new Error("Can't merge these send calls");if(t&&o(this._data))for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(this._data[i]=e[i]);else"string"==typeof e?(n||this.type("form"),n=this._header["content-type"],this._data="application/x-www-form-urlencoded"===n?this._data?"".concat(this._data,"&").concat(e):e:(this._data||"")+e):this._data=e;return!t||this._isHost(e)||n||this.type("json"),this},s.prototype.sortQuery=function(e){return this._sort=void 0===e||e,this},s.prototype._finalizeQueryString=function(){var e=this._query.join("&");if(e&&(this.url+=(this.url.includes("?")?"&":"?")+e),this._query.length=0,this._sort){var t=this.url.indexOf("?");if(t>=0){var n=this.url.slice(t+1).split("&");"function"==typeof this._sort?n.sort(this._sort):n.sort(),this.url=this.url.slice(0,t)+"?"+n.join("&")}}},s.prototype._appendQueryString=function(){console.warn("Unsupported")},s.prototype._timeoutError=function(e,t,n){if(!this._aborted){var i=new Error("".concat(e+t,"ms exceeded"));i.timeout=t,i.code="ECONNABORTED",i.errno=n,this.timedout=!0,this.timedoutError=i,this.abort(),this.callback(i)}},s.prototype._setTimeouts=function(){var e=this;this._timeout&&!this._timer&&(this._timer=setTimeout(function(){e._timeoutError("Timeout of ",e._timeout,"ETIME")},this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout(function(){e._timeoutError("Response timeout of ",e._responseTimeout,"ETIMEDOUT")},this._responseTimeout))}},19(e,t,n){"use strict";var i=n(897);function o(e){if(e)return function(e){for(var t in o.prototype)Object.prototype.hasOwnProperty.call(o.prototype,t)&&(e[t]=o.prototype[t]);return e}(e)}e.exports=o,o.prototype.get=function(e){return this.header[e.toLowerCase()]},o.prototype._setHeaderProperties=function(e){var t=e["content-type"]||"";this.type=i.type(t);var n=i.params(t);for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(this[o]=n[o]);this.links={};try{e.link&&(this.links=i.parseLinks(e.link))}catch(e){}},o.prototype._setStatusProperties=function(e){var t=e/100|0;this.statusCode=e,this.status=this.statusCode,this.statusType=t,this.info=1===t,this.ok=2===t,this.redirect=3===t,this.clientError=4===t,this.serverError=5===t,this.error=(4===t||5===t)&&this.toError(),this.created=201===e,this.accepted=202===e,this.noContent=204===e,this.badRequest=400===e,this.unauthorized=401===e,this.notAcceptable=406===e,this.forbidden=403===e,this.notFound=404===e,this.unprocessableEntity=422===e}},897(e,t){"use strict";t.type=function(e){return e.split(/ *; */).shift()},t.params=function(e){return e.split(/ *; */).reduce(function(e,t){var n=t.split(/ *= */),i=n.shift(),o=n.shift();return i&&o&&(e[i]=o),e},{})},t.parseLinks=function(e){return e.split(/ *, */).reduce(function(e,t){var n=t.split(/ *; */),i=n[0].slice(1,-1);return e[n[1].split(/ *= */)[1].slice(1,-1)]=i,e},{})},t.cleanHeader=function(e,t){return delete e["content-type"],delete e["content-length"],delete e["transfer-encoding"],delete e.host,t&&(delete e.authorization,delete e.cookie),e}},597(e){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},98(e){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},818(e,t,n){var i=/%[sdj%]/g;t.format=function(e){if(!g(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(r(arguments[n]));return t.join(" ")}n=1;for(var o=arguments,s=o.length,a=String(e).replace(i,function(e){if("%%"===e)return"%";if(n>=s)return e;switch(e){case"%s":return String(o[n++]);case"%d":return Number(o[n++]);case"%j":try{return JSON.stringify(o[n++])}catch(e){return"[Circular]"}default:return e}}),l=o[n];n<s;l=o[++n])v(l)||!w(l)?a+=" "+l:a+=" "+r(l);return a},t.deprecate=function(e,i){if(f(n.g.process))return function(){return t.deprecate(e,i).apply(this,arguments)};if(!0===process.noDeprecation)return e;var o=!1;return function(){if(!o){if(process.throwDeprecation)throw new Error(i);process.traceDeprecation?console.trace(i):console.error(i),o=!0}return e.apply(this,arguments)}};var o,s={};function r(e,n){var i={seen:[],stylize:l};return arguments.length>=3&&(i.depth=arguments[2]),arguments.length>=4&&(i.colors=arguments[3]),p(n)?i.showHidden=n:n&&t._extend(i,n),f(i.showHidden)&&(i.showHidden=!1),f(i.depth)&&(i.depth=2),f(i.colors)&&(i.colors=!1),f(i.customInspect)&&(i.customInspect=!0),i.colors&&(i.stylize=a),d(i,e,i.depth)}function a(e,t){var n=r.styles[t];return n?"["+r.colors[n][0]+"m"+e+"["+r.colors[n][1]+"m":e}function l(e,t){return e}function d(e,n,i){if(e.customInspect&&n&&k(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(i,e);return g(o)||(o=d(e,o,i)),o}var s=function(e,t){if(f(t))return e.stylize("undefined","undefined");if(g(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return y(t)?e.stylize(""+t,"number"):p(t)?e.stylize(""+t,"boolean"):v(t)?e.stylize("null","null"):void 0}(e,n);if(s)return s;var r=Object.keys(n),a=function(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}(r);if(e.showHidden&&(r=Object.getOwnPropertyNames(n)),T(n)&&(r.indexOf("message")>=0||r.indexOf("description")>=0))return u(n);if(0===r.length){if(k(n)){var l=n.name?": "+n.name:"";return e.stylize("[Function"+l+"]","special")}if($(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(m(n))return e.stylize(Date.prototype.toString.call(n),"date");if(T(n))return u(n)}var w,b="",F=!1,E=["{","}"];return h(n)&&(F=!0,E=["[","]"]),k(n)&&(b=" [Function"+(n.name?": "+n.name:"")+"]"),$(n)&&(b=" "+RegExp.prototype.toString.call(n)),m(n)&&(b=" "+Date.prototype.toUTCString.call(n)),T(n)&&(b=" "+u(n)),0!==r.length||F&&0!=n.length?i<0?$(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),w=F?function(e,t,n,i,o){for(var s=[],r=0,a=t.length;r<a;++r)I(t,String(r))?s.push(c(e,t,n,i,String(r),!0)):s.push("");return o.forEach(function(o){o.match(/^\d+$/)||s.push(c(e,t,n,i,o,!0))}),s}(e,n,i,a,r):r.map(function(t){return c(e,n,i,a,t,F)}),e.seen.pop(),function(e,t,n){return e.reduce(function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}(w,b,E)):E[0]+b+E[1]}function u(e){return"["+Error.prototype.toString.call(e)+"]"}function c(e,t,n,i,o,s){var r,a,l;if((l=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?a=l.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):l.set&&(a=e.stylize("[Setter]","special")),I(i,o)||(r="["+o+"]"),a||(e.seen.indexOf(l.value)<0?(a=v(n)?d(e,l.value,null):d(e,l.value,n-1)).indexOf("\n")>-1&&(a=s?a.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+a.split("\n").map(function(e){return" "+e}).join("\n")):a=e.stylize("[Circular]","special")),f(r)){if(s&&o.match(/^\d+$/))return a;(r=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(r=r.substr(1,r.length-2),r=e.stylize(r,"name")):(r=r.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),r=e.stylize(r,"string"))}return r+": "+a}function h(e){return Array.isArray(e)}function p(e){return"boolean"==typeof e}function v(e){return null===e}function y(e){return"number"==typeof e}function g(e){return"string"==typeof e}function f(e){return void 0===e}function $(e){return w(e)&&"[object RegExp]"===b(e)}function w(e){return"object"==typeof e&&null!==e}function m(e){return w(e)&&"[object Date]"===b(e)}function T(e){return w(e)&&("[object Error]"===b(e)||e instanceof Error)}function k(e){return"function"==typeof e}function b(e){return Object.prototype.toString.call(e)}function F(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(f(o)&&(o=process.env.NODE_DEBUG||""),e=e.toUpperCase(),!s[e])if(new RegExp("\\b"+e+"\\b","i").test(o)){var n=process.pid;s[e]=function(){var i=t.format.apply(t,arguments);console.error("%s %d: %s",e,n,i)}}else s[e]=function(){};return s[e]},t.inspect=r,r.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},r.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=p,t.isNull=v,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=g,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=f,t.isRegExp=$,t.isObject=w,t.isDate=m,t.isError=T,t.isFunction=k,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(98);var E=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function I(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,n;console.log("%s - %s",(n=[F((e=new Date).getHours()),F(e.getMinutes()),F(e.getSeconds())].join(":"),[e.getDate(),E[e.getMonth()],n].join(" ")),t.format.apply(t,arguments))},t.inherits=n(597),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),i=n.length;i--;)e[n[i]]=t[n[i]];return e}},548(){},799(){},545(){},965(){}},t={};function n(i){var o=t[i];if(void 0!==o)return o.exports;var s=t[i]={exports:{}};return e[i](s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};return(()=>{"use strict";n.d(i,{default:()=>Za});var e,t=n(585),o=n.n(t);class s{constructor(){}static constructFromObject(e,t){if(e){if(t=t||new s,e.hasOwnProperty("links")&&null!==e.links&&void 0!==e.links)for(const n of e.links)if(n.hasOwnProperty("rel")&&n.hasOwnProperty("href"))switch(n.rel){case"first":t.linkFirst=n.href;break;case"prev":t.linkPrev=n.href;break;case"next":t.linkNext=n.href;break;case"last":t.linkLast=n.href}e.hasOwnProperty("totalAvailableResults")&&(t.resultsTotal=e.totalAvailableResults)}return t}getFirstPage(){return this.isFirstPage()?Promise.reject("Cannot navigate to first page : already on first page"):null===this.linkFirst?Promise.reject("No link to first page provided in previous API response"):this._getLink(this.linkFirst)}getPrevPage(){return this.isFirstPage()?Promise.reject("Cannot navigate to previous page : already on first page"):null===this.linkPrev?Promise.reject("No link to previous page provided in previous API response"):this._getLink(this.linkPrev)}getNextPage(){return this.isLastPage()?Promise.reject("Cannot navigate to next page : already on last page"):null===this.linkNext?Promise.reject("No link to next page provided in previous API response"):this._getLink(this.linkNext)}getLastPage(){return this.isLastPage()?Promise.reject("Cannot navigate to last page : already on last page"):null===this.linkLast?Promise.reject("No link to last page provided in previous API response"):this._getLink(this.linkLast)}currentPage(){return null===this.page?0:this.page}countPages(){return null===this.resultsPerPage||null===this.resultsTotal||0===this.resultsPerPage?1:Math.ceil(this.resultsTotal/this.resultsPerPage)}isFirstPage(){return 0===this.currentPage()}isLastPage(){return this.currentPage()===this.countPages()-1}populatePaginationMetadata(e,t,n){this.apiClient=e,this.page=t,this.resultsPerPage=n}_getLink(e){null===this.apiClient&&(this.apiClient=le.instance);const t=this.constructor;return this.apiClient.callApi(e,"GET",{},{},{},{},{},[],[],["application/json"],t)}}s.prototype.linkFirst=null,s.prototype.linkPrev=null,s.prototype.linkNext=null,s.prototype.linkLast=null,s.prototype.apiClient=null,s.prototype.page=null,s.prototype.resultsPerPage=null,s.prototype.resultsTotal=null;var r=new Uint8Array(16);function a(){if(!e&&!(e="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return e(r)}const l=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;for(var d=[],u=0;u<256;++u)d.push((u+256).toString(16).substr(1));const c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(d[e[t+0]]+d[e[t+1]]+d[e[t+2]]+d[e[t+3]]+"-"+d[e[t+4]]+d[e[t+5]]+"-"+d[e[t+6]]+d[e[t+7]]+"-"+d[e[t+8]]+d[e[t+9]]+"-"+d[e[t+10]]+d[e[t+11]]+d[e[t+12]]+d[e[t+13]]+d[e[t+14]]+d[e[t+15]]).toLowerCase();if(!function(e){return"string"==typeof e&&l.test(e)}(n))throw TypeError("Stringified UUID is invalid");return n},h=function(e,t,n){var i=(e=e||{}).random||(e.rng||a)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,t){n=n||0;for(var o=0;o<16;++o)t[n+o]=i[o];return t}return c(i)};var p=n(540),v=n.n(p),y=n(545),g=n.n(y),f=n(799),$=n.n(f),w=n(784),m=n.n(w),T=n(548);const k={DEFAULT:"DEFAULT",constructFromObject:function(e){if("string"==typeof e||e instanceof String)return k[e];throw new Error("Received object name is not an instance of String")},validate:function(e){if(null!=e){if(e===k.DEFAULT)return;throw new Error("Invalid : must be ValidationScopes.{ }")}}};Object.freeze(k);const b=k;class F{static validateMaximum(e,t){return!(null===t||e>t)}static validateMinimum(e,t){return!(null===t||e<t)}static validateExclusiveMaximum(e,t){return!(null===t||e>t)}static validateExclusiveMinimum(e,t){return!(null===t||e>t)}static validateMultipleOf(e,t){return!(null===t||e%t===0)}static validateMaxLength(e,t){return!(null===t||e.length>t)}static validateMinLength(e,t){return!(null===t||e.length<t)}static validatePattern(e,t){return!(null===t||null===e.match(t))}static validateMaxItems(e,t){return!(null===t||e.length>t)}static validateMinItems(e,t){return!(null===t||e.length<t)}static validateUniqueItems(e,t){return!(null===t||!t||e.length!==new Set(e).size)}}class E{constructor(e,t){this.name=e,this.message=t}getName(){return this.name}setName(e){this.name=e}getMessage(){return this.message}setMessage(e){this.message=e}toJson(){return{name:this.getName(),message:this.getMessage()}}}var I=new WeakSet;class O{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=I),t.add(e),this.$objectType="common.v1.config.Flag",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new O,e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("value")&&null!==e.value&&void 0!==e.value&&t.setValue(e.value),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getValue(){return this.value}setValue(e){this.value=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getValue()&&null!==this.getValue()?{value:this.getValue()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,128))return new E("name","does not satisfy required maxLength constraint: 128");if(!F.validateMinLength(this.name,3))return new E("name","does not satisfy required minLength constraint: 3")}return"value"!==t||void 0!==this.value&&null!==this.value?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("value","undefined or null")}}function j(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}O.prototype.name=void 0,O.prototype.value=!1,O.prototype.$reserved=void 0,O.prototype.$objectType=void 0,O.prototype.$unknownFields=void 0;var P=new WeakSet;class R{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=P),t.add(e),this.$objectType="common.v1.config.MapOfStringWrapper",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new R,e.hasOwnProperty("map")&&null!==e.map&&void 0!==e.map&&t.setMap(e.map),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMap(){return this.map}setMap(e){this.map=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMap()&&null!==this.getMap()?{map:j(P,this,x).call(this,this.getMap(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMap()&&null!==this.getMap()?{map:j(P,this,x).call(this,this.getMap())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"map"!==t||void 0!==this.map&&null!==this.map?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("map","undefined or null")}}function x(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function A(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}R.prototype.map=void 0,R.prototype.$reserved=void 0,R.prototype.$objectType=void 0,R.prototype.$unknownFields=void 0;var C=new WeakSet;class S{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=C),t.add(e),this.$objectType="common.v1.config.KVPair",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r,a;if(e){if(t=t||new S,e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("value")&&null!==e.value&&void 0!==e.value)if(Array.isArray(e.value))if(0===e.value.length)t.setValue([]);else{for(r=[],i=e.value,a=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],s=0;s<i.length;s++)switch(a){case"string":case"integer":case"number":r.push(i[s]);break;case"common.v1.config.MapOfStringWrapper":o=R.constructFromObject(i[s],void 0),r.push(o);break;default:throw"Unknown list of type "+a+" in data"}t.setValue(r)}else switch(a=e.value.hasOwnProperty("$objectType")?e.value.$objectType:typeof e.value,a){case"string":case"boolean":case"number":t.setValue(e.value);break;case"object":t.setValue(new Map(Object.entries(e.value)));break;default:throw"Unknown datatype "+a+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getValue(){return this.value}setValue(e){this.value=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getValue()&&null!==this.getValue()?{value:void 0!==this.getValue().toJson?this.getValue().toJson(!1):Array.isArray(this.getValue())?this.getValue().map(e=>void 0!==e.toJson?e.toJson(!1):e):A(C,this,N).call(this,this.getValue(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getValue()&&null!==this.getValue()?{value:void 0!==this.getValue().toJson?this.getValue().toJson():Array.isArray(this.getValue())?this.getValue().map(e=>void 0!==e.toJson?e.toJson():e):A(C,this,N).call(this,this.getValue())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,128))return new E("name","does not satisfy required maxLength constraint: 128");if(!F.validateMinLength(this.name,3))return new E("name","does not satisfy required minLength constraint: 3")}return"value"!==t||void 0!==this.value&&null!==this.value?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("value","undefined or null")}}function N(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}S.prototype.name=void 0,S.prototype.value=void 0,S.prototype.$reserved=void 0,S.prototype.$objectType=void 0,S.prototype.$unknownFields=void 0;const D={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",INFO:"INFO",WARNING:"WARNING",ERROR:"ERROR",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(D).find(t=>D[t]===e);return null==t?D.$UNKNOWN:D[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case D.$UNKNOWN:case D.$REDACTED:case D.INFO:case D.WARNING:case D.ERROR:return;default:throw new Error("Invalid : must be MessageSeverity.{ $UNKNOWN|$REDACTED|INFO|WARNING|ERROR }")}}};Object.freeze(D);const U=D;var M=new WeakSet;class J{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=M),t.add(e),this.$objectType="common.v1.config.Message",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new J,e.hasOwnProperty("code")&&null!==e.code&&void 0!==e.code&&t.setCode(e.code),e.hasOwnProperty("message")&&null!==e.message&&void 0!==e.message&&t.setMessage(e.message),e.hasOwnProperty("locale")&&null!==e.locale&&void 0!==e.locale&&t.setLocale(e.locale),e.hasOwnProperty("severity")&&null!==e.severity&&void 0!==e.severity&&t.setSeverity(U.constructFromObject(e.severity)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getCode(){return this.code}setCode(e){this.code=e}getMessage(){return this.message}setMessage(e){this.message=e}getLocale(){return this.locale}setLocale(e){this.locale=e}getSeverity(){return this.severity}setSeverity(e){this.severity=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getCode()&&null!==this.getCode()?{code:this.getCode()}:{},...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getLocale()&&null!==this.getLocale()?{locale:this.getLocale()}:{},...void 0!==this.getSeverity()&&null!==this.getSeverity()?{severity:this.getSeverity()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"code"!==t||void 0!==this.code&&null!==this.code?"message"!==t||void 0!==this.message&&null!==this.message?"locale"!==t||void 0!==this.locale&&null!==this.locale?"severity"!==t||void 0!==this.severity&&null!==this.severity?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("severity","undefined or null"):new E("locale","undefined or null"):new E("message","undefined or null"):new E("code","undefined or null")}}J.prototype.code=void 0,J.prototype.message=void 0,J.prototype.locale="en_US",J.prototype.severity=void 0,J.prototype.$reserved=void 0,J.prototype.$objectType=void 0,J.prototype.$unknownFields=void 0;var _=new WeakSet;class L{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=_),t.add(e),this.$objectType="common.v1.response.ApiLink",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new L,e.hasOwnProperty("href")&&null!==e.href&&void 0!==e.href&&t.setHref(e.href),e.hasOwnProperty("rel")&&null!==e.rel&&void 0!==e.rel&&t.setRel(e.rel),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getHref(){return this.href}setHref(e){this.href=e}getRel(){return this.rel}setRel(e){this.rel=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getHref()&&null!==this.getHref()?{href:this.getHref()}:{},...void 0!==this.getRel()&&null!==this.getRel()?{rel:this.getRel()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"href"!==t||void 0!==this.href&&null!==this.href?"rel"!==t||void 0!==this.rel&&null!==this.rel?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("rel","undefined or null"):new E("href","undefined or null")}}L.prototype.href=void 0,L.prototype.rel=void 0,L.prototype.$reserved=void 0,L.prototype.$objectType=void 0,L.prototype.$unknownFields=void 0;var V,G=new WeakSet;class W{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=G),t.add(e),this.$objectType="common.v1.response.ApiResponseMetadata",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new W,e.hasOwnProperty("flags")&&null!==e.flags&&void 0!==e.flags){for(r=[],i=e.flags,s=0;s<i.length;s++)o=O.constructFromObject(i[s],void 0),r.push(o);t.setFlags(r)}if(e.hasOwnProperty("links")&&null!==e.links&&void 0!==e.links){for(r=[],i=e.links,s=0;s<i.length;s++)o=L.constructFromObject(i[s],void 0),r.push(o);t.setLinks(r)}if(e.hasOwnProperty("totalAvailableResults")&&null!==e.totalAvailableResults&&void 0!==e.totalAvailableResults&&t.setTotalAvailableResults(e.totalAvailableResults),e.hasOwnProperty("messages")&&null!==e.messages&&void 0!==e.messages){for(r=[],i=e.messages,s=0;s<i.length;s++)o=J.constructFromObject(i[s],void 0),r.push(o);t.setMessages(r)}if(e.hasOwnProperty("extraInfo")&&null!==e.extraInfo&&void 0!==e.extraInfo){for(r=[],i=e.extraInfo,s=0;s<i.length;s++)o=S.constructFromObject(i[s],void 0),r.push(o);t.setExtraInfo(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getFlags(){return this.flags}setFlags(e){this.flags=e}getLinks(){return this.links}setLinks(e){this.links=e}getTotalAvailableResults(){return this.totalAvailableResults}setTotalAvailableResults(e){this.totalAvailableResults=e}getMessages(){return this.messages}setMessages(e){this.messages=e}getExtraInfo(){return this.extraInfo}setExtraInfo(e){this.extraInfo=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getFlags()&&null!==this.getFlags()?{flags:this.getFlags().map(e=>e.toJson(!1))}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTotalAvailableResults()&&null!==this.getTotalAvailableResults()?{totalAvailableResults:this.getTotalAvailableResults()}:{},...void 0!==this.getMessages()&&null!==this.getMessages()?{messages:this.getMessages().map(e=>e.toJson(!1))}:{},...void 0!==this.getExtraInfo()&&null!==this.getExtraInfo()?{extraInfo:this.getExtraInfo().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("flags"===t){if(void 0===this.flags||null===this.flags)return new E("flags","undefined or null");if(!F.validateMaxItems(this.flags,20))return new E("flags","does not satisfy required maxItems constraint: 20")}if("links"===t){if(void 0===this.links||null===this.links)return new E("links","undefined or null");if(!F.validateMaxItems(this.links,20))return new E("links","does not satisfy required maxItems constraint: 20")}if("totalAvailableResults"===t&&(void 0===this.totalAvailableResults||null===this.totalAvailableResults))return new E("totalAvailableResults","undefined or null");if("messages"===t){if(void 0===this.messages||null===this.messages)return new E("messages","undefined or null");if(!F.validateMaxItems(this.messages,20))return new E("messages","does not satisfy required maxItems constraint: 20")}if("extraInfo"===t){if(void 0===this.extraInfo||null===this.extraInfo)return new E("extraInfo","undefined or null");if(!F.validateMaxItems(this.extraInfo,20))return new E("extraInfo","does not satisfy required maxItems constraint: 20")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}function B(e,t,n){q(e,t),t.set(e,n)}function q(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function z(e,t){return e.get(Y(e,t))}function K(e,t,n){return e.set(Y(e,t),n),n}function Y(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}W.prototype.flags=void 0,W.prototype.links=void 0,W.prototype.totalAvailableResults=void 0,W.prototype.messages=void 0,W.prototype.extraInfo=void 0,W.prototype.$reserved=void 0,W.prototype.$objectType=void 0,W.prototype.$unknownFields=void 0,v()(o());var H=new WeakMap,X=new WeakMap,Z=new WeakMap,Q=new WeakMap,ee=new WeakMap,te=new WeakMap,ne=new WeakMap,ie=new WeakMap,oe=new WeakMap,se=new WeakMap,re=new WeakMap,ae=new WeakSet;class le{constructor(){var e;q(this,e=ae),e.add(this),B(this,H,void 0),B(this,X,void 0),B(this,Z,void 0),B(this,Q,void 0),B(this,ee,void 0),B(this,te,void 0),B(this,ne,void 0),B(this,ie,void 0),B(this,oe,void 0),B(this,se,void 0),B(this,re,void 0),K(re,this,Object.freeze({DEBUG:{key:"DEBUG",value:Symbol(0)},INFO:{key:"INFO",value:Symbol(1)},WARN:{key:"WARN",value:Symbol(2)},ERROR:{key:"ERROR",value:Symbol(3)}})),this.scheme="https",K(ie,this,"undefined"==typeof self?"localhost":self.location.hostname),this.port="undefined"==typeof self?"9440":self.location.port,this.authentications={apiKeyAuthScheme:{type:"apiKey",in:"header",name:"X-ntnx-api-key"},basicAuthScheme:{type:"basic"}},this.defaultHeaders={},K(ee,this,3e4),K(te,this,3e4),K(ne,this,108e5),this.readTimeout=z(te,this),this.connectTimeout=z(ee,this),this.cache=!0,K(X,this,null),this.maxRedirects=1,this.maxRetryAttempts=5,this.retryInterval=3e3,this.withCredentials=!1,"undefined"==typeof self&&(this.agent=new(o().agent)),this.requestAgent=null,K(se,this,null),this.allowVersionNegotiation=!0,K(oe,this,!1),this.debug=!1,K(Z,this,null),this.username=null,this.password=null,K(Q,this,!0),this.downloadDestination=null,this.loggerFile=null}set verifySsl(e){this.requestAgent=e?null:new(g().Agent)({rejectUnauthorized:e}),K(Q,this,e)}get verifySsl(){return z(Q,this)}set host(e){K(ie,this,e),K(oe,this,!1),K(se,this,null)}get host(){return z(ie,this)}set loggerFile(e){null!=e&&(("string"==typeof e||e instanceof String)&&(e=$().createWriteStream(e,{flags:"a"})),K(Z,this,new console.Console({stdout:e,stderr:e})))}addDefaultHeader(e,t){"Authorization"===e&&K(X,this,null),this.defaultHeaders[e]=t}paramToString(e){return null==e||null==e?"":e instanceof Date?e.toJSON():e.toString()}buildUrl(e,t){if(e.match(/^\//)||(e="/"+e),void 0!==z(se,this)&&null!==z(se,this)&&null!==z(se,this).match(/v\d+\.\d+(\.[a|b]\d+)?/)&&"v4.3"!==z(se,this)){Y(ae,this,be).call(this,z(re,this).INFO,null,"Changing uri",e,"to negotiated version",z(se,this));var n=new RegExp("(?<=/[-\\w]+/)v\\d+\\.\\d+(\\.[a|b]\\d+)?(?=/.*)","i");e=e.replace(n,z(se,this))}K(H,this,"undefined"==typeof self?this.scheme+":":self.location.protocol);let i="";""!==z(H,this)&&""!==this.host&&""!==this.port?i=z(H,this)+"//"+this.host+":"+this.port:"undefined"!=typeof self&&(i=self.origin);var o=i+e;return o.replace(/\{([\w-]+)\}/g,(e,n)=>{var i;return i=t.hasOwnProperty(n)?this.paramToString(t[n]):e,encodeURIComponent(i)})}buildCollectionParam(e,t){if(null==e)return null;switch(t){case"csv":return e.map(this.paramToString).join(",");case"ssv":return e.map(this.paramToString).join(" ");case"tsv":return e.map(this.paramToString).join("\t");case"pipes":return e.map(this.paramToString).join("|");case"multi":return e.map(this.paramToString);default:throw new Error("Unknown collection format: "+t)}}setApiKey(e){this.authentications.apiKeyAuthScheme.apiKey=null==e||"string"==typeof e||e instanceof String?e:void 0}addEtagToReservedMap(e,t){if(e.hasOwnProperty("headers")&&e.headers.hasOwnProperty("etag")){let i=e.headers.etag;if(void 0!==t.getData())if(Array.isArray(t.getData())&&t.getData().length>0)for(var n of t.getData())n.hasOwnProperty("$reserved")&&void 0!==n.get$Reserved()&&(n.get$Reserved().ETag=i);else t.getData().hasOwnProperty("$reserved")&&void 0!==t.getData().get$Reserved()&&(t.getData().get$Reserved().ETag=i)}return t}static getEtag(e){let t=null;return void 0!==e&&(e.hasOwnProperty("$reserved")&&void 0!==e.get$Reserved()&&(t=this.getValueForCaseInsensitiveKeyMatch(e.get$Reserved(),"ETag")),null==t&&e.hasOwnProperty("data")&&e.getData().hasOwnProperty("$reserved")&&void 0!==e.getData().get$Reserved()&&(t=this.getValueForCaseInsensitiveKeyMatch(e.getData().get$Reserved(),"ETag"))),t}static getValueForCaseInsensitiveKeyMatch(e,t){if(e&&t){const n=t.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===n);return i?e[i]:null}return null}getNegotiatedVersion(){return z(se,this)}negotiateVersion(e,t){return new Promise(n=>{!0===this.allowVersionNegotiation&&!1===z(oe,this)?this.callApiInternal("/api/dataprotection/unversioned/info","OPTIONS",{},{},{},{},null,t,[],["application/json"],Object).then(({data:t,response:i})=>{if(200===i.status&&t.hasOwnProperty("data")&&null!==t.data){const i=t.data,o="v4.2";if(Y(ae,this,$e).call(this,Y(ae,this,we).call(this,i),Y(ae,this,we).call(this,o)))return Y(ae,this,be).call(this,z(re,this).WARN,null,"Server version",i,"is below minimum supported version",o,". Version negotiation will not be performed."),K(se,this,null),K(oe,this,!1),void n(e);K(se,this,Y(ae,this,fe).call(this,"v4.3",i)),K(oe,this,!0),Y(ae,this,be).call(this,z(re,this).INFO,null,"Negotiated Version with server :",z(se,this)),n(e)}else Y(ae,this,be).call(this,z(re,this).ERROR,null,"Could not fetch supported versions from server"),K(se,this,null),K(oe,this,!1),n(e)}).catch(t=>{Y(ae,this,be).call(this,z(re,this).ERROR,null,"Could not fetch supported versions from server"),K(se,this,null),K(oe,this,!1),n(e)}):n(e)})}callApi(e,t,n,i,o,s,r,a,l,d,u){return this.negotiateVersion(this,a).then(function(c){return c.callApiInternal(e,t,n,i,o,s,r,a,l,d,u)})}callApiInternal(e,t,i,s,r,a,l,d,u,c,p){var v=this.buildUrl(e,i);const y="undefined"!=typeof window&&void 0!==window.document;let g=["application/octet-stream","application/pdf","application/zip"];if(c&&c.length>0&&c.some(e=>g.includes(e))&&y&&this.downloadDestination)return new Promise((e,n)=>{const i=Y(ae,this,Oe).call(this,v,t,s,r,l,d,u,c);fetch(i.url,i.options).then(t=>{if(!t.ok){const e=new Error(`HTTP error ${t.status}`);e.status=t.status,Y(ae,this,be).call(this,z(re,this).ERROR,null,"Error downloading file:",e),n(e)}if(!(this.downloadDestination instanceof WritableStream)){let e="Incompatible downloadDestination for Browser Environment, must be WritableStream";Y(ae,this,be).call(this,z(re,this).ERROR,null,e),n(e)}const i=t.body.getReader(),o=this.downloadDestination.getWriter(),s=()=>i.read().then(({done:n,value:i})=>(n&&(o.close(),Y(ae,this,be).call(this,z(re,this).INFO,null,"Finished streaming response"),e({data:{},response:t})),o.write(i).then(s)));return s()}).catch(e=>{Y(ae,this,be).call(this,z(re,this).ERROR,null,"Caught the following error :",e),n(e)})});var f=o()(t,v);if(f.oldCallback=f.callback,f.callback=function(e,t){if(t&&t.status){const e=t.status;if(e>=400&&408!==e&&429!==e&&503!==e&&504!==e&&(this._maxRetries=0),401===t.status&&this.header.Cookie&&(this.unset("Cookie"),this._maxRetries=1),429===e){let e=t.headers["retry-after"];if(e){let t=1e3*parseInt(e,10);this._retryDelays[this._retries]=t}}}this.oldCallback(e,t)},Y(ae,this,pe).call(this,f,d),"GET"===t.toUpperCase()&&!1===this.cache&&(s._=(new Date).getTime()),f.query(Y(ae,this,he).call(this,s)),f.set(this.defaultHeaders).set(Y(ae,this,he).call(this,r)),!(null!==this.defaultHeaders["NTNX-Request-Id"]&&void 0!==this.defaultHeaders["NTNX-Request-Id"]||null!==r["NTNX-Request-Id"]&&void 0!==r["NTNX-Request-Id"])){let e=h();f.set(Y(ae,this,he).call(this,{"NTNX-Request-Id":e}))}y||(this.downloadDestination=".",f.set(Y(ae,this,he).call(this,{"User-Agent":"Nutanix-dataprotection-js-client/4.3.1"}))),this.requestAgent&&f.agent(this.requestAgent);var w={};w.response=Y(ae,this,me).call(this,this.connectTimeout,z(ee,this)),w.deadline=Y(ae,this,me).call(this,this.readTimeout,z(te,this)),f.timeout(w);var m=r.hasOwnProperty("Content-Type")?r["Content-Type"]:Y(ae,this,ue).call(this,u);if(m?"multipart/form-data"!=m&&f.type(m):f.header["Content-Type"]||f.type("application/json"),Y(ae,this,be).call(this,z(re,this).INFO,null,"Request URL :",t,v),Y(ae,this,be).call(this,z(re,this).DEBUG,Y(ae,this,Ee),"Request Headers :",void 0===f.header?"":f.header),"application/x-www-form-urlencoded"===m)f.send(Y(ae,this,he).call(this,a));else if("multipart/form-data"==m){var T=Y(ae,this,he).call(this,a);for(var k in T)T.hasOwnProperty(k)&&(Y(ae,this,ce).call(this,T[k])?f.attach(k,T[k]):f.field(k,T[k]))}else{if("application/octet-stream"===m&&null!=l&&"function"==typeof l.pipe){if(Y(ae,this,be).call(this,z(re,this).INFO,null,"Piping octet-stream request"),"function"==typeof l.pipe)l.pipe(f);else{let e;try{e=n(965)}catch(e){Y(ae,this,be).call(this,z(re,this).ERROR,null,"Error fetching steam/web")}l instanceof e.ReadableStream?l.pipeTo(new e.WritableStream({write(e){f.write(e)},close(){Y(ae,this,be).call(this,z(re,this).INFO,null,"READABLE STREAM CLOSED")},abort(e){Y(ae,this,be).call(this,z(re,this).ERROR,null,"READABLE STREAM ABORTED")}})):f.send(l)}return new Promise((t,n)=>{f.on("error",e=>{Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Caught the following error :",e),n(e)}).on("response",i=>{Y(ae,this,Ie).call(this,i,e,s,p,t,n)})})}["POST","PUT","PATCH"].includes(t.toUpperCase())&&l&&f.send(l)}"Blob"==typeof p?f.responseType("blob"):"String"===p&&f.responseType("string"),Y(ae,this,ke).call(this,f),Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Request Body :",void 0===f._data?"":f._data);var b=r.hasOwnProperty("Accept")&&null!=r.Accept?r.Accept:c.join(", ");return b&&f.accept(b),new Promise((n,i)=>{f.buffer(!1).redirects(0).retry(this.maxRetryAttempts,this.retryInterval,[]).withCredentials(this.withCredentials).on("error",e=>{Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Caught the following error :",e)}).end((r,a)=>{if(r)Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Caught error during the request!"),Y(ae,this,be).call(this,z(re,this).ERROR,null,r),404===r.status&&(K(oe,this,!1),K(se,this,null)),null!==r.response&&void 0!==r.response?r.data=Y(ae,this,ye).call(this,r.response,p):r.data=Y(ae,this,ve).call(this,r),i(r);else{Y(ae,this,be).call(this,z(re,this).INFO,null,"Response Status :",a.status),Y(ae,this,be).call(this,z(re,this).DEBUG,Y(ae,this,Ee),"Response Headers :",a.headers);let r="";if(a.headers.hasOwnProperty("content-type")&&(r=a.headers["content-type"]),g.includes(r)){if(!y){let e=this.downloadDestination+"/downloaded_file_"+Date.now()+".txt",t=$().createWriteStream(e);Y(ae,this,je).call(this,a,t,e,n,i,p)}}else if(302==a.status){let e=this.downloadDestination+"/downloaded_file_"+Date.now()+".txt",s=this;Y(ae,this,be).call(this,z(re,this).INFO,null,"Redirecting to :",a.headers.location);var l=o()(t,a.headers.location);l.set(f.header),a.headers.hasOwnProperty("x-redirect-token")&&(Y(ae,this,be).call(this,z(re,this).INFO,null,"Writing X-Redirect-Token into Cookie"),l.set("Cookie",a.headers["x-redirect-token"])),this.requestAgent&&l.agent(this.requestAgent),l.redirects(0),l.withCredentials(this.withCredentials),l.buffer(!1);let r=$().createWriteStream(e);l.pipe(r),l.on("response",function(t){Y(ae,s,be).call(s,z(re,s).INFO,null,"Received response after redirection :",t.status),Y(ae,s,je).call(s,t,r,e,n,i,p)})}else Y(ae,this,Ie).call(this,a,e,s,p,n,i)}})})}static addEtagReferenceToHeader(e,t){if(null!=e&&e.hasOwnProperty("$reserved")&&e.$reserved.hasOwnProperty("ETag")){let n=e.$reserved.ETag;null!=n&&""!==n&&(t["If-Match"]=n)}}static parseDate(e){return new Date(e)}static parseQueryParam(e,t,n,i){let o=null;if(void 0!==t&&t.hasOwnProperty(n)&&(o=t[n]),null===o&&("string"==typeof e||e instanceof String)){const t=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),i=e.match(new RegExp(`${t}=([0-9]+)`));i&&(o=i[1])}return null===o&&(o=i),o}static convertToType(e,t){if(null==e)return e;switch(t){case"Boolean":return Boolean(e);case"Integer":return parseInt(e,10);case"Number":return parseFloat(e);case"String":return String(e);case"Date":return le.parseDate(String(e));case"Blob":return e;default:if(t===Object)return e;if("function"==typeof t)return t.constructFromObject(e);if(Array.isArray(t)){var n=t[0];return e.map(e=>le.convertToType(e,n))}if("object"==typeof t){var i,o;for(var s in t)if(t.hasOwnProperty(s)){i=s,o=t[s];break}var r={};for(var s in e)if(e.hasOwnProperty(s)){var a=le.convertToType(s,i),l=le.convertToType(e[s],o);r[a]=l}return r}return e}}static constructFromObject(e,t,n){if(Array.isArray(e))for(var i=0;i<e.length;i++)e.hasOwnProperty(i)&&(t[i]=le.convertToType(e[i],n));else for(var o in e)e.hasOwnProperty(o)&&(t[o]=le.convertToType(e[o],n))}}function de(e){return Boolean(null!=e&&e.match(/^application\/json(;.*)?$/i))}function ue(e){for(var t=0;t<e.length;t++)if(Y(ae,this,de).call(this,e[t]))return e[t];return e[0]}function ce(e){{let t;try{t=n(799)}catch(e){}if(t&&t.ReadStream&&e instanceof t.ReadStream)return!0}return"function"==typeof Buffer&&e instanceof Buffer||"function"==typeof T.Blob&&e instanceof T.Blob||"function"==typeof File&&e instanceof File}function he(e){var t={};for(var n in e)if(e.hasOwnProperty(n)&&null!=e[n]&&null!=e[n]){var i=e[n];Y(ae,this,ce).call(this,i)||Array.isArray(i)?t[n]=i:t[n]=this.paramToString(i)}return t}function pe(e,t){t.forEach(t=>{var n=this.authentications[t];switch(n.type){case"basic":n.username||n.password?e.auth(n.username||"",n.password||""):(this.username||this.password)&&e.auth(this.username||"",this.password||""),Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Basic Auth applied to request");break;case"apiKey":if(n.apiKey){var i={};n.apiKeyPrefix?i[n.name]=n.apiKeyPrefix+" "+n.apiKey:i[n.name]=n.apiKey,"header"===n.in?e.set(i):e.query(i)}Y(ae,this,be).call(this,z(re,this).DEBUG,null,"apiKey applied to request");break;case"oauth2":n.accessToken&&e.set({Authorization:"Bearer "+n.accessToken}),Y(ae,this,be).call(this,z(re,this).DEBUG,null,"oauth2 applied to request");break;default:throw Y(ae,this,be).call(this,z(re,this).ERROR,null,"Unknown authentication type:",n.type),new Error("Unknown authentication type: "+n.type)}})}function ve(e){var t={data:{},metadata:{}};t.data.status=e.status,t.data.message=e.message}function ye(e,t){if(null==e||null==t||204==e.status)return null;if(e.headers&&["text/event-stream","text/html","text/xml","text/csv","text/javascript","text/markdown","text/vcard"].includes(e.headers["content-type"])){(n=new t).data=new T.Blob([e.text],{type:e.headers["content-type"]});let i=new O;i.name="hasError",i.value=!1;let o=[i],s=new W;return s.flags=o,n.metadata=s,n}var n;return(null==(n=e.body)||"object"==typeof n&&void 0===n.length&&!Object.keys(n).length)&&(n=e.text),V.convertToType(n,t)}function ge(e,t,n){if(!(e instanceof s))return;const i=parseInt(this.constructor.parseQueryParam(t,n,"$page","0"),10),o=parseInt(this.constructor.parseQueryParam(t,n,"$limit","50"),10);e.populatePaginationMetadata(this,i,o)}function fe(e,t){if(!e||!t)return e;let n=Y(ae,this,we).call(this,e),i=Y(ae,this,we).call(this,t);return!n.family===i.family||Y(ae,this,$e).call(this,n,i)?e:t}function $e(e,t){if(parseInt(e.revision)!=parseInt(t.revision))return parseInt(e.revision)<parseInt(t.revision);if("released"===e.versionType)return!1;let n=e.versionType.substring(0,1),i=t.versionType.substring(0,1),o=parseInt(e.versionType.substring(1)),s="released"===t.versionType?0:parseInt(t.versionType.substring(1));return n===i?o<s:"a"===n||"released"===t.versionType}function we(e){let t={};if("unversioned"===e)t.family="unversioned",t.versionType="released";else{let n=e.toString().split(".");"unversioned"===n[0]?(t.family="unversioned",t.versionType=n[1]):(t.family=n[0].substring(1),t.revision=n[1],2==n.length?t.versionType="released":t.versionType=n[2])}return t}function me(e,t){return e<=0?e=t:e>z(ne,this)&&(e=z(ne,this)),e}function Te(e){if(e.hasOwnProperty("headers")&&e.headers.hasOwnProperty("set-cookie")){let t="",n=e.headers["set-cookie"];if(n.length>0){for(let e of n)e=e.split(";")[0],e.includes("=")&&(e.trim(),t=t.concat(e).concat(";"));""!==t&&(t=t.substr(0,t.length-1))}K(X,this,t),Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Retained cookie :",t)}else K(X,this,null)}function ke(e){null!=z(X,this)&&e.set(Y(ae,this,he).call(this,{Cookie:z(X,this)}))}function be(e,t,...n){if("object"==typeof e&&"key"in e&&"value"in e&&"symbol"==typeof e.value||(e=z(re,this).INFO),!Y(ae,this,Fe).call(this,e)){n=n.map(e=>"string"==typeof e?e:t?t(e):JSON.stringify(e));let i=n.join(" ");i=(new Date).toISOString()+" "+e.key+" - "+i,void 0!==z(Z,this)&&null!==z(Z,this)&&"function"==typeof z(Z,this).log?z(Z,this).log(i):console.log(i)}}function Fe(e){return!this.debug&&e===z(re,this).DEBUG}function Ee(e){if("object"!=typeof e)return e;let t="\n";return e&&Object.keys(e).forEach(n=>{t+=n+"=["+e[n]+"]\n"}),"\n"===t?e:t}function Ie(e,t,n,i,o,s){try{var r=Y(ae,this,ye).call(this,e,i);Y(ae,this,be).call(this,z(re,this).INFO,null,"Response Status :",e.status),Y(ae,this,be).call(this,z(re,this).DEBUG,Y(ae,this,Ee),"Response Headers :",e.headers),Y(ae,this,Te).call(this,e||{}),Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Response Body :",r),204==e.status&&null==r?o({data:r,response:e}):e.ok&&null!=r?(this.addEtagToReservedMap(e,r),Y(ae,this,ge).call(this,r,t,n),o({data:r,response:e})):(Y(ae,this,be).call(this,z(re,this).ERROR,null,r),s({...e.error,data:r}))}catch(e){Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Caught error while processing response!"),Y(ae,this,be).call(this,z(re,this).ERROR,null,e),e.data=Y(ae,this,ve).call(this,e),s(e)}}function Oe(e,t,n,i,o,s,r,a){let l={};s.forEach(e=>{const t=this.authentications[e];switch(t.type){case"basic":let e="",i="";if(t.username||t.password?(e=t.username||"",i=t.password||""):(this.username||this.password)&&(e=this.username||"",i=this.password||""),e||i){const t=btoa(`${e}:${i}`);l.Authorization=`Basic ${t}`}Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Basic Auth applied to request");break;case"apiKey":if(t.apiKey){let e="";e=t.apiKeyPrefix?t.apiKeyPrefix+" "+t.apiKey:t.apiKey,"header"===t.in?l[t.name]="Bearer "+e:"query"===t.in&&(n[t.name]=e)}Y(ae,this,be).call(this,z(re,this).DEBUG,null,"apiKey applied to request");break;case"oauth2":t.accessToken&&(l.Authorization="Bearer "+t.accessToken),Y(ae,this,be).call(this,z(re,this).DEBUG,null,"oauth2 applied to request");break;default:throw Y(ae,this,be).call(this,z(re,this).ERROR,null,"Unknown authentication type:",t.type),new Error("Unknown authentication type: "+t.type)}}),"GET"===t.toUpperCase()&&!1===this.cache&&(n.cache="false");const d=Y(ae,this,he).call(this,n),u=Object.keys(d).map(e=>`${encodeURIComponent(e)}=${encodeURIComponent(d[e])}`).join("&");let c=e;u&&(c+=(c.includes("?")?"&":"?")+u);const p={...this.defaultHeaders,...Y(ae,this,he).call(this,i),...l};if(!(null!==this.defaultHeaders["NTNX-Request-Id"]&&void 0!==this.defaultHeaders["NTNX-Request-Id"]||null!==i["NTNX-Request-Id"]&&void 0!==i["NTNX-Request-Id"])){let e=h();p["NTNX-Request-Id"]=e}null!=z(X,this)&&(p.Cookie=Y(ae,this,he).call(this,{Cookie:z(X,this)}));var v=i.hasOwnProperty("Content-Type")?i["Content-Type"]:Y(ae,this,ue).call(this,r);p["Content-Type"]=v;var y=i.hasOwnProperty("Accept")&&null!=i.Accept?i.Accept:a.join(", ");return y&&(p.Accept=y),Y(ae,this,be).call(this,z(re,this).INFO,null,"Request URL :",t,e),Y(ae,this,be).call(this,z(re,this).DEBUG,Y(ae,this,Ee),"Request Headers :",p),Y(ae,this,be).call(this,z(re,this).DEBUG,null,"Request Body :",o||""),{url:c,options:{method:t,headers:p,body:o,credentials:this.withCredentials?"include":"same-origin"}}}function je(e,t,n,i,o,s){Y(ae,this,be).call(this,z(re,this).INFO,null,"Streaming response to : ",n);try{e.on("data",e=>{t.write(e)})}catch(e){Y(ae,this,be).call(this,z(re,this).ERROR,null,"Issue while downloading file",e)}let r=new s,a="";if(void 0!==e.headers["content-disposition"]&&null!==e.headers["content-disposition"]){let t=e.headers["content-disposition"].match(/.*filename=\"(?<filename>.*)\".*/),n=m().parse(t.groups.filename);a=this.downloadDestination+"/"+n.name+"_"+Date.now()+n.ext,r.data={path:m().parse(a),$objectType:"Path"};let i=new O;i.name="hasError",i.value=!1;let o=[i],s=new W;s.flags=o,r.metadata=s}e.on("end",()=>{Y(ae,this,be).call(this,z(re,this).INFO,null,"Finished streaming response"),0!==a.length?(Y(ae,this,be).call(this,z(re,this).INFO,null,"Content-Disposition header found [",a,"] is final filename"),t.close(),$().renameSync(n,a),i({data:r,response:e})):(Y(ae,this,be).call(this,z(re,this).ERROR,null,"Content-Disposition header not found [",n,"] is final filename"),i({data:r,response:e}))}),e.on("error",e=>{Y(ae,this,be).call(this,z(re,this).ERROR,null,"Caught the following error :",e),error.data=Y(ae,this,ve).call(this,error),o(e)})}V=le,le.instance=new le;var Pe=new WeakSet;class Re{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Pe),t.add(e),this.$objectType="common.v1.config.TenantAwareModel",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Re,e.hasOwnProperty("tenantId")&&null!==e.tenantId&&void 0!==e.tenantId&&t.setTenantId(e.tenantId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getTenantId(){return this.tenantId}setTenantId(e){this.tenantId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("tenantId"===t){if(void 0===this.tenantId||null===this.tenantId)return new E("tenantId","undefined or null");if(!F.validatePattern(this.tenantId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("tenantId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Re.prototype.tenantId=void 0,Re.prototype.$reserved=void 0,Re.prototype.$objectType=void 0,Re.prototype.$unknownFields=void 0;var xe=new WeakSet;class Ae extends Re{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=xe),t.add(e),this.$objectType="common.v1.response.ExternalizableAbstractModel",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Ae,Re.constructFromObject(e,t,!0),e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("links")&&null!==e.links&&void 0!==e.links){for(r=[],i=e.links,s=0;s<i.length;s++)o=L.constructFromObject(i[s],void 0),r.push(o);t.setLinks(r)}if(!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}getLinks(){return this.links}setLinks(e){this.links=e}toJson(e){return!1===e?{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(null==e){if(!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}else if(e===b.update&&!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("links"===t){if(void 0===this.links||null===this.links)return new E("links","undefined or null");if(!F.validateMaxItems(this.links,20))return new E("links","does not satisfy required maxItems constraint: 20")}return new E(t,"no such property exists")}}Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;const Ce={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",SUPPORTS_NEAR_SYNC:"SUPPORTS_NEAR_SYNC",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Ce).find(t=>Ce[t]===e);return null==t?Ce.$UNKNOWN:Ce[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Ce.$UNKNOWN:case Ce.$REDACTED:case Ce.SUPPORTS_NEAR_SYNC:return;default:throw new Error("Invalid : must be DataProtectionCapabilityName.{ $UNKNOWN|$REDACTED|SUPPORTS_NEAR_SYNC }")}}};Object.freeze(Ce);const Se=Ce;var Ne=new WeakSet;class De{constructor(e,t){var n,i;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(n=this,i=Ne),i.add(n),this.capabilityName=e,this.isSupported=t,this.$objectType="dataprotection.v4.config.Capability",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new De,e.hasOwnProperty("capabilityName")&&null!==e.capabilityName&&void 0!==e.capabilityName&&t.setCapabilityName(Se.constructFromObject(e.capabilityName)),e.hasOwnProperty("isSupported")&&null!==e.isSupported&&void 0!==e.isSupported&&t.setIsSupported(e.isSupported),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getCapabilityName(){return this.capabilityName}setCapabilityName(e){this.capabilityName=e}getIsSupported(){return this.isSupported}setIsSupported(e){this.isSupported=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getCapabilityName()&&null!==this.getCapabilityName()?{capabilityName:this.getCapabilityName()}:{},...void 0!==this.getIsSupported()&&null!==this.getIsSupported()?{isSupported:this.getIsSupported()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["capabilityName","isSupported"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"capabilityName"!==t||void 0!==this.capabilityName&&null!==this.capabilityName?"isSupported"!==t||void 0!==this.isSupported&&null!==this.isSupported?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("isSupported","undefined or null"):new E("capabilityName","undefined or null")}}De.prototype.capabilityName=void 0,De.prototype.isSupported=void 0,De.prototype.$reserved=void 0,De.prototype.$objectType=void 0,De.prototype.$unknownFields=void 0;var Ue=new WeakSet;class Me extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ue),t.add(e),this.$objectType="dataprotection.v4.config.DataProtectionClusterCapability",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Me,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("clusterExtId")&&null!==e.clusterExtId&&void 0!==e.clusterExtId&&t.setClusterExtId(e.clusterExtId),e.hasOwnProperty("capabilities")&&null!==e.capabilities&&void 0!==e.capabilities){for(r=[],i=e.capabilities,s=0;s<i.length;s++)o=De.constructFromObject(i[s],void 0),r.push(o);t.setCapabilities(r)}if(!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getClusterExtId(){return this.clusterExtId}setClusterExtId(e){this.clusterExtId=e}getCapabilities(){return this.capabilities}setCapabilities(e){this.capabilities=e}toJson(e){return!1===e?{...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},...void 0!==this.getCapabilities()&&null!==this.getCapabilities()?{capabilities:this.getCapabilities().map(e=>e.toJson(!1))}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("clusterExtId"===t){if(void 0===this.clusterExtId||null===this.clusterExtId)return new E("clusterExtId","undefined or null");if(!F.validatePattern(this.clusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("capabilities"===t){if(void 0===this.capabilities||null===this.capabilities)return new E("capabilities","undefined or null");if(!F.validateMaxItems(this.capabilities,10))return new E("capabilities","does not satisfy required maxItems constraint: 10")}return new E(t,"no such property exists")}}Me.prototype.clusterExtId=void 0,Me.prototype.capabilities=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class Je extends Me{constructor(){super(),this.$objectType="dataprotection.v4.config.DataProtectionClusterCapabilityProjection",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Je,Me.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function _e(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Le=new WeakSet;class Ve{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Le),t.add(e),this.$objectType="dataprotection.v4.error.AppMessage",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Ve,e.hasOwnProperty("message")&&null!==e.message&&void 0!==e.message&&t.setMessage(e.message),e.hasOwnProperty("severity")&&null!==e.severity&&void 0!==e.severity&&t.setSeverity(U.constructFromObject(e.severity)),e.hasOwnProperty("code")&&null!==e.code&&void 0!==e.code&&t.setCode(e.code),e.hasOwnProperty("locale")&&null!==e.locale&&void 0!==e.locale&&t.setLocale(e.locale),e.hasOwnProperty("errorGroup")&&null!==e.errorGroup&&void 0!==e.errorGroup&&t.setErrorGroup(e.errorGroup),e.hasOwnProperty("argumentsMap")&&null!==e.argumentsMap&&void 0!==e.argumentsMap&&t.setArgumentsMap(e.argumentsMap),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMessage(){return this.message}setMessage(e){this.message=e}getSeverity(){return this.severity}setSeverity(e){this.severity=e}getCode(){return this.code}setCode(e){this.code=e}getLocale(){return this.locale}setLocale(e){this.locale=e}getErrorGroup(){return this.errorGroup}setErrorGroup(e){this.errorGroup=e}getArgumentsMap(){return this.argumentsMap}setArgumentsMap(e){this.argumentsMap=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getSeverity()&&null!==this.getSeverity()?{severity:this.getSeverity()}:{},...void 0!==this.getCode()&&null!==this.getCode()?{code:this.getCode()}:{},...void 0!==this.getLocale()&&null!==this.getLocale()?{locale:this.getLocale()}:{},...void 0!==this.getErrorGroup()&&null!==this.getErrorGroup()?{errorGroup:this.getErrorGroup()}:{},...void 0!==this.getArgumentsMap()&&null!==this.getArgumentsMap()?{argumentsMap:_e(Le,this,Ge).call(this,this.getArgumentsMap(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getSeverity()&&null!==this.getSeverity()?{severity:this.getSeverity()}:{},...void 0!==this.getCode()&&null!==this.getCode()?{code:this.getCode()}:{},...void 0!==this.getLocale()&&null!==this.getLocale()?{locale:this.getLocale()}:{},...void 0!==this.getErrorGroup()&&null!==this.getErrorGroup()?{errorGroup:this.getErrorGroup()}:{},...void 0!==this.getArgumentsMap()&&null!==this.getArgumentsMap()?{argumentsMap:_e(Le,this,Ge).call(this,this.getArgumentsMap())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"message"!==t||void 0!==this.message&&null!==this.message?"severity"!==t||void 0!==this.severity&&null!==this.severity?"code"!==t||void 0!==this.code&&null!==this.code?"locale"!==t||void 0!==this.locale&&null!==this.locale?"errorGroup"!==t||void 0!==this.errorGroup&&null!==this.errorGroup?"argumentsMap"!==t||void 0!==this.argumentsMap&&null!==this.argumentsMap?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("argumentsMap","undefined or null"):new E("errorGroup","undefined or null"):new E("locale","undefined or null"):new E("code","undefined or null"):new E("severity","undefined or null"):new E("message","undefined or null")}}function Ge(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Ve.prototype.message=void 0,Ve.prototype.severity=void 0,Ve.prototype.code=void 0,Ve.prototype.locale="en_US",Ve.prototype.errorGroup=void 0,Ve.prototype.argumentsMap=void 0,Ve.prototype.$reserved=void 0,Ve.prototype.$objectType=void 0,Ve.prototype.$unknownFields=void 0;var We=new WeakSet;class Be{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=We),t.add(e),this.$objectType="dataprotection.v4.error.SchemaValidationErrorMessage",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Be,e.hasOwnProperty("location")&&null!==e.location&&void 0!==e.location&&t.setLocation(e.location),e.hasOwnProperty("message")&&null!==e.message&&void 0!==e.message&&t.setMessage(e.message),e.hasOwnProperty("attributePath")&&null!==e.attributePath&&void 0!==e.attributePath&&t.setAttributePath(e.attributePath),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getLocation(){return this.location}setLocation(e){this.location=e}getMessage(){return this.message}setMessage(e){this.message=e}getAttributePath(){return this.attributePath}setAttributePath(e){this.attributePath=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getLocation()&&null!==this.getLocation()?{location:this.getLocation()}:{},...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getAttributePath()&&null!==this.getAttributePath()?{attributePath:this.getAttributePath()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"location"!==t||void 0!==this.location&&null!==this.location?"message"!==t||void 0!==this.message&&null!==this.message?"attributePath"!==t||void 0!==this.attributePath&&null!==this.attributePath?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("attributePath","undefined or null"):new E("message","undefined or null"):new E("location","undefined or null")}}function qe(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Be.prototype.location=void 0,Be.prototype.message=void 0,Be.prototype.attributePath=void 0,Be.prototype.$reserved=void 0,Be.prototype.$objectType=void 0,Be.prototype.$unknownFields=void 0;var ze=new WeakSet;class Ke{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=ze),t.add(e),this.$objectType="dataprotection.v4.error.SchemaValidationError",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Ke,e.hasOwnProperty("timestamp")&&null!==e.timestamp&&void 0!==e.timestamp&&t.setTimestamp(e.timestamp),e.hasOwnProperty("statusCode")&&null!==e.statusCode&&void 0!==e.statusCode&&t.setStatusCode(e.statusCode),e.hasOwnProperty("error")&&null!==e.error&&void 0!==e.error&&t.setError(e.error),e.hasOwnProperty("path")&&null!==e.path&&void 0!==e.path&&t.setPath(e.path),e.hasOwnProperty("validationErrorMessages")&&null!==e.validationErrorMessages&&void 0!==e.validationErrorMessages){for(r=[],i=e.validationErrorMessages,s=0;s<i.length;s++)o=Be.constructFromObject(i[s],void 0),r.push(o);t.setValidationErrorMessages(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getTimestamp(){return this.timestamp}setTimestamp(e){this.timestamp=e}getStatusCode(){return this.statusCode}setStatusCode(e){this.statusCode=e}getError(){return this.error}setError(e){this.error=e}getPath(){return this.path}setPath(e){this.path=e}getValidationErrorMessages(){return this.validationErrorMessages}setValidationErrorMessages(e){this.validationErrorMessages=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getTimestamp()&&null!==this.getTimestamp()?{timestamp:qe(ze,this,Ye).call(this,this.getTimestamp(),!1)}:{},...void 0!==this.getStatusCode()&&null!==this.getStatusCode()?{statusCode:this.getStatusCode()}:{},...void 0!==this.getError()&&null!==this.getError()?{error:this.getError()}:{},...void 0!==this.getPath()&&null!==this.getPath()?{path:this.getPath()}:{},...void 0!==this.getValidationErrorMessages()&&null!==this.getValidationErrorMessages()?{validationErrorMessages:this.getValidationErrorMessages().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"timestamp"!==t||void 0!==this.timestamp&&null!==this.timestamp?"statusCode"!==t||void 0!==this.statusCode&&null!==this.statusCode?"error"!==t||void 0!==this.error&&null!==this.error?"path"!==t||void 0!==this.path&&null!==this.path?"validationErrorMessages"!==t||void 0!==this.validationErrorMessages&&null!==this.validationErrorMessages?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("validationErrorMessages","undefined or null"):new E("path","undefined or null"):new E("error","undefined or null"):new E("statusCode","undefined or null"):new E("timestamp","undefined or null")}}function Ye(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}function He(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Ke.prototype.timestamp=void 0,Ke.prototype.statusCode=void 0,Ke.prototype.error=void 0,Ke.prototype.path=void 0,Ke.prototype.validationErrorMessages=void 0,Ke.prototype.$reserved=void 0,Ke.prototype.$objectType=void 0,Ke.prototype.$unknownFields=void 0;var Xe=new WeakSet;class Ze{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Xe),t.add(e),this.$objectType="dataprotection.v4.error.ErrorResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r,a;if(e){if(t=t||new Ze,e.hasOwnProperty("error")&&null!==e.error&&void 0!==e.error)if(Array.isArray(e.error))if(0===e.error.length)t.setError([]);else{for(r=[],i=e.error,a=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],s=0;s<i.length;s++){if("dataprotection.v4.error.AppMessage"!==a)throw"Unknown list of type "+a+" in data";o=Ve.constructFromObject(i[s],void 0),r.push(o)}t.setError(r)}else{if(a=e.error.hasOwnProperty("$objectType")?e.error.$objectType:typeof e.error,"dataprotection.v4.error.SchemaValidationError"!==a)throw"Unknown datatype "+a+" in data";t.setError(Ke.constructFromObject(e.error,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getError(){return this.error}setError(e){this.error=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getError()&&null!==this.getError()?{error:void 0!==this.getError().toJson?this.getError().toJson(!1):Array.isArray(this.getError())?this.getError().map(e=>void 0!==e.toJson?e.toJson(!1):e):He(Xe,this,Qe).call(this,this.getError(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getError()&&null!==this.getError()?{error:void 0!==this.getError().toJson?this.getError().toJson():Array.isArray(this.getError())?this.getError().map(e=>void 0!==e.toJson?e.toJson():e):He(Xe,this,Qe).call(this,this.getError())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"error"!==t||void 0!==this.error&&null!==this.error?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("error","undefined or null")}}function Qe(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function et(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Ze.prototype.error=void 0,Ze.prototype.$reserved=void 0,Ze.prototype.$objectType=void 0,Ze.prototype.$unknownFields=void 0;var tt=new WeakSet;class nt extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=tt),t.add(e),this.$objectType="dataprotection.v4.config.ListDPClusterCapabilitiesApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new nt,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++)switch(l){case"dataprotection.v4.config.DataProtectionClusterCapability":o=Me.constructFromObject(i[r],void 0),a.push(o);break;case"dataprotection.v4.config.DataProtectionClusterCapabilityProjection":o=Je.constructFromObject(i[r],void 0),a.push(o);break;default:throw"Unknown list of type "+l+" in data"}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):et(tt,this,it).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):et(tt,this,it).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function it(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}nt.prototype.metadata=void 0,nt.prototype.data=void 0,nt.prototype.$reserved=void 0,nt.prototype.$objectType=void 0,nt.prototype.$unknownFields=void 0;var ot=new WeakSet;class st{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=ot),n.add(t),this.domainManagerExtId=e,this.$objectType="dataprotection.v4.config.DataProtectionSiteReference",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new st,e.hasOwnProperty("domainManagerExtId")&&null!==e.domainManagerExtId&&void 0!==e.domainManagerExtId&&t.setDomainManagerExtId(e.domainManagerExtId),e.hasOwnProperty("clusterExtId")&&null!==e.clusterExtId&&void 0!==e.clusterExtId&&t.setClusterExtId(e.clusterExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getDomainManagerExtId(){return this.domainManagerExtId}setDomainManagerExtId(e){this.domainManagerExtId=e}getClusterExtId(){return this.clusterExtId}setClusterExtId(e){this.clusterExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getDomainManagerExtId()&&null!==this.getDomainManagerExtId()?{domainManagerExtId:this.getDomainManagerExtId()}:{},...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["domainManagerExtId"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("domainManagerExtId"===t){if(void 0===this.domainManagerExtId||null===this.domainManagerExtId)return new E("domainManagerExtId","undefined or null");if(!F.validatePattern(this.domainManagerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("domainManagerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("clusterExtId"===t){if(void 0===this.clusterExtId||null===this.clusterExtId)return new E("clusterExtId","undefined or null");if(!F.validatePattern(this.clusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}st.prototype.domainManagerExtId=void 0,st.prototype.clusterExtId=void 0,st.prototype.$reserved=void 0,st.prototype.$objectType=void 0,st.prototype.$unknownFields=void 0;const rt={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",VM:"VM",VOLUME_GROUP:"VOLUME_GROUP",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(rt).find(t=>rt[t]===e);return null==t?rt.$UNKNOWN:rt[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case rt.$UNKNOWN:case rt.$REDACTED:case rt.VM:case rt.VOLUME_GROUP:return;default:throw new Error("Invalid : must be ProtectedEntityType.{ $UNKNOWN|$REDACTED|VM|VOLUME_GROUP }")}}};Object.freeze(rt);const at=rt,lt={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",IN_SYNC:"IN_SYNC",SYNCING:"SYNCING",OUT_OF_SYNC:"OUT_OF_SYNC",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(lt).find(t=>lt[t]===e);return null==t?lt.$UNKNOWN:lt[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case lt.$UNKNOWN:case lt.$REDACTED:case lt.IN_SYNC:case lt.SYNCING:case lt.OUT_OF_SYNC:return;default:throw new Error("Invalid : must be ProtectedResourceReplicationStatus.{ $UNKNOWN|$REDACTED|IN_SYNC|SYNCING|OUT_OF_SYNC }")}}};Object.freeze(lt);const dt=lt;var ut=new WeakSet;class ct{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=ut),t.add(e),this.$objectType="dataprotection.v4.config.ReplicationState",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ct,e.hasOwnProperty("protectionPolicyExtId")&&null!==e.protectionPolicyExtId&&void 0!==e.protectionPolicyExtId&&t.setProtectionPolicyExtId(e.protectionPolicyExtId),e.hasOwnProperty("recoveryPointObjectiveSeconds")&&null!==e.recoveryPointObjectiveSeconds&&void 0!==e.recoveryPointObjectiveSeconds&&t.setRecoveryPointObjectiveSeconds(e.recoveryPointObjectiveSeconds),e.hasOwnProperty("replicationStatus")&&null!==e.replicationStatus&&void 0!==e.replicationStatus&&t.setReplicationStatus(dt.constructFromObject(e.replicationStatus)),e.hasOwnProperty("targetSiteReference")&&null!==e.targetSiteReference&&void 0!==e.targetSiteReference&&t.setTargetSiteReference(st.constructFromObject(e.targetSiteReference)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getProtectionPolicyExtId(){return this.protectionPolicyExtId}setProtectionPolicyExtId(e){this.protectionPolicyExtId=e}getRecoveryPointObjectiveSeconds(){return this.recoveryPointObjectiveSeconds}setRecoveryPointObjectiveSeconds(e){this.recoveryPointObjectiveSeconds=e}getReplicationStatus(){return this.replicationStatus}setReplicationStatus(e){this.replicationStatus=e}getTargetSiteReference(){return this.targetSiteReference}setTargetSiteReference(e){this.targetSiteReference=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getProtectionPolicyExtId()&&null!==this.getProtectionPolicyExtId()?{protectionPolicyExtId:this.getProtectionPolicyExtId()}:{},...void 0!==this.getRecoveryPointObjectiveSeconds()&&null!==this.getRecoveryPointObjectiveSeconds()?{recoveryPointObjectiveSeconds:this.getRecoveryPointObjectiveSeconds()}:{},...void 0!==this.getReplicationStatus()&&null!==this.getReplicationStatus()?{replicationStatus:this.getReplicationStatus()}:{},...void 0!==this.getTargetSiteReference()&&null!==this.getTargetSiteReference()?{targetSiteReference:this.getTargetSiteReference().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("protectionPolicyExtId"===t){if(void 0===this.protectionPolicyExtId||null===this.protectionPolicyExtId)return new E("protectionPolicyExtId","undefined or null");if(!F.validatePattern(this.protectionPolicyExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("protectionPolicyExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("recoveryPointObjectiveSeconds"===t){if(void 0===this.recoveryPointObjectiveSeconds||null===this.recoveryPointObjectiveSeconds)return new E("recoveryPointObjectiveSeconds","undefined or null");if(!F.validateMaximum(this.recoveryPointObjectiveSeconds,2419200))return new E("recoveryPointObjectiveSeconds","does not satisfy required maximum constraint: 2419200");if(!F.validateMinimum(this.recoveryPointObjectiveSeconds,0))return new E("recoveryPointObjectiveSeconds","does not satisfy required minimum constraint: 0")}return"replicationStatus"!==t||void 0!==this.replicationStatus&&null!==this.replicationStatus?"targetSiteReference"!==t||void 0!==this.targetSiteReference&&null!==this.targetSiteReference?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("targetSiteReference","undefined or null"):new E("replicationStatus","undefined or null")}}function ht(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}ct.prototype.protectionPolicyExtId=void 0,ct.prototype.recoveryPointObjectiveSeconds=void 0,ct.prototype.replicationStatus=void 0,ct.prototype.targetSiteReference=void 0,ct.prototype.$reserved=void 0,ct.prototype.$objectType=void 0,ct.prototype.$unknownFields=void 0;var pt=new WeakSet;class vt{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=pt),t.add(e),this.$objectType="dataprotection.v4.config.RestorableTimeRange",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new vt,e.hasOwnProperty("startTime")&&null!==e.startTime&&void 0!==e.startTime&&t.setStartTime(e.startTime),e.hasOwnProperty("endTime")&&null!==e.endTime&&void 0!==e.endTime&&t.setEndTime(e.endTime),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getStartTime(){return this.startTime}setStartTime(e){this.startTime=e}getEndTime(){return this.endTime}setEndTime(e){this.endTime=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getStartTime()&&null!==this.getStartTime()?{startTime:ht(pt,this,yt).call(this,this.getStartTime(),!1)}:{},...void 0!==this.getEndTime()&&null!==this.getEndTime()?{endTime:ht(pt,this,yt).call(this,this.getEndTime(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"startTime"!==t||void 0!==this.startTime&&null!==this.startTime?"endTime"!==t||void 0!==this.endTime&&null!==this.endTime?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("endTime","undefined or null"):new E("startTime","undefined or null")}}function yt(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}vt.prototype.startTime=void 0,vt.prototype.endTime=void 0,vt.prototype.$reserved=void 0,vt.prototype.$objectType=void 0,vt.prototype.$unknownFields=void 0;var gt=new WeakSet;class ft{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=gt),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryInfo",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new ft,e.hasOwnProperty("restorableTimeRanges")&&null!==e.restorableTimeRanges&&void 0!==e.restorableTimeRanges){for(r=[],i=e.restorableTimeRanges,s=0;s<i.length;s++)o=vt.constructFromObject(i[s],void 0),r.push(o);t.setRestorableTimeRanges(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getRestorableTimeRanges(){return this.restorableTimeRanges}setRestorableTimeRanges(e){this.restorableTimeRanges=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getRestorableTimeRanges()&&null!==this.getRestorableTimeRanges()?{restorableTimeRanges:this.getRestorableTimeRanges().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("restorableTimeRanges"===t){if(void 0===this.restorableTimeRanges||null===this.restorableTimeRanges)return new E("restorableTimeRanges","undefined or null");if(!F.validateMaxItems(this.restorableTimeRanges,30))return new E("restorableTimeRanges","does not satisfy required maxItems constraint: 30")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}ft.prototype.restorableTimeRanges=void 0,ft.prototype.$reserved=void 0,ft.prototype.$objectType=void 0,ft.prototype.$unknownFields=void 0;const $t={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",PRIMARY:"PRIMARY",SECONDARY:"SECONDARY",INDEPENDENT:"INDEPENDENT",DECOUPLED:"DECOUPLED",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys($t).find(t=>$t[t]===e);return null==t?$t.$UNKNOWN:$t[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case $t.$UNKNOWN:case $t.$REDACTED:case $t.PRIMARY:case $t.SECONDARY:case $t.INDEPENDENT:case $t.DECOUPLED:return;default:throw new Error("Invalid : must be SynchronousReplicationRole.{ $UNKNOWN|$REDACTED|PRIMARY|SECONDARY|INDEPENDENT|DECOUPLED }")}}};Object.freeze($t);const wt=$t;var mt=new WeakSet;class Tt{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=mt),t.add(e),this.$objectType="dataprotection.v4.config.SiteProtectionInfo",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Tt,e.hasOwnProperty("recoveryInfo")&&null!==e.recoveryInfo&&void 0!==e.recoveryInfo&&t.setRecoveryInfo(ft.constructFromObject(e.recoveryInfo)),e.hasOwnProperty("locationReference")&&null!==e.locationReference&&void 0!==e.locationReference&&t.setLocationReference(st.constructFromObject(e.locationReference)),e.hasOwnProperty("synchronousReplicationRole")&&null!==e.synchronousReplicationRole&&void 0!==e.synchronousReplicationRole&&t.setSynchronousReplicationRole(wt.constructFromObject(e.synchronousReplicationRole)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getRecoveryInfo(){return this.recoveryInfo}setRecoveryInfo(e){this.recoveryInfo=e}getLocationReference(){return this.locationReference}setLocationReference(e){this.locationReference=e}getSynchronousReplicationRole(){return this.synchronousReplicationRole}setSynchronousReplicationRole(e){this.synchronousReplicationRole=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getRecoveryInfo()&&null!==this.getRecoveryInfo()?{recoveryInfo:this.getRecoveryInfo().toJson(!1)}:{},...void 0!==this.getLocationReference()&&null!==this.getLocationReference()?{locationReference:this.getLocationReference().toJson(!1)}:{},...void 0!==this.getSynchronousReplicationRole()&&null!==this.getSynchronousReplicationRole()?{synchronousReplicationRole:this.getSynchronousReplicationRole()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"recoveryInfo"!==t||void 0!==this.recoveryInfo&&null!==this.recoveryInfo?"locationReference"!==t||void 0!==this.locationReference&&null!==this.locationReference?"synchronousReplicationRole"!==t||void 0!==this.synchronousReplicationRole&&null!==this.synchronousReplicationRole?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("synchronousReplicationRole","undefined or null"):new E("locationReference","undefined or null"):new E("recoveryInfo","undefined or null")}}Tt.prototype.recoveryInfo=void 0,Tt.prototype.locationReference=void 0,Tt.prototype.synchronousReplicationRole=void 0,Tt.prototype.$reserved=void 0,Tt.prototype.$objectType=void 0,Tt.prototype.$unknownFields=void 0;var kt=new WeakSet;class bt extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=kt),t.add(e),this.$objectType="dataprotection.v4.config.ProtectedResource",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new bt,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("entityExtId")&&null!==e.entityExtId&&void 0!==e.entityExtId&&t.setEntityExtId(e.entityExtId),e.hasOwnProperty("entityType")&&null!==e.entityType&&void 0!==e.entityType&&t.setEntityType(at.constructFromObject(e.entityType)),e.hasOwnProperty("sourceSiteReference")&&null!==e.sourceSiteReference&&void 0!==e.sourceSiteReference&&t.setSourceSiteReference(st.constructFromObject(e.sourceSiteReference)),e.hasOwnProperty("siteProtectionInfo")&&null!==e.siteProtectionInfo&&void 0!==e.siteProtectionInfo){for(r=[],i=e.siteProtectionInfo,s=0;s<i.length;s++)o=Tt.constructFromObject(i[s],void 0),r.push(o);t.setSiteProtectionInfo(r)}if(e.hasOwnProperty("replicationStates")&&null!==e.replicationStates&&void 0!==e.replicationStates){for(r=[],i=e.replicationStates,s=0;s<i.length;s++)o=ct.constructFromObject(i[s],void 0),r.push(o);t.setReplicationStates(r)}if(e.hasOwnProperty("consistencyGroupExtId")&&null!==e.consistencyGroupExtId&&void 0!==e.consistencyGroupExtId&&t.setConsistencyGroupExtId(e.consistencyGroupExtId),e.hasOwnProperty("categoryFqNames")&&null!==e.categoryFqNames&&void 0!==e.categoryFqNames){for(r=[],i=e.categoryFqNames,s=0;s<i.length;s++)r.push(i[s]);t.setCategoryFqNames(r)}if(!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getEntityExtId(){return this.entityExtId}setEntityExtId(e){this.entityExtId=e}getEntityType(){return this.entityType}setEntityType(e){this.entityType=e}getSourceSiteReference(){return this.sourceSiteReference}setSourceSiteReference(e){this.sourceSiteReference=e}getSiteProtectionInfo(){return this.siteProtectionInfo}setSiteProtectionInfo(e){this.siteProtectionInfo=e}getReplicationStates(){return this.replicationStates}setReplicationStates(e){this.replicationStates=e}getConsistencyGroupExtId(){return this.consistencyGroupExtId}setConsistencyGroupExtId(e){this.consistencyGroupExtId=e}getCategoryFqNames(){return this.categoryFqNames}setCategoryFqNames(e){this.categoryFqNames=e}toJson(e){return!1===e?{...void 0!==this.getEntityExtId()&&null!==this.getEntityExtId()?{entityExtId:this.getEntityExtId()}:{},...void 0!==this.getEntityType()&&null!==this.getEntityType()?{entityType:this.getEntityType()}:{},...void 0!==this.getSourceSiteReference()&&null!==this.getSourceSiteReference()?{sourceSiteReference:this.getSourceSiteReference().toJson(!1)}:{},...void 0!==this.getSiteProtectionInfo()&&null!==this.getSiteProtectionInfo()?{siteProtectionInfo:this.getSiteProtectionInfo().map(e=>e.toJson(!1))}:{},...void 0!==this.getReplicationStates()&&null!==this.getReplicationStates()?{replicationStates:this.getReplicationStates().map(e=>e.toJson(!1))}:{},...void 0!==this.getConsistencyGroupExtId()&&null!==this.getConsistencyGroupExtId()?{consistencyGroupExtId:this.getConsistencyGroupExtId()}:{},...void 0!==this.getCategoryFqNames()&&null!==this.getCategoryFqNames()?{categoryFqNames:this.getCategoryFqNames()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getEntityExtId()&&null!==this.getEntityExtId()?{entityExtId:this.getEntityExtId()}:{},...void 0!==this.getEntityType()&&null!==this.getEntityType()?{entityType:this.getEntityType()}:{},...void 0!==this.getSourceSiteReference()&&null!==this.getSourceSiteReference()?{sourceSiteReference:this.getSourceSiteReference().toJson(!1)}:{},...void 0!==this.getSiteProtectionInfo()&&null!==this.getSiteProtectionInfo()?{siteProtectionInfo:this.getSiteProtectionInfo().map(e=>e.toJson(!1))}:{},...void 0!==this.getReplicationStates()&&null!==this.getReplicationStates()?{replicationStates:this.getReplicationStates().map(e=>e.toJson(!1))}:{},...void 0!==this.getConsistencyGroupExtId()&&null!==this.getConsistencyGroupExtId()?{consistencyGroupExtId:this.getConsistencyGroupExtId()}:{},...void 0!==this.getCategoryFqNames()&&null!==this.getCategoryFqNames()?{categoryFqNames:this.getCategoryFqNames()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("entityExtId"===t){if(void 0===this.entityExtId||null===this.entityExtId)return new E("entityExtId","undefined or null");if(!F.validatePattern(this.entityExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("entityExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("entityType"===t&&(void 0===this.entityType||null===this.entityType))return new E("entityType","undefined or null");if("sourceSiteReference"===t&&(void 0===this.sourceSiteReference||null===this.sourceSiteReference))return new E("sourceSiteReference","undefined or null");if("siteProtectionInfo"===t){if(void 0===this.siteProtectionInfo||null===this.siteProtectionInfo)return new E("siteProtectionInfo","undefined or null");if(!F.validateMaxItems(this.siteProtectionInfo,20))return new E("siteProtectionInfo","does not satisfy required maxItems constraint: 20")}if("replicationStates"===t){if(void 0===this.replicationStates||null===this.replicationStates)return new E("replicationStates","undefined or null");if(!F.validateMaxItems(this.replicationStates,20))return new E("replicationStates","does not satisfy required maxItems constraint: 20")}if("consistencyGroupExtId"===t){if(void 0===this.consistencyGroupExtId||null===this.consistencyGroupExtId)return new E("consistencyGroupExtId","undefined or null");if(!F.validatePattern(this.consistencyGroupExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("consistencyGroupExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("categoryFqNames"===t){if(void 0===this.categoryFqNames||null===this.categoryFqNames)return new E("categoryFqNames","undefined or null");if(!F.validateMaxItems(this.categoryFqNames,1200))return new E("categoryFqNames","does not satisfy required maxItems constraint: 1200")}return new E(t,"no such property exists")}}function Ft(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}bt.prototype.entityExtId=void 0,bt.prototype.entityType=void 0,bt.prototype.sourceSiteReference=void 0,bt.prototype.siteProtectionInfo=void 0,bt.prototype.replicationStates=void 0,bt.prototype.consistencyGroupExtId=void 0,bt.prototype.categoryFqNames=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var Et=new WeakSet;class It extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Et),t.add(e),this.$objectType="dataprotection.v4.config.GetProtectedResourceApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new It,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"dataprotection.v4.config.ProtectedResource":t.setData(bt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Ft(Et,this,Ot).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Ft(Et,this,Ot).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Ot(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}It.prototype.metadata=void 0,It.prototype.data=void 0,It.prototype.$reserved=void 0,It.prototype.$objectType=void 0,It.prototype.$unknownFields=void 0;var jt=new WeakSet;class Pt{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=jt),t.add(e),this.$objectType="prism.v4.config.TaskReference",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Pt,e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(!F.validatePattern(this.extId,/^[a-zA-Z0-9\/+]*={0,2}:[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}/))return new E("extId","does not satisfy required pattern: /^[a-zA-Z0-9/+]*={0,2}:[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}function Rt(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Pt.prototype.extId=void 0,Pt.prototype.$reserved=void 0,Pt.prototype.$objectType=void 0,Pt.prototype.$unknownFields=void 0;var xt=new WeakSet;class At extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=xt),t.add(e),this.$objectType="dataprotection.v4.config.ProtectedResourceRestoreApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new At,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(Pt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Rt(xt,this,Ct).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Rt(xt,this,Ct).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Ct(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function St(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}At.prototype.metadata=void 0,At.prototype.data=void 0,At.prototype.$reserved=void 0,At.prototype.$objectType=void 0,At.prototype.$unknownFields=void 0;var Nt=new WeakSet;class Dt extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Nt),t.add(e),this.$objectType="dataprotection.v4.config.ProtectedResourcePromoteApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Dt,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(Pt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):St(Nt,this,Ut).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):St(Nt,this,Ut).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Ut(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function Mt(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Dt.prototype.metadata=void 0,Dt.prototype.data=void 0,Dt.prototype.$reserved=void 0,Dt.prototype.$objectType=void 0,Dt.prototype.$unknownFields=void 0;var Jt=new WeakSet;class _t{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=Jt),n.add(t),this.clusterExtId=e,this.$objectType="dataprotection.v4.config.ProtectedResourceRestoreSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new _t,e.hasOwnProperty("clusterExtId")&&null!==e.clusterExtId&&void 0!==e.clusterExtId&&t.setClusterExtId(e.clusterExtId),e.hasOwnProperty("restoreTime")&&null!==e.restoreTime&&void 0!==e.restoreTime&&t.setRestoreTime(e.restoreTime),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getClusterExtId(){return this.clusterExtId}setClusterExtId(e){this.clusterExtId=e}getRestoreTime(){return this.restoreTime}setRestoreTime(e){this.restoreTime=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},...void 0!==this.getRestoreTime()&&null!==this.getRestoreTime()?{restoreTime:Mt(Jt,this,Lt).call(this,this.getRestoreTime(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["clusterExtId"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("clusterExtId"===t){if(void 0===this.clusterExtId||null===this.clusterExtId)return new E("clusterExtId","undefined or null");if(!F.validatePattern(this.clusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"restoreTime"!==t||void 0!==this.restoreTime&&null!==this.restoreTime?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("restoreTime","undefined or null")}}function Lt(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}function Vt(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}_t.prototype.clusterExtId=void 0,_t.prototype.restoreTime=void 0,_t.prototype.$reserved=void 0,_t.prototype.$objectType=void 0,_t.prototype.$unknownFields=void 0;var Gt=new WeakSet;class Wt extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Gt),t.add(e),this.$objectType="dataprotection.v4.operations.UnplannedFailoverRecoveryPlanApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Wt,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(Pt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Vt(Gt,this,Bt).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Vt(Gt,this,Bt).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Bt(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Wt.prototype.metadata=void 0,Wt.prototype.data=void 0,Wt.prototype.$reserved=void 0,Wt.prototype.$objectType=void 0,Wt.prototype.$unknownFields=void 0;var qt=new WeakSet;class zt{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=qt),n.add(t),this.extId=e,this.$objectType="dataprotection.v4.config.EntityReference",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new zt,e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["extId"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}zt.prototype.extId=void 0,zt.prototype.$reserved=void 0,zt.prototype.$objectType=void 0,zt.prototype.$unknownFields=void 0;var Kt=new WeakSet;class Yt{constructor(e,t){var n,i;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(n=this,i=Kt),i.add(n),this.sourceDomainManagerExtId=e,this.targetDomainManagerExtId=t,this.$objectType="dataprotection.v4.config.FailoverDirection",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Yt,e.hasOwnProperty("sourceDomainManagerExtId")&&null!==e.sourceDomainManagerExtId&&void 0!==e.sourceDomainManagerExtId&&t.setSourceDomainManagerExtId(e.sourceDomainManagerExtId),e.hasOwnProperty("sourceCluster")&&null!==e.sourceCluster&&void 0!==e.sourceCluster&&t.setSourceCluster(zt.constructFromObject(e.sourceCluster)),e.hasOwnProperty("targetDomainManagerExtId")&&null!==e.targetDomainManagerExtId&&void 0!==e.targetDomainManagerExtId&&t.setTargetDomainManagerExtId(e.targetDomainManagerExtId),e.hasOwnProperty("targetCluster")&&null!==e.targetCluster&&void 0!==e.targetCluster&&t.setTargetCluster(zt.constructFromObject(e.targetCluster)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getSourceDomainManagerExtId(){return this.sourceDomainManagerExtId}setSourceDomainManagerExtId(e){this.sourceDomainManagerExtId=e}getSourceCluster(){return this.sourceCluster}setSourceCluster(e){this.sourceCluster=e}getTargetDomainManagerExtId(){return this.targetDomainManagerExtId}setTargetDomainManagerExtId(e){this.targetDomainManagerExtId=e}getTargetCluster(){return this.targetCluster}setTargetCluster(e){this.targetCluster=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getSourceDomainManagerExtId()&&null!==this.getSourceDomainManagerExtId()?{sourceDomainManagerExtId:this.getSourceDomainManagerExtId()}:{},...void 0!==this.getSourceCluster()&&null!==this.getSourceCluster()?{sourceCluster:this.getSourceCluster().toJson(!1)}:{},...void 0!==this.getTargetDomainManagerExtId()&&null!==this.getTargetDomainManagerExtId()?{targetDomainManagerExtId:this.getTargetDomainManagerExtId()}:{},...void 0!==this.getTargetCluster()&&null!==this.getTargetCluster()?{targetCluster:this.getTargetCluster().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["sourceDomainManagerExtId","targetDomainManagerExtId"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("sourceDomainManagerExtId"===t){if(void 0===this.sourceDomainManagerExtId||null===this.sourceDomainManagerExtId)return new E("sourceDomainManagerExtId","undefined or null");if(!F.validatePattern(this.sourceDomainManagerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("sourceDomainManagerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("sourceCluster"===t&&(void 0===this.sourceCluster||null===this.sourceCluster))return new E("sourceCluster","undefined or null");if("targetDomainManagerExtId"===t){if(void 0===this.targetDomainManagerExtId||null===this.targetDomainManagerExtId)return new E("targetDomainManagerExtId","undefined or null");if(!F.validatePattern(this.targetDomainManagerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("targetDomainManagerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"targetCluster"!==t||void 0!==this.targetCluster&&null!==this.targetCluster?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("targetCluster","undefined or null")}}Yt.prototype.sourceDomainManagerExtId=void 0,Yt.prototype.sourceCluster=void 0,Yt.prototype.targetDomainManagerExtId=void 0,Yt.prototype.targetCluster=void 0,Yt.prototype.$reserved=void 0,Yt.prototype.$objectType=void 0,Yt.prototype.$unknownFields=void 0;var Ht=new WeakSet;class Xt{constructor(e,t){var n,i;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(n=this,i=Ht),i.add(n),this.name=e,this.failoverDirections=t,this.$objectType="dataprotection.v4.operations.BaseRecoveryPlanActionSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Xt,e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("failoverDirections")&&null!==e.failoverDirections&&void 0!==e.failoverDirections){for(r=[],i=e.failoverDirections,s=0;s<i.length;s++)o=Yt.constructFromObject(i[s],void 0),r.push(o);t.setFailoverDirections(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getFailoverDirections(){return this.failoverDirections}setFailoverDirections(e){this.failoverDirections=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getFailoverDirections()&&null!==this.getFailoverDirections()?{failoverDirections:this.getFailoverDirections().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["name","failoverDirections"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}if("failoverDirections"===t){if(void 0===this.failoverDirections||null===this.failoverDirections)return new E("failoverDirections","undefined or null");if(!F.validateMaxItems(this.failoverDirections,50))return new E("failoverDirections","does not satisfy required maxItems constraint: 50");if(!F.validateMinItems(this.failoverDirections,1))return new E("failoverDirections","does not satisfy required minItems constraint: 1")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Xt.prototype.name=void 0,Xt.prototype.failoverDirections=void 0,Xt.prototype.$reserved=void 0,Xt.prototype.$objectType=void 0,Xt.prototype.$unknownFields=void 0;var Zt=new WeakSet;class Qt extends Xt{constructor(e,t){var n,i;super(e,t),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(n=this,i=Zt),i.add(n),this.$objectType="dataprotection.v4.operations.PlannedFailoverSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Qt,Xt.constructFromObject(e,t,!0),e.hasOwnProperty("shouldIgnoreWarnings")&&null!==e.shouldIgnoreWarnings&&void 0!==e.shouldIgnoreWarnings&&t.setShouldIgnoreWarnings(e.shouldIgnoreWarnings),e.hasOwnProperty("shouldLiveMigrateVMs")&&null!==e.shouldLiveMigrateVMs&&void 0!==e.shouldLiveMigrateVMs&&t.setShouldLiveMigrateVMs(e.shouldLiveMigrateVMs),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getShouldIgnoreWarnings(){return this.shouldIgnoreWarnings}setShouldIgnoreWarnings(e){this.shouldIgnoreWarnings=e}getShouldLiveMigrateVMs(){return this.shouldLiveMigrateVMs}setShouldLiveMigrateVMs(e){this.shouldLiveMigrateVMs=e}toJson(e){return{...void 0!==this.getShouldIgnoreWarnings()&&null!==this.getShouldIgnoreWarnings()?{shouldIgnoreWarnings:this.getShouldIgnoreWarnings()}:{},...void 0!==this.getShouldLiveMigrateVMs()&&null!==this.getShouldLiveMigrateVMs()?{shouldLiveMigrateVMs:this.getShouldLiveMigrateVMs()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getFailoverDirections()&&null!==this.getFailoverDirections()?{failoverDirections:this.getFailoverDirections().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["name","failoverDirections"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"shouldIgnoreWarnings"!==t||void 0!==this.shouldIgnoreWarnings&&null!==this.shouldIgnoreWarnings?"shouldLiveMigrateVMs"!==t||void 0!==this.shouldLiveMigrateVMs&&null!==this.shouldLiveMigrateVMs?new E(t,"no such property exists"):new E("shouldLiveMigrateVMs","undefined or null"):new E("shouldIgnoreWarnings","undefined or null")}}Qt.prototype.shouldIgnoreWarnings=!1,Qt.prototype.shouldLiveMigrateVMs=!1,Xt.prototype.name=void 0,Xt.prototype.failoverDirections=void 0;var en=new WeakSet;class tn extends Xt{constructor(e,t){var n,i;super(e,t),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(n=this,i=en),i.add(n),this.$objectType="dataprotection.v4.operations.TestFailoverSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new tn,Xt.constructFromObject(e,t,!0),e.hasOwnProperty("shouldIgnoreWarnings")&&null!==e.shouldIgnoreWarnings&&void 0!==e.shouldIgnoreWarnings&&t.setShouldIgnoreWarnings(e.shouldIgnoreWarnings),e.hasOwnProperty("isInstantRestore")&&null!==e.isInstantRestore&&void 0!==e.isInstantRestore&&t.setIsInstantRestore(e.isInstantRestore),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getShouldIgnoreWarnings(){return this.shouldIgnoreWarnings}setShouldIgnoreWarnings(e){this.shouldIgnoreWarnings=e}getIsInstantRestore(){return this.isInstantRestore}setIsInstantRestore(e){this.isInstantRestore=e}toJson(e){return{...void 0!==this.getShouldIgnoreWarnings()&&null!==this.getShouldIgnoreWarnings()?{shouldIgnoreWarnings:this.getShouldIgnoreWarnings()}:{},...void 0!==this.getIsInstantRestore()&&null!==this.getIsInstantRestore()?{isInstantRestore:this.getIsInstantRestore()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getFailoverDirections()&&null!==this.getFailoverDirections()?{failoverDirections:this.getFailoverDirections().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["name","failoverDirections"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"shouldIgnoreWarnings"!==t||void 0!==this.shouldIgnoreWarnings&&null!==this.shouldIgnoreWarnings?"isInstantRestore"!==t||void 0!==this.isInstantRestore&&null!==this.isInstantRestore?new E(t,"no such property exists"):new E("isInstantRestore","undefined or null"):new E("shouldIgnoreWarnings","undefined or null")}}function nn(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}tn.prototype.shouldIgnoreWarnings=!1,tn.prototype.isInstantRestore=!1,Xt.prototype.name=void 0,Xt.prototype.failoverDirections=void 0;var on=new WeakSet;class sn extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=on),t.add(e),this.$objectType="dataprotection.v4.operations.ValidateRecoveryPlanApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new sn,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(Pt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):nn(on,this,rn).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):nn(on,this,rn).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function rn(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function an(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}sn.prototype.metadata=void 0,sn.prototype.data=void 0,sn.prototype.$reserved=void 0,sn.prototype.$objectType=void 0,sn.prototype.$unknownFields=void 0;var ln=new WeakSet;class dn extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=ln),t.add(e),this.$objectType="dataprotection.v4.operations.CleanupRecoveryPlanResourcesApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new dn,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(Pt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):an(ln,this,un).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):an(ln,this,un).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function un(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function cn(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}dn.prototype.metadata=void 0,dn.prototype.data=void 0,dn.prototype.$reserved=void 0,dn.prototype.$objectType=void 0,dn.prototype.$unknownFields=void 0;var hn=new WeakSet;class pn extends Xt{constructor(e,t){var n,i;super(e,t),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(n=this,i=hn),i.add(n),this.$objectType="dataprotection.v4.operations.UnplannedFailoverSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new pn,Xt.constructFromObject(e,t,!0),e.hasOwnProperty("recoveryReferenceTime")&&null!==e.recoveryReferenceTime&&void 0!==e.recoveryReferenceTime&&t.setRecoveryReferenceTime(e.recoveryReferenceTime),e.hasOwnProperty("shouldIgnoreWarnings")&&null!==e.shouldIgnoreWarnings&&void 0!==e.shouldIgnoreWarnings&&t.setShouldIgnoreWarnings(e.shouldIgnoreWarnings),e.hasOwnProperty("isInstantRestore")&&null!==e.isInstantRestore&&void 0!==e.isInstantRestore&&t.setIsInstantRestore(e.isInstantRestore),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getRecoveryReferenceTime(){return this.recoveryReferenceTime}setRecoveryReferenceTime(e){this.recoveryReferenceTime=e}getShouldIgnoreWarnings(){return this.shouldIgnoreWarnings}setShouldIgnoreWarnings(e){this.shouldIgnoreWarnings=e}getIsInstantRestore(){return this.isInstantRestore}setIsInstantRestore(e){this.isInstantRestore=e}toJson(e){return{...void 0!==this.getRecoveryReferenceTime()&&null!==this.getRecoveryReferenceTime()?{recoveryReferenceTime:cn(hn,this,vn).call(this,this.getRecoveryReferenceTime(),!1)}:{},...void 0!==this.getShouldIgnoreWarnings()&&null!==this.getShouldIgnoreWarnings()?{shouldIgnoreWarnings:this.getShouldIgnoreWarnings()}:{},...void 0!==this.getIsInstantRestore()&&null!==this.getIsInstantRestore()?{isInstantRestore:this.getIsInstantRestore()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getFailoverDirections()&&null!==this.getFailoverDirections()?{failoverDirections:this.getFailoverDirections().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["name","failoverDirections"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"recoveryReferenceTime"!==t||void 0!==this.recoveryReferenceTime&&null!==this.recoveryReferenceTime?"shouldIgnoreWarnings"!==t||void 0!==this.shouldIgnoreWarnings&&null!==this.shouldIgnoreWarnings?"isInstantRestore"!==t||void 0!==this.isInstantRestore&&null!==this.isInstantRestore?new E(t,"no such property exists"):new E("isInstantRestore","undefined or null"):new E("shouldIgnoreWarnings","undefined or null"):new E("recoveryReferenceTime","undefined or null")}}function vn(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}function yn(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}pn.prototype.recoveryReferenceTime=void 0,pn.prototype.shouldIgnoreWarnings=!1,pn.prototype.isInstantRestore=!1,Xt.prototype.name=void 0,Xt.prototype.failoverDirections=void 0;var gn=new WeakSet;class fn extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=gn),t.add(e),this.$objectType="dataprotection.v4.operations.TestFailoverRecoveryPlanApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new fn,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(Pt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):yn(gn,this,$n).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):yn(gn,this,$n).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function $n(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function wn(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}fn.prototype.metadata=void 0,fn.prototype.data=void 0,fn.prototype.$reserved=void 0,fn.prototype.$objectType=void 0,fn.prototype.$unknownFields=void 0;var mn=new WeakSet;class Tn extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=mn),t.add(e),this.$objectType="dataprotection.v4.operations.PlannedFailoverRecoveryPlanApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Tn,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(Pt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):wn(mn,this,kn).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):wn(mn,this,kn).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function kn(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Tn.prototype.metadata=void 0,Tn.prototype.data=void 0,Tn.prototype.$reserved=void 0,Tn.prototype.$objectType=void 0,Tn.prototype.$unknownFields=void 0;const bn={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",SUCCEEDED:"SUCCEEDED",RUNNING:"RUNNING",ABORTED:"ABORTED",FAILED:"FAILED",QUEUED:"QUEUED",SUCCEEDED_WITH_VALIDATION_WARNING:"SUCCEEDED_WITH_VALIDATION_WARNING",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(bn).find(t=>bn[t]===e);return null==t?bn.$UNKNOWN:bn[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case bn.$UNKNOWN:case bn.$REDACTED:case bn.SUCCEEDED:case bn.RUNNING:case bn.ABORTED:case bn.FAILED:case bn.QUEUED:case bn.SUCCEEDED_WITH_VALIDATION_WARNING:return;default:throw new Error("Invalid : must be RecoveryPlanJobExecutionStatus.{ $UNKNOWN|$REDACTED|SUCCEEDED|RUNNING|ABORTED|FAILED|QUEUED|SUCCEEDED_WITH_VALIDATION_WARNING }")}}};Object.freeze(bn);const Fn=bn,En={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",PRE_PROCESSING:"PRE_PROCESSING",ENTITY_RECOVERY:"ENTITY_RECOVERY",POST_PROCESSING:"POST_PROCESSING",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(En).find(t=>En[t]===e);return null==t?En.$UNKNOWN:En[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case En.$UNKNOWN:case En.$REDACTED:case En.PRE_PROCESSING:case En.ENTITY_RECOVERY:case En.POST_PROCESSING:return;default:throw new Error("Invalid : must be RecoveryPlanJobPhaseType.{ $UNKNOWN|$REDACTED|PRE_PROCESSING|ENTITY_RECOVERY|POST_PROCESSING }")}}};Object.freeze(En);const In=En;var On=new WeakSet;class jn{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=On),t.add(e),this.$objectType="dataprotection.v4.config.Summary",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new jn,e.hasOwnProperty("status")&&null!==e.status&&void 0!==e.status&&t.setStatus(Fn.constructFromObject(e.status)),e.hasOwnProperty("percentageComplete")&&null!==e.percentageComplete&&void 0!==e.percentageComplete&&t.setPercentageComplete(e.percentageComplete),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getStatus(){return this.status}setStatus(e){this.status=e}getPercentageComplete(){return this.percentageComplete}setPercentageComplete(e){this.percentageComplete=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getPercentageComplete()&&null!==this.getPercentageComplete()?{percentageComplete:this.getPercentageComplete()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("status"===t&&(void 0===this.status||null===this.status))return new E("status","undefined or null");if("percentageComplete"===t){if(void 0===this.percentageComplete||null===this.percentageComplete)return new E("percentageComplete","undefined or null");if(!F.validateMaximum(this.percentageComplete,100))return new E("percentageComplete","does not satisfy required maximum constraint: 100");if(!F.validateMinimum(this.percentageComplete,0))return new E("percentageComplete","does not satisfy required minimum constraint: 0")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}jn.prototype.status=void 0,jn.prototype.percentageComplete=void 0,jn.prototype.$reserved=void 0,jn.prototype.$objectType=void 0,jn.prototype.$unknownFields=void 0;var Pn=new WeakSet;class Rn extends jn{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Pn),t.add(e),this.$objectType="dataprotection.v4.config.StageSummary",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Rn,jn.constructFromObject(e,t,!0),e.hasOwnProperty("stageExtId")&&null!==e.stageExtId&&void 0!==e.stageExtId&&t.setStageExtId(e.stageExtId),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getStageExtId(){return this.stageExtId}setStageExtId(e){this.stageExtId=e}toJson(e){return{...void 0!==this.getStageExtId()&&null!==this.getStageExtId()?{stageExtId:this.getStageExtId()}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getPercentageComplete()&&null!==this.getPercentageComplete()?{percentageComplete:this.getPercentageComplete()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("stageExtId"===t){if(void 0===this.stageExtId||null===this.stageExtId)return new E("stageExtId","undefined or null");if(!F.validatePattern(this.stageExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("stageExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return new E(t,"no such property exists")}}Rn.prototype.stageExtId=void 0,jn.prototype.status=void 0,jn.prototype.percentageComplete=void 0;var xn=new WeakSet;class An extends jn{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=xn),t.add(e),this.$objectType="dataprotection.v4.config.PhaseSummary",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new An,jn.constructFromObject(e,t,!0),e.hasOwnProperty("phaseType")&&null!==e.phaseType&&void 0!==e.phaseType&&t.setPhaseType(In.constructFromObject(e.phaseType)),e.hasOwnProperty("stages")&&null!==e.stages&&void 0!==e.stages){for(r=[],i=e.stages,s=0;s<i.length;s++)o=Rn.constructFromObject(i[s],void 0),r.push(o);t.setStages(r)}if(!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getPhaseType(){return this.phaseType}setPhaseType(e){this.phaseType=e}getStages(){return this.stages}setStages(e){this.stages=e}toJson(e){return{...void 0!==this.getPhaseType()&&null!==this.getPhaseType()?{phaseType:this.getPhaseType()}:{},...void 0!==this.getStages()&&null!==this.getStages()?{stages:this.getStages().map(e=>e.toJson(!1))}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getPercentageComplete()&&null!==this.getPercentageComplete()?{percentageComplete:this.getPercentageComplete()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("phaseType"===t&&(void 0===this.phaseType||null===this.phaseType))return new E("phaseType","undefined or null");if("stages"===t){if(void 0===this.stages||null===this.stages)return new E("stages","undefined or null");if(!F.validateMaxItems(this.stages,100))return new E("stages","does not satisfy required maxItems constraint: 100");if(!F.validateMinItems(this.stages,1))return new E("stages","does not satisfy required minItems constraint: 1")}return new E(t,"no such property exists")}}An.prototype.phaseType=void 0,An.prototype.stages=void 0,jn.prototype.status=void 0,jn.prototype.percentageComplete=void 0;const Cn={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",VALIDATE:"VALIDATE",PLANNED_FAILOVER:"PLANNED_FAILOVER",UNPLANNED_FAILOVER:"UNPLANNED_FAILOVER",TEST_FAILOVER:"TEST_FAILOVER",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Cn).find(t=>Cn[t]===e);return null==t?Cn.$UNKNOWN:Cn[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Cn.$UNKNOWN:case Cn.$REDACTED:case Cn.VALIDATE:case Cn.PLANNED_FAILOVER:case Cn.UNPLANNED_FAILOVER:case Cn.TEST_FAILOVER:return;default:throw new Error("Invalid : must be RecoveryPlanActionType.{ $UNKNOWN|$REDACTED|VALIDATE|PLANNED_FAILOVER|UNPLANNED_FAILOVER|TEST_FAILOVER }")}}};Object.freeze(Cn);const Sn=Cn;function Nn(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Dn=new WeakSet;class Un extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Dn),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPlanJob",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Un,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("recoveryPlanExtId")&&null!==e.recoveryPlanExtId&&void 0!==e.recoveryPlanExtId&&t.setRecoveryPlanExtId(e.recoveryPlanExtId),e.hasOwnProperty("failoverDirections")&&null!==e.failoverDirections&&void 0!==e.failoverDirections){for(r=[],i=e.failoverDirections,s=0;s<i.length;s++)o=Yt.constructFromObject(i[s],void 0),r.push(o);t.setFailoverDirections(r)}if(e.hasOwnProperty("actionType")&&null!==e.actionType&&void 0!==e.actionType&&t.setActionType(Sn.constructFromObject(e.actionType)),e.hasOwnProperty("recoveryReferenceTime")&&null!==e.recoveryReferenceTime&&void 0!==e.recoveryReferenceTime&&t.setRecoveryReferenceTime(e.recoveryReferenceTime),e.hasOwnProperty("isLiveMigrateVMs")&&null!==e.isLiveMigrateVMs&&void 0!==e.isLiveMigrateVMs&&t.setIsLiveMigrateVMs(e.isLiveMigrateVMs),e.hasOwnProperty("startTime")&&null!==e.startTime&&void 0!==e.startTime&&t.setStartTime(e.startTime),e.hasOwnProperty("endTime")&&null!==e.endTime&&void 0!==e.endTime&&t.setEndTime(e.endTime),e.hasOwnProperty("status")&&null!==e.status&&void 0!==e.status&&t.setStatus(Fn.constructFromObject(e.status)),e.hasOwnProperty("percentageComplete")&&null!==e.percentageComplete&&void 0!==e.percentageComplete&&t.setPercentageComplete(e.percentageComplete),e.hasOwnProperty("validationStatus")&&null!==e.validationStatus&&void 0!==e.validationStatus&&t.setValidationStatus(jn.constructFromObject(e.validationStatus)),e.hasOwnProperty("executionPhases")&&null!==e.executionPhases&&void 0!==e.executionPhases){for(r=[],i=e.executionPhases,s=0;s<i.length;s++)o=An.constructFromObject(i[s],void 0),r.push(o);t.setExecutionPhases(r)}if(e.hasOwnProperty("isInitiatedByWitness")&&null!==e.isInitiatedByWitness&&void 0!==e.isInitiatedByWitness&&t.setIsInitiatedByWitness(e.isInitiatedByWitness),e.hasOwnProperty("ownerExtId")&&null!==e.ownerExtId&&void 0!==e.ownerExtId&&t.setOwnerExtId(e.ownerExtId),e.hasOwnProperty("isInstantRestore")&&null!==e.isInstantRestore&&void 0!==e.isInstantRestore&&t.setIsInstantRestore(e.isInstantRestore),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getRecoveryPlanExtId(){return this.recoveryPlanExtId}setRecoveryPlanExtId(e){this.recoveryPlanExtId=e}getFailoverDirections(){return this.failoverDirections}setFailoverDirections(e){this.failoverDirections=e}getActionType(){return this.actionType}setActionType(e){this.actionType=e}getRecoveryReferenceTime(){return this.recoveryReferenceTime}setRecoveryReferenceTime(e){this.recoveryReferenceTime=e}getIsLiveMigrateVMs(){return this.isLiveMigrateVMs}setIsLiveMigrateVMs(e){this.isLiveMigrateVMs=e}getStartTime(){return this.startTime}setStartTime(e){this.startTime=e}getEndTime(){return this.endTime}setEndTime(e){this.endTime=e}getStatus(){return this.status}setStatus(e){this.status=e}getPercentageComplete(){return this.percentageComplete}setPercentageComplete(e){this.percentageComplete=e}getValidationStatus(){return this.validationStatus}setValidationStatus(e){this.validationStatus=e}getExecutionPhases(){return this.executionPhases}setExecutionPhases(e){this.executionPhases=e}getIsInitiatedByWitness(){return this.isInitiatedByWitness}setIsInitiatedByWitness(e){this.isInitiatedByWitness=e}getOwnerExtId(){return this.ownerExtId}setOwnerExtId(e){this.ownerExtId=e}getIsInstantRestore(){return this.isInstantRestore}setIsInstantRestore(e){this.isInstantRestore=e}toJson(e){return!1===e?{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getRecoveryPlanExtId()&&null!==this.getRecoveryPlanExtId()?{recoveryPlanExtId:this.getRecoveryPlanExtId()}:{},...void 0!==this.getFailoverDirections()&&null!==this.getFailoverDirections()?{failoverDirections:this.getFailoverDirections().map(e=>e.toJson(!1))}:{},...void 0!==this.getActionType()&&null!==this.getActionType()?{actionType:this.getActionType()}:{},...void 0!==this.getRecoveryReferenceTime()&&null!==this.getRecoveryReferenceTime()?{recoveryReferenceTime:Nn(Dn,this,Mn).call(this,this.getRecoveryReferenceTime(),!1)}:{},...void 0!==this.getIsLiveMigrateVMs()&&null!==this.getIsLiveMigrateVMs()?{isLiveMigrateVMs:this.getIsLiveMigrateVMs()}:{},...void 0!==this.getStartTime()&&null!==this.getStartTime()?{startTime:Nn(Dn,this,Mn).call(this,this.getStartTime(),!1)}:{},...void 0!==this.getEndTime()&&null!==this.getEndTime()?{endTime:Nn(Dn,this,Mn).call(this,this.getEndTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getPercentageComplete()&&null!==this.getPercentageComplete()?{percentageComplete:this.getPercentageComplete()}:{},...void 0!==this.getValidationStatus()&&null!==this.getValidationStatus()?{validationStatus:this.getValidationStatus().toJson(!1)}:{},...void 0!==this.getExecutionPhases()&&null!==this.getExecutionPhases()?{executionPhases:this.getExecutionPhases().map(e=>e.toJson(!1))}:{},...void 0!==this.getIsInitiatedByWitness()&&null!==this.getIsInitiatedByWitness()?{isInitiatedByWitness:this.getIsInitiatedByWitness()}:{},...void 0!==this.getOwnerExtId()&&null!==this.getOwnerExtId()?{ownerExtId:this.getOwnerExtId()}:{},...void 0!==this.getIsInstantRestore()&&null!==this.getIsInstantRestore()?{isInstantRestore:this.getIsInstantRestore()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getRecoveryPlanExtId()&&null!==this.getRecoveryPlanExtId()?{recoveryPlanExtId:this.getRecoveryPlanExtId()}:{},...void 0!==this.getFailoverDirections()&&null!==this.getFailoverDirections()?{failoverDirections:this.getFailoverDirections().map(e=>e.toJson(!1))}:{},...void 0!==this.getActionType()&&null!==this.getActionType()?{actionType:this.getActionType()}:{},...void 0!==this.getRecoveryReferenceTime()&&null!==this.getRecoveryReferenceTime()?{recoveryReferenceTime:Nn(Dn,this,Mn).call(this,this.getRecoveryReferenceTime(),!1)}:{},...void 0!==this.getIsLiveMigrateVMs()&&null!==this.getIsLiveMigrateVMs()?{isLiveMigrateVMs:this.getIsLiveMigrateVMs()}:{},...void 0!==this.getStartTime()&&null!==this.getStartTime()?{startTime:Nn(Dn,this,Mn).call(this,this.getStartTime(),!1)}:{},...void 0!==this.getEndTime()&&null!==this.getEndTime()?{endTime:Nn(Dn,this,Mn).call(this,this.getEndTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getPercentageComplete()&&null!==this.getPercentageComplete()?{percentageComplete:this.getPercentageComplete()}:{},...void 0!==this.getValidationStatus()&&null!==this.getValidationStatus()?{validationStatus:this.getValidationStatus().toJson(!1)}:{},...void 0!==this.getExecutionPhases()&&null!==this.getExecutionPhases()?{executionPhases:this.getExecutionPhases().map(e=>e.toJson(!1))}:{},...void 0!==this.getIsInitiatedByWitness()&&null!==this.getIsInitiatedByWitness()?{isInitiatedByWitness:this.getIsInitiatedByWitness()}:{},...void 0!==this.getOwnerExtId()&&null!==this.getOwnerExtId()?{ownerExtId:this.getOwnerExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}if("recoveryPlanExtId"===t){if(void 0===this.recoveryPlanExtId||null===this.recoveryPlanExtId)return new E("recoveryPlanExtId","undefined or null");if(!F.validatePattern(this.recoveryPlanExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("recoveryPlanExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("failoverDirections"===t){if(void 0===this.failoverDirections||null===this.failoverDirections)return new E("failoverDirections","undefined or null");if(!F.validateMaxItems(this.failoverDirections,50))return new E("failoverDirections","does not satisfy required maxItems constraint: 50");if(!F.validateMinItems(this.failoverDirections,1))return new E("failoverDirections","does not satisfy required minItems constraint: 1")}if("actionType"===t&&(void 0===this.actionType||null===this.actionType))return new E("actionType","undefined or null");if("recoveryReferenceTime"===t&&(void 0===this.recoveryReferenceTime||null===this.recoveryReferenceTime))return new E("recoveryReferenceTime","undefined or null");if("isLiveMigrateVMs"===t&&(void 0===this.isLiveMigrateVMs||null===this.isLiveMigrateVMs))return new E("isLiveMigrateVMs","undefined or null");if("startTime"===t&&(void 0===this.startTime||null===this.startTime))return new E("startTime","undefined or null");if("endTime"===t&&(void 0===this.endTime||null===this.endTime))return new E("endTime","undefined or null");if("status"===t&&(void 0===this.status||null===this.status))return new E("status","undefined or null");if("percentageComplete"===t){if(void 0===this.percentageComplete||null===this.percentageComplete)return new E("percentageComplete","undefined or null");if(!F.validateMaximum(this.percentageComplete,100))return new E("percentageComplete","does not satisfy required maximum constraint: 100");if(!F.validateMinimum(this.percentageComplete,0))return new E("percentageComplete","does not satisfy required minimum constraint: 0")}if("validationStatus"===t&&(void 0===this.validationStatus||null===this.validationStatus))return new E("validationStatus","undefined or null");if("executionPhases"===t){if(void 0===this.executionPhases||null===this.executionPhases)return new E("executionPhases","undefined or null");if(!F.validateMaxItems(this.executionPhases,5))return new E("executionPhases","does not satisfy required maxItems constraint: 5");if(!F.validateMinItems(this.executionPhases,1))return new E("executionPhases","does not satisfy required minItems constraint: 1")}if("isInitiatedByWitness"===t&&(void 0===this.isInitiatedByWitness||null===this.isInitiatedByWitness))return new E("isInitiatedByWitness","undefined or null");if("ownerExtId"===t){if(void 0===this.ownerExtId||null===this.ownerExtId)return new E("ownerExtId","undefined or null");if(!F.validatePattern(this.ownerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("ownerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"isInstantRestore"!==t||void 0!==this.isInstantRestore&&null!==this.isInstantRestore?new E(t,"no such property exists"):new E("isInstantRestore","undefined or null")}}function Mn(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}function Jn(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Un.prototype.name=void 0,Un.prototype.recoveryPlanExtId=void 0,Un.prototype.failoverDirections=void 0,Un.prototype.actionType=void 0,Un.prototype.recoveryReferenceTime=void 0,Un.prototype.isLiveMigrateVMs=void 0,Un.prototype.startTime=void 0,Un.prototype.endTime=void 0,Un.prototype.status=void 0,Un.prototype.percentageComplete=void 0,Un.prototype.validationStatus=void 0,Un.prototype.executionPhases=void 0,Un.prototype.isInitiatedByWitness=void 0,Un.prototype.ownerExtId=void 0,Un.prototype.isInstantRestore=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var _n=new WeakSet;class Ln extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=_n),t.add(e),this.$objectType="dataprotection.v4.config.GetRecoveryPlanJobApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Ln,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"dataprotection.v4.config.RecoveryPlanJob":t.setData(Un.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Jn(_n,this,Vn).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Jn(_n,this,Vn).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Vn(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function Gn(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Ln.prototype.metadata=void 0,Ln.prototype.data=void 0,Ln.prototype.$reserved=void 0,Ln.prototype.$objectType=void 0,Ln.prototype.$unknownFields=void 0;var Wn=new WeakSet;class Bn extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Wn),t.add(e),this.$objectType="dataprotection.v4.config.DeleteRecoveryPlanJobApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Bn,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(Pt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Gn(Wn,this,qn).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Gn(Wn,this,qn).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function qn(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Bn.prototype.metadata=void 0,Bn.prototype.data=void 0,Bn.prototype.$reserved=void 0,Bn.prototype.$objectType=void 0,Bn.prototype.$unknownFields=void 0;const zn={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",CLUSTER:"CLUSTER",VM:"VM",STORAGE_CONTAINER:"STORAGE_CONTAINER",VOLUME_GROUP:"VOLUME_GROUP",TASK:"TASK",IMAGE:"IMAGE",CATEGORY:"CATEGORY",NODE:"NODE",VPC:"VPC",SUBNET:"SUBNET",ROUTING_POLICY:"ROUTING_POLICY",FLOATING_IP:"FLOATING_IP",VPN_GATEWAY:"VPN_GATEWAY",VPN_CONNECTION:"VPN_CONNECTION",DIRECT_CONNECT:"DIRECT_CONNECT",DIRECT_CONNECT_VIF:"DIRECT_CONNECT_VIF",VIRTUAL_NIC:"VIRTUAL_NIC",VIRTUAL_SWITCH:"VIRTUAL_SWITCH",VM_DISK:"VM_DISK",VOLUME_DISK:"VOLUME_DISK",DISK_RECOVERY_POINT:"DISK_RECOVERY_POINT",VTEP_GATEWAY:"VTEP_GATEWAY",RECOVERY_PLAN:"RECOVERY_PLAN",RECOVERY_PLAN_JOB:"RECOVERY_PLAN_JOB",AVAILABILITY_ZONE:"AVAILABILITY_ZONE",VIRTUAL_NETWORK:"VIRTUAL_NETWORK",CONSISTENCY_GROUP:"CONSISTENCY_GROUP",SUBNET_EXTENSION:"SUBNET_EXTENSION",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(zn).find(t=>zn[t]===e);return null==t?zn.$UNKNOWN:zn[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case zn.$UNKNOWN:case zn.$REDACTED:case zn.CLUSTER:case zn.VM:case zn.STORAGE_CONTAINER:case zn.VOLUME_GROUP:case zn.TASK:case zn.IMAGE:case zn.CATEGORY:case zn.NODE:case zn.VPC:case zn.SUBNET:case zn.ROUTING_POLICY:case zn.FLOATING_IP:case zn.VPN_GATEWAY:case zn.VPN_CONNECTION:case zn.DIRECT_CONNECT:case zn.DIRECT_CONNECT_VIF:case zn.VIRTUAL_NIC:case zn.VIRTUAL_SWITCH:case zn.VM_DISK:case zn.VOLUME_DISK:case zn.DISK_RECOVERY_POINT:case zn.VTEP_GATEWAY:case zn.RECOVERY_PLAN:case zn.RECOVERY_PLAN_JOB:case zn.AVAILABILITY_ZONE:case zn.VIRTUAL_NETWORK:case zn.CONSISTENCY_GROUP:case zn.SUBNET_EXTENSION:return;default:throw new Error("Invalid : must be EntityType.{ $UNKNOWN|$REDACTED|CLUSTER|VM|STORAGE_CONTAINER|VOLUME_GROUP|TASK|IMAGE|CATEGORY|NODE|VPC|SUBNET|ROUTING_POLICY|FLOATING_IP|VPN_GATEWAY|VPN_CONNECTION|DIRECT_CONNECT|DIRECT_CONNECT_VIF|VIRTUAL_NIC|VIRTUAL_SWITCH|VM_DISK|VOLUME_DISK|DISK_RECOVERY_POINT|VTEP_GATEWAY|RECOVERY_PLAN|RECOVERY_PLAN_JOB|AVAILABILITY_ZONE|VIRTUAL_NETWORK|CONSISTENCY_GROUP|SUBNET_EXTENSION }")}}};Object.freeze(zn);const Kn=zn;var Yn=new WeakSet;class Hn{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Yn),t.add(e),this.$objectType="common.v1.config.EntityReference",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s;if(e){if(t=t||new Hn,e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("uris")&&null!==e.uris&&void 0!==e.uris){for(s=[],i=e.uris,o=0;o<i.length;o++)s.push(i[o]);t.setUris(s)}if(e.hasOwnProperty("entityType")&&null!==e.entityType&&void 0!==e.entityType&&t.setEntityType(Kn.constructFromObject(e.entityType)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}getName(){return this.name}setName(e){this.name=e}getUris(){return this.uris}setUris(e){this.uris=e}getEntityType(){return this.entityType}setEntityType(e){this.entityType=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getUris()&&null!==this.getUris()?{uris:this.getUris()}:{},...void 0!==this.getEntityType()&&null!==this.getEntityType()?{entityType:this.getEntityType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}if("uris"===t){if(void 0===this.uris||null===this.uris)return new E("uris","undefined or null");if(!F.validateMaxItems(this.uris,100))return new E("uris","does not satisfy required maxItems constraint: 100")}return"entityType"!==t||void 0!==this.entityType&&null!==this.entityType?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("entityType","undefined or null")}}Hn.prototype.extId=void 0,Hn.prototype.name=void 0,Hn.prototype.uris=void 0,Hn.prototype.entityType=void 0,Hn.prototype.$reserved=void 0,Hn.prototype.$objectType=void 0,Hn.prototype.$unknownFields=void 0;const Xn={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",ENTITY:"ENTITY",NETWORK:"NETWORK",RECOVERY_POINT:"RECOVERY_POINT",CATEGORY:"CATEGORY",CONNECTIVITY:"CONNECTIVITY",INFRASTRUCTURE:"INFRASTRUCTURE",CLUSTER_LICENSE:"CLUSTER_LICENSE",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Xn).find(t=>Xn[t]===e);return null==t?Xn.$UNKNOWN:Xn[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Xn.$UNKNOWN:case Xn.$REDACTED:case Xn.ENTITY:case Xn.NETWORK:case Xn.RECOVERY_POINT:case Xn.CATEGORY:case Xn.CONNECTIVITY:case Xn.INFRASTRUCTURE:case Xn.CLUSTER_LICENSE:return;default:throw new Error("Invalid : must be ErrorGroup.{ $UNKNOWN|$REDACTED|ENTITY|NETWORK|RECOVERY_POINT|CATEGORY|CONNECTIVITY|INFRASTRUCTURE|CLUSTER_LICENSE }")}}};Object.freeze(Xn);const Zn=Xn,Qn={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",ERROR:"ERROR",WARNING:"WARNING",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Qn).find(t=>Qn[t]===e);return null==t?Qn.$UNKNOWN:Qn[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Qn.$UNKNOWN:case Qn.$REDACTED:case Qn.ERROR:case Qn.WARNING:return;default:throw new Error("Invalid : must be Severity.{ $UNKNOWN|$REDACTED|ERROR|WARNING }")}}};Object.freeze(Qn);const ei=Qn;var ti=new WeakSet;class ni extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=ti),t.add(e),this.$objectType="dataprotection.v4.config.ErrorMessage",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ni,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("errorCode")&&null!==e.errorCode&&void 0!==e.errorCode&&t.setErrorCode(e.errorCode),e.hasOwnProperty("errorGroup")&&null!==e.errorGroup&&void 0!==e.errorGroup&&t.setErrorGroup(Zn.constructFromObject(e.errorGroup)),e.hasOwnProperty("message")&&null!==e.message&&void 0!==e.message&&t.setMessage(e.message),e.hasOwnProperty("severity")&&null!==e.severity&&void 0!==e.severity&&t.setSeverity(ei.constructFromObject(e.severity)),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getErrorCode(){return this.errorCode}setErrorCode(e){this.errorCode=e}getErrorGroup(){return this.errorGroup}setErrorGroup(e){this.errorGroup=e}getMessage(){return this.message}setMessage(e){this.message=e}getSeverity(){return this.severity}setSeverity(e){this.severity=e}toJson(e){return!1===e?{...void 0!==this.getErrorCode()&&null!==this.getErrorCode()?{errorCode:this.getErrorCode()}:{},...void 0!==this.getErrorGroup()&&null!==this.getErrorGroup()?{errorGroup:this.getErrorGroup()}:{},...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getSeverity()&&null!==this.getSeverity()?{severity:this.getSeverity()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getErrorCode()&&null!==this.getErrorCode()?{errorCode:this.getErrorCode()}:{},...void 0!==this.getErrorGroup()&&null!==this.getErrorGroup()?{errorGroup:this.getErrorGroup()}:{},...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getSeverity()&&null!==this.getSeverity()?{severity:this.getSeverity()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"errorCode"!==t||void 0!==this.errorCode&&null!==this.errorCode?"errorGroup"!==t||void 0!==this.errorGroup&&null!==this.errorGroup?"message"!==t||void 0!==this.message&&null!==this.message?"severity"!==t||void 0!==this.severity&&null!==this.severity?new E(t,"no such property exists"):new E("severity","undefined or null"):new E("message","undefined or null"):new E("errorGroup","undefined or null"):new E("errorCode","undefined or null")}}ni.prototype.errorCode=void 0,ni.prototype.errorGroup=void 0,ni.prototype.message=void 0,ni.prototype.severity=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var ii=new WeakSet;class oi{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=ii),t.add(e),this.$objectType="dataprotection.v4.config.RootCauseAnalysis",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s;if(e){if(t=t||new oi,e.hasOwnProperty("cause")&&null!==e.cause&&void 0!==e.cause&&t.setCause(e.cause),e.hasOwnProperty("resolutions")&&null!==e.resolutions&&void 0!==e.resolutions){for(s=[],i=e.resolutions,o=0;o<i.length;o++)s.push(i[o]);t.setResolutions(s)}if(e.hasOwnProperty("impacts")&&null!==e.impacts&&void 0!==e.impacts){for(s=[],i=e.impacts,o=0;o<i.length;o++)s.push(i[o]);t.setImpacts(s)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getCause(){return this.cause}setCause(e){this.cause=e}getResolutions(){return this.resolutions}setResolutions(e){this.resolutions=e}getImpacts(){return this.impacts}setImpacts(e){this.impacts=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getCause()&&null!==this.getCause()?{cause:this.getCause()}:{},...void 0!==this.getResolutions()&&null!==this.getResolutions()?{resolutions:this.getResolutions()}:{},...void 0!==this.getImpacts()&&null!==this.getImpacts()?{impacts:this.getImpacts()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("cause"===t&&(void 0===this.cause||null===this.cause))return new E("cause","undefined or null");if("resolutions"===t){if(void 0===this.resolutions||null===this.resolutions)return new E("resolutions","undefined or null");if(!F.validateMaxItems(this.resolutions,5))return new E("resolutions","does not satisfy required maxItems constraint: 5");if(!F.validateMinItems(this.resolutions,1))return new E("resolutions","does not satisfy required minItems constraint: 1")}if("impacts"===t){if(void 0===this.impacts||null===this.impacts)return new E("impacts","undefined or null");if(!F.validateMaxItems(this.impacts,5))return new E("impacts","does not satisfy required maxItems constraint: 5");if(!F.validateMinItems(this.impacts,1))return new E("impacts","does not satisfy required minItems constraint: 1")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}oi.prototype.cause=void 0,oi.prototype.resolutions=void 0,oi.prototype.impacts=void 0,oi.prototype.$reserved=void 0,oi.prototype.$objectType=void 0,oi.prototype.$unknownFields=void 0;var si=new WeakSet;class ri extends ni{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=si),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPlanValidationError",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new ri,ni.constructFromObject(e,t,!0),e.hasOwnProperty("affectedEntities")&&null!==e.affectedEntities&&void 0!==e.affectedEntities){for(r=[],i=e.affectedEntities,s=0;s<i.length;s++)o=Hn.constructFromObject(i[s],void 0),r.push(o);t.setAffectedEntities(r)}if(e.hasOwnProperty("rootCauseAnalysis")&&null!==e.rootCauseAnalysis&&void 0!==e.rootCauseAnalysis&&t.setRootCauseAnalysis(oi.constructFromObject(e.rootCauseAnalysis)),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getAffectedEntities(){return this.affectedEntities}setAffectedEntities(e){this.affectedEntities=e}getRootCauseAnalysis(){return this.rootCauseAnalysis}setRootCauseAnalysis(e){this.rootCauseAnalysis=e}toJson(e){return!1===e?{...void 0!==this.getAffectedEntities()&&null!==this.getAffectedEntities()?{affectedEntities:this.getAffectedEntities().map(e=>e.toJson(!1))}:{},...void 0!==this.getRootCauseAnalysis()&&null!==this.getRootCauseAnalysis()?{rootCauseAnalysis:this.getRootCauseAnalysis().toJson(!1)}:{},...void 0!==this.getErrorCode()&&null!==this.getErrorCode()?{errorCode:this.getErrorCode()}:{},...void 0!==this.getErrorGroup()&&null!==this.getErrorGroup()?{errorGroup:this.getErrorGroup()}:{},...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getSeverity()&&null!==this.getSeverity()?{severity:this.getSeverity()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getAffectedEntities()&&null!==this.getAffectedEntities()?{affectedEntities:this.getAffectedEntities().map(e=>e.toJson(!1))}:{},...void 0!==this.getRootCauseAnalysis()&&null!==this.getRootCauseAnalysis()?{rootCauseAnalysis:this.getRootCauseAnalysis().toJson(!1)}:{},...void 0!==this.getErrorCode()&&null!==this.getErrorCode()?{errorCode:this.getErrorCode()}:{},...void 0!==this.getErrorGroup()&&null!==this.getErrorGroup()?{errorGroup:this.getErrorGroup()}:{},...void 0!==this.getMessage()&&null!==this.getMessage()?{message:this.getMessage()}:{},...void 0!==this.getSeverity()&&null!==this.getSeverity()?{severity:this.getSeverity()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("affectedEntities"===t){if(void 0===this.affectedEntities||null===this.affectedEntities)return new E("affectedEntities","undefined or null");if(!F.validateMaxItems(this.affectedEntities,100))return new E("affectedEntities","does not satisfy required maxItems constraint: 100");if(!F.validateMinItems(this.affectedEntities,1))return new E("affectedEntities","does not satisfy required minItems constraint: 1")}return"rootCauseAnalysis"!==t||void 0!==this.rootCauseAnalysis&&null!==this.rootCauseAnalysis?new E(t,"no such property exists"):new E("rootCauseAnalysis","undefined or null")}}ri.prototype.affectedEntities=void 0,ri.prototype.rootCauseAnalysis=void 0,ni.prototype.errorCode=void 0,ni.prototype.errorGroup=void 0,ni.prototype.message=void 0,ni.prototype.severity=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class ai extends ri{constructor(){super(),this.$objectType="dataprotection.v4.config.RecoveryPlanValidationErrorProjection",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ai,ri.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function li(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var di=new WeakSet;class ui extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=di),t.add(e),this.$objectType="dataprotection.v4.config.ListRecoveryPlanJobValidationErrorsApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new ui,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++)switch(l){case"dataprotection.v4.config.RecoveryPlanValidationError":o=ri.constructFromObject(i[r],void 0),a.push(o);break;case"dataprotection.v4.config.RecoveryPlanValidationErrorProjection":o=ai.constructFromObject(i[r],void 0),a.push(o);break;default:throw"Unknown list of type "+l+" in data"}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):li(di,this,ci).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):li(di,this,ci).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function ci(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}ui.prototype.metadata=void 0,ui.prototype.data=void 0,ui.prototype.$reserved=void 0,ui.prototype.$objectType=void 0,ui.prototype.$unknownFields=void 0;class hi extends Un{constructor(){super(),this.$objectType="dataprotection.v4.config.RecoveryPlanJobProjection",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new hi,Un.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function pi(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var vi=new WeakSet;class yi extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=vi),t.add(e),this.$objectType="dataprotection.v4.config.ListRecoveryPlanJobsApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new yi,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++)switch(l){case"dataprotection.v4.config.RecoveryPlanJob":o=Un.constructFromObject(i[r],void 0),a.push(o);break;case"dataprotection.v4.config.RecoveryPlanJobProjection":o=hi.constructFromObject(i[r],void 0),a.push(o);break;default:throw"Unknown list of type "+l+" in data"}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):pi(vi,this,gi).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):pi(vi,this,gi).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function gi(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}yi.prototype.metadata=void 0,yi.prototype.data=void 0,yi.prototype.$reserved=void 0,yi.prototype.$objectType=void 0,yi.prototype.$unknownFields=void 0;const fi={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",VM:"VM",SUBNET:"SUBNET",AVAILABILITY_ZONE:"AVAILABILITY_ZONE",RECOVERY_PLAN:"RECOVERY_PLAN",VIRTUAL_NETWORK:"VIRTUAL_NETWORK",VOLUME_GROUP:"VOLUME_GROUP",CONSISTENCY_GROUP:"CONSISTENCY_GROUP",CATEGORY:"CATEGORY",VPN_GATEWAY:"VPN_GATEWAY",SUBNET_EXTENSION:"SUBNET_EXTENSION",VPC:"VPC",RECOVERY_PLAN_JOB:"RECOVERY_PLAN_JOB",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(fi).find(t=>fi[t]===e);return null==t?fi.$UNKNOWN:fi[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case fi.$UNKNOWN:case fi.$REDACTED:case fi.VM:case fi.SUBNET:case fi.AVAILABILITY_ZONE:case fi.RECOVERY_PLAN:case fi.VIRTUAL_NETWORK:case fi.VOLUME_GROUP:case fi.CONSISTENCY_GROUP:case fi.CATEGORY:case fi.VPN_GATEWAY:case fi.SUBNET_EXTENSION:case fi.VPC:case fi.RECOVERY_PLAN_JOB:return;default:throw new Error("Invalid : must be ExecutionStepEntityType.{ $UNKNOWN|$REDACTED|VM|SUBNET|AVAILABILITY_ZONE|RECOVERY_PLAN|VIRTUAL_NETWORK|VOLUME_GROUP|CONSISTENCY_GROUP|CATEGORY|VPN_GATEWAY|SUBNET_EXTENSION|VPC|RECOVERY_PLAN_JOB }")}}};Object.freeze(fi);const $i=fi;var wi=new WeakSet;class mi{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=wi),t.add(e),this.$objectType="dataprotection.v4.config.ExecutionStepEntityReference",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new mi,e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("entityType")&&null!==e.entityType&&void 0!==e.entityType&&t.setEntityType($i.constructFromObject(e.entityType)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}getName(){return this.name}setName(e){this.name=e}getEntityType(){return this.entityType}setEntityType(e){this.entityType=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getEntityType()&&null!==this.getEntityType()?{entityType:this.getEntityType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}return"entityType"!==t||void 0!==this.entityType&&null!==this.entityType?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("entityType","undefined or null")}}mi.prototype.extId=void 0,mi.prototype.name=void 0,mi.prototype.entityType=void 0,mi.prototype.$reserved=void 0,mi.prototype.$objectType=void 0,mi.prototype.$unknownFields=void 0;var Ti=new WeakSet;class ki{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Ti),t.add(e),this.$objectType="dataprotection.v4.config.EntityRecoveryResult",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ki,e.hasOwnProperty("sourceEntityExtId")&&null!==e.sourceEntityExtId&&void 0!==e.sourceEntityExtId&&t.setSourceEntityExtId(e.sourceEntityExtId),e.hasOwnProperty("recoveredEntityExtId")&&null!==e.recoveredEntityExtId&&void 0!==e.recoveredEntityExtId&&t.setRecoveredEntityExtId(e.recoveredEntityExtId),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("entityType")&&null!==e.entityType&&void 0!==e.entityType&&t.setEntityType(Kn.constructFromObject(e.entityType)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getSourceEntityExtId(){return this.sourceEntityExtId}setSourceEntityExtId(e){this.sourceEntityExtId=e}getRecoveredEntityExtId(){return this.recoveredEntityExtId}setRecoveredEntityExtId(e){this.recoveredEntityExtId=e}getName(){return this.name}setName(e){this.name=e}getEntityType(){return this.entityType}setEntityType(e){this.entityType=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getSourceEntityExtId()&&null!==this.getSourceEntityExtId()?{sourceEntityExtId:this.getSourceEntityExtId()}:{},...void 0!==this.getRecoveredEntityExtId()&&null!==this.getRecoveredEntityExtId()?{recoveredEntityExtId:this.getRecoveredEntityExtId()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getEntityType()&&null!==this.getEntityType()?{entityType:this.getEntityType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("sourceEntityExtId"===t){if(void 0===this.sourceEntityExtId||null===this.sourceEntityExtId)return new E("sourceEntityExtId","undefined or null");if(!F.validatePattern(this.sourceEntityExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("sourceEntityExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("recoveredEntityExtId"===t){if(void 0===this.recoveredEntityExtId||null===this.recoveredEntityExtId)return new E("recoveredEntityExtId","undefined or null");if(!F.validatePattern(this.recoveredEntityExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("recoveredEntityExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}return"entityType"!==t||void 0!==this.entityType&&null!==this.entityType?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("entityType","undefined or null")}}function bi(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}ki.prototype.sourceEntityExtId=void 0,ki.prototype.recoveredEntityExtId=void 0,ki.prototype.name=void 0,ki.prototype.entityType=void 0,ki.prototype.$reserved=void 0,ki.prototype.$objectType=void 0,ki.prototype.$unknownFields=void 0;var Fi=new WeakSet;class Ei{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=Fi),n.add(t),this.result=e,this.$objectType="dataprotection.v4.config.ExecutionStepResult",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Ei,e.hasOwnProperty("result")&&null!==e.result&&void 0!==e.result){if(i=e.result.hasOwnProperty("$objectType")?e.result.$objectType:typeof e.result,"dataprotection.v4.config.EntityRecoveryResult"!==i)throw"Unknown datatype "+i+" in data";t.setResult(ki.constructFromObject(e.result,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getResult(){return this.result}setResult(e){this.result=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getResult()&&null!==this.getResult()?{result:void 0!==this.getResult().toJson?this.getResult().toJson(!1):Array.isArray(this.getResult())?this.getResult().map(e=>void 0!==e.toJson?e.toJson(!1):e):bi(Fi,this,Ii).call(this,this.getResult(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getResult()&&null!==this.getResult()?{result:void 0!==this.getResult().toJson?this.getResult().toJson():Array.isArray(this.getResult())?this.getResult().map(e=>void 0!==e.toJson?e.toJson():e):bi(Fi,this,Ii).call(this,this.getResult())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["result"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"result"!==t||void 0!==this.result&&null!==this.result?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("result","undefined or null")}}function Ii(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Ei.prototype.result=void 0,Ei.prototype.$reserved=void 0,Ei.prototype.$objectType=void 0,Ei.prototype.$unknownFields=void 0;const Oi={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",NETWORK_CREATION:"NETWORK_CREATION",SUBNET_EXTENSION_CREATION:"SUBNET_EXTENSION_CREATION",NETWORK_GATEWAY_CREATION:"NETWORK_GATEWAY_CREATION",VPC_UPDATION:"VPC_UPDATION",SYNC_RECOVERY_POINTS:"SYNC_RECOVERY_POINTS",FLOATING_IP_CREATION:"FLOATING_IP_CREATION",RESOURCE_RESERVATION:"RESOURCE_RESERVATION",NOTIFY_WITNESS:"NOTIFY_WITNESS",VPC_CREATION:"VPC_CREATION",CONFIGURE_MANUAL_PROTECTION:"CONFIGURE_MANUAL_PROTECTION",DELAY:"DELAY",ENTITY_MIGRATION:"ENTITY_MIGRATION",ENTITY_RESTORATION:"ENTITY_RESTORATION",ENTITY_LIVE_MIGRATION:"ENTITY_LIVE_MIGRATION",VM_POWER_ON:"VM_POWER_ON",ASSIGN_FLOATING_IP:"ASSIGN_FLOATING_IP",STATIC_IP_VALIDATION:"STATIC_IP_VALIDATION",SCRIPT_EXECUTION:"SCRIPT_EXECUTION",VM_VOLUME_IQN_ATTACHMENT:"VM_VOLUME_IQN_ATTACHMENT",VM_VOLUME_ATTACHMENT:"VM_VOLUME_ATTACHMENT",ENTITY_SNAPSHOT_SYNC:"ENTITY_SNAPSHOT_SYNC",AUDIT:"AUDIT",NETWORK_DELETION:"NETWORK_DELETION",CONSISTENCY_GROUP_CREATE:"CONSISTENCY_GROUP_CREATE",SUBNET_EXTENSION_DELETION:"SUBNET_EXTENSION_DELETION",NETWORK_GATEWAY_DELETION:"NETWORK_GATEWAY_DELETION",STAGE_RECOVERY:"STAGE_RECOVERY",ENTITY_RECOVERY:"ENTITY_RECOVERY",IP_CUSTOMIZATION:"IP_CUSTOMIZATION",ENTITIES_CLEANUP:"ENTITIES_CLEANUP",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Oi).find(t=>Oi[t]===e);return null==t?Oi.$UNKNOWN:Oi[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Oi.$UNKNOWN:case Oi.$REDACTED:case Oi.NETWORK_CREATION:case Oi.SUBNET_EXTENSION_CREATION:case Oi.NETWORK_GATEWAY_CREATION:case Oi.VPC_UPDATION:case Oi.SYNC_RECOVERY_POINTS:case Oi.FLOATING_IP_CREATION:case Oi.RESOURCE_RESERVATION:case Oi.NOTIFY_WITNESS:case Oi.VPC_CREATION:case Oi.CONFIGURE_MANUAL_PROTECTION:case Oi.DELAY:case Oi.ENTITY_MIGRATION:case Oi.ENTITY_RESTORATION:case Oi.ENTITY_LIVE_MIGRATION:case Oi.VM_POWER_ON:case Oi.ASSIGN_FLOATING_IP:case Oi.STATIC_IP_VALIDATION:case Oi.SCRIPT_EXECUTION:case Oi.VM_VOLUME_IQN_ATTACHMENT:case Oi.VM_VOLUME_ATTACHMENT:case Oi.ENTITY_SNAPSHOT_SYNC:case Oi.AUDIT:case Oi.NETWORK_DELETION:case Oi.CONSISTENCY_GROUP_CREATE:case Oi.SUBNET_EXTENSION_DELETION:case Oi.NETWORK_GATEWAY_DELETION:case Oi.STAGE_RECOVERY:case Oi.ENTITY_RECOVERY:case Oi.IP_CUSTOMIZATION:case Oi.ENTITIES_CLEANUP:return;default:throw new Error("Invalid : must be OperationType.{ $UNKNOWN|$REDACTED|NETWORK_CREATION|SUBNET_EXTENSION_CREATION|NETWORK_GATEWAY_CREATION|VPC_UPDATION|SYNC_RECOVERY_POINTS|FLOATING_IP_CREATION|RESOURCE_RESERVATION|NOTIFY_WITNESS|VPC_CREATION|CONFIGURE_MANUAL_PROTECTION|DELAY|ENTITY_MIGRATION|ENTITY_RESTORATION|ENTITY_LIVE_MIGRATION|VM_POWER_ON|ASSIGN_FLOATING_IP|STATIC_IP_VALIDATION|SCRIPT_EXECUTION|VM_VOLUME_IQN_ATTACHMENT|VM_VOLUME_ATTACHMENT|ENTITY_SNAPSHOT_SYNC|AUDIT|NETWORK_DELETION|CONSISTENCY_GROUP_CREATE|SUBNET_EXTENSION_DELETION|NETWORK_GATEWAY_DELETION|STAGE_RECOVERY|ENTITY_RECOVERY|IP_CUSTOMIZATION|ENTITIES_CLEANUP }")}}};Object.freeze(Oi);const ji=Oi;function Pi(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Ri=new WeakSet;class xi extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ri),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPlanJobExecutionStep",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new xi,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("errorMessage")&&null!==e.errorMessage&&void 0!==e.errorMessage&&t.setErrorMessage(Ve.constructFromObject(e.errorMessage)),e.hasOwnProperty("stageExtId")&&null!==e.stageExtId&&void 0!==e.stageExtId&&t.setStageExtId(e.stageExtId),e.hasOwnProperty("phase")&&null!==e.phase&&void 0!==e.phase&&t.setPhase(In.constructFromObject(e.phase)),e.hasOwnProperty("operationType")&&null!==e.operationType&&void 0!==e.operationType&&t.setOperationType(ji.constructFromObject(e.operationType)),e.hasOwnProperty("stepDescription")&&null!==e.stepDescription&&void 0!==e.stepDescription&&t.setStepDescription(e.stepDescription),e.hasOwnProperty("affectedEntities")&&null!==e.affectedEntities&&void 0!==e.affectedEntities){for(r=[],i=e.affectedEntities,s=0;s<i.length;s++)o=mi.constructFromObject(i[s],void 0),r.push(o);t.setAffectedEntities(r)}if(e.hasOwnProperty("executionStepResults")&&null!==e.executionStepResults&&void 0!==e.executionStepResults){for(r=[],i=e.executionStepResults,s=0;s<i.length;s++)o=Ei.constructFromObject(i[s],void 0),r.push(o);t.setExecutionStepResults(r)}if(e.hasOwnProperty("status")&&null!==e.status&&void 0!==e.status&&t.setStatus(Fn.constructFromObject(e.status)),e.hasOwnProperty("startTime")&&null!==e.startTime&&void 0!==e.startTime&&t.setStartTime(e.startTime),e.hasOwnProperty("endTime")&&null!==e.endTime&&void 0!==e.endTime&&t.setEndTime(e.endTime),e.hasOwnProperty("percentageComplete")&&null!==e.percentageComplete&&void 0!==e.percentageComplete&&t.setPercentageComplete(e.percentageComplete),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getErrorMessage(){return this.errorMessage}setErrorMessage(e){this.errorMessage=e}getStageExtId(){return this.stageExtId}setStageExtId(e){this.stageExtId=e}getPhase(){return this.phase}setPhase(e){this.phase=e}getOperationType(){return this.operationType}setOperationType(e){this.operationType=e}getStepDescription(){return this.stepDescription}setStepDescription(e){this.stepDescription=e}getAffectedEntities(){return this.affectedEntities}setAffectedEntities(e){this.affectedEntities=e}getExecutionStepResults(){return this.executionStepResults}setExecutionStepResults(e){this.executionStepResults=e}getStatus(){return this.status}setStatus(e){this.status=e}getStartTime(){return this.startTime}setStartTime(e){this.startTime=e}getEndTime(){return this.endTime}setEndTime(e){this.endTime=e}getPercentageComplete(){return this.percentageComplete}setPercentageComplete(e){this.percentageComplete=e}toJson(e){return!1===e?{...void 0!==this.getErrorMessage()&&null!==this.getErrorMessage()?{errorMessage:this.getErrorMessage().toJson(!1)}:{},...void 0!==this.getStageExtId()&&null!==this.getStageExtId()?{stageExtId:this.getStageExtId()}:{},...void 0!==this.getPhase()&&null!==this.getPhase()?{phase:this.getPhase()}:{},...void 0!==this.getOperationType()&&null!==this.getOperationType()?{operationType:this.getOperationType()}:{},...void 0!==this.getStepDescription()&&null!==this.getStepDescription()?{stepDescription:this.getStepDescription()}:{},...void 0!==this.getAffectedEntities()&&null!==this.getAffectedEntities()?{affectedEntities:this.getAffectedEntities().map(e=>e.toJson(!1))}:{},...void 0!==this.getExecutionStepResults()&&null!==this.getExecutionStepResults()?{executionStepResults:this.getExecutionStepResults().map(e=>e.toJson(!1))}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getStartTime()&&null!==this.getStartTime()?{startTime:Pi(Ri,this,Ai).call(this,this.getStartTime(),!1)}:{},...void 0!==this.getEndTime()&&null!==this.getEndTime()?{endTime:Pi(Ri,this,Ai).call(this,this.getEndTime(),!1)}:{},...void 0!==this.getPercentageComplete()&&null!==this.getPercentageComplete()?{percentageComplete:this.getPercentageComplete()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getErrorMessage()&&null!==this.getErrorMessage()?{errorMessage:this.getErrorMessage().toJson(!1)}:{},...void 0!==this.getStageExtId()&&null!==this.getStageExtId()?{stageExtId:this.getStageExtId()}:{},...void 0!==this.getPhase()&&null!==this.getPhase()?{phase:this.getPhase()}:{},...void 0!==this.getOperationType()&&null!==this.getOperationType()?{operationType:this.getOperationType()}:{},...void 0!==this.getStepDescription()&&null!==this.getStepDescription()?{stepDescription:this.getStepDescription()}:{},...void 0!==this.getAffectedEntities()&&null!==this.getAffectedEntities()?{affectedEntities:this.getAffectedEntities().map(e=>e.toJson(!1))}:{},...void 0!==this.getExecutionStepResults()&&null!==this.getExecutionStepResults()?{executionStepResults:this.getExecutionStepResults().map(e=>e.toJson(!1))}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getStartTime()&&null!==this.getStartTime()?{startTime:Pi(Ri,this,Ai).call(this,this.getStartTime(),!1)}:{},...void 0!==this.getEndTime()&&null!==this.getEndTime()?{endTime:Pi(Ri,this,Ai).call(this,this.getEndTime(),!1)}:{},...void 0!==this.getPercentageComplete()&&null!==this.getPercentageComplete()?{percentageComplete:this.getPercentageComplete()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("errorMessage"===t&&(void 0===this.errorMessage||null===this.errorMessage))return new E("errorMessage","undefined or null");if("stageExtId"===t){if(void 0===this.stageExtId||null===this.stageExtId)return new E("stageExtId","undefined or null");if(!F.validatePattern(this.stageExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("stageExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("phase"===t&&(void 0===this.phase||null===this.phase))return new E("phase","undefined or null");if("operationType"===t&&(void 0===this.operationType||null===this.operationType))return new E("operationType","undefined or null");if("stepDescription"===t){if(void 0===this.stepDescription||null===this.stepDescription)return new E("stepDescription","undefined or null");if(!F.validateMaxLength(this.stepDescription,1e3))return new E("stepDescription","does not satisfy required maxLength constraint: 1000")}if("affectedEntities"===t){if(void 0===this.affectedEntities||null===this.affectedEntities)return new E("affectedEntities","undefined or null");if(!F.validateMaxItems(this.affectedEntities,100))return new E("affectedEntities","does not satisfy required maxItems constraint: 100");if(!F.validateMinItems(this.affectedEntities,1))return new E("affectedEntities","does not satisfy required minItems constraint: 1")}if("executionStepResults"===t){if(void 0===this.executionStepResults||null===this.executionStepResults)return new E("executionStepResults","undefined or null");if(!F.validateMaxItems(this.executionStepResults,1))return new E("executionStepResults","does not satisfy required maxItems constraint: 1");if(!F.validateMinItems(this.executionStepResults,1))return new E("executionStepResults","does not satisfy required minItems constraint: 1")}if("status"===t&&(void 0===this.status||null===this.status))return new E("status","undefined or null");if("startTime"===t&&(void 0===this.startTime||null===this.startTime))return new E("startTime","undefined or null");if("endTime"===t&&(void 0===this.endTime||null===this.endTime))return new E("endTime","undefined or null");if("percentageComplete"===t){if(void 0===this.percentageComplete||null===this.percentageComplete)return new E("percentageComplete","undefined or null");if(!F.validateMaximum(this.percentageComplete,100))return new E("percentageComplete","does not satisfy required maximum constraint: 100");if(!F.validateMinimum(this.percentageComplete,0))return new E("percentageComplete","does not satisfy required minimum constraint: 0")}return new E(t,"no such property exists")}}function Ai(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}xi.prototype.errorMessage=void 0,xi.prototype.stageExtId=void 0,xi.prototype.phase=void 0,xi.prototype.operationType=void 0,xi.prototype.stepDescription=void 0,xi.prototype.affectedEntities=void 0,xi.prototype.executionStepResults=void 0,xi.prototype.status=void 0,xi.prototype.startTime=void 0,xi.prototype.endTime=void 0,xi.prototype.percentageComplete=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class Ci extends xi{constructor(){super(),this.$objectType="dataprotection.v4.config.RecoveryPlanJobExecutionStepProjection",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Ci,xi.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function Si(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Ni=new WeakSet;class Di extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ni),t.add(e),this.$objectType="dataprotection.v4.config.ListRecoveryPlanJobExecutionStepsApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new Di,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++)switch(l){case"dataprotection.v4.config.RecoveryPlanJobExecutionStep":o=xi.constructFromObject(i[r],void 0),a.push(o);break;case"dataprotection.v4.config.RecoveryPlanJobExecutionStepProjection":o=Ci.constructFromObject(i[r],void 0),a.push(o);break;default:throw"Unknown list of type "+l+" in data"}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Si(Ni,this,Ui).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Si(Ni,this,Ui).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Ui(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function Mi(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Di.prototype.metadata=void 0,Di.prototype.data=void 0,Di.prototype.$reserved=void 0,Di.prototype.$objectType=void 0,Di.prototype.$unknownFields=void 0;var Ji=new WeakSet;class _i extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ji),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPointReplicateApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new _i,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(Pt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Mi(Ji,this,Li).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Mi(Ji,this,Li).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Li(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}_i.prototype.metadata=void 0,_i.prototype.data=void 0,_i.prototype.$reserved=void 0,_i.prototype.$objectType=void 0,_i.prototype.$unknownFields=void 0;const Vi={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",GET_VSS_METADATA:"GET_VSS_METADATA",COMPUTE_CHANGED_REGIONS:"COMPUTE_CHANGED_REGIONS",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Vi).find(t=>Vi[t]===e);return null==t?Vi.$UNKNOWN:Vi[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Vi.$UNKNOWN:case Vi.$REDACTED:case Vi.GET_VSS_METADATA:case Vi.COMPUTE_CHANGED_REGIONS:return;default:throw new Error("Invalid : must be ClusterDiscoverOperation.{ $UNKNOWN|$REDACTED|GET_VSS_METADATA|COMPUTE_CHANGED_REGIONS }")}}};Object.freeze(Vi);const Gi=Vi;var Wi=new WeakSet;class Bi{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Wi),t.add(e),this.$objectType="dataprotection.v4.content.DiskRecoveryPointReference",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Bi,e.hasOwnProperty("recoveryPointExtId")&&null!==e.recoveryPointExtId&&void 0!==e.recoveryPointExtId&&t.setRecoveryPointExtId(e.recoveryPointExtId),e.hasOwnProperty("diskRecoveryPointExtId")&&null!==e.diskRecoveryPointExtId&&void 0!==e.diskRecoveryPointExtId&&t.setDiskRecoveryPointExtId(e.diskRecoveryPointExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getRecoveryPointExtId(){return this.recoveryPointExtId}setRecoveryPointExtId(e){this.recoveryPointExtId=e}getDiskRecoveryPointExtId(){return this.diskRecoveryPointExtId}setDiskRecoveryPointExtId(e){this.diskRecoveryPointExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getRecoveryPointExtId()&&null!==this.getRecoveryPointExtId()?{recoveryPointExtId:this.getRecoveryPointExtId()}:{},...void 0!==this.getDiskRecoveryPointExtId()&&null!==this.getDiskRecoveryPointExtId()?{diskRecoveryPointExtId:this.getDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("recoveryPointExtId"===t){if(void 0===this.recoveryPointExtId||null===this.recoveryPointExtId)return new E("recoveryPointExtId","undefined or null");if(!F.validatePattern(this.recoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("recoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("diskRecoveryPointExtId"===t){if(void 0===this.diskRecoveryPointExtId||null===this.diskRecoveryPointExtId)return new E("diskRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.diskRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("diskRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Bi.prototype.recoveryPointExtId=void 0,Bi.prototype.diskRecoveryPointExtId=void 0,Bi.prototype.$reserved=void 0,Bi.prototype.$objectType=void 0,Bi.prototype.$unknownFields=void 0;var qi=new WeakSet;class zi extends Bi{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=qi),t.add(e),this.$objectType="dataprotection.v4.content.VmDiskRecoveryPointReference",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new zi,Bi.constructFromObject(e,t,!0),e.hasOwnProperty("vmRecoveryPointExtId")&&null!==e.vmRecoveryPointExtId&&void 0!==e.vmRecoveryPointExtId&&t.setVmRecoveryPointExtId(e.vmRecoveryPointExtId),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getVmRecoveryPointExtId(){return this.vmRecoveryPointExtId}setVmRecoveryPointExtId(e){this.vmRecoveryPointExtId=e}toJson(e){return{...void 0!==this.getVmRecoveryPointExtId()&&null!==this.getVmRecoveryPointExtId()?{vmRecoveryPointExtId:this.getVmRecoveryPointExtId()}:{},...void 0!==this.getRecoveryPointExtId()&&null!==this.getRecoveryPointExtId()?{recoveryPointExtId:this.getRecoveryPointExtId()}:{},...void 0!==this.getDiskRecoveryPointExtId()&&null!==this.getDiskRecoveryPointExtId()?{diskRecoveryPointExtId:this.getDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("vmRecoveryPointExtId"===t){if(void 0===this.vmRecoveryPointExtId||null===this.vmRecoveryPointExtId)return new E("vmRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.vmRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("vmRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return new E(t,"no such property exists")}}zi.prototype.vmRecoveryPointExtId=void 0,Bi.prototype.recoveryPointExtId=void 0,Bi.prototype.diskRecoveryPointExtId=void 0;var Ki=new WeakSet;class Yi extends Bi{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ki),t.add(e),this.$objectType="dataprotection.v4.content.VolumeGroupDiskRecoveryPointReference",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Yi,Bi.constructFromObject(e,t,!0),e.hasOwnProperty("volumeGroupRecoveryPointExtId")&&null!==e.volumeGroupRecoveryPointExtId&&void 0!==e.volumeGroupRecoveryPointExtId&&t.setVolumeGroupRecoveryPointExtId(e.volumeGroupRecoveryPointExtId),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getVolumeGroupRecoveryPointExtId(){return this.volumeGroupRecoveryPointExtId}setVolumeGroupRecoveryPointExtId(e){this.volumeGroupRecoveryPointExtId=e}toJson(e){return{...void 0!==this.getVolumeGroupRecoveryPointExtId()&&null!==this.getVolumeGroupRecoveryPointExtId()?{volumeGroupRecoveryPointExtId:this.getVolumeGroupRecoveryPointExtId()}:{},...void 0!==this.getRecoveryPointExtId()&&null!==this.getRecoveryPointExtId()?{recoveryPointExtId:this.getRecoveryPointExtId()}:{},...void 0!==this.getDiskRecoveryPointExtId()&&null!==this.getDiskRecoveryPointExtId()?{diskRecoveryPointExtId:this.getDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("volumeGroupRecoveryPointExtId"===t){if(void 0===this.volumeGroupRecoveryPointExtId||null===this.volumeGroupRecoveryPointExtId)return new E("volumeGroupRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.volumeGroupRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("volumeGroupRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return new E(t,"no such property exists")}}function Hi(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Yi.prototype.volumeGroupRecoveryPointExtId=void 0,Bi.prototype.recoveryPointExtId=void 0,Bi.prototype.diskRecoveryPointExtId=void 0;var Xi=new WeakSet;class Zi{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=Xi),n.add(t),this.diskRecoveryPoint=e,this.$objectType="dataprotection.v4.content.ComputeChangedRegionsClusterDiscoverSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Zi,e.hasOwnProperty("diskRecoveryPoint")&&null!==e.diskRecoveryPoint&&void 0!==e.diskRecoveryPoint)switch(i=e.diskRecoveryPoint.hasOwnProperty("$objectType")?e.diskRecoveryPoint.$objectType:typeof e.diskRecoveryPoint,i){case"dataprotection.v4.content.VmDiskRecoveryPointReference":t.setDiskRecoveryPoint(zi.constructFromObject(e.diskRecoveryPoint,void 0));break;case"dataprotection.v4.content.VolumeGroupDiskRecoveryPointReference":t.setDiskRecoveryPoint(Yi.constructFromObject(e.diskRecoveryPoint,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("referenceDiskRecoveryPoint")&&null!==e.referenceDiskRecoveryPoint&&void 0!==e.referenceDiskRecoveryPoint)switch(i=e.referenceDiskRecoveryPoint.hasOwnProperty("$objectType")?e.referenceDiskRecoveryPoint.$objectType:typeof e.referenceDiskRecoveryPoint,i){case"dataprotection.v4.content.VmDiskRecoveryPointReference":t.setReferenceDiskRecoveryPoint(zi.constructFromObject(e.referenceDiskRecoveryPoint,void 0));break;case"dataprotection.v4.content.VolumeGroupDiskRecoveryPointReference":t.setReferenceDiskRecoveryPoint(Yi.constructFromObject(e.referenceDiskRecoveryPoint,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getDiskRecoveryPoint(){return this.diskRecoveryPoint}setDiskRecoveryPoint(e){this.diskRecoveryPoint=e}getReferenceDiskRecoveryPoint(){return this.referenceDiskRecoveryPoint}setReferenceDiskRecoveryPoint(e){this.referenceDiskRecoveryPoint=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getDiskRecoveryPoint()&&null!==this.getDiskRecoveryPoint()?{diskRecoveryPoint:void 0!==this.getDiskRecoveryPoint().toJson?this.getDiskRecoveryPoint().toJson(!1):Array.isArray(this.getDiskRecoveryPoint())?this.getDiskRecoveryPoint().map(e=>void 0!==e.toJson?e.toJson(!1):e):Hi(Xi,this,Qi).call(this,this.getDiskRecoveryPoint(),!1)}:{},...void 0!==this.getReferenceDiskRecoveryPoint()&&null!==this.getReferenceDiskRecoveryPoint()?{referenceDiskRecoveryPoint:void 0!==this.getReferenceDiskRecoveryPoint().toJson?this.getReferenceDiskRecoveryPoint().toJson(!1):Array.isArray(this.getReferenceDiskRecoveryPoint())?this.getReferenceDiskRecoveryPoint().map(e=>void 0!==e.toJson?e.toJson(!1):e):Hi(Xi,this,Qi).call(this,this.getReferenceDiskRecoveryPoint(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getDiskRecoveryPoint()&&null!==this.getDiskRecoveryPoint()?{diskRecoveryPoint:void 0!==this.getDiskRecoveryPoint().toJson?this.getDiskRecoveryPoint().toJson():Array.isArray(this.getDiskRecoveryPoint())?this.getDiskRecoveryPoint().map(e=>void 0!==e.toJson?e.toJson():e):Hi(Xi,this,Qi).call(this,this.getDiskRecoveryPoint())}:{},...void 0!==this.getReferenceDiskRecoveryPoint()&&null!==this.getReferenceDiskRecoveryPoint()?{referenceDiskRecoveryPoint:void 0!==this.getReferenceDiskRecoveryPoint().toJson?this.getReferenceDiskRecoveryPoint().toJson():Array.isArray(this.getReferenceDiskRecoveryPoint())?this.getReferenceDiskRecoveryPoint().map(e=>void 0!==e.toJson?e.toJson():e):Hi(Xi,this,Qi).call(this,this.getReferenceDiskRecoveryPoint())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["diskRecoveryPoint"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"diskRecoveryPoint"!==t||void 0!==this.diskRecoveryPoint&&null!==this.diskRecoveryPoint?"referenceDiskRecoveryPoint"!==t||void 0!==this.referenceDiskRecoveryPoint&&null!==this.referenceDiskRecoveryPoint?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("referenceDiskRecoveryPoint","undefined or null"):new E("diskRecoveryPoint","undefined or null")}}function Qi(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Zi.prototype.diskRecoveryPoint=void 0,Zi.prototype.referenceDiskRecoveryPoint=void 0,Zi.prototype.$reserved=void 0,Zi.prototype.$objectType=void 0,Zi.prototype.$unknownFields=void 0;var eo=new WeakSet;class to{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=eo),n.add(t),this.vmRecoveryPointExtId=e,this.$objectType="dataprotection.v4.content.GetVssMetadataClusterDiscoverSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new to,e.hasOwnProperty("vmRecoveryPointExtId")&&null!==e.vmRecoveryPointExtId&&void 0!==e.vmRecoveryPointExtId&&t.setVmRecoveryPointExtId(e.vmRecoveryPointExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getVmRecoveryPointExtId(){return this.vmRecoveryPointExtId}setVmRecoveryPointExtId(e){this.vmRecoveryPointExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getVmRecoveryPointExtId()&&null!==this.getVmRecoveryPointExtId()?{vmRecoveryPointExtId:this.getVmRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["vmRecoveryPointExtId"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("vmRecoveryPointExtId"===t){if(void 0===this.vmRecoveryPointExtId||null===this.vmRecoveryPointExtId)return new E("vmRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.vmRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("vmRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}function no(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}to.prototype.vmRecoveryPointExtId=void 0,to.prototype.$reserved=void 0,to.prototype.$objectType=void 0,to.prototype.$unknownFields=void 0;var io=new WeakSet;class oo{constructor(e,t){var n,i;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(n=this,i=io),i.add(n),this.operation=e,this.spec=t,this.$objectType="dataprotection.v4.content.ClusterDiscoverSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new oo,e.hasOwnProperty("operation")&&null!==e.operation&&void 0!==e.operation&&t.setOperation(Gi.constructFromObject(e.operation)),e.hasOwnProperty("spec")&&null!==e.spec&&void 0!==e.spec)switch(i=e.spec.hasOwnProperty("$objectType")?e.spec.$objectType:typeof e.spec,i){case"dataprotection.v4.content.GetVssMetadataClusterDiscoverSpec":t.setSpec(to.constructFromObject(e.spec,void 0));break;case"dataprotection.v4.content.ComputeChangedRegionsClusterDiscoverSpec":t.setSpec(Zi.constructFromObject(e.spec,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getOperation(){return this.operation}setOperation(e){this.operation=e}getSpec(){return this.spec}setSpec(e){this.spec=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getOperation()&&null!==this.getOperation()?{operation:this.getOperation()}:{},...void 0!==this.getSpec()&&null!==this.getSpec()?{spec:void 0!==this.getSpec().toJson?this.getSpec().toJson(!1):Array.isArray(this.getSpec())?this.getSpec().map(e=>void 0!==e.toJson?e.toJson(!1):e):no(io,this,so).call(this,this.getSpec(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getOperation()&&null!==this.getOperation()?{operation:this.getOperation()}:{},...void 0!==this.getSpec()&&null!==this.getSpec()?{spec:void 0!==this.getSpec().toJson?this.getSpec().toJson():Array.isArray(this.getSpec())?this.getSpec().map(e=>void 0!==e.toJson?e.toJson():e):no(io,this,so).call(this,this.getSpec())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["operation","spec"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"operation"!==t||void 0!==this.operation&&null!==this.operation?"spec"!==t||void 0!==this.spec&&null!==this.spec?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("spec","undefined or null"):new E("operation","undefined or null")}}function so(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}oo.prototype.operation=void 0,oo.prototype.spec=void 0,oo.prototype.$reserved=void 0,oo.prototype.$objectType=void 0,oo.prototype.$unknownFields=void 0;var ro=new WeakSet;class ao{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=ro),t.add(e),this.$objectType="dataprotection.v4.content.BaseRecoveryPointSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ao,e.hasOwnProperty("referenceRecoveryPointExtId")&&null!==e.referenceRecoveryPointExtId&&void 0!==e.referenceRecoveryPointExtId&&t.setReferenceRecoveryPointExtId(e.referenceRecoveryPointExtId),e.hasOwnProperty("referenceDiskRecoveryPointExtId")&&null!==e.referenceDiskRecoveryPointExtId&&void 0!==e.referenceDiskRecoveryPointExtId&&t.setReferenceDiskRecoveryPointExtId(e.referenceDiskRecoveryPointExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getReferenceRecoveryPointExtId(){return this.referenceRecoveryPointExtId}setReferenceRecoveryPointExtId(e){this.referenceRecoveryPointExtId=e}getReferenceDiskRecoveryPointExtId(){return this.referenceDiskRecoveryPointExtId}setReferenceDiskRecoveryPointExtId(e){this.referenceDiskRecoveryPointExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getReferenceRecoveryPointExtId()&&null!==this.getReferenceRecoveryPointExtId()?{referenceRecoveryPointExtId:this.getReferenceRecoveryPointExtId()}:{},...void 0!==this.getReferenceDiskRecoveryPointExtId()&&null!==this.getReferenceDiskRecoveryPointExtId()?{referenceDiskRecoveryPointExtId:this.getReferenceDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("referenceRecoveryPointExtId"===t){if(void 0===this.referenceRecoveryPointExtId||null===this.referenceRecoveryPointExtId)return new E("referenceRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.referenceRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("referenceRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("referenceDiskRecoveryPointExtId"===t){if(void 0===this.referenceDiskRecoveryPointExtId||null===this.referenceDiskRecoveryPointExtId)return new E("referenceDiskRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.referenceDiskRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("referenceDiskRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}ao.prototype.referenceRecoveryPointExtId=void 0,ao.prototype.referenceDiskRecoveryPointExtId=void 0,ao.prototype.$reserved=void 0,ao.prototype.$objectType=void 0,ao.prototype.$unknownFields=void 0;var lo=new WeakSet;class uo extends ao{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=lo),t.add(e),this.$objectType="dataprotection.v4.content.VmDiskRecoveryPointClusterDiscoverSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new uo,ao.constructFromObject(e,t,!0),e.hasOwnProperty("referenceVmRecoveryPointExtId")&&null!==e.referenceVmRecoveryPointExtId&&void 0!==e.referenceVmRecoveryPointExtId&&t.setReferenceVmRecoveryPointExtId(e.referenceVmRecoveryPointExtId),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getReferenceVmRecoveryPointExtId(){return this.referenceVmRecoveryPointExtId}setReferenceVmRecoveryPointExtId(e){this.referenceVmRecoveryPointExtId=e}toJson(e){return{...void 0!==this.getReferenceVmRecoveryPointExtId()&&null!==this.getReferenceVmRecoveryPointExtId()?{referenceVmRecoveryPointExtId:this.getReferenceVmRecoveryPointExtId()}:{},...void 0!==this.getReferenceRecoveryPointExtId()&&null!==this.getReferenceRecoveryPointExtId()?{referenceRecoveryPointExtId:this.getReferenceRecoveryPointExtId()}:{},...void 0!==this.getReferenceDiskRecoveryPointExtId()&&null!==this.getReferenceDiskRecoveryPointExtId()?{referenceDiskRecoveryPointExtId:this.getReferenceDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("referenceVmRecoveryPointExtId"===t){if(void 0===this.referenceVmRecoveryPointExtId||null===this.referenceVmRecoveryPointExtId)return new E("referenceVmRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.referenceVmRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("referenceVmRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return new E(t,"no such property exists")}}uo.prototype.referenceVmRecoveryPointExtId=void 0,ao.prototype.referenceRecoveryPointExtId=void 0,ao.prototype.referenceDiskRecoveryPointExtId=void 0;var co=new WeakSet;class ho extends uo{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=co),t.add(e),this.$objectType="dataprotection.v4.content.VmRecoveryPointChangedRegionsComputeSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ho,uo.constructFromObject(e,t,!0),e.hasOwnProperty("offset")&&null!==e.offset&&void 0!==e.offset&&t.setOffset(e.offset),e.hasOwnProperty("length")&&null!==e.length&&void 0!==e.length&&t.setLength(e.length),e.hasOwnProperty("blockSizeByte")&&null!==e.blockSizeByte&&void 0!==e.blockSizeByte&&t.setBlockSizeByte(e.blockSizeByte),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getOffset(){return this.offset}setOffset(e){this.offset=e}getLength(){return this.length}setLength(e){this.length=e}getBlockSizeByte(){return this.blockSizeByte}setBlockSizeByte(e){this.blockSizeByte=e}toJson(e){return{...void 0!==this.getOffset()&&null!==this.getOffset()?{offset:this.getOffset()}:{},...void 0!==this.getLength()&&null!==this.getLength()?{length:this.getLength()}:{},...void 0!==this.getBlockSizeByte()&&null!==this.getBlockSizeByte()?{blockSizeByte:this.getBlockSizeByte()}:{},...void 0!==this.getReferenceVmRecoveryPointExtId()&&null!==this.getReferenceVmRecoveryPointExtId()?{referenceVmRecoveryPointExtId:this.getReferenceVmRecoveryPointExtId()}:{},...void 0!==this.getReferenceRecoveryPointExtId()&&null!==this.getReferenceRecoveryPointExtId()?{referenceRecoveryPointExtId:this.getReferenceRecoveryPointExtId()}:{},...void 0!==this.getReferenceDiskRecoveryPointExtId()&&null!==this.getReferenceDiskRecoveryPointExtId()?{referenceDiskRecoveryPointExtId:this.getReferenceDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("offset"===t&&(void 0===this.offset||null===this.offset))return new E("offset","undefined or null");if("length"===t&&(void 0===this.length||null===this.length))return new E("length","undefined or null");if("blockSizeByte"===t){if(void 0===this.blockSizeByte||null===this.blockSizeByte)return new E("blockSizeByte","undefined or null");if(!F.validateMaximum(this.blockSizeByte,262144))return new E("blockSizeByte","does not satisfy required maximum constraint: 262144");if(!F.validateMinimum(this.blockSizeByte,32768))return new E("blockSizeByte","does not satisfy required minimum constraint: 32768")}return new E(t,"no such property exists")}}ho.prototype.offset=void 0,ho.prototype.length=void 0,ho.prototype.blockSizeByte=void 0,uo.prototype.referenceVmRecoveryPointExtId=void 0,ao.prototype.referenceRecoveryPointExtId=void 0,ao.prototype.referenceDiskRecoveryPointExtId=void 0;var po=new WeakSet;class vo{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=po),n.add(t),this.value=e,this.$objectType="common.v1.config.IPv4Address",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new vo,e.hasOwnProperty("value")&&null!==e.value&&void 0!==e.value&&t.setValue(e.value),e.hasOwnProperty("prefixLength")&&null!==e.prefixLength&&void 0!==e.prefixLength&&t.setPrefixLength(e.prefixLength),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getValue(){return this.value}setValue(e){this.value=e}getPrefixLength(){return this.prefixLength}setPrefixLength(e){this.prefixLength=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getValue()&&null!==this.getValue()?{value:this.getValue()}:{},...void 0!==this.getPrefixLength()&&null!==this.getPrefixLength()?{prefixLength:this.getPrefixLength()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["value"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("value"===t){if(void 0===this.value||null===this.value)return new E("value","undefined or null");if(!F.validatePattern(this.value,/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/))return new E("value","does not satisfy required pattern: /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/")}if("prefixLength"===t){if(void 0===this.prefixLength||null===this.prefixLength)return new E("prefixLength","undefined or null");if(!F.validateMaximum(this.prefixLength,32))return new E("prefixLength","does not satisfy required maximum constraint: 32");if(!F.validateMinimum(this.prefixLength,0))return new E("prefixLength","does not satisfy required minimum constraint: 0")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}vo.prototype.value=void 0,vo.prototype.prefixLength=32,vo.prototype.$reserved=void 0,vo.prototype.$objectType=void 0,vo.prototype.$unknownFields=void 0;var yo=new WeakSet;class go{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=yo),n.add(t),this.value=e,this.$objectType="common.v1.config.IPv6Address",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new go,e.hasOwnProperty("value")&&null!==e.value&&void 0!==e.value&&t.setValue(e.value),e.hasOwnProperty("prefixLength")&&null!==e.prefixLength&&void 0!==e.prefixLength&&t.setPrefixLength(e.prefixLength),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getValue(){return this.value}setValue(e){this.value=e}getPrefixLength(){return this.prefixLength}setPrefixLength(e){this.prefixLength=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getValue()&&null!==this.getValue()?{value:this.getValue()}:{},...void 0!==this.getPrefixLength()&&null!==this.getPrefixLength()?{prefixLength:this.getPrefixLength()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["value"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("value"===t){if(void 0===this.value||null===this.value)return new E("value","undefined or null");if(!F.validatePattern(this.value,/^(?:(?:(?:[A-Fa-f0-9]{1,4}:){6}|(?=(?:[A-Fa-f0-9]{0,4}:){0,6}(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$)(([0-9a-fA-F]{1,4}:){0,5}|:)((:[0-9a-fA-F]{1,4}){1,5}:|:)|::(?:[A-Fa-f0-9]{1,4}:){5})(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])|(?:[A-Fa-f0-9]{1,4}:){7}[A-Fa-f0-9]{1,4}|(?=(?:[A-Fa-f0-9]{0,4}:){0,7}[A-Fa-f0-9]{0,4}$)(([0-9a-fA-F]{1,4}:){1,7}|:)((:[0-9a-fA-F]{1,4}){1,7}|:)|(?:[A-Fa-f0-9]{1,4}:){7}:|:(:[A-Fa-f0-9]{1,4}){7})$/))return new E("value","does not satisfy required pattern: /^(?:(?:(?:[A-Fa-f0-9]{1,4}:){6}|(?=(?:[A-Fa-f0-9]{0,4}:){0,6}(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$)(([0-9a-fA-F]{1,4}:){0,5}|:)((:[0-9a-fA-F]{1,4}){1,5}:|:)|::(?:[A-Fa-f0-9]{1,4}:){5})(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])|(?:[A-Fa-f0-9]{1,4}:){7}[A-Fa-f0-9]{1,4}|(?=(?:[A-Fa-f0-9]{0,4}:){0,7}[A-Fa-f0-9]{0,4}$)(([0-9a-fA-F]{1,4}:){1,7}|:)((:[0-9a-fA-F]{1,4}){1,7}|:)|(?:[A-Fa-f0-9]{1,4}:){7}:|:(:[A-Fa-f0-9]{1,4}){7})$/")}if("prefixLength"===t){if(void 0===this.prefixLength||null===this.prefixLength)return new E("prefixLength","undefined or null");if(!F.validateMaximum(this.prefixLength,128))return new E("prefixLength","does not satisfy required maximum constraint: 128");if(!F.validateMinimum(this.prefixLength,0))return new E("prefixLength","does not satisfy required minimum constraint: 0")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}go.prototype.value=void 0,go.prototype.prefixLength=128,go.prototype.$reserved=void 0,go.prototype.$objectType=void 0,go.prototype.$unknownFields=void 0;var fo=new WeakSet;class $o{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=fo),t.add(e),this.$objectType="common.v1.config.IPAddress",this.$reserved={$fv:"v1.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new $o,e.hasOwnProperty("ipv4")&&null!==e.ipv4&&void 0!==e.ipv4&&t.setIpv4(vo.constructFromObject(e.ipv4)),e.hasOwnProperty("ipv6")&&null!==e.ipv6&&void 0!==e.ipv6&&t.setIpv6(go.constructFromObject(e.ipv6)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getIpv4(){return this.ipv4}setIpv4(e){this.ipv4=e}getIpv6(){return this.ipv6}setIpv6(e){this.ipv6=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}hasIpv4(){return!(void 0===this.ipv4||null===this.ipv4)}hasIpv6(){return!(void 0===this.ipv6||null===this.ipv6)}isValid(){return this.hasIpv4()||this.hasIpv6()}toJson(e){return{...void 0!==this.getIpv4()&&null!==this.getIpv4()?{ipv4:this.getIpv4().toJson(!1)}:{},...void 0!==this.getIpv6()&&null!==this.getIpv6()?{ipv6:this.getIpv6().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"ipv4"!==t||void 0!==this.ipv4&&null!==this.ipv4?"ipv6"!==t||void 0!==this.ipv6&&null!==this.ipv6?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("ipv6","undefined or null"):new E("ipv4","undefined or null")}}$o.prototype.ipv4=void 0,$o.prototype.ipv6=void 0,$o.prototype.$reserved=void 0,$o.prototype.$objectType=void 0,$o.prototype.$unknownFields=void 0;var wo=new WeakSet;class mo{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=wo),t.add(e),this.$objectType="dataprotection.v4.common.ClusterInfo",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new mo,e.hasOwnProperty("jwtToken")&&null!==e.jwtToken&&void 0!==e.jwtToken&&t.setJwtToken(e.jwtToken),e.hasOwnProperty("clusterIp")&&null!==e.clusterIp&&void 0!==e.clusterIp&&t.setClusterIp($o.constructFromObject(e.clusterIp)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getJwtToken(){return this.jwtToken}setJwtToken(e){this.jwtToken=e}getClusterIp(){return this.clusterIp}setClusterIp(e){this.clusterIp=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getJwtToken()&&null!==this.getJwtToken()?{jwtToken:this.getJwtToken()}:{},...void 0!==this.getClusterIp()&&null!==this.getClusterIp()?{clusterIp:this.getClusterIp().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"jwtToken"!==t||void 0!==this.jwtToken&&null!==this.jwtToken?"clusterIp"!==t||void 0!==this.clusterIp&&null!==this.clusterIp?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("clusterIp","undefined or null"):new E("jwtToken","undefined or null")}}function To(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}mo.prototype.jwtToken=void 0,mo.prototype.clusterIp=void 0,mo.prototype.$reserved=void 0,mo.prototype.$objectType=void 0,mo.prototype.$unknownFields=void 0;var ko=new WeakSet;class bo extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=ko),t.add(e),this.$objectType="dataprotection.v4.config.ClusterInfoApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new bo,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"dataprotection.v4.common.ClusterInfo":t.setData(mo.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):To(ko,this,Fo).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):To(ko,this,Fo).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Fo(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}bo.prototype.metadata=void 0,bo.prototype.data=void 0,bo.prototype.$reserved=void 0,bo.prototype.$objectType=void 0,bo.prototype.$unknownFields=void 0;const Eo={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",COMPLETE:"COMPLETE",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Eo).find(t=>Eo[t]===e);return null==t?Eo.$UNKNOWN:Eo[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Eo.$UNKNOWN:case Eo.$REDACTED:case Eo.COMPLETE:return;default:throw new Error("Invalid : must be RecoveryPointStatus.{ $UNKNOWN|$REDACTED|COMPLETE }")}}};Object.freeze(Eo);const Io=Eo,Oo={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",CRASH_CONSISTENT:"CRASH_CONSISTENT",APPLICATION_CONSISTENT:"APPLICATION_CONSISTENT",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Oo).find(t=>Oo[t]===e);return null==t?Oo.$UNKNOWN:Oo[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Oo.$UNKNOWN:case Oo.$REDACTED:case Oo.CRASH_CONSISTENT:case Oo.APPLICATION_CONSISTENT:return;default:throw new Error("Invalid : must be RecoveryPointType.{ $UNKNOWN|$REDACTED|CRASH_CONSISTENT|APPLICATION_CONSISTENT }")}}};Object.freeze(Oo);const jo=Oo;function Po(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Ro=new WeakSet;class xo extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ro),t.add(e),this.$objectType="dataprotection.v4.common.BaseRecoveryPoint",this.$reserved={$fv:"v4.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new xo,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("locationAgnosticId")&&null!==e.locationAgnosticId&&void 0!==e.locationAgnosticId&&t.setLocationAgnosticId(e.locationAgnosticId),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("creationTime")&&null!==e.creationTime&&void 0!==e.creationTime&&t.setCreationTime(e.creationTime),e.hasOwnProperty("expirationTime")&&null!==e.expirationTime&&void 0!==e.expirationTime&&t.setExpirationTime(e.expirationTime),e.hasOwnProperty("status")&&null!==e.status&&void 0!==e.status&&t.setStatus(Io.constructFromObject(e.status)),e.hasOwnProperty("recoveryPointType")&&null!==e.recoveryPointType&&void 0!==e.recoveryPointType&&t.setRecoveryPointType(jo.constructFromObject(e.recoveryPointType)),e.hasOwnProperty("totalExclusiveUsageBytes")&&null!==e.totalExclusiveUsageBytes&&void 0!==e.totalExclusiveUsageBytes&&t.setTotalExclusiveUsageBytes(e.totalExclusiveUsageBytes),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getLocationAgnosticId(){return this.locationAgnosticId}setLocationAgnosticId(e){this.locationAgnosticId=e}getName(){return this.name}setName(e){this.name=e}getCreationTime(){return this.creationTime}setCreationTime(e){this.creationTime=e}getExpirationTime(){return this.expirationTime}setExpirationTime(e){this.expirationTime=e}getStatus(){return this.status}setStatus(e){this.status=e}getRecoveryPointType(){return this.recoveryPointType}setRecoveryPointType(e){this.recoveryPointType=e}getTotalExclusiveUsageBytes(){return this.totalExclusiveUsageBytes}setTotalExclusiveUsageBytes(e){this.totalExclusiveUsageBytes=e}toJson(e){return!1===e?{...void 0!==this.getLocationAgnosticId()&&null!==this.getLocationAgnosticId()?{locationAgnosticId:this.getLocationAgnosticId()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getCreationTime()&&null!==this.getCreationTime()?{creationTime:Po(Ro,this,Ao).call(this,this.getCreationTime(),!1)}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:Po(Ro,this,Ao).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},...void 0!==this.getTotalExclusiveUsageBytes()&&null!==this.getTotalExclusiveUsageBytes()?{totalExclusiveUsageBytes:this.getTotalExclusiveUsageBytes()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:Po(Ro,this,Ao).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("locationAgnosticId"===t){if(void 0===this.locationAgnosticId||null===this.locationAgnosticId)return new E("locationAgnosticId","undefined or null");if(!F.validatePattern(this.locationAgnosticId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("locationAgnosticId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}return"creationTime"!==t||void 0!==this.creationTime&&null!==this.creationTime?"expirationTime"!==t||void 0!==this.expirationTime&&null!==this.expirationTime?"status"!==t||void 0!==this.status&&null!==this.status?"recoveryPointType"!==t||void 0!==this.recoveryPointType&&null!==this.recoveryPointType?"totalExclusiveUsageBytes"!==t||void 0!==this.totalExclusiveUsageBytes&&null!==this.totalExclusiveUsageBytes?new E(t,"no such property exists"):new E("totalExclusiveUsageBytes","undefined or null"):new E("recoveryPointType","undefined or null"):new E("status","undefined or null"):new E("expirationTime","undefined or null"):new E("creationTime","undefined or null")}}function Ao(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}xo.prototype.locationAgnosticId=void 0,xo.prototype.name=void 0,xo.prototype.creationTime=void 0,xo.prototype.expirationTime=void 0,xo.prototype.status=void 0,xo.prototype.recoveryPointType=void 0,xo.prototype.totalExclusiveUsageBytes=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var Co=new WeakSet;class So{constructor(e,t){var n,i;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(n=this,i=Co),i.add(n),this.domainManagerExtId=e,this.clusterExtIds=t,this.$objectType="dataprotection.v4.config.DisasterRecoveryLocation",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s;if(e){if(t=t||new So,e.hasOwnProperty("domainManagerExtId")&&null!==e.domainManagerExtId&&void 0!==e.domainManagerExtId&&t.setDomainManagerExtId(e.domainManagerExtId),e.hasOwnProperty("clusterExtIds")&&null!==e.clusterExtIds&&void 0!==e.clusterExtIds){for(s=[],i=e.clusterExtIds,o=0;o<i.length;o++)s.push(i[o]);t.setClusterExtIds(s)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getDomainManagerExtId(){return this.domainManagerExtId}setDomainManagerExtId(e){this.domainManagerExtId=e}getClusterExtIds(){return this.clusterExtIds}setClusterExtIds(e){this.clusterExtIds=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getDomainManagerExtId()&&null!==this.getDomainManagerExtId()?{domainManagerExtId:this.getDomainManagerExtId()}:{},...void 0!==this.getClusterExtIds()&&null!==this.getClusterExtIds()?{clusterExtIds:this.getClusterExtIds()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["domainManagerExtId","clusterExtIds"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("domainManagerExtId"===t){if(void 0===this.domainManagerExtId||null===this.domainManagerExtId)return new E("domainManagerExtId","undefined or null");if(!F.validatePattern(this.domainManagerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("domainManagerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("clusterExtIds"===t){if(void 0===this.clusterExtIds||null===this.clusterExtIds)return new E("clusterExtIds","undefined or null");if(!F.validateMaxItems(this.clusterExtIds,100))return new E("clusterExtIds","does not satisfy required maxItems constraint: 100")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}So.prototype.domainManagerExtId=void 0,So.prototype.clusterExtIds=void 0,So.prototype.$reserved=void 0,So.prototype.$objectType=void 0,So.prototype.$unknownFields=void 0;var No=new WeakSet;class Do{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=No),t.add(e),this.$objectType="dataprotection.v4.config.LocationReference",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Do,e.hasOwnProperty("locationExtId")&&null!==e.locationExtId&&void 0!==e.locationExtId&&t.setLocationExtId(e.locationExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getLocationExtId(){return this.locationExtId}setLocationExtId(e){this.locationExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getLocationExtId()&&null!==this.getLocationExtId()?{locationExtId:this.getLocationExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("locationExtId"===t){if(void 0===this.locationExtId||null===this.locationExtId)return new E("locationExtId","undefined or null");if(!F.validatePattern(this.locationExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("locationExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Do.prototype.locationExtId=void 0,Do.prototype.$reserved=void 0,Do.prototype.$objectType=void 0,Do.prototype.$unknownFields=void 0;var Uo=new WeakSet;class Mo{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Uo),t.add(e),this.$objectType="dataprotection.v4.common.DiskRecoveryPoint",this.$reserved={$fv:"v4.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Mo,e.hasOwnProperty("diskRecoveryPointExtId")&&null!==e.diskRecoveryPointExtId&&void 0!==e.diskRecoveryPointExtId&&t.setDiskRecoveryPointExtId(e.diskRecoveryPointExtId),e.hasOwnProperty("diskExtId")&&null!==e.diskExtId&&void 0!==e.diskExtId&&t.setDiskExtId(e.diskExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getDiskRecoveryPointExtId(){return this.diskRecoveryPointExtId}setDiskRecoveryPointExtId(e){this.diskRecoveryPointExtId=e}getDiskExtId(){return this.diskExtId}setDiskExtId(e){this.diskExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getDiskRecoveryPointExtId()&&null!==this.getDiskRecoveryPointExtId()?{diskRecoveryPointExtId:this.getDiskRecoveryPointExtId()}:{},...void 0!==this.getDiskExtId()&&null!==this.getDiskExtId()?{diskExtId:this.getDiskExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("diskRecoveryPointExtId"===t){if(void 0===this.diskRecoveryPointExtId||null===this.diskRecoveryPointExtId)return new E("diskRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.diskRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("diskRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("diskExtId"===t){if(void 0===this.diskExtId||null===this.diskExtId)return new E("diskExtId","undefined or null");if(!F.validatePattern(this.diskExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("diskExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Mo.prototype.diskRecoveryPointExtId=void 0,Mo.prototype.diskExtId=void 0,Mo.prototype.$reserved=void 0,Mo.prototype.$objectType=void 0,Mo.prototype.$unknownFields=void 0;const Jo={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",FULL_BACKUP:"FULL_BACKUP",COPY_BACKUP:"COPY_BACKUP",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Jo).find(t=>Jo[t]===e);return null==t?Jo.$UNKNOWN:Jo[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Jo.$UNKNOWN:case Jo.$REDACTED:case Jo.FULL_BACKUP:case Jo.COPY_BACKUP:return;default:throw new Error("Invalid : must be BackupType.{ $UNKNOWN|$REDACTED|FULL_BACKUP|COPY_BACKUP }")}}};Object.freeze(Jo);const _o=Jo;var Lo=new WeakSet;class Vo{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=Lo),n.add(t),this.backupType=e,this.$objectType="dataprotection.v4.common.VssProperties",this.$reserved={$fv:"v4.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s;if(e){if(t=t||new Vo,e.hasOwnProperty("backupType")&&null!==e.backupType&&void 0!==e.backupType&&t.setBackupType(_o.constructFromObject(e.backupType)),e.hasOwnProperty("shouldIncludeWriters")&&null!==e.shouldIncludeWriters&&void 0!==e.shouldIncludeWriters&&t.setShouldIncludeWriters(e.shouldIncludeWriters),e.hasOwnProperty("writers")&&null!==e.writers&&void 0!==e.writers){for(s=[],i=e.writers,o=0;o<i.length;o++)s.push(i[o]);t.setWriters(s)}if(e.hasOwnProperty("shouldStoreVssMetadata")&&null!==e.shouldStoreVssMetadata&&void 0!==e.shouldStoreVssMetadata&&t.setShouldStoreVssMetadata(e.shouldStoreVssMetadata),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getBackupType(){return this.backupType}setBackupType(e){this.backupType=e}getShouldIncludeWriters(){return this.shouldIncludeWriters}setShouldIncludeWriters(e){this.shouldIncludeWriters=e}getWriters(){return this.writers}setWriters(e){this.writers=e}getShouldStoreVssMetadata(){return this.shouldStoreVssMetadata}setShouldStoreVssMetadata(e){this.shouldStoreVssMetadata=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getBackupType()&&null!==this.getBackupType()?{backupType:this.getBackupType()}:{},...void 0!==this.getShouldIncludeWriters()&&null!==this.getShouldIncludeWriters()?{shouldIncludeWriters:this.getShouldIncludeWriters()}:{},...void 0!==this.getWriters()&&null!==this.getWriters()?{writers:this.getWriters()}:{},...void 0!==this.getShouldStoreVssMetadata()&&null!==this.getShouldStoreVssMetadata()?{shouldStoreVssMetadata:this.getShouldStoreVssMetadata()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["backupType"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("backupType"===t&&(void 0===this.backupType||null===this.backupType))return new E("backupType","undefined or null");if("shouldIncludeWriters"===t&&(void 0===this.shouldIncludeWriters||null===this.shouldIncludeWriters))return new E("shouldIncludeWriters","undefined or null");if("writers"===t){if(void 0===this.writers||null===this.writers)return new E("writers","undefined or null");if(!F.validateMaxItems(this.writers,25))return new E("writers","does not satisfy required maxItems constraint: 25");if(!F.validateMinItems(this.writers,1))return new E("writers","does not satisfy required minItems constraint: 1")}return"shouldStoreVssMetadata"!==t||void 0!==this.shouldStoreVssMetadata&&null!==this.shouldStoreVssMetadata?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("shouldStoreVssMetadata","undefined or null")}}function Go(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Vo.prototype.backupType=void 0,Vo.prototype.shouldIncludeWriters=!1,Vo.prototype.writers=void 0,Vo.prototype.shouldStoreVssMetadata=!1,Vo.prototype.$reserved=void 0,Vo.prototype.$objectType=void 0,Vo.prototype.$unknownFields=void 0;var Wo=new WeakSet;class Bo extends xo{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Wo),t.add(e),this.$objectType="dataprotection.v4.common.BaseVmRecoveryPoint",this.$reserved={$fv:"v4.r0"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r,a;if(e){if(t=t||new Bo,xo.constructFromObject(e,t,!0),e.hasOwnProperty("consistencyGroupExtId")&&null!==e.consistencyGroupExtId&&void 0!==e.consistencyGroupExtId&&t.setConsistencyGroupExtId(e.consistencyGroupExtId),e.hasOwnProperty("diskRecoveryPoints")&&null!==e.diskRecoveryPoints&&void 0!==e.diskRecoveryPoints){for(r=[],i=e.diskRecoveryPoints,s=0;s<i.length;s++)o=Mo.constructFromObject(i[s],void 0),r.push(o);t.setDiskRecoveryPoints(r)}if(e.hasOwnProperty("vmExtId")&&null!==e.vmExtId&&void 0!==e.vmExtId&&t.setVmExtId(e.vmExtId),e.hasOwnProperty("vmCategories")&&null!==e.vmCategories&&void 0!==e.vmCategories){for(r=[],i=e.vmCategories,s=0;s<i.length;s++)r.push(i[s]);t.setVmCategories(r)}if(e.hasOwnProperty("applicationConsistentProperties")&&null!==e.applicationConsistentProperties&&void 0!==e.applicationConsistentProperties){if(a=e.applicationConsistentProperties.hasOwnProperty("$objectType")?e.applicationConsistentProperties.$objectType:typeof e.applicationConsistentProperties,"dataprotection.v4.common.VssProperties"!==a)throw"Unknown datatype "+a+" in data";t.setApplicationConsistentProperties(Vo.constructFromObject(e.applicationConsistentProperties,void 0))}if(!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getConsistencyGroupExtId(){return this.consistencyGroupExtId}setConsistencyGroupExtId(e){this.consistencyGroupExtId=e}getDiskRecoveryPoints(){return this.diskRecoveryPoints}setDiskRecoveryPoints(e){this.diskRecoveryPoints=e}getVmExtId(){return this.vmExtId}setVmExtId(e){this.vmExtId=e}getVmCategories(){return this.vmCategories}setVmCategories(e){this.vmCategories=e}getApplicationConsistentProperties(){return this.applicationConsistentProperties}setApplicationConsistentProperties(e){this.applicationConsistentProperties=e}toJson(e){return!1===e?{...void 0!==this.getConsistencyGroupExtId()&&null!==this.getConsistencyGroupExtId()?{consistencyGroupExtId:this.getConsistencyGroupExtId()}:{},...void 0!==this.getDiskRecoveryPoints()&&null!==this.getDiskRecoveryPoints()?{diskRecoveryPoints:this.getDiskRecoveryPoints().map(e=>e.toJson(!1))}:{},...void 0!==this.getVmExtId()&&null!==this.getVmExtId()?{vmExtId:this.getVmExtId()}:{},...void 0!==this.getVmCategories()&&null!==this.getVmCategories()?{vmCategories:this.getVmCategories()}:{},...void 0!==this.getApplicationConsistentProperties()&&null!==this.getApplicationConsistentProperties()?{applicationConsistentProperties:void 0!==this.getApplicationConsistentProperties().toJson?this.getApplicationConsistentProperties().toJson(!1):Array.isArray(this.getApplicationConsistentProperties())?this.getApplicationConsistentProperties().map(e=>void 0!==e.toJson?e.toJson(!1):e):Go(Wo,this,qo).call(this,this.getApplicationConsistentProperties(),!1)}:{},...void 0!==this.getLocationAgnosticId()&&null!==this.getLocationAgnosticId()?{locationAgnosticId:this.getLocationAgnosticId()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getCreationTime()&&null!==this.getCreationTime()?{creationTime:Go(Wo,this,zo).call(this,this.getCreationTime(),!1)}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:Go(Wo,this,zo).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},...void 0!==this.getTotalExclusiveUsageBytes()&&null!==this.getTotalExclusiveUsageBytes()?{totalExclusiveUsageBytes:this.getTotalExclusiveUsageBytes()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getVmExtId()&&null!==this.getVmExtId()?{vmExtId:this.getVmExtId()}:{},...void 0!==this.getApplicationConsistentProperties()&&null!==this.getApplicationConsistentProperties()?{applicationConsistentProperties:void 0!==this.getApplicationConsistentProperties().toJson?this.getApplicationConsistentProperties().toJson():Array.isArray(this.getApplicationConsistentProperties())?this.getApplicationConsistentProperties().map(e=>void 0!==e.toJson?e.toJson():e):Go(Wo,this,qo).call(this,this.getApplicationConsistentProperties())}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:Go(Wo,this,zo).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("consistencyGroupExtId"===t){if(void 0===this.consistencyGroupExtId||null===this.consistencyGroupExtId)return new E("consistencyGroupExtId","undefined or null");if(!F.validatePattern(this.consistencyGroupExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("consistencyGroupExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("diskRecoveryPoints"===t){if(void 0===this.diskRecoveryPoints||null===this.diskRecoveryPoints)return new E("diskRecoveryPoints","undefined or null");if(!F.validateMaxItems(this.diskRecoveryPoints,1024))return new E("diskRecoveryPoints","does not satisfy required maxItems constraint: 1024");if(!F.validateMinItems(this.diskRecoveryPoints,1))return new E("diskRecoveryPoints","does not satisfy required minItems constraint: 1")}if("vmExtId"===t){if(void 0===this.vmExtId||null===this.vmExtId)return new E("vmExtId","undefined or null");if(!F.validatePattern(this.vmExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("vmExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("vmCategories"===t){if(void 0===this.vmCategories||null===this.vmCategories)return new E("vmCategories","undefined or null");if(!F.validateMaxItems(this.vmCategories,256))return new E("vmCategories","does not satisfy required maxItems constraint: 256");if(!F.validateMinItems(this.vmCategories,1))return new E("vmCategories","does not satisfy required minItems constraint: 1")}return"applicationConsistentProperties"!==t||void 0!==this.applicationConsistentProperties&&null!==this.applicationConsistentProperties?new E(t,"no such property exists"):new E("applicationConsistentProperties","undefined or null")}}function qo(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function zo(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}Bo.prototype.consistencyGroupExtId=void 0,Bo.prototype.diskRecoveryPoints=void 0,Bo.prototype.vmExtId=void 0,Bo.prototype.vmCategories=void 0,Bo.prototype.applicationConsistentProperties=void 0,xo.prototype.locationAgnosticId=void 0,xo.prototype.name=void 0,xo.prototype.creationTime=void 0,xo.prototype.expirationTime=void 0,xo.prototype.status=void 0,xo.prototype.recoveryPointType=void 0,xo.prototype.totalExclusiveUsageBytes=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;const Ko={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",AHV:"AHV",ESXI:"ESXI",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(Ko).find(t=>Ko[t]===e);return null==t?Ko.$UNKNOWN:Ko[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case Ko.$UNKNOWN:case Ko.$REDACTED:case Ko.AHV:case Ko.ESXI:return;default:throw new Error("Invalid : must be HypervisorType.{ $UNKNOWN|$REDACTED|AHV|ESXI }")}}};Object.freeze(Ko);const Yo=Ko;function Ho(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Xo=new WeakSet;class Zo extends Bo{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Xo),t.add(e),this.$objectType="dataprotection.v4.config.VmRecoveryPoint",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Zo,Bo.constructFromObject(e,t,!0),e.hasOwnProperty("hypervisorType")&&null!==e.hypervisorType&&void 0!==e.hypervisorType&&t.setHypervisorType(Yo.constructFromObject(e.hypervisorType)),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getHypervisorType(){return this.hypervisorType}setHypervisorType(e){this.hypervisorType=e}toJson(e){return!1===e?{...void 0!==this.getHypervisorType()&&null!==this.getHypervisorType()?{hypervisorType:this.getHypervisorType()}:{},...void 0!==this.getConsistencyGroupExtId()&&null!==this.getConsistencyGroupExtId()?{consistencyGroupExtId:this.getConsistencyGroupExtId()}:{},...void 0!==this.getDiskRecoveryPoints()&&null!==this.getDiskRecoveryPoints()?{diskRecoveryPoints:this.getDiskRecoveryPoints().map(e=>e.toJson(!1))}:{},...void 0!==this.getVmExtId()&&null!==this.getVmExtId()?{vmExtId:this.getVmExtId()}:{},...void 0!==this.getVmCategories()&&null!==this.getVmCategories()?{vmCategories:this.getVmCategories()}:{},...void 0!==this.getApplicationConsistentProperties()&&null!==this.getApplicationConsistentProperties()?{applicationConsistentProperties:void 0!==this.getApplicationConsistentProperties().toJson?this.getApplicationConsistentProperties().toJson(!1):Array.isArray(this.getApplicationConsistentProperties())?this.getApplicationConsistentProperties().map(e=>void 0!==e.toJson?e.toJson(!1):e):Ho(Xo,this,Qo).call(this,this.getApplicationConsistentProperties(),!1)}:{},...void 0!==this.getLocationAgnosticId()&&null!==this.getLocationAgnosticId()?{locationAgnosticId:this.getLocationAgnosticId()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getCreationTime()&&null!==this.getCreationTime()?{creationTime:Ho(Xo,this,es).call(this,this.getCreationTime(),!1)}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:Ho(Xo,this,es).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},...void 0!==this.getTotalExclusiveUsageBytes()&&null!==this.getTotalExclusiveUsageBytes()?{totalExclusiveUsageBytes:this.getTotalExclusiveUsageBytes()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getHypervisorType()&&null!==this.getHypervisorType()?{hypervisorType:this.getHypervisorType()}:{},...void 0!==this.getVmExtId()&&null!==this.getVmExtId()?{vmExtId:this.getVmExtId()}:{},...void 0!==this.getApplicationConsistentProperties()&&null!==this.getApplicationConsistentProperties()?{applicationConsistentProperties:void 0!==this.getApplicationConsistentProperties().toJson?this.getApplicationConsistentProperties().toJson():Array.isArray(this.getApplicationConsistentProperties())?this.getApplicationConsistentProperties().map(e=>void 0!==e.toJson?e.toJson():e):Ho(Xo,this,Qo).call(this,this.getApplicationConsistentProperties())}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:Ho(Xo,this,es).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"hypervisorType"!==t||void 0!==this.hypervisorType&&null!==this.hypervisorType?new E(t,"no such property exists"):new E("hypervisorType","undefined or null")}}function Qo(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function es(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}Zo.prototype.hypervisorType=void 0,Bo.prototype.consistencyGroupExtId=void 0,Bo.prototype.diskRecoveryPoints=void 0,Bo.prototype.vmExtId=void 0,Bo.prototype.vmCategories=void 0,Bo.prototype.applicationConsistentProperties=void 0,xo.prototype.locationAgnosticId=void 0,xo.prototype.name=void 0,xo.prototype.creationTime=void 0,xo.prototype.expirationTime=void 0,xo.prototype.status=void 0,xo.prototype.recoveryPointType=void 0,xo.prototype.totalExclusiveUsageBytes=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var ts=new WeakSet;class ns extends Ae{constructor(e){var t,n;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(t=this,n=ts),n.add(t),this.volumeGroupExtId=e,this.$objectType="dataprotection.v4.config.VolumeGroupRecoveryPoint",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new ns,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("consistencyGroupExtId")&&null!==e.consistencyGroupExtId&&void 0!==e.consistencyGroupExtId&&t.setConsistencyGroupExtId(e.consistencyGroupExtId),e.hasOwnProperty("locationAgnosticId")&&null!==e.locationAgnosticId&&void 0!==e.locationAgnosticId&&t.setLocationAgnosticId(e.locationAgnosticId),e.hasOwnProperty("volumeGroupExtId")&&null!==e.volumeGroupExtId&&void 0!==e.volumeGroupExtId&&t.setVolumeGroupExtId(e.volumeGroupExtId),e.hasOwnProperty("volumeGroupCategories")&&null!==e.volumeGroupCategories&&void 0!==e.volumeGroupCategories){for(r=[],i=e.volumeGroupCategories,s=0;s<i.length;s++)r.push(i[s]);t.setVolumeGroupCategories(r)}if(e.hasOwnProperty("diskRecoveryPoints")&&null!==e.diskRecoveryPoints&&void 0!==e.diskRecoveryPoints){for(r=[],i=e.diskRecoveryPoints,s=0;s<i.length;s++)o=Mo.constructFromObject(i[s],void 0),r.push(o);t.setDiskRecoveryPoints(r)}if(e.hasOwnProperty("totalExclusiveUsageBytes")&&null!==e.totalExclusiveUsageBytes&&void 0!==e.totalExclusiveUsageBytes&&t.setTotalExclusiveUsageBytes(e.totalExclusiveUsageBytes),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getConsistencyGroupExtId(){return this.consistencyGroupExtId}setConsistencyGroupExtId(e){this.consistencyGroupExtId=e}getLocationAgnosticId(){return this.locationAgnosticId}setLocationAgnosticId(e){this.locationAgnosticId=e}getVolumeGroupExtId(){return this.volumeGroupExtId}setVolumeGroupExtId(e){this.volumeGroupExtId=e}getVolumeGroupCategories(){return this.volumeGroupCategories}setVolumeGroupCategories(e){this.volumeGroupCategories=e}getDiskRecoveryPoints(){return this.diskRecoveryPoints}setDiskRecoveryPoints(e){this.diskRecoveryPoints=e}getTotalExclusiveUsageBytes(){return this.totalExclusiveUsageBytes}setTotalExclusiveUsageBytes(e){this.totalExclusiveUsageBytes=e}toJson(e){return!1===e?{...void 0!==this.getConsistencyGroupExtId()&&null!==this.getConsistencyGroupExtId()?{consistencyGroupExtId:this.getConsistencyGroupExtId()}:{},...void 0!==this.getLocationAgnosticId()&&null!==this.getLocationAgnosticId()?{locationAgnosticId:this.getLocationAgnosticId()}:{},...void 0!==this.getVolumeGroupExtId()&&null!==this.getVolumeGroupExtId()?{volumeGroupExtId:this.getVolumeGroupExtId()}:{},...void 0!==this.getVolumeGroupCategories()&&null!==this.getVolumeGroupCategories()?{volumeGroupCategories:this.getVolumeGroupCategories()}:{},...void 0!==this.getDiskRecoveryPoints()&&null!==this.getDiskRecoveryPoints()?{diskRecoveryPoints:this.getDiskRecoveryPoints().map(e=>e.toJson(!1))}:{},...void 0!==this.getTotalExclusiveUsageBytes()&&null!==this.getTotalExclusiveUsageBytes()?{totalExclusiveUsageBytes:this.getTotalExclusiveUsageBytes()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getVolumeGroupExtId()&&null!==this.getVolumeGroupExtId()?{volumeGroupExtId:this.getVolumeGroupExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["volumeGroupExtId"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("consistencyGroupExtId"===t){if(void 0===this.consistencyGroupExtId||null===this.consistencyGroupExtId)return new E("consistencyGroupExtId","undefined or null");if(!F.validatePattern(this.consistencyGroupExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("consistencyGroupExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("locationAgnosticId"===t){if(void 0===this.locationAgnosticId||null===this.locationAgnosticId)return new E("locationAgnosticId","undefined or null");if(!F.validatePattern(this.locationAgnosticId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("locationAgnosticId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("volumeGroupExtId"===t){if(void 0===this.volumeGroupExtId||null===this.volumeGroupExtId)return new E("volumeGroupExtId","undefined or null");if(!F.validatePattern(this.volumeGroupExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("volumeGroupExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("volumeGroupCategories"===t){if(void 0===this.volumeGroupCategories||null===this.volumeGroupCategories)return new E("volumeGroupCategories","undefined or null");if(!F.validateMaxItems(this.volumeGroupCategories,20))return new E("volumeGroupCategories","does not satisfy required maxItems constraint: 20");if(!F.validateMinItems(this.volumeGroupCategories,1))return new E("volumeGroupCategories","does not satisfy required minItems constraint: 1")}if("diskRecoveryPoints"===t){if(void 0===this.diskRecoveryPoints||null===this.diskRecoveryPoints)return new E("diskRecoveryPoints","undefined or null");if(!F.validateMaxItems(this.diskRecoveryPoints,1024))return new E("diskRecoveryPoints","does not satisfy required maxItems constraint: 1024");if(!F.validateMinItems(this.diskRecoveryPoints,1))return new E("diskRecoveryPoints","does not satisfy required minItems constraint: 1")}return"totalExclusiveUsageBytes"!==t||void 0!==this.totalExclusiveUsageBytes&&null!==this.totalExclusiveUsageBytes?new E(t,"no such property exists"):new E("totalExclusiveUsageBytes","undefined or null")}}function is(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}ns.prototype.consistencyGroupExtId=void 0,ns.prototype.locationAgnosticId=void 0,ns.prototype.volumeGroupExtId=void 0,ns.prototype.volumeGroupCategories=void 0,ns.prototype.diskRecoveryPoints=void 0,ns.prototype.totalExclusiveUsageBytes=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var os=new WeakSet;class ss extends xo{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=os),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPoint",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new ss,xo.constructFromObject(e,t,!0),e.hasOwnProperty("ownerExtId")&&null!==e.ownerExtId&&void 0!==e.ownerExtId&&t.setOwnerExtId(e.ownerExtId),e.hasOwnProperty("locationReferences")&&null!==e.locationReferences&&void 0!==e.locationReferences){for(r=[],i=e.locationReferences,s=0;s<i.length;s++)o=Do.constructFromObject(i[s],void 0),r.push(o);t.setLocationReferences(r)}if(e.hasOwnProperty("vmRecoveryPoints")&&null!==e.vmRecoveryPoints&&void 0!==e.vmRecoveryPoints){for(r=[],i=e.vmRecoveryPoints,s=0;s<i.length;s++)o=Zo.constructFromObject(i[s],void 0),r.push(o);t.setVmRecoveryPoints(r)}if(e.hasOwnProperty("volumeGroupRecoveryPoints")&&null!==e.volumeGroupRecoveryPoints&&void 0!==e.volumeGroupRecoveryPoints){for(r=[],i=e.volumeGroupRecoveryPoints,s=0;s<i.length;s++)o=ns.constructFromObject(i[s],void 0),r.push(o);t.setVolumeGroupRecoveryPoints(r)}if(e.hasOwnProperty("isSecure")&&null!==e.isSecure&&void 0!==e.isSecure&&t.setIsSecure(e.isSecure),e.hasOwnProperty("sourceLocation")&&null!==e.sourceLocation&&void 0!==e.sourceLocation&&t.setSourceLocation(So.constructFromObject(e.sourceLocation)),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getOwnerExtId(){return this.ownerExtId}setOwnerExtId(e){this.ownerExtId=e}getLocationReferences(){return this.locationReferences}setLocationReferences(e){this.locationReferences=e}getVmRecoveryPoints(){return this.vmRecoveryPoints}setVmRecoveryPoints(e){this.vmRecoveryPoints=e}getVolumeGroupRecoveryPoints(){return this.volumeGroupRecoveryPoints}setVolumeGroupRecoveryPoints(e){this.volumeGroupRecoveryPoints=e}getIsSecure(){return this.isSecure}setIsSecure(e){this.isSecure=e}getSourceLocation(){return this.sourceLocation}setSourceLocation(e){this.sourceLocation=e}toJson(e){return!1===e?{...void 0!==this.getOwnerExtId()&&null!==this.getOwnerExtId()?{ownerExtId:this.getOwnerExtId()}:{},...void 0!==this.getLocationReferences()&&null!==this.getLocationReferences()?{locationReferences:this.getLocationReferences().map(e=>e.toJson(!1))}:{},...void 0!==this.getVmRecoveryPoints()&&null!==this.getVmRecoveryPoints()?{vmRecoveryPoints:this.getVmRecoveryPoints().map(e=>e.toJson(!1))}:{},...void 0!==this.getVolumeGroupRecoveryPoints()&&null!==this.getVolumeGroupRecoveryPoints()?{volumeGroupRecoveryPoints:this.getVolumeGroupRecoveryPoints().map(e=>e.toJson(!1))}:{},...void 0!==this.getIsSecure()&&null!==this.getIsSecure()?{isSecure:this.getIsSecure()}:{},...void 0!==this.getSourceLocation()&&null!==this.getSourceLocation()?{sourceLocation:this.getSourceLocation().toJson(!1)}:{},...void 0!==this.getLocationAgnosticId()&&null!==this.getLocationAgnosticId()?{locationAgnosticId:this.getLocationAgnosticId()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getCreationTime()&&null!==this.getCreationTime()?{creationTime:is(os,this,rs).call(this,this.getCreationTime(),!1)}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:is(os,this,rs).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},...void 0!==this.getTotalExclusiveUsageBytes()&&null!==this.getTotalExclusiveUsageBytes()?{totalExclusiveUsageBytes:this.getTotalExclusiveUsageBytes()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getVmRecoveryPoints()&&null!==this.getVmRecoveryPoints()?{vmRecoveryPoints:this.getVmRecoveryPoints().map(e=>e.toJson(!1))}:{},...void 0!==this.getVolumeGroupRecoveryPoints()&&null!==this.getVolumeGroupRecoveryPoints()?{volumeGroupRecoveryPoints:this.getVolumeGroupRecoveryPoints().map(e=>e.toJson(!1))}:{},...void 0!==this.getSourceLocation()&&null!==this.getSourceLocation()?{sourceLocation:this.getSourceLocation().toJson(!1)}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:is(os,this,rs).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getRecoveryPointType()&&null!==this.getRecoveryPointType()?{recoveryPointType:this.getRecoveryPointType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("ownerExtId"===t){if(void 0===this.ownerExtId||null===this.ownerExtId)return new E("ownerExtId","undefined or null");if(!F.validatePattern(this.ownerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("ownerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("locationReferences"===t){if(void 0===this.locationReferences||null===this.locationReferences)return new E("locationReferences","undefined or null");if(!F.validateMaxItems(this.locationReferences,1))return new E("locationReferences","does not satisfy required maxItems constraint: 1");if(!F.validateMinItems(this.locationReferences,1))return new E("locationReferences","does not satisfy required minItems constraint: 1")}if("vmRecoveryPoints"===t){if(void 0===this.vmRecoveryPoints||null===this.vmRecoveryPoints)return new E("vmRecoveryPoints","undefined or null");if(!F.validateMaxItems(this.vmRecoveryPoints,32))return new E("vmRecoveryPoints","does not satisfy required maxItems constraint: 32");if(!F.validateMinItems(this.vmRecoveryPoints,1))return new E("vmRecoveryPoints","does not satisfy required minItems constraint: 1")}if("volumeGroupRecoveryPoints"===t){if(void 0===this.volumeGroupRecoveryPoints||null===this.volumeGroupRecoveryPoints)return new E("volumeGroupRecoveryPoints","undefined or null");if(!F.validateMaxItems(this.volumeGroupRecoveryPoints,32))return new E("volumeGroupRecoveryPoints","does not satisfy required maxItems constraint: 32");if(!F.validateMinItems(this.volumeGroupRecoveryPoints,1))return new E("volumeGroupRecoveryPoints","does not satisfy required minItems constraint: 1")}return"isSecure"!==t||void 0!==this.isSecure&&null!==this.isSecure?"sourceLocation"!==t||void 0!==this.sourceLocation&&null!==this.sourceLocation?new E(t,"no such property exists"):new E("sourceLocation","undefined or null"):new E("isSecure","undefined or null")}}function rs(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}ss.prototype.ownerExtId=void 0,ss.prototype.locationReferences=void 0,ss.prototype.vmRecoveryPoints=void 0,ss.prototype.volumeGroupRecoveryPoints=void 0,ss.prototype.isSecure=void 0,ss.prototype.sourceLocation=void 0,xo.prototype.locationAgnosticId=void 0,xo.prototype.name=void 0,xo.prototype.creationTime=void 0,xo.prototype.expirationTime=void 0,xo.prototype.status=void 0,xo.prototype.recoveryPointType=void 0,xo.prototype.totalExclusiveUsageBytes=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class as extends ss{constructor(){super(),this.$objectType="dataprotection.v4.config.RecoveryPointProjection",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new as,ss.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function ls(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var ds=new WeakSet;class us extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=ds),t.add(e),this.$objectType="dataprotection.v4.config.ListRecoveryPointsApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new us,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++)switch(l){case"dataprotection.v4.config.RecoveryPoint":o=ss.constructFromObject(i[r],void 0),a.push(o);break;case"dataprotection.v4.config.RecoveryPointProjection":o=as.constructFromObject(i[r],void 0),a.push(o);break;default:throw"Unknown list of type "+l+" in data"}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):ls(ds,this,cs).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):ls(ds,this,cs).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function cs(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}us.prototype.metadata=void 0,us.prototype.data=void 0,us.prototype.$reserved=void 0,us.prototype.$objectType=void 0,us.prototype.$unknownFields=void 0;var hs=new WeakSet;class ps{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=hs),t.add(e),this.$objectType="vmm.v4.ahv.config.CategoryReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ps,e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}ps.prototype.extId=void 0,ps.prototype.$reserved=void 0,ps.prototype.$objectType=void 0,ps.prototype.$unknownFields=void 0;var vs=new WeakSet;class ys{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=vs),t.add(e),this.$objectType="vmm.v4.ahv.config.OwnerReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ys,e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}ys.prototype.extId=void 0,ys.prototype.$reserved=void 0,ys.prototype.$objectType=void 0,ys.prototype.$unknownFields=void 0;var gs=new WeakSet;class fs{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=gs),t.add(e),this.$objectType="vmm.v4.ahv.config.OwnershipInfo",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new fs,e.hasOwnProperty("owner")&&null!==e.owner&&void 0!==e.owner&&t.setOwner(ys.constructFromObject(e.owner)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getOwner(){return this.owner}setOwner(e){this.owner=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getOwner()&&null!==this.getOwner()?{owner:this.getOwner().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"owner"!==t||void 0!==this.owner&&null!==this.owner?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("owner","undefined or null")}}fs.prototype.owner=void 0,fs.prototype.$reserved=void 0,fs.prototype.$objectType=void 0,fs.prototype.$unknownFields=void 0;var $s=new WeakSet;class ws{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=$s),t.add(e),this.$objectType="vmm.v4.ahv.config.VmRestoreGuestToolsSpecification",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ws,e.hasOwnProperty("shouldClearInGuestVolumeGroupAttachments")&&null!==e.shouldClearInGuestVolumeGroupAttachments&&void 0!==e.shouldClearInGuestVolumeGroupAttachments&&t.setShouldClearInGuestVolumeGroupAttachments(e.shouldClearInGuestVolumeGroupAttachments),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getShouldClearInGuestVolumeGroupAttachments(){return this.shouldClearInGuestVolumeGroupAttachments}setShouldClearInGuestVolumeGroupAttachments(e){this.shouldClearInGuestVolumeGroupAttachments=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getShouldClearInGuestVolumeGroupAttachments()&&null!==this.getShouldClearInGuestVolumeGroupAttachments()?{shouldClearInGuestVolumeGroupAttachments:this.getShouldClearInGuestVolumeGroupAttachments()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"shouldClearInGuestVolumeGroupAttachments"!==t||void 0!==this.shouldClearInGuestVolumeGroupAttachments&&null!==this.shouldClearInGuestVolumeGroupAttachments?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("shouldClearInGuestVolumeGroupAttachments","undefined or null")}}ws.prototype.shouldClearInGuestVolumeGroupAttachments=!1,ws.prototype.$reserved=void 0,ws.prototype.$objectType=void 0,ws.prototype.$unknownFields=void 0;var ms=new WeakSet;class Ts{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=ms),t.add(e),this.$objectType="vmm.v4.ahv.config.GuestStaticIpSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Ts,e.hasOwnProperty("ipv4Address")&&null!==e.ipv4Address&&void 0!==e.ipv4Address&&t.setIpv4Address(vo.constructFromObject(e.ipv4Address)),e.hasOwnProperty("gatewayIpv4AddressList")&&null!==e.gatewayIpv4AddressList&&void 0!==e.gatewayIpv4AddressList){for(r=[],i=e.gatewayIpv4AddressList,s=0;s<i.length;s++)o=vo.constructFromObject(i[s],void 0),r.push(o);t.setGatewayIpv4AddressList(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getIpv4Address(){return this.ipv4Address}setIpv4Address(e){this.ipv4Address=e}getGatewayIpv4AddressList(){return this.gatewayIpv4AddressList}setGatewayIpv4AddressList(e){this.gatewayIpv4AddressList=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getIpv4Address()&&null!==this.getIpv4Address()?{ipv4Address:this.getIpv4Address().toJson(!1)}:{},...void 0!==this.getGatewayIpv4AddressList()&&null!==this.getGatewayIpv4AddressList()?{gatewayIpv4AddressList:this.getGatewayIpv4AddressList().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("ipv4Address"===t&&(void 0===this.ipv4Address||null===this.ipv4Address))return new E("ipv4Address","undefined or null");if("gatewayIpv4AddressList"===t){if(void 0===this.gatewayIpv4AddressList||null===this.gatewayIpv4AddressList)return new E("gatewayIpv4AddressList","undefined or null");if(!F.validateMaxItems(this.gatewayIpv4AddressList,100))return new E("gatewayIpv4AddressList","does not satisfy required maxItems constraint: 100")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Ts.prototype.ipv4Address=void 0,Ts.prototype.gatewayIpv4AddressList=void 0,Ts.prototype.$reserved=void 0,Ts.prototype.$objectType=void 0,Ts.prototype.$unknownFields=void 0;var ks=new WeakSet;class bs{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=ks),t.add(e),this.$objectType="vmm.v4.ahv.config.VmRestoreGuestNicInfoOverrideSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new bs,e.hasOwnProperty("guestStaticIpList")&&null!==e.guestStaticIpList&&void 0!==e.guestStaticIpList){for(r=[],i=e.guestStaticIpList,s=0;s<i.length;s++)o=Ts.constructFromObject(i[s],void 0),r.push(o);t.setGuestStaticIpList(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getGuestStaticIpList(){return this.guestStaticIpList}setGuestStaticIpList(e){this.guestStaticIpList=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getGuestStaticIpList()&&null!==this.getGuestStaticIpList()?{guestStaticIpList:this.getGuestStaticIpList().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("guestStaticIpList"===t){if(void 0===this.guestStaticIpList||null===this.guestStaticIpList)return new E("guestStaticIpList","undefined or null");if(!F.validateMaxItems(this.guestStaticIpList,100))return new E("guestStaticIpList","does not satisfy required maxItems constraint: 100")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}bs.prototype.guestStaticIpList=void 0,bs.prototype.$reserved=void 0,bs.prototype.$objectType=void 0,bs.prototype.$unknownFields=void 0;var Fs=new WeakSet;class Es{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Fs),t.add(e),this.$objectType="vmm.v4.ahv.config.SubnetReference",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Es,e.hasOwnProperty("extId")&&null!==e.extId&&void 0!==e.extId&&t.setExtId(e.extId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExtId(){return this.extId}setExtId(e){this.extId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("extId"===t){if(void 0===this.extId||null===this.extId)return new E("extId","undefined or null");if(!F.validatePattern(this.extId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("extId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Es.prototype.extId=void 0,Es.prototype.$reserved=void 0,Es.prototype.$objectType=void 0,Es.prototype.$unknownFields=void 0;var Is=new WeakSet;class Os{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Is),t.add(e),this.$objectType="vmm.v4.ahv.config.VmRestoreIpv4ConfigOverrideSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Os,e.hasOwnProperty("ipAddress")&&null!==e.ipAddress&&void 0!==e.ipAddress&&t.setIpAddress(vo.constructFromObject(e.ipAddress)),e.hasOwnProperty("secondaryIpAddressList")&&null!==e.secondaryIpAddressList&&void 0!==e.secondaryIpAddressList){for(r=[],i=e.secondaryIpAddressList,s=0;s<i.length;s++)o=vo.constructFromObject(i[s],void 0),r.push(o);t.setSecondaryIpAddressList(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getIpAddress(){return this.ipAddress}setIpAddress(e){this.ipAddress=e}getSecondaryIpAddressList(){return this.secondaryIpAddressList}setSecondaryIpAddressList(e){this.secondaryIpAddressList=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getIpAddress()&&null!==this.getIpAddress()?{ipAddress:this.getIpAddress().toJson(!1)}:{},...void 0!==this.getSecondaryIpAddressList()&&null!==this.getSecondaryIpAddressList()?{secondaryIpAddressList:this.getSecondaryIpAddressList().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("ipAddress"===t&&(void 0===this.ipAddress||null===this.ipAddress))return new E("ipAddress","undefined or null");if("secondaryIpAddressList"===t){if(void 0===this.secondaryIpAddressList||null===this.secondaryIpAddressList)return new E("secondaryIpAddressList","undefined or null");if(!F.validateMaxItems(this.secondaryIpAddressList,100))return new E("secondaryIpAddressList","does not satisfy required maxItems constraint: 100")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Os.prototype.ipAddress=void 0,Os.prototype.secondaryIpAddressList=void 0,Os.prototype.$reserved=void 0,Os.prototype.$objectType=void 0,Os.prototype.$unknownFields=void 0;var js=new WeakSet;class Ps{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=js),t.add(e),this.$objectType="vmm.v4.ahv.config.VmRestoreVirtualEthernetNicNetworkInfoOverrideSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Ps,e.hasOwnProperty("subnet")&&null!==e.subnet&&void 0!==e.subnet&&t.setSubnet(Es.constructFromObject(e.subnet)),e.hasOwnProperty("ipv4Config")&&null!==e.ipv4Config&&void 0!==e.ipv4Config&&t.setIpv4Config(Os.constructFromObject(e.ipv4Config)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getSubnet(){return this.subnet}setSubnet(e){this.subnet=e}getIpv4Config(){return this.ipv4Config}setIpv4Config(e){this.ipv4Config=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getSubnet()&&null!==this.getSubnet()?{subnet:this.getSubnet().toJson(!1)}:{},...void 0!==this.getIpv4Config()&&null!==this.getIpv4Config()?{ipv4Config:this.getIpv4Config().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"subnet"!==t||void 0!==this.subnet&&null!==this.subnet?"ipv4Config"!==t||void 0!==this.ipv4Config&&null!==this.ipv4Config?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("ipv4Config","undefined or null"):new E("subnet","undefined or null")}}Ps.prototype.subnet=void 0,Ps.prototype.ipv4Config=void 0,Ps.prototype.$reserved=void 0,Ps.prototype.$objectType=void 0,Ps.prototype.$unknownFields=void 0;var Rs=new WeakSet;class xs{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Rs),t.add(e),this.$objectType="vmm.v4.ahv.config.VmRestoreVirtualEthernetNicOverrideSpec",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new xs,e.hasOwnProperty("macAddress")&&null!==e.macAddress&&void 0!==e.macAddress&&t.setMacAddress(e.macAddress),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMacAddress(){return this.macAddress}setMacAddress(e){this.macAddress=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getMacAddress()&&null!==this.getMacAddress()?{macAddress:this.getMacAddress()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("macAddress"===t){if(void 0===this.macAddress||null===this.macAddress)return new E("macAddress","undefined or null");if(!F.validatePattern(this.macAddress,/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/))return new E("macAddress","does not satisfy required pattern: /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}function As(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}xs.prototype.macAddress=void 0,xs.prototype.$reserved=void 0,xs.prototype.$objectType=void 0,xs.prototype.$unknownFields=void 0;var Cs=new WeakSet;class Ss{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=Cs),n.add(t),this.nicExtId=e,this.$objectType="vmm.v4.ahv.config.VmRestoreNicConfigOverrideParams",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Ss,e.hasOwnProperty("nicExtId")&&null!==e.nicExtId&&void 0!==e.nicExtId&&t.setNicExtId(e.nicExtId),e.hasOwnProperty("nicBackingInfo")&&null!==e.nicBackingInfo&&void 0!==e.nicBackingInfo){if(i=e.nicBackingInfo.hasOwnProperty("$objectType")?e.nicBackingInfo.$objectType:typeof e.nicBackingInfo,"vmm.v4.ahv.config.VmRestoreVirtualEthernetNicOverrideSpec"!==i)throw"Unknown datatype "+i+" in data";t.setNicBackingInfo(xs.constructFromObject(e.nicBackingInfo,void 0))}if(e.hasOwnProperty("nicNetworkInfo")&&null!==e.nicNetworkInfo&&void 0!==e.nicNetworkInfo){if(i=e.nicNetworkInfo.hasOwnProperty("$objectType")?e.nicNetworkInfo.$objectType:typeof e.nicNetworkInfo,"vmm.v4.ahv.config.VmRestoreVirtualEthernetNicNetworkInfoOverrideSpec"!==i)throw"Unknown datatype "+i+" in data";t.setNicNetworkInfo(Ps.constructFromObject(e.nicNetworkInfo,void 0))}if(e.hasOwnProperty("guestNicInfo")&&null!==e.guestNicInfo&&void 0!==e.guestNicInfo&&t.setGuestNicInfo(bs.constructFromObject(e.guestNicInfo)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getNicExtId(){return this.nicExtId}setNicExtId(e){this.nicExtId=e}getNicBackingInfo(){return this.nicBackingInfo}setNicBackingInfo(e){this.nicBackingInfo=e}getNicNetworkInfo(){return this.nicNetworkInfo}setNicNetworkInfo(e){this.nicNetworkInfo=e}getGuestNicInfo(){return this.guestNicInfo}setGuestNicInfo(e){this.guestNicInfo=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getNicExtId()&&null!==this.getNicExtId()?{nicExtId:this.getNicExtId()}:{},...void 0!==this.getNicBackingInfo()&&null!==this.getNicBackingInfo()?{nicBackingInfo:void 0!==this.getNicBackingInfo().toJson?this.getNicBackingInfo().toJson(!1):Array.isArray(this.getNicBackingInfo())?this.getNicBackingInfo().map(e=>void 0!==e.toJson?e.toJson(!1):e):As(Cs,this,Ns).call(this,this.getNicBackingInfo(),!1)}:{},...void 0!==this.getNicNetworkInfo()&&null!==this.getNicNetworkInfo()?{nicNetworkInfo:void 0!==this.getNicNetworkInfo().toJson?this.getNicNetworkInfo().toJson(!1):Array.isArray(this.getNicNetworkInfo())?this.getNicNetworkInfo().map(e=>void 0!==e.toJson?e.toJson(!1):e):As(Cs,this,Ns).call(this,this.getNicNetworkInfo(),!1)}:{},...void 0!==this.getGuestNicInfo()&&null!==this.getGuestNicInfo()?{guestNicInfo:this.getGuestNicInfo().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getNicExtId()&&null!==this.getNicExtId()?{nicExtId:this.getNicExtId()}:{},...void 0!==this.getNicBackingInfo()&&null!==this.getNicBackingInfo()?{nicBackingInfo:void 0!==this.getNicBackingInfo().toJson?this.getNicBackingInfo().toJson():Array.isArray(this.getNicBackingInfo())?this.getNicBackingInfo().map(e=>void 0!==e.toJson?e.toJson():e):As(Cs,this,Ns).call(this,this.getNicBackingInfo())}:{},...void 0!==this.getNicNetworkInfo()&&null!==this.getNicNetworkInfo()?{nicNetworkInfo:void 0!==this.getNicNetworkInfo().toJson?this.getNicNetworkInfo().toJson():Array.isArray(this.getNicNetworkInfo())?this.getNicNetworkInfo().map(e=>void 0!==e.toJson?e.toJson():e):As(Cs,this,Ns).call(this,this.getNicNetworkInfo())}:{},...void 0!==this.getGuestNicInfo()&&null!==this.getGuestNicInfo()?{guestNicInfo:this.getGuestNicInfo().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["nicExtId"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("nicExtId"===t){if(void 0===this.nicExtId||null===this.nicExtId)return new E("nicExtId","undefined or null");if(!F.validatePattern(this.nicExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("nicExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"nicBackingInfo"!==t||void 0!==this.nicBackingInfo&&null!==this.nicBackingInfo?"nicNetworkInfo"!==t||void 0!==this.nicNetworkInfo&&null!==this.nicNetworkInfo?"guestNicInfo"!==t||void 0!==this.guestNicInfo&&null!==this.guestNicInfo?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("guestNicInfo","undefined or null"):new E("nicNetworkInfo","undefined or null"):new E("nicBackingInfo","undefined or null")}}function Ns(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Ss.prototype.nicExtId=void 0,Ss.prototype.nicBackingInfo=void 0,Ss.prototype.nicNetworkInfo=void 0,Ss.prototype.guestNicInfo=void 0,Ss.prototype.$reserved=void 0,Ss.prototype.$objectType=void 0,Ss.prototype.$unknownFields=void 0;var Ds=new WeakSet;class Us{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Ds),t.add(e),this.$objectType="vmm.v4.ahv.config.VmRestoreNicConfigSpecification",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Us,e.hasOwnProperty("nicRemoveList")&&null!==e.nicRemoveList&&void 0!==e.nicRemoveList){for(r=[],i=e.nicRemoveList,s=0;s<i.length;s++)r.push(i[s]);t.setNicRemoveList(r)}if(e.hasOwnProperty("nicOverrideList")&&null!==e.nicOverrideList&&void 0!==e.nicOverrideList){for(r=[],i=e.nicOverrideList,s=0;s<i.length;s++)o=Ss.constructFromObject(i[s],void 0),r.push(o);t.setNicOverrideList(r)}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getNicRemoveList(){return this.nicRemoveList}setNicRemoveList(e){this.nicRemoveList=e}getNicOverrideList(){return this.nicOverrideList}setNicOverrideList(e){this.nicOverrideList=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getNicRemoveList()&&null!==this.getNicRemoveList()?{nicRemoveList:this.getNicRemoveList()}:{},...void 0!==this.getNicOverrideList()&&null!==this.getNicOverrideList()?{nicOverrideList:this.getNicOverrideList().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("nicRemoveList"===t){if(void 0===this.nicRemoveList||null===this.nicRemoveList)return new E("nicRemoveList","undefined or null");if(!F.validateMaxItems(this.nicRemoveList,64))return new E("nicRemoveList","does not satisfy required maxItems constraint: 64")}if("nicOverrideList"===t){if(void 0===this.nicOverrideList||null===this.nicOverrideList)return new E("nicOverrideList","undefined or null");if(!F.validateMaxItems(this.nicOverrideList,64))return new E("nicOverrideList","does not satisfy required maxItems constraint: 64")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Us.prototype.nicRemoveList=void 0,Us.prototype.nicOverrideList=void 0,Us.prototype.$reserved=void 0,Us.prototype.$objectType=void 0,Us.prototype.$unknownFields=void 0;var Ms=new WeakSet;class Js{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Ms),t.add(e),this.$objectType="vmm.v4.ahv.config.VmConfigOverrideSpecification",this.$reserved={$fv:"v4.r2"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Js,e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("description")&&null!==e.description&&void 0!==e.description&&t.setDescription(e.description),e.hasOwnProperty("nicSpec")&&null!==e.nicSpec&&void 0!==e.nicSpec&&t.setNicSpec(Us.constructFromObject(e.nicSpec)),e.hasOwnProperty("categories")&&null!==e.categories&&void 0!==e.categories){for(r=[],i=e.categories,s=0;s<i.length;s++)o=ps.constructFromObject(i[s],void 0),r.push(o);t.setCategories(r)}if(e.hasOwnProperty("ownershipInfo")&&null!==e.ownershipInfo&&void 0!==e.ownershipInfo&&t.setOwnershipInfo(fs.constructFromObject(e.ownershipInfo)),e.hasOwnProperty("guestToolsSpec")&&null!==e.guestToolsSpec&&void 0!==e.guestToolsSpec&&t.setGuestToolsSpec(ws.constructFromObject(e.guestToolsSpec)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getDescription(){return this.description}setDescription(e){this.description=e}getNicSpec(){return this.nicSpec}setNicSpec(e){this.nicSpec=e}getCategories(){return this.categories}setCategories(e){this.categories=e}getOwnershipInfo(){return this.ownershipInfo}setOwnershipInfo(e){this.ownershipInfo=e}getGuestToolsSpec(){return this.guestToolsSpec}setGuestToolsSpec(e){this.guestToolsSpec=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getDescription()&&null!==this.getDescription()?{description:this.getDescription()}:{},...void 0!==this.getNicSpec()&&null!==this.getNicSpec()?{nicSpec:this.getNicSpec().toJson(!1)}:{},...void 0!==this.getCategories()&&null!==this.getCategories()?{categories:this.getCategories().map(e=>e.toJson(!1))}:{},...void 0!==this.getOwnershipInfo()&&null!==this.getOwnershipInfo()?{ownershipInfo:this.getOwnershipInfo().toJson(!1)}:{},...void 0!==this.getGuestToolsSpec()&&null!==this.getGuestToolsSpec()?{guestToolsSpec:this.getGuestToolsSpec().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,80))return new E("name","does not satisfy required maxLength constraint: 80")}if("description"===t&&(void 0===this.description||null===this.description))return new E("description","undefined or null");if("nicSpec"===t&&(void 0===this.nicSpec||null===this.nicSpec))return new E("nicSpec","undefined or null");if("categories"===t){if(void 0===this.categories||null===this.categories)return new E("categories","undefined or null");if(!F.validateMaxItems(this.categories,256))return new E("categories","does not satisfy required maxItems constraint: 256")}return"ownershipInfo"!==t||void 0!==this.ownershipInfo&&null!==this.ownershipInfo?"guestToolsSpec"!==t||void 0!==this.guestToolsSpec&&null!==this.guestToolsSpec?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("guestToolsSpec","undefined or null"):new E("ownershipInfo","undefined or null")}}Js.prototype.name=void 0,Js.prototype.description=void 0,Js.prototype.nicSpec=void 0,Js.prototype.categories=void 0,Js.prototype.ownershipInfo=void 0,Js.prototype.guestToolsSpec=void 0,Js.prototype.$reserved=void 0,Js.prototype.$objectType=void 0,Js.prototype.$unknownFields=void 0;class _s extends Js{constructor(){super(),this.$objectType="dataprotection.v4.config.AhvVmOverrideSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new _s,Js.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}var Ls=new WeakSet;class Vs{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Ls),t.add(e),this.$objectType="dataprotection.v4.config.EsxiVmOverrideSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Vs,e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,80))return new E("name","does not satisfy required maxLength constraint: 80")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}function Gs(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Vs.prototype.name=void 0,Vs.prototype.$reserved=void 0,Vs.prototype.$objectType=void 0,Vs.prototype.$unknownFields=void 0;var Ws=new WeakSet;class Bs{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Ws),t.add(e),this.$objectType="dataprotection.v4.config.VmRecoveryPointRestoreOverride",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Bs,e.hasOwnProperty("vmRecoveryPointExtId")&&null!==e.vmRecoveryPointExtId&&void 0!==e.vmRecoveryPointExtId&&t.setVmRecoveryPointExtId(e.vmRecoveryPointExtId),e.hasOwnProperty("isStrictMode")&&null!==e.isStrictMode&&void 0!==e.isStrictMode&&t.setIsStrictMode(e.isStrictMode),e.hasOwnProperty("vmOverrideSpec")&&null!==e.vmOverrideSpec&&void 0!==e.vmOverrideSpec)switch(i=e.vmOverrideSpec.hasOwnProperty("$objectType")?e.vmOverrideSpec.$objectType:typeof e.vmOverrideSpec,i){case"dataprotection.v4.config.AhvVmOverrideSpec":t.setVmOverrideSpec(_s.constructFromObject(e.vmOverrideSpec,void 0));break;case"dataprotection.v4.config.EsxiVmOverrideSpec":t.setVmOverrideSpec(Vs.constructFromObject(e.vmOverrideSpec,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getVmRecoveryPointExtId(){return this.vmRecoveryPointExtId}setVmRecoveryPointExtId(e){this.vmRecoveryPointExtId=e}getIsStrictMode(){return this.isStrictMode}setIsStrictMode(e){this.isStrictMode=e}getVmOverrideSpec(){return this.vmOverrideSpec}setVmOverrideSpec(e){this.vmOverrideSpec=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getVmRecoveryPointExtId()&&null!==this.getVmRecoveryPointExtId()?{vmRecoveryPointExtId:this.getVmRecoveryPointExtId()}:{},...void 0!==this.getIsStrictMode()&&null!==this.getIsStrictMode()?{isStrictMode:this.getIsStrictMode()}:{},...void 0!==this.getVmOverrideSpec()&&null!==this.getVmOverrideSpec()?{vmOverrideSpec:void 0!==this.getVmOverrideSpec().toJson?this.getVmOverrideSpec().toJson(!1):Array.isArray(this.getVmOverrideSpec())?this.getVmOverrideSpec().map(e=>void 0!==e.toJson?e.toJson(!1):e):Gs(Ws,this,qs).call(this,this.getVmOverrideSpec(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getVmRecoveryPointExtId()&&null!==this.getVmRecoveryPointExtId()?{vmRecoveryPointExtId:this.getVmRecoveryPointExtId()}:{},...void 0!==this.getIsStrictMode()&&null!==this.getIsStrictMode()?{isStrictMode:this.getIsStrictMode()}:{},...void 0!==this.getVmOverrideSpec()&&null!==this.getVmOverrideSpec()?{vmOverrideSpec:void 0!==this.getVmOverrideSpec().toJson?this.getVmOverrideSpec().toJson():Array.isArray(this.getVmOverrideSpec())?this.getVmOverrideSpec().map(e=>void 0!==e.toJson?e.toJson():e):Gs(Ws,this,qs).call(this,this.getVmOverrideSpec())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("vmRecoveryPointExtId"===t){if(void 0===this.vmRecoveryPointExtId||null===this.vmRecoveryPointExtId)return new E("vmRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.vmRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("vmRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"isStrictMode"!==t||void 0!==this.isStrictMode&&null!==this.isStrictMode?"vmOverrideSpec"!==t||void 0!==this.vmOverrideSpec&&null!==this.vmOverrideSpec?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("vmOverrideSpec","undefined or null"):new E("isStrictMode","undefined or null")}}function qs(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Bs.prototype.vmRecoveryPointExtId=void 0,Bs.prototype.isStrictMode=!1,Bs.prototype.vmOverrideSpec=void 0,Bs.prototype.$reserved=void 0,Bs.prototype.$objectType=void 0,Bs.prototype.$unknownFields=void 0;var zs=new WeakSet;class Ks{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=zs),t.add(e),this.$objectType="dataprotection.v4.config.VolumeGroupOverrideSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Ks,e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Ks.prototype.name=void 0,Ks.prototype.$reserved=void 0,Ks.prototype.$objectType=void 0,Ks.prototype.$unknownFields=void 0;var Ys=new WeakSet;class Hs{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Ys),t.add(e),this.$objectType="dataprotection.v4.config.VolumeGroupRecoveryPointRestoreOverride",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Hs,e.hasOwnProperty("volumeGroupRecoveryPointExtId")&&null!==e.volumeGroupRecoveryPointExtId&&void 0!==e.volumeGroupRecoveryPointExtId&&t.setVolumeGroupRecoveryPointExtId(e.volumeGroupRecoveryPointExtId),e.hasOwnProperty("volumeGroupOverrideSpec")&&null!==e.volumeGroupOverrideSpec&&void 0!==e.volumeGroupOverrideSpec&&t.setVolumeGroupOverrideSpec(Ks.constructFromObject(e.volumeGroupOverrideSpec)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getVolumeGroupRecoveryPointExtId(){return this.volumeGroupRecoveryPointExtId}setVolumeGroupRecoveryPointExtId(e){this.volumeGroupRecoveryPointExtId=e}getVolumeGroupOverrideSpec(){return this.volumeGroupOverrideSpec}setVolumeGroupOverrideSpec(e){this.volumeGroupOverrideSpec=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getVolumeGroupRecoveryPointExtId()&&null!==this.getVolumeGroupRecoveryPointExtId()?{volumeGroupRecoveryPointExtId:this.getVolumeGroupRecoveryPointExtId()}:{},...void 0!==this.getVolumeGroupOverrideSpec()&&null!==this.getVolumeGroupOverrideSpec()?{volumeGroupOverrideSpec:this.getVolumeGroupOverrideSpec().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("volumeGroupRecoveryPointExtId"===t){if(void 0===this.volumeGroupRecoveryPointExtId||null===this.volumeGroupRecoveryPointExtId)return new E("volumeGroupRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.volumeGroupRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("volumeGroupRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"volumeGroupOverrideSpec"!==t||void 0!==this.volumeGroupOverrideSpec&&null!==this.volumeGroupOverrideSpec?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("volumeGroupOverrideSpec","undefined or null")}}Hs.prototype.volumeGroupRecoveryPointExtId=void 0,Hs.prototype.volumeGroupOverrideSpec=void 0,Hs.prototype.$reserved=void 0,Hs.prototype.$objectType=void 0,Hs.prototype.$unknownFields=void 0;var Xs=new WeakSet;class Zs{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Xs),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPointRestorationSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Zs,e.hasOwnProperty("clusterExtId")&&null!==e.clusterExtId&&void 0!==e.clusterExtId&&t.setClusterExtId(e.clusterExtId),e.hasOwnProperty("vmRecoveryPointRestoreOverrides")&&null!==e.vmRecoveryPointRestoreOverrides&&void 0!==e.vmRecoveryPointRestoreOverrides){for(r=[],i=e.vmRecoveryPointRestoreOverrides,s=0;s<i.length;s++)o=Bs.constructFromObject(i[s],void 0),r.push(o);t.setVmRecoveryPointRestoreOverrides(r)}if(e.hasOwnProperty("volumeGroupRecoveryPointRestoreOverrides")&&null!==e.volumeGroupRecoveryPointRestoreOverrides&&void 0!==e.volumeGroupRecoveryPointRestoreOverrides){for(r=[],i=e.volumeGroupRecoveryPointRestoreOverrides,s=0;s<i.length;s++)o=Hs.constructFromObject(i[s],void 0),r.push(o);t.setVolumeGroupRecoveryPointRestoreOverrides(r)}if(e.hasOwnProperty("isInstantRestore")&&null!==e.isInstantRestore&&void 0!==e.isInstantRestore&&t.setIsInstantRestore(e.isInstantRestore),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getClusterExtId(){return this.clusterExtId}setClusterExtId(e){this.clusterExtId=e}getVmRecoveryPointRestoreOverrides(){return this.vmRecoveryPointRestoreOverrides}setVmRecoveryPointRestoreOverrides(e){this.vmRecoveryPointRestoreOverrides=e}getVolumeGroupRecoveryPointRestoreOverrides(){return this.volumeGroupRecoveryPointRestoreOverrides}setVolumeGroupRecoveryPointRestoreOverrides(e){this.volumeGroupRecoveryPointRestoreOverrides=e}getIsInstantRestore(){return this.isInstantRestore}setIsInstantRestore(e){this.isInstantRestore=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},...void 0!==this.getVmRecoveryPointRestoreOverrides()&&null!==this.getVmRecoveryPointRestoreOverrides()?{vmRecoveryPointRestoreOverrides:this.getVmRecoveryPointRestoreOverrides().map(e=>e.toJson(!1))}:{},...void 0!==this.getVolumeGroupRecoveryPointRestoreOverrides()&&null!==this.getVolumeGroupRecoveryPointRestoreOverrides()?{volumeGroupRecoveryPointRestoreOverrides:this.getVolumeGroupRecoveryPointRestoreOverrides().map(e=>e.toJson(!1))}:{},...void 0!==this.getIsInstantRestore()&&null!==this.getIsInstantRestore()?{isInstantRestore:this.getIsInstantRestore()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("clusterExtId"===t){if(void 0===this.clusterExtId||null===this.clusterExtId)return new E("clusterExtId","undefined or null");if(!F.validatePattern(this.clusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("vmRecoveryPointRestoreOverrides"===t){if(void 0===this.vmRecoveryPointRestoreOverrides||null===this.vmRecoveryPointRestoreOverrides)return new E("vmRecoveryPointRestoreOverrides","undefined or null");if(!F.validateMaxItems(this.vmRecoveryPointRestoreOverrides,32))return new E("vmRecoveryPointRestoreOverrides","does not satisfy required maxItems constraint: 32");if(!F.validateMinItems(this.vmRecoveryPointRestoreOverrides,1))return new E("vmRecoveryPointRestoreOverrides","does not satisfy required minItems constraint: 1")}if("volumeGroupRecoveryPointRestoreOverrides"===t){if(void 0===this.volumeGroupRecoveryPointRestoreOverrides||null===this.volumeGroupRecoveryPointRestoreOverrides)return new E("volumeGroupRecoveryPointRestoreOverrides","undefined or null");if(!F.validateMaxItems(this.volumeGroupRecoveryPointRestoreOverrides,32))return new E("volumeGroupRecoveryPointRestoreOverrides","does not satisfy required maxItems constraint: 32");if(!F.validateMinItems(this.volumeGroupRecoveryPointRestoreOverrides,1))return new E("volumeGroupRecoveryPointRestoreOverrides","does not satisfy required minItems constraint: 1")}return"isInstantRestore"!==t||void 0!==this.isInstantRestore&&null!==this.isInstantRestore?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("isInstantRestore","undefined or null")}}function Qs(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Zs.prototype.clusterExtId=void 0,Zs.prototype.vmRecoveryPointRestoreOverrides=void 0,Zs.prototype.volumeGroupRecoveryPointRestoreOverrides=void 0,Zs.prototype.isInstantRestore=!1,Zs.prototype.$reserved=void 0,Zs.prototype.$objectType=void 0,Zs.prototype.$unknownFields=void 0;var er=new WeakSet;class tr extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=er),t.add(e),this.$objectType="dataprotection.v4.config.GetRecoveryPointApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new tr,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"dataprotection.v4.config.RecoveryPoint":t.setData(ss.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Qs(er,this,nr).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Qs(er,this,nr).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function nr(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}tr.prototype.metadata=void 0,tr.prototype.data=void 0,tr.prototype.$reserved=void 0,tr.prototype.$objectType=void 0,tr.prototype.$unknownFields=void 0;const ir={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",ZEROED:"ZEROED",REGULAR:"REGULAR",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(ir).find(t=>ir[t]===e);return null==t?ir.$UNKNOWN:ir[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case ir.$UNKNOWN:case ir.$REDACTED:case ir.ZEROED:case ir.REGULAR:return;default:throw new Error("Invalid : must be RegionType.{ $UNKNOWN|$REDACTED|ZEROED|REGULAR }")}}};Object.freeze(ir);const or=ir;var sr=new WeakSet;class rr{constructor(e,t,n){var i,o;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(i=this,o=sr),o.add(i),this.offset=e,this.length=t,this.regionType=n,this.$objectType="dataprotection.v4.content.ChangedRegion",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new rr,e.hasOwnProperty("offset")&&null!==e.offset&&void 0!==e.offset&&t.setOffset(e.offset),e.hasOwnProperty("length")&&null!==e.length&&void 0!==e.length&&t.setLength(e.length),e.hasOwnProperty("regionType")&&null!==e.regionType&&void 0!==e.regionType&&t.setRegionType(or.constructFromObject(e.regionType)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getOffset(){return this.offset}setOffset(e){this.offset=e}getLength(){return this.length}setLength(e){this.length=e}getRegionType(){return this.regionType}setRegionType(e){this.regionType=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getOffset()&&null!==this.getOffset()?{offset:this.getOffset()}:{},...void 0!==this.getLength()&&null!==this.getLength()?{length:this.getLength()}:{},...void 0!==this.getRegionType()&&null!==this.getRegionType()?{regionType:this.getRegionType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["offset","length","regionType"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"offset"!==t||void 0!==this.offset&&null!==this.offset?"length"!==t||void 0!==this.length&&null!==this.length?"regionType"!==t||void 0!==this.regionType&&null!==this.regionType?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("regionType","undefined or null"):new E("length","undefined or null"):new E("offset","undefined or null")}}function ar(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}rr.prototype.offset=void 0,rr.prototype.length=void 0,rr.prototype.regionType=void 0,rr.prototype.$reserved=void 0,rr.prototype.$objectType=void 0,rr.prototype.$unknownFields=void 0;var lr=new WeakSet;class dr extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=lr),t.add(e),this.$objectType="dataprotection.v4.content.ChangedVmRegionsApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new dr,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++){if("dataprotection.v4.content.ChangedRegion"!==l)throw"Unknown list of type "+l+" in data";o=rr.constructFromObject(i[r],void 0),a.push(o)}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):ar(lr,this,ur).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):ar(lr,this,ur).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function ur(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function cr(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}dr.prototype.metadata=void 0,dr.prototype.data=void 0,dr.prototype.$reserved=void 0,dr.prototype.$objectType=void 0,dr.prototype.$unknownFields=void 0;var hr=new WeakSet;class pr{constructor(e){var t,n;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t=this,n=hr),n.add(t),this.expirationTime=e,this.$objectType="dataprotection.v4.config.ExpirationTimeSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new pr,e.hasOwnProperty("expirationTime")&&null!==e.expirationTime&&void 0!==e.expirationTime&&t.setExpirationTime(e.expirationTime),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExpirationTime(){return this.expirationTime}setExpirationTime(e){this.expirationTime=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:cr(hr,this,vr).call(this,this.getExpirationTime(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["expirationTime"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"expirationTime"!==t||void 0!==this.expirationTime&&null!==this.expirationTime?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("expirationTime","undefined or null")}}function vr(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}function yr(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}pr.prototype.expirationTime=void 0,pr.prototype.$reserved=void 0,pr.prototype.$objectType=void 0,pr.prototype.$unknownFields=void 0;var gr=new WeakSet;class fr extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=gr),t.add(e),this.$objectType="dataprotection.v4.config.CreateRecoveryPointApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new fr,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(Pt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):yr(gr,this,$r).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):yr(gr,this,$r).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function $r(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}fr.prototype.metadata=void 0,fr.prototype.data=void 0,fr.prototype.$reserved=void 0,fr.prototype.$objectType=void 0,fr.prototype.$unknownFields=void 0;var wr=new WeakSet;class mr{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=wr),t.add(e),this.$objectType="dataprotection.v4.content.FileWrapper",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new mr,e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}get$Reserved(){return this.$reserved}get$UnknownFields(){return this.$unknownFields}get$ObjectType(){return this.$objectType}toJson(e){return{$reserved:this.get$Reserved(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{},$objectType:this.get$ObjectType()}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?new E(t,"no such property exists"):new E("$objectType","undefined or null"):new E("$unknownFields","undefined or null"):new E("$reserved","undefined or null")}}function Tr(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}mr.prototype.$reserved=void 0,mr.prototype.$unknownFields=void 0,mr.prototype.$objectType=void 0;var kr=new WeakSet;class br extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=kr),t.add(e),this.$objectType="dataprotection.v4.content.GetVssMetadataApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new br,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"dataprotection.v4.content.FileWrapper":t.setData(mr.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Tr(kr,this,Fr).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Tr(kr,this,Fr).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Fr(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function Er(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}br.prototype.metadata=void 0,br.prototype.data=void 0,br.prototype.$reserved=void 0,br.prototype.$objectType=void 0,br.prototype.$unknownFields=void 0;var Ir=new WeakSet;class Or extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ir),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPointRestoreApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Or,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(Pt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Er(Ir,this,jr).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Er(Ir,this,jr).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function jr(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function Pr(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Or.prototype.metadata=void 0,Or.prototype.data=void 0,Or.prototype.$reserved=void 0,Or.prototype.$objectType=void 0,Or.prototype.$unknownFields=void 0;var Rr=new WeakSet;class xr extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Rr),t.add(e),this.$objectType="dataprotection.v4.config.DeleteRecoveryPointApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new xr,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(Pt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Pr(Rr,this,Ar).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Pr(Rr,this,Ar).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Ar(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}function Cr(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}xr.prototype.metadata=void 0,xr.prototype.data=void 0,xr.prototype.$reserved=void 0,xr.prototype.$objectType=void 0,xr.prototype.$unknownFields=void 0;var Sr=new WeakSet;class Nr extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Sr),t.add(e),this.$objectType="dataprotection.v4.config.GetVmRecoveryPointApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Nr,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"dataprotection.v4.config.VmRecoveryPoint":t.setData(Zo.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Cr(Sr,this,Dr).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Cr(Sr,this,Dr).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Dr(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Nr.prototype.metadata=void 0,Nr.prototype.data=void 0,Nr.prototype.$reserved=void 0,Nr.prototype.$objectType=void 0,Nr.prototype.$unknownFields=void 0;var Ur=new WeakSet;class Mr extends ao{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ur),t.add(e),this.$objectType="dataprotection.v4.content.VolumeGroupDiskRecoveryPointClusterDiscoverSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Mr,ao.constructFromObject(e,t,!0),e.hasOwnProperty("referenceVolumeGroupRecoveryPointExtId")&&null!==e.referenceVolumeGroupRecoveryPointExtId&&void 0!==e.referenceVolumeGroupRecoveryPointExtId&&t.setReferenceVolumeGroupRecoveryPointExtId(e.referenceVolumeGroupRecoveryPointExtId),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getReferenceVolumeGroupRecoveryPointExtId(){return this.referenceVolumeGroupRecoveryPointExtId}setReferenceVolumeGroupRecoveryPointExtId(e){this.referenceVolumeGroupRecoveryPointExtId=e}toJson(e){return{...void 0!==this.getReferenceVolumeGroupRecoveryPointExtId()&&null!==this.getReferenceVolumeGroupRecoveryPointExtId()?{referenceVolumeGroupRecoveryPointExtId:this.getReferenceVolumeGroupRecoveryPointExtId()}:{},...void 0!==this.getReferenceRecoveryPointExtId()&&null!==this.getReferenceRecoveryPointExtId()?{referenceRecoveryPointExtId:this.getReferenceRecoveryPointExtId()}:{},...void 0!==this.getReferenceDiskRecoveryPointExtId()&&null!==this.getReferenceDiskRecoveryPointExtId()?{referenceDiskRecoveryPointExtId:this.getReferenceDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("referenceVolumeGroupRecoveryPointExtId"===t){if(void 0===this.referenceVolumeGroupRecoveryPointExtId||null===this.referenceVolumeGroupRecoveryPointExtId)return new E("referenceVolumeGroupRecoveryPointExtId","undefined or null");if(!F.validatePattern(this.referenceVolumeGroupRecoveryPointExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("referenceVolumeGroupRecoveryPointExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return new E(t,"no such property exists")}}Mr.prototype.referenceVolumeGroupRecoveryPointExtId=void 0,ao.prototype.referenceRecoveryPointExtId=void 0,ao.prototype.referenceDiskRecoveryPointExtId=void 0;var Jr=new WeakSet;class _r extends Mr{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Jr),t.add(e),this.$objectType="dataprotection.v4.content.VolumeGroupRecoveryPointChangedRegionsComputeSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new _r,Mr.constructFromObject(e,t,!0),e.hasOwnProperty("offset")&&null!==e.offset&&void 0!==e.offset&&t.setOffset(e.offset),e.hasOwnProperty("length")&&null!==e.length&&void 0!==e.length&&t.setLength(e.length),e.hasOwnProperty("blockSizeByte")&&null!==e.blockSizeByte&&void 0!==e.blockSizeByte&&t.setBlockSizeByte(e.blockSizeByte),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getOffset(){return this.offset}setOffset(e){this.offset=e}getLength(){return this.length}setLength(e){this.length=e}getBlockSizeByte(){return this.blockSizeByte}setBlockSizeByte(e){this.blockSizeByte=e}toJson(e){return{...void 0!==this.getOffset()&&null!==this.getOffset()?{offset:this.getOffset()}:{},...void 0!==this.getLength()&&null!==this.getLength()?{length:this.getLength()}:{},...void 0!==this.getBlockSizeByte()&&null!==this.getBlockSizeByte()?{blockSizeByte:this.getBlockSizeByte()}:{},...void 0!==this.getReferenceVolumeGroupRecoveryPointExtId()&&null!==this.getReferenceVolumeGroupRecoveryPointExtId()?{referenceVolumeGroupRecoveryPointExtId:this.getReferenceVolumeGroupRecoveryPointExtId()}:{},...void 0!==this.getReferenceRecoveryPointExtId()&&null!==this.getReferenceRecoveryPointExtId()?{referenceRecoveryPointExtId:this.getReferenceRecoveryPointExtId()}:{},...void 0!==this.getReferenceDiskRecoveryPointExtId()&&null!==this.getReferenceDiskRecoveryPointExtId()?{referenceDiskRecoveryPointExtId:this.getReferenceDiskRecoveryPointExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("offset"===t&&(void 0===this.offset||null===this.offset))return new E("offset","undefined or null");if("length"===t&&(void 0===this.length||null===this.length))return new E("length","undefined or null");if("blockSizeByte"===t){if(void 0===this.blockSizeByte||null===this.blockSizeByte)return new E("blockSizeByte","undefined or null");if(!F.validateMaximum(this.blockSizeByte,262144))return new E("blockSizeByte","does not satisfy required maximum constraint: 262144");if(!F.validateMinimum(this.blockSizeByte,32768))return new E("blockSizeByte","does not satisfy required minimum constraint: 32768")}return new E(t,"no such property exists")}}function Lr(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}_r.prototype.offset=void 0,_r.prototype.length=void 0,_r.prototype.blockSizeByte=void 0,Mr.prototype.referenceVolumeGroupRecoveryPointExtId=void 0,ao.prototype.referenceRecoveryPointExtId=void 0,ao.prototype.referenceDiskRecoveryPointExtId=void 0;var Vr=new WeakSet;class Gr extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Vr),t.add(e),this.$objectType="dataprotection.v4.content.ChangedVolumeGroupRegionsApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,r,a,l;if(e){if(t=t||new Gr,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)if(Array.isArray(e.data))if(0===e.data.length)t.setData([]);else{for(a=[],i=e.data,l=i[0].hasOwnProperty("$objectType")?i[0].$objectType:typeof i[0],r=0;r<i.length;r++){if("dataprotection.v4.content.ChangedRegion"!==l)throw"Unknown list of type "+l+" in data";o=rr.constructFromObject(i[r],void 0),a.push(o)}t.setData(a)}else{if(l=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,"dataprotection.v4.error.ErrorResponse"!==l)throw"Unknown datatype "+l+" in data";t.setData(Ze.constructFromObject(e.data,void 0))}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):Lr(Vr,this,Wr).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):Lr(Vr,this,Wr).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Wr(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Gr.prototype.metadata=void 0,Gr.prototype.data=void 0,Gr.prototype.$reserved=void 0,Gr.prototype.$objectType=void 0,Gr.prototype.$unknownFields=void 0;var Br=new WeakSet;class qr{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Br),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPointReplicationSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new qr,e.hasOwnProperty("pcExtId")&&null!==e.pcExtId&&void 0!==e.pcExtId&&t.setPcExtId(e.pcExtId),e.hasOwnProperty("clusterExtId")&&null!==e.clusterExtId&&void 0!==e.clusterExtId&&t.setClusterExtId(e.clusterExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getPcExtId(){return this.pcExtId}setPcExtId(e){this.pcExtId=e}getClusterExtId(){return this.clusterExtId}setClusterExtId(e){this.clusterExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getPcExtId()&&null!==this.getPcExtId()?{pcExtId:this.getPcExtId()}:{},...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("pcExtId"===t){if(void 0===this.pcExtId||null===this.pcExtId)return new E("pcExtId","undefined or null");if(!F.validatePattern(this.pcExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("pcExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("clusterExtId"===t){if(void 0===this.clusterExtId||null===this.clusterExtId)return new E("clusterExtId","undefined or null");if(!F.validatePattern(this.clusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}function zr(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}qr.prototype.pcExtId=void 0,qr.prototype.clusterExtId=void 0,qr.prototype.$reserved=void 0,qr.prototype.$objectType=void 0,qr.prototype.$unknownFields=void 0;var Kr=new WeakSet;class Yr extends s{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Kr),t.add(e),this.$objectType="dataprotection.v4.config.UpdateRecoveryPointExpirationTimeApiResponse",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Yr,e.hasOwnProperty("metadata")&&s.constructFromObject(e.metadata,t),e.hasOwnProperty("metadata")&&null!==e.metadata&&void 0!==e.metadata&&t.setMetadata(W.constructFromObject(e.metadata)),e.hasOwnProperty("data")&&null!==e.data&&void 0!==e.data)switch(i=e.data.hasOwnProperty("$objectType")?e.data.$objectType:typeof e.data,i){case"prism.v4.config.TaskReference":t.setData(Pt.constructFromObject(e.data,void 0));break;case"dataprotection.v4.error.ErrorResponse":t.setData(Ze.constructFromObject(e.data,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getMetadata(){return this.metadata}setMetadata(e){this.metadata=e}getData(){return this.data}setData(e){this.data=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return!1===e?{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson(!1):Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson(!1):e):zr(Kr,this,Hr).call(this,this.getData(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getMetadata()&&null!==this.getMetadata()?{metadata:this.getMetadata().toJson(!1)}:{},...void 0!==this.getData()&&null!==this.getData()?{data:void 0!==this.getData().toJson?this.getData().toJson():Array.isArray(this.getData())?this.getData().map(e=>void 0!==e.toJson?e.toJson():e):zr(Kr,this,Hr).call(this,this.getData())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"metadata"!==t||void 0!==this.metadata&&null!==this.metadata?"data"!==t||void 0!==this.data&&null!==this.data?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("data","undefined or null"):new E("metadata","undefined or null")}}function Hr(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Yr.prototype.metadata=void 0,Yr.prototype.data=void 0,Yr.prototype.$reserved=void 0,Yr.prototype.$objectType=void 0,Yr.prototype.$unknownFields=void 0;var Xr=new WeakSet;class Zr{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Xr),t.add(e),this.$objectType="dataprotection.v4.config.AmazonS3Bucket",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Zr,e.hasOwnProperty("bucketName")&&null!==e.bucketName&&void 0!==e.bucketName&&t.setBucketName(e.bucketName),e.hasOwnProperty("regionName")&&null!==e.regionName&&void 0!==e.regionName&&t.setRegionName(e.regionName),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getBucketName(){return this.bucketName}setBucketName(e){this.bucketName=e}getRegionName(){return this.regionName}setRegionName(e){this.regionName=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getBucketName()&&null!==this.getBucketName()?{bucketName:this.getBucketName()}:{},...void 0!==this.getRegionName()&&null!==this.getRegionName()?{regionName:this.getRegionName()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("bucketName"===t){if(void 0===this.bucketName||null===this.bucketName)return new E("bucketName","undefined or null");if(!F.validateMaxLength(this.bucketName,256))return new E("bucketName","does not satisfy required maxLength constraint: 256")}if("regionName"===t){if(void 0===this.regionName||null===this.regionName)return new E("regionName","undefined or null");if(!F.validateMaxLength(this.regionName,256))return new E("regionName","does not satisfy required maxLength constraint: 256")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Zr.prototype.bucketName=void 0,Zr.prototype.regionName=void 0,Zr.prototype.$reserved=void 0,Zr.prototype.$objectType=void 0,Zr.prototype.$unknownFields=void 0;var Qr=new WeakSet;class ea{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Qr),t.add(e),this.$objectType="dataprotection.v4.config.AzureBlobStorageContainer",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ea,e.hasOwnProperty("storageAccountName")&&null!==e.storageAccountName&&void 0!==e.storageAccountName&&t.setStorageAccountName(e.storageAccountName),e.hasOwnProperty("containerName")&&null!==e.containerName&&void 0!==e.containerName&&t.setContainerName(e.containerName),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getStorageAccountName(){return this.storageAccountName}setStorageAccountName(e){this.storageAccountName=e}getContainerName(){return this.containerName}setContainerName(e){this.containerName=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getStorageAccountName()&&null!==this.getStorageAccountName()?{storageAccountName:this.getStorageAccountName()}:{},...void 0!==this.getContainerName()&&null!==this.getContainerName()?{containerName:this.getContainerName()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("storageAccountName"===t){if(void 0===this.storageAccountName||null===this.storageAccountName)return new E("storageAccountName","undefined or null");if(!F.validateMaxLength(this.storageAccountName,256))return new E("storageAccountName","does not satisfy required maxLength constraint: 256")}if("containerName"===t){if(void 0===this.containerName||null===this.containerName)return new E("containerName","undefined or null");if(!F.validateMaxLength(this.containerName,256))return new E("containerName","does not satisfy required maxLength constraint: 256")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}ea.prototype.storageAccountName=void 0,ea.prototype.containerName=void 0,ea.prototype.$reserved=void 0,ea.prototype.$objectType=void 0,ea.prototype.$unknownFields=void 0;const ta={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",VM:"VM",VOLUME_GROUP:"VOLUME_GROUP",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(ta).find(t=>ta[t]===e);return null==t?ta.$UNKNOWN:ta[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case ta.$UNKNOWN:case ta.$REDACTED:case ta.VM:case ta.VOLUME_GROUP:return;default:throw new Error("Invalid : must be ConsistencyGroupMemberType.{ $UNKNOWN|$REDACTED|VM|VOLUME_GROUP }")}}};Object.freeze(ta);const na=ta;var ia=new WeakSet;class oa{constructor(e,t){var n,i;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(n=this,i=ia),i.add(n),this.entityExtId=e,this.entityType=t,this.$objectType="dataprotection.v4.config.ConsistencyGroupMember",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new oa,e.hasOwnProperty("entityExtId")&&null!==e.entityExtId&&void 0!==e.entityExtId&&t.setEntityExtId(e.entityExtId),e.hasOwnProperty("entityType")&&null!==e.entityType&&void 0!==e.entityType&&t.setEntityType(na.constructFromObject(e.entityType)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getEntityExtId(){return this.entityExtId}setEntityExtId(e){this.entityExtId=e}getEntityType(){return this.entityType}setEntityType(e){this.entityType=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getEntityExtId()&&null!==this.getEntityExtId()?{entityExtId:this.getEntityExtId()}:{},...void 0!==this.getEntityType()&&null!==this.getEntityType()?{entityType:this.getEntityType()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["entityExtId","entityType"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("entityExtId"===t){if(void 0===this.entityExtId||null===this.entityExtId)return new E("entityExtId","undefined or null");if(!F.validatePattern(this.entityExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("entityExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"entityType"!==t||void 0!==this.entityType&&null!==this.entityType?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("entityType","undefined or null")}}oa.prototype.entityExtId=void 0,oa.prototype.entityType=void 0,oa.prototype.$reserved=void 0,oa.prototype.$objectType=void 0,oa.prototype.$unknownFields=void 0;var sa=new WeakSet;class ra extends Ae{constructor(e,t){var n,i;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(n=this,i=sa),i.add(n),this.name=e,this.members=t,this.$objectType="dataprotection.v4.config.ConsistencyGroup",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new ra,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("ownerExtId")&&null!==e.ownerExtId&&void 0!==e.ownerExtId&&t.setOwnerExtId(e.ownerExtId),e.hasOwnProperty("members")&&null!==e.members&&void 0!==e.members){for(r=[],i=e.members,s=0;s<i.length;s++)o=oa.constructFromObject(i[s],void 0),r.push(o);t.setMembers(r)}if(e.hasOwnProperty("clusterExtId")&&null!==e.clusterExtId&&void 0!==e.clusterExtId&&t.setClusterExtId(e.clusterExtId),e.hasOwnProperty("protectionPolicyExtId")&&null!==e.protectionPolicyExtId&&void 0!==e.protectionPolicyExtId&&t.setProtectionPolicyExtId(e.protectionPolicyExtId),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getOwnerExtId(){return this.ownerExtId}setOwnerExtId(e){this.ownerExtId=e}getMembers(){return this.members}setMembers(e){this.members=e}getClusterExtId(){return this.clusterExtId}setClusterExtId(e){this.clusterExtId=e}getProtectionPolicyExtId(){return this.protectionPolicyExtId}setProtectionPolicyExtId(e){this.protectionPolicyExtId=e}toJson(e){return!1===e?{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getOwnerExtId()&&null!==this.getOwnerExtId()?{ownerExtId:this.getOwnerExtId()}:{},...void 0!==this.getMembers()&&null!==this.getMembers()?{members:this.getMembers().map(e=>e.toJson(!1))}:{},...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},...void 0!==this.getProtectionPolicyExtId()&&null!==this.getProtectionPolicyExtId()?{protectionPolicyExtId:this.getProtectionPolicyExtId()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getMembers()&&null!==this.getMembers()?{members:this.getMembers().map(e=>e.toJson(!1))}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["name","members"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}if("ownerExtId"===t){if(void 0===this.ownerExtId||null===this.ownerExtId)return new E("ownerExtId","undefined or null");if(!F.validatePattern(this.ownerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("ownerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("members"===t){if(void 0===this.members||null===this.members)return new E("members","undefined or null");if(!F.validateMaxItems(this.members,30))return new E("members","does not satisfy required maxItems constraint: 30");if(!F.validateMinItems(this.members,1))return new E("members","does not satisfy required minItems constraint: 1")}if("clusterExtId"===t){if(void 0===this.clusterExtId||null===this.clusterExtId)return new E("clusterExtId","undefined or null");if(!F.validatePattern(this.clusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("protectionPolicyExtId"===t){if(void 0===this.protectionPolicyExtId||null===this.protectionPolicyExtId)return new E("protectionPolicyExtId","undefined or null");if(!F.validatePattern(this.protectionPolicyExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("protectionPolicyExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return new E(t,"no such property exists")}}ra.prototype.name=void 0,ra.prototype.ownerExtId=void 0,ra.prototype.members=void 0,ra.prototype.clusterExtId=void 0,ra.prototype.protectionPolicyExtId=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var aa=new WeakSet;class la{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=aa),t.add(e),this.$objectType="dataprotection.v4.config.ConsistencyGroupMigrationSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new la,e.hasOwnProperty("targetPcExtId")&&null!==e.targetPcExtId&&void 0!==e.targetPcExtId&&t.setTargetPcExtId(e.targetPcExtId),e.hasOwnProperty("targetClusterExtId")&&null!==e.targetClusterExtId&&void 0!==e.targetClusterExtId&&t.setTargetClusterExtId(e.targetClusterExtId),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getTargetPcExtId(){return this.targetPcExtId}setTargetPcExtId(e){this.targetPcExtId=e}getTargetClusterExtId(){return this.targetClusterExtId}setTargetClusterExtId(e){this.targetClusterExtId=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getTargetPcExtId()&&null!==this.getTargetPcExtId()?{targetPcExtId:this.getTargetPcExtId()}:{},...void 0!==this.getTargetClusterExtId()&&null!==this.getTargetClusterExtId()?{targetClusterExtId:this.getTargetClusterExtId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("targetPcExtId"===t){if(void 0===this.targetPcExtId||null===this.targetPcExtId)return new E("targetPcExtId","undefined or null");if(!F.validatePattern(this.targetPcExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("targetPcExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("targetClusterExtId"===t){if(void 0===this.targetClusterExtId||null===this.targetClusterExtId)return new E("targetClusterExtId","undefined or null");if(!F.validatePattern(this.targetClusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("targetClusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}la.prototype.targetPcExtId=void 0,la.prototype.targetClusterExtId=void 0,la.prototype.$reserved=void 0,la.prototype.$objectType=void 0,la.prototype.$unknownFields=void 0;class da extends ra{constructor(e,t){super(e,t),this.$objectType="dataprotection.v4.config.ConsistencyGroupProjection",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new da,ra.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=["name","members"]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function ua(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var ca=new WeakSet;class ha{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=ca),t.add(e),this.$objectType="dataprotection.v4.config.CreationTimeRange",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ha,e.hasOwnProperty("firstCreationTime")&&null!==e.firstCreationTime&&void 0!==e.firstCreationTime&&t.setFirstCreationTime(e.firstCreationTime),e.hasOwnProperty("lastCreationTime")&&null!==e.lastCreationTime&&void 0!==e.lastCreationTime&&t.setLastCreationTime(e.lastCreationTime),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getFirstCreationTime(){return this.firstCreationTime}setFirstCreationTime(e){this.firstCreationTime=e}getLastCreationTime(){return this.lastCreationTime}setLastCreationTime(e){this.lastCreationTime=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getFirstCreationTime()&&null!==this.getFirstCreationTime()?{firstCreationTime:ua(ca,this,pa).call(this,this.getFirstCreationTime(),!1)}:{},...void 0!==this.getLastCreationTime()&&null!==this.getLastCreationTime()?{lastCreationTime:ua(ca,this,pa).call(this,this.getLastCreationTime(),!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"firstCreationTime"!==t||void 0!==this.firstCreationTime&&null!==this.firstCreationTime?"lastCreationTime"!==t||void 0!==this.lastCreationTime&&null!==this.lastCreationTime?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("lastCreationTime","undefined or null"):new E("firstCreationTime","undefined or null")}}function pa(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}ha.prototype.firstCreationTime=void 0,ha.prototype.lastCreationTime=void 0,ha.prototype.$reserved=void 0,ha.prototype.$objectType=void 0,ha.prototype.$unknownFields=void 0;var va=new WeakSet;class ya{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=va),t.add(e),this.$objectType="dataprotection.v4.config.ForceDeleteAllRecoveryPointsSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s;if(e){if(t=t||new ya,e.hasOwnProperty("clusterExtIds")&&null!==e.clusterExtIds&&void 0!==e.clusterExtIds){for(s=[],i=e.clusterExtIds,o=0;o<i.length;o++)s.push(i[o]);t.setClusterExtIds(s)}if(e.hasOwnProperty("timeRange")&&null!==e.timeRange&&void 0!==e.timeRange&&t.setTimeRange(ha.constructFromObject(e.timeRange)),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getClusterExtIds(){return this.clusterExtIds}setClusterExtIds(e){this.clusterExtIds=e}getTimeRange(){return this.timeRange}setTimeRange(e){this.timeRange=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getClusterExtIds()&&null!==this.getClusterExtIds()?{clusterExtIds:this.getClusterExtIds()}:{},...void 0!==this.getTimeRange()&&null!==this.getTimeRange()?{timeRange:this.getTimeRange().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("clusterExtIds"===t){if(void 0===this.clusterExtIds||null===this.clusterExtIds)return new E("clusterExtIds","undefined or null");if(!F.validateMaxItems(this.clusterExtIds,30))return new E("clusterExtIds","does not satisfy required maxItems constraint: 30")}return"timeRange"!==t||void 0!==this.timeRange&&null!==this.timeRange?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("timeRange","undefined or null")}}ya.prototype.clusterExtIds=void 0,ya.prototype.timeRange=void 0,ya.prototype.$reserved=void 0,ya.prototype.$objectType=void 0,ya.prototype.$unknownFields=void 0;const ga={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",PRISM_ELEMENT:"PRISM_ELEMENT",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(ga).find(t=>ga[t]===e);return null==t?ga.$UNKNOWN:ga[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case ga.$UNKNOWN:case ga.$REDACTED:case ga.PRISM_ELEMENT:return;default:throw new Error("Invalid : must be HostType.{ $UNKNOWN|$REDACTED|PRISM_ELEMENT }")}}};Object.freeze(ga);const fa=ga;var $a=new WeakSet;class wa extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=$a),t.add(e),this.$objectType="dataprotection.v4.config.HostReference",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new wa,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("hostType")&&null!==e.hostType&&void 0!==e.hostType&&t.setHostType(fa.constructFromObject(e.hostType)),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getHostType(){return this.hostType}setHostType(e){this.hostType=e}getName(){return this.name}setName(e){this.name=e}toJson(e){return!1===e?{...void 0!==this.getHostType()&&null!==this.getHostType()?{hostType:this.getHostType()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getHostType()&&null!==this.getHostType()?{hostType:this.getHostType()}:{},...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("hostType"===t&&(void 0===this.hostType||null===this.hostType))return new E("hostType","undefined or null");if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}return new E(t,"no such property exists")}}wa.prototype.hostType=void 0,wa.prototype.name=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var ma=new WeakSet;class Ta{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=ma),t.add(e),this.$objectType="dataprotection.v4.config.NutanixObjectsBucket",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Ta,e.hasOwnProperty("endPoint")&&null!==e.endPoint&&void 0!==e.endPoint&&t.setEndPoint(e.endPoint),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getEndPoint(){return this.endPoint}setEndPoint(e){this.endPoint=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getEndPoint()&&null!==this.getEndPoint()?{endPoint:this.getEndPoint()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"endPoint"!==t||void 0!==this.endPoint&&null!==this.endPoint?"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null"):new E("endPoint","undefined or null")}}Ta.prototype.endPoint=void 0,Ta.prototype.$reserved=void 0,Ta.prototype.$objectType=void 0,Ta.prototype.$unknownFields=void 0;const ka={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",AZURE_BLOB_STORAGE:"AZURE_BLOB_STORAGE",AMAZON_S3:"AMAZON_S3",NUTANIX_OBJECTS:"NUTANIX_OBJECTS",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(ka).find(t=>ka[t]===e);return null==t?ka.$UNKNOWN:ka[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case ka.$UNKNOWN:case ka.$REDACTED:case ka.AZURE_BLOB_STORAGE:case ka.AMAZON_S3:case ka.NUTANIX_OBJECTS:return;default:throw new Error("Invalid : must be ObjectStorageType.{ $UNKNOWN|$REDACTED|AZURE_BLOB_STORAGE|AMAZON_S3|NUTANIX_OBJECTS }")}}};Object.freeze(ka);const ba=ka;function Fa(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Ea=new WeakSet;class Ia extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ea),t.add(e),this.$objectType="dataprotection.v4.config.RecoveryPointRepository",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i;if(e){if(t=t||new Ia,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("objectStorageType")&&null!==e.objectStorageType&&void 0!==e.objectStorageType&&t.setObjectStorageType(ba.constructFromObject(e.objectStorageType)),e.hasOwnProperty("objectStorageReference")&&null!==e.objectStorageReference&&void 0!==e.objectStorageReference)switch(i=e.objectStorageReference.hasOwnProperty("$objectType")?e.objectStorageReference.$objectType:typeof e.objectStorageReference,i){case"dataprotection.v4.config.AzureBlobStorageContainer":t.setObjectStorageReference(ea.constructFromObject(e.objectStorageReference,void 0));break;case"dataprotection.v4.config.AmazonS3Bucket":t.setObjectStorageReference(Zr.constructFromObject(e.objectStorageReference,void 0));break;case"dataprotection.v4.config.NutanixObjectsBucket":t.setObjectStorageReference(Ta.constructFromObject(e.objectStorageReference,void 0));break;default:throw"Unknown datatype "+i+" in data"}if(!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getObjectStorageType(){return this.objectStorageType}setObjectStorageType(e){this.objectStorageType=e}getObjectStorageReference(){return this.objectStorageReference}setObjectStorageReference(e){this.objectStorageReference=e}toJson(e){return!1===e?{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getObjectStorageType()&&null!==this.getObjectStorageType()?{objectStorageType:this.getObjectStorageType()}:{},...void 0!==this.getObjectStorageReference()&&null!==this.getObjectStorageReference()?{objectStorageReference:void 0!==this.getObjectStorageReference().toJson?this.getObjectStorageReference().toJson(!1):Array.isArray(this.getObjectStorageReference())?this.getObjectStorageReference().map(e=>void 0!==e.toJson?e.toJson(!1):e):Fa(Ea,this,Oa).call(this,this.getObjectStorageReference(),!1)}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getObjectStorageType()&&null!==this.getObjectStorageType()?{objectStorageType:this.getObjectStorageType()}:{},...void 0!==this.getObjectStorageReference()&&null!==this.getObjectStorageReference()?{objectStorageReference:void 0!==this.getObjectStorageReference().toJson?this.getObjectStorageReference().toJson():Array.isArray(this.getObjectStorageReference())?this.getObjectStorageReference().map(e=>void 0!==e.toJson?e.toJson():e):Fa(Ea,this,Oa).call(this,this.getObjectStorageReference())}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}return"objectStorageType"!==t||void 0!==this.objectStorageType&&null!==this.objectStorageType?"objectStorageReference"!==t||void 0!==this.objectStorageReference&&null!==this.objectStorageReference?new E(t,"no such property exists"):new E("objectStorageReference","undefined or null"):new E("objectStorageType","undefined or null")}}function Oa(e,t){return e instanceof Map?Object.fromEntries(Array.from(e,([e,n])=>[e,void 0!==n.toJson?n.toJson(t):n])):"object"==typeof e&&null!=e&&e.constructor===Object?Object.fromEntries(Array.from(Object.entries(e),e=>[e[0],void 0!==e[1].toJson?e[1].toJson(t):e[1]])):e}Ia.prototype.name=void 0,Ia.prototype.objectStorageType=void 0,Ia.prototype.objectStorageReference=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class ja extends Ia{constructor(){super(),this.$objectType="dataprotection.v4.config.RecoveryPointRepositoryProjection",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new ja,Ia.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function Pa(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Ra=new WeakSet;class xa extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ra),t.add(e),this.$objectType="dataprotection.v4.config.RecycleBinEntry",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s;if(e){if(t=t||new xa,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("expirationTime")&&null!==e.expirationTime&&void 0!==e.expirationTime&&t.setExpirationTime(e.expirationTime),e.hasOwnProperty("deletionTime")&&null!==e.deletionTime&&void 0!==e.deletionTime&&t.setDeletionTime(e.deletionTime),e.hasOwnProperty("spaceConsumedBytes")&&null!==e.spaceConsumedBytes&&void 0!==e.spaceConsumedBytes&&t.setSpaceConsumedBytes(e.spaceConsumedBytes),e.hasOwnProperty("deletedByUserExtId")&&null!==e.deletedByUserExtId&&void 0!==e.deletedByUserExtId&&t.setDeletedByUserExtId(e.deletedByUserExtId),e.hasOwnProperty("clusterExtId")&&null!==e.clusterExtId&&void 0!==e.clusterExtId&&t.setClusterExtId(e.clusterExtId),e.hasOwnProperty("categoryIds")&&null!==e.categoryIds&&void 0!==e.categoryIds){for(s=[],i=e.categoryIds,o=0;o<i.length;o++)s.push(i[o]);t.setCategoryIds(s)}if(!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getExpirationTime(){return this.expirationTime}setExpirationTime(e){this.expirationTime=e}getDeletionTime(){return this.deletionTime}setDeletionTime(e){this.deletionTime=e}getSpaceConsumedBytes(){return this.spaceConsumedBytes}setSpaceConsumedBytes(e){this.spaceConsumedBytes=e}getDeletedByUserExtId(){return this.deletedByUserExtId}setDeletedByUserExtId(e){this.deletedByUserExtId=e}getClusterExtId(){return this.clusterExtId}setClusterExtId(e){this.clusterExtId=e}getCategoryIds(){return this.categoryIds}setCategoryIds(e){this.categoryIds=e}toJson(e){return!1===e?{...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:Pa(Ra,this,Aa).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getDeletionTime()&&null!==this.getDeletionTime()?{deletionTime:Pa(Ra,this,Aa).call(this,this.getDeletionTime(),!1)}:{},...void 0!==this.getSpaceConsumedBytes()&&null!==this.getSpaceConsumedBytes()?{spaceConsumedBytes:this.getSpaceConsumedBytes()}:{},...void 0!==this.getDeletedByUserExtId()&&null!==this.getDeletedByUserExtId()?{deletedByUserExtId:this.getDeletedByUserExtId()}:{},...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},...void 0!==this.getCategoryIds()&&null!==this.getCategoryIds()?{categoryIds:this.getCategoryIds()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("expirationTime"===t&&(void 0===this.expirationTime||null===this.expirationTime))return new E("expirationTime","undefined or null");if("deletionTime"===t&&(void 0===this.deletionTime||null===this.deletionTime))return new E("deletionTime","undefined or null");if("spaceConsumedBytes"===t&&(void 0===this.spaceConsumedBytes||null===this.spaceConsumedBytes))return new E("spaceConsumedBytes","undefined or null");if("deletedByUserExtId"===t){if(void 0===this.deletedByUserExtId||null===this.deletedByUserExtId)return new E("deletedByUserExtId","undefined or null");if(!F.validatePattern(this.deletedByUserExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("deletedByUserExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("clusterExtId"===t){if(void 0===this.clusterExtId||null===this.clusterExtId)return new E("clusterExtId","undefined or null");if(!F.validatePattern(this.clusterExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"categoryIds"!==t||void 0!==this.categoryIds&&null!==this.categoryIds?new E(t,"no such property exists"):new E("categoryIds","undefined or null")}}function Aa(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}function Ca(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}xa.prototype.expirationTime=void 0,xa.prototype.deletionTime=void 0,xa.prototype.spaceConsumedBytes=void 0,xa.prototype.deletedByUserExtId=void 0,xa.prototype.clusterExtId=void 0,xa.prototype.categoryIds=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;var Sa=new WeakSet;class Na extends xa{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Sa),t.add(e),this.$objectType="dataprotection.v4.config.RecycleBinVm",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Na,xa.constructFromObject(e,t,!0),e.hasOwnProperty("vmExtId")&&null!==e.vmExtId&&void 0!==e.vmExtId&&t.setVmExtId(e.vmExtId),e.hasOwnProperty("vmOwnerExtId")&&null!==e.vmOwnerExtId&&void 0!==e.vmOwnerExtId&&t.setVmOwnerExtId(e.vmOwnerExtId),e.hasOwnProperty("vmName")&&null!==e.vmName&&void 0!==e.vmName&&t.setVmName(e.vmName),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getVmExtId(){return this.vmExtId}setVmExtId(e){this.vmExtId=e}getVmOwnerExtId(){return this.vmOwnerExtId}setVmOwnerExtId(e){this.vmOwnerExtId=e}getVmName(){return this.vmName}setVmName(e){this.vmName=e}toJson(e){return!1===e?{...void 0!==this.getVmExtId()&&null!==this.getVmExtId()?{vmExtId:this.getVmExtId()}:{},...void 0!==this.getVmOwnerExtId()&&null!==this.getVmOwnerExtId()?{vmOwnerExtId:this.getVmOwnerExtId()}:{},...void 0!==this.getVmName()&&null!==this.getVmName()?{vmName:this.getVmName()}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:Ca(Sa,this,Da).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getDeletionTime()&&null!==this.getDeletionTime()?{deletionTime:Ca(Sa,this,Da).call(this,this.getDeletionTime(),!1)}:{},...void 0!==this.getSpaceConsumedBytes()&&null!==this.getSpaceConsumedBytes()?{spaceConsumedBytes:this.getSpaceConsumedBytes()}:{},...void 0!==this.getDeletedByUserExtId()&&null!==this.getDeletedByUserExtId()?{deletedByUserExtId:this.getDeletedByUserExtId()}:{},...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},...void 0!==this.getCategoryIds()&&null!==this.getCategoryIds()?{categoryIds:this.getCategoryIds()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("vmExtId"===t){if(void 0===this.vmExtId||null===this.vmExtId)return new E("vmExtId","undefined or null");if(!F.validatePattern(this.vmExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("vmExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("vmOwnerExtId"===t){if(void 0===this.vmOwnerExtId||null===this.vmOwnerExtId)return new E("vmOwnerExtId","undefined or null");if(!F.validatePattern(this.vmOwnerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("vmOwnerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("vmName"===t){if(void 0===this.vmName||null===this.vmName)return new E("vmName","undefined or null");if(!F.validateMaxLength(this.vmName,256))return new E("vmName","does not satisfy required maxLength constraint: 256")}return new E(t,"no such property exists")}}function Da(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}Na.prototype.vmExtId=void 0,Na.prototype.vmOwnerExtId=void 0,Na.prototype.vmName=void 0,xa.prototype.expirationTime=void 0,xa.prototype.deletionTime=void 0,xa.prototype.spaceConsumedBytes=void 0,xa.prototype.deletedByUserExtId=void 0,xa.prototype.clusterExtId=void 0,xa.prototype.categoryIds=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class Ua extends Na{constructor(){super(),this.$objectType="dataprotection.v4.config.RecycleBinVmProjection",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Ua,Na.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}function Ma(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var Ja=new WeakSet;class _a extends xa{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ja),t.add(e),this.$objectType="dataprotection.v4.config.RecycleBinVolumeGroup",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new _a,xa.constructFromObject(e,t,!0),e.hasOwnProperty("volumeGroupExtId")&&null!==e.volumeGroupExtId&&void 0!==e.volumeGroupExtId&&t.setVolumeGroupExtId(e.volumeGroupExtId),e.hasOwnProperty("volumeGroupOwnerExtId")&&null!==e.volumeGroupOwnerExtId&&void 0!==e.volumeGroupOwnerExtId&&t.setVolumeGroupOwnerExtId(e.volumeGroupOwnerExtId),e.hasOwnProperty("volumeGroupName")&&null!==e.volumeGroupName&&void 0!==e.volumeGroupName&&t.setVolumeGroupName(e.volumeGroupName),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getVolumeGroupExtId(){return this.volumeGroupExtId}setVolumeGroupExtId(e){this.volumeGroupExtId=e}getVolumeGroupOwnerExtId(){return this.volumeGroupOwnerExtId}setVolumeGroupOwnerExtId(e){this.volumeGroupOwnerExtId=e}getVolumeGroupName(){return this.volumeGroupName}setVolumeGroupName(e){this.volumeGroupName=e}toJson(e){return!1===e?{...void 0!==this.getVolumeGroupExtId()&&null!==this.getVolumeGroupExtId()?{volumeGroupExtId:this.getVolumeGroupExtId()}:{},...void 0!==this.getVolumeGroupOwnerExtId()&&null!==this.getVolumeGroupOwnerExtId()?{volumeGroupOwnerExtId:this.getVolumeGroupOwnerExtId()}:{},...void 0!==this.getVolumeGroupName()&&null!==this.getVolumeGroupName()?{volumeGroupName:this.getVolumeGroupName()}:{},...void 0!==this.getExpirationTime()&&null!==this.getExpirationTime()?{expirationTime:Ma(Ja,this,La).call(this,this.getExpirationTime(),!1)}:{},...void 0!==this.getDeletionTime()&&null!==this.getDeletionTime()?{deletionTime:Ma(Ja,this,La).call(this,this.getDeletionTime(),!1)}:{},...void 0!==this.getSpaceConsumedBytes()&&null!==this.getSpaceConsumedBytes()?{spaceConsumedBytes:this.getSpaceConsumedBytes()}:{},...void 0!==this.getDeletedByUserExtId()&&null!==this.getDeletedByUserExtId()?{deletedByUserExtId:this.getDeletedByUserExtId()}:{},...void 0!==this.getClusterExtId()&&null!==this.getClusterExtId()?{clusterExtId:this.getClusterExtId()}:{},...void 0!==this.getCategoryIds()&&null!==this.getCategoryIds()?{categoryIds:this.getCategoryIds()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("volumeGroupExtId"===t){if(void 0===this.volumeGroupExtId||null===this.volumeGroupExtId)return new E("volumeGroupExtId","undefined or null");if(!F.validatePattern(this.volumeGroupExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("volumeGroupExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("volumeGroupOwnerExtId"===t){if(void 0===this.volumeGroupOwnerExtId||null===this.volumeGroupOwnerExtId)return new E("volumeGroupOwnerExtId","undefined or null");if(!F.validatePattern(this.volumeGroupOwnerExtId,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("volumeGroupOwnerExtId","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("volumeGroupName"===t){if(void 0===this.volumeGroupName||null===this.volumeGroupName)return new E("volumeGroupName","undefined or null");if(!F.validateMaxLength(this.volumeGroupName,256))return new E("volumeGroupName","does not satisfy required maxLength constraint: 256")}return new E(t,"no such property exists")}}function La(e,t){return e instanceof Date&&void 0!==t?t?e.toISOString().slice(0,10):e.toISOString():e}_a.prototype.volumeGroupExtId=void 0,_a.prototype.volumeGroupOwnerExtId=void 0,_a.prototype.volumeGroupName=void 0,xa.prototype.expirationTime=void 0,xa.prototype.deletionTime=void 0,xa.prototype.spaceConsumedBytes=void 0,xa.prototype.deletedByUserExtId=void 0,xa.prototype.clusterExtId=void 0,xa.prototype.categoryIds=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class Va extends _a{constructor(){super(),this.$objectType="dataprotection.v4.config.RecycleBinVolumeGroupProjection",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Va,_a.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}var Ga=new WeakSet;class Wa{constructor(){var e,t;(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e=this,t=Ga),t.add(e),this.$objectType="dataprotection.v4.config.SiteReference",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Wa,e.hasOwnProperty("availabilityZoneReference")&&null!==e.availabilityZoneReference&&void 0!==e.availabilityZoneReference&&t.setAvailabilityZoneReference(e.availabilityZoneReference),e.hasOwnProperty("clusterReference")&&null!==e.clusterReference&&void 0!==e.clusterReference&&t.setClusterReference(e.clusterReference),e.hasOwnProperty("$reserved")&&(t.$reserved=e.$reserved),e.hasOwnProperty("$objectType")&&(t.$objectType=e.$objectType),e.hasOwnProperty("$unknownFields")&&(t.$unknownFields=e.$unknownFields),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getAvailabilityZoneReference(){return this.availabilityZoneReference}setAvailabilityZoneReference(e){this.availabilityZoneReference=e}getClusterReference(){return this.clusterReference}setClusterReference(e){this.clusterReference=e}get$Reserved(){return this.$reserved}get$ObjectType(){return this.$objectType}get$UnknownFields(){return this.$unknownFields}toJson(e){return{...void 0!==this.getAvailabilityZoneReference()&&null!==this.getAvailabilityZoneReference()?{availabilityZoneReference:this.getAvailabilityZoneReference()}:{},...void 0!==this.getClusterReference()&&null!==this.getClusterReference()?{clusterReference:this.getClusterReference()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("availabilityZoneReference"===t){if(void 0===this.availabilityZoneReference||null===this.availabilityZoneReference)return new E("availabilityZoneReference","undefined or null");if(!F.validatePattern(this.availabilityZoneReference,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("availabilityZoneReference","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}if("clusterReference"===t){if(void 0===this.clusterReference||null===this.clusterReference)return new E("clusterReference","undefined or null");if(!F.validatePattern(this.clusterReference,/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/))return new E("clusterReference","does not satisfy required pattern: /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/")}return"$reserved"!==t||void 0!==this.$reserved&&null!==this.$reserved?"$objectType"!==t||void 0!==this.$objectType&&null!==this.$objectType?"$unknownFields"!==t||void 0!==this.$unknownFields&&null!==this.$unknownFields?new E(t,"no such property exists"):new E("$unknownFields","undefined or null"):new E("$objectType","undefined or null"):new E("$reserved","undefined or null")}}Wa.prototype.availabilityZoneReference=void 0,Wa.prototype.clusterReference=void 0,Wa.prototype.$reserved=void 0,Wa.prototype.$objectType=void 0,Wa.prototype.$unknownFields=void 0;var Ba=new WeakSet;class qa extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ba),t.add(e),this.$objectType="dataprotection.v4.config.VolumeGroupSyncContext",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new qa,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("primarySite")&&null!==e.primarySite&&void 0!==e.primarySite&&t.setPrimarySite(Wa.constructFromObject(e.primarySite)),e.hasOwnProperty("secondarySite")&&null!==e.secondarySite&&void 0!==e.secondarySite&&t.setSecondarySite(Wa.constructFromObject(e.secondarySite)),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getPrimarySite(){return this.primarySite}setPrimarySite(e){this.primarySite=e}getSecondarySite(){return this.secondarySite}setSecondarySite(e){this.secondarySite=e}toJson(e){return!1===e?{...void 0!==this.getPrimarySite()&&null!==this.getPrimarySite()?{primarySite:this.getPrimarySite().toJson(!1)}:{},...void 0!==this.getSecondarySite()&&null!==this.getSecondarySite()?{secondarySite:this.getSecondarySite().toJson(!1)}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getPrimarySite()&&null!==this.getPrimarySite()?{primarySite:this.getPrimarySite().toJson(!1)}:{},...void 0!==this.getSecondarySite()&&null!==this.getSecondarySite()?{secondarySite:this.getSecondarySite().toJson(!1)}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return"primarySite"!==t||void 0!==this.primarySite&&null!==this.primarySite?"secondarySite"!==t||void 0!==this.secondarySite&&null!==this.secondarySite?new E(t,"no such property exists"):new E("secondarySite","undefined or null"):new E("primarySite","undefined or null")}}qa.prototype.primarySite=void 0,qa.prototype.secondarySite=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;const za={$UNKNOWN:"$UNKNOWN",$REDACTED:"$REDACTED",AVAILABLE:"AVAILABLE",UNAVAILABLE:"UNAVAILABLE",constructFromObject:function(e){if("string"==typeof e||e instanceof String){let t=Object.keys(za).find(t=>za[t]===e);return null==t?za.$UNKNOWN:za[t]}throw new Error("Received object name is not an instance of String")},validate:function(e){switch(e){case za.$UNKNOWN:case za.$REDACTED:case za.AVAILABLE:case za.UNAVAILABLE:return;default:throw new Error("Invalid : must be WitnessAvailabilityStatus.{ $UNKNOWN|$REDACTED|AVAILABLE|UNAVAILABLE }")}}};Object.freeze(za);const Ka=za;var Ya=new WeakSet;class Ha extends Ae{constructor(){var e,t;super(),function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e=this,t=Ya),t.add(e),this.$objectType="dataprotection.v4.config.Witness",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){let i,o,s,r;if(e){if(t=t||new Ha,Ae.constructFromObject(e,t,!0),e.hasOwnProperty("name")&&null!==e.name&&void 0!==e.name&&t.setName(e.name),e.hasOwnProperty("hostReferences")&&null!==e.hostReferences&&void 0!==e.hostReferences){for(r=[],i=e.hostReferences,s=0;s<i.length;s++)o=wa.constructFromObject(i[s],void 0),r.push(o);t.setHostReferences(r)}if(e.hasOwnProperty("ipAddresses")&&null!==e.ipAddresses&&void 0!==e.ipAddresses){for(r=[],i=e.ipAddresses,s=0;s<i.length;s++)r.push(i[s]);t.setIpAddresses(r)}if(e.hasOwnProperty("status")&&null!==e.status&&void 0!==e.status&&t.setStatus(Ka.constructFromObject(e.status)),!n){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}getName(){return this.name}setName(e){this.name=e}getHostReferences(){return this.hostReferences}setHostReferences(e){this.hostReferences=e}getIpAddresses(){return this.ipAddresses}setIpAddresses(e){this.ipAddresses=e}getStatus(){return this.status}setStatus(e){this.status=e}toJson(e){return!1===e?{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getHostReferences()&&null!==this.getHostReferences()?{hostReferences:this.getHostReferences().map(e=>e.toJson(!1))}:{},...void 0!==this.getIpAddresses()&&null!==this.getIpAddresses()?{ipAddresses:this.getIpAddresses()}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},...void 0!==this.getExtId()&&null!==this.getExtId()?{extId:this.getExtId()}:{},...void 0!==this.getLinks()&&null!==this.getLinks()?{links:this.getLinks().map(e=>e.toJson(!1))}:{},...void 0!==this.getTenantId()&&null!==this.getTenantId()?{tenantId:this.getTenantId()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}:{...void 0!==this.getName()&&null!==this.getName()?{name:this.getName()}:{},...void 0!==this.getHostReferences()&&null!==this.getHostReferences()?{hostReferences:this.getHostReferences().map(e=>e.toJson(!1))}:{},...void 0!==this.getIpAddresses()&&null!==this.getIpAddresses()?{ipAddresses:this.getIpAddresses()}:{},...void 0!==this.getStatus()&&null!==this.getStatus()?{status:this.getStatus()}:{},$reserved:this.get$Reserved(),$objectType:this.get$ObjectType(),...void 0!==this.get$UnknownFields()&&null!==this.get$UnknownFields()?this.get$UnknownFields():{},$unknownFields:{}}}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){if("name"===t){if(void 0===this.name||null===this.name)return new E("name","undefined or null");if(!F.validateMaxLength(this.name,256))return new E("name","does not satisfy required maxLength constraint: 256")}if("hostReferences"===t){if(void 0===this.hostReferences||null===this.hostReferences)return new E("hostReferences","undefined or null");if(!F.validateMaxItems(this.hostReferences,100))return new E("hostReferences","does not satisfy required maxItems constraint: 100");if(!F.validateMinItems(this.hostReferences,1))return new E("hostReferences","does not satisfy required minItems constraint: 1")}if("ipAddresses"===t){if(void 0===this.ipAddresses||null===this.ipAddresses)return new E("ipAddresses","undefined or null");if(!F.validateMaxItems(this.ipAddresses,100))return new E("ipAddresses","does not satisfy required maxItems constraint: 100");if(!F.validateMinItems(this.ipAddresses,1))return new E("ipAddresses","does not satisfy required minItems constraint: 1")}return"status"!==t||void 0!==this.status&&null!==this.status?new E(t,"no such property exists"):new E("status","undefined or null")}}Ha.prototype.name=void 0,Ha.prototype.hostReferences=void 0,Ha.prototype.ipAddresses=void 0,Ha.prototype.status=void 0,Ae.prototype.extId=void 0,Ae.prototype.links=void 0,Re.prototype.tenantId=void 0;class Xa extends Xt{constructor(e,t){super(e,t),this.$objectType="dataprotection.v4.operations.ValidateSpec",this.$reserved={$fv:"v4.r3"},this.$unknownFields={}}static constructFromObject(e,t=null,n=!1){if(e&&(t=t||new Xa,Xt.constructFromObject(e,t,!0),!n)){t.$unknownFields={...e.$unknownFields};for(const n in e)Object.keys(t).includes(n)||Object.keys(t).includes(this.snakeToCamel(n))||"$"===n[0]&&n.endsWith("ItemDiscriminator")||(t.$unknownFields[n]=e[n])}return t}static snakeToCamel(e){return e.replace(/(_\w)/g,e=>e[1].toUpperCase())}validate(e,t){let n=[];0===arguments.length||1===arguments.length&&arguments[0]instanceof b?n=[]:1===arguments.length?(n=arguments[0],e=null):n=arguments[1];let i=[],o=null;return n.forEach(t=>{o=this.validateProperty(t,e),o&&i.push(o)}),new Promise(function(e,t){0!==i.length?t(o):e()})}validateProperty(e,t){return new E(t,"no such property exists")}}const Za={ApiClient:le,DataProtectionClusterCapabilitiesApi:class{#e;static get ApiClient(){return le}constructor(e){this.apiClient=e||le.instance,this.#e=new Set,this.#e.add("authorization"),this.#e.add("cookie"),this.#e.add("host"),this.#e.add("user-agent")}listDataProtectionClusterCapabilities(e,...t){let n=t.length>0?t[0]:{};const i={...(e=e||{}).hasOwnProperty("$page")?{$page:e.$page}:{},...e.hasOwnProperty("$limit")?{$limit:e.$limit}:{},...e.hasOwnProperty("$filter")?{$filter:e.$filter}:{},...e.hasOwnProperty("$orderby")?{$orderby:e.$orderby}:{},...e.hasOwnProperty("$select")?{$select:e.$select}:{}};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=nt;return this.apiClient.callApi("/api/dataprotection/v4.3/config/cluster-capabilities","GET",{},i,s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}},ProtectedResourcesApi:class{#e;static get ApiClient(){return le}constructor(e){this.apiClient=e||le.instance,this.#e=new Set,this.#e.add("authorization"),this.#e.add("cookie"),this.#e.add("host"),this.#e.add("user-agent")}getProtectedResourceById(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'extId' when calling getProtectedResourceById");const i={extId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=It;return this.apiClient.callApi("/api/dataprotection/v4.3/config/protected-resources/{extId}","GET",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}promoteProtectedResource(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'extId' when calling promoteProtectedResource");const i={extId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=Dt;return this.apiClient.callApi("/api/dataprotection/v4.3/config/protected-resources/{extId}/$actions/promote","POST",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}restoreProtectedResource(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof _t&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'extId' when calling restoreProtectedResource");if(null==o)throw new Error("Invalid body when calling restoreProtectedResource");const s={extId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=At;return this.apiClient.callApi("/api/dataprotection/v4.3/config/protected-resources/{extId}/$actions/restore","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}},RecoveryPlanActionsApi:class{#e;static get ApiClient(){return le}constructor(e){this.apiClient=e||le.instance,this.#e=new Set,this.#e.add("authorization"),this.#e.add("cookie"),this.#e.add("host"),this.#e.add("user-agent")}cleanupRecoveryPlanResources(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'recoveryPlanExtId' when calling cleanupRecoveryPlanResources");const i={recoveryPlanExtId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=dn;return this.apiClient.callApi("/api/dataprotection/v4.3/operations/recovery-plans/{recoveryPlanExtId}/$actions/clean-up-resources","POST",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}plannedFailoverRecoveryPlan(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof Qt&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'recoveryPlanExtId' when calling plannedFailoverRecoveryPlan");if(null==o)throw new Error("Invalid body when calling plannedFailoverRecoveryPlan");const s={recoveryPlanExtId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=Tn;return this.apiClient.callApi("/api/dataprotection/v4.3/operations/recovery-plans/{recoveryPlanExtId}/$actions/planned-failover","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}testFailoverRecoveryPlan(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof tn&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'recoveryPlanExtId' when calling testFailoverRecoveryPlan");if(null==o)throw new Error("Invalid body when calling testFailoverRecoveryPlan");const s={recoveryPlanExtId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=fn;return this.apiClient.callApi("/api/dataprotection/v4.3/operations/recovery-plans/{recoveryPlanExtId}/$actions/test-failover","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}unplannedFailoverRecoveryPlan(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof pn&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'recoveryPlanExtId' when calling unplannedFailoverRecoveryPlan");if(null==o)throw new Error("Invalid body when calling unplannedFailoverRecoveryPlan");const s={recoveryPlanExtId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=Wt;return this.apiClient.callApi("/api/dataprotection/v4.3/operations/recovery-plans/{recoveryPlanExtId}/$actions/unplanned-failover","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}validateRecoveryPlan(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof Xt&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'recoveryPlanExtId' when calling validateRecoveryPlan");if(null==o)throw new Error("Invalid body when calling validateRecoveryPlan");const s={recoveryPlanExtId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=sn;return this.apiClient.callApi("/api/dataprotection/v4.3/operations/recovery-plans/{recoveryPlanExtId}/$actions/validate","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}},RecoveryPlanJobsApi:class{#e;static get ApiClient(){return le}constructor(e){this.apiClient=e||le.instance,this.#e=new Set,this.#e.add("authorization"),this.#e.add("cookie"),this.#e.add("host"),this.#e.add("user-agent")}deleteRecoveryPlanJobById(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'extId' when calling deleteRecoveryPlanJobById");const i={extId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=Bn;return this.apiClient.callApi("/api/dataprotection/v4.3/config/recovery-plan-jobs/{extId}","DELETE",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}getRecoveryPlanJobById(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'extId' when calling getRecoveryPlanJobById");const i={extId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=Ln;return this.apiClient.callApi("/api/dataprotection/v4.3/config/recovery-plan-jobs/{extId}","GET",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}listExecutionStepsByRecoveryPlanJobId(e,t,...n){let i=n.length>0?n[0]:{};if(t=t||{},null==e)throw new Error("Missing the required parameter 'recoveryPlanJobExtId' when calling listExecutionStepsByRecoveryPlanJobId");const o={recoveryPlanJobExtId:e},s={...t.hasOwnProperty("$page")?{$page:t.$page}:{},...t.hasOwnProperty("$limit")?{$limit:t.$limit}:{},...t.hasOwnProperty("$filter")?{$filter:t.$filter}:{},...t.hasOwnProperty("$orderby")?{$orderby:t.$orderby}:{}};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r},l=Di;return this.apiClient.callApi("/api/dataprotection/v4.3/config/recovery-plan-jobs/{recoveryPlanJobExtId}/execution-steps","GET",o,s,a,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],l)}listRecoveryPlanJobs(e,...t){let n=t.length>0?t[0]:{};const i={...(e=e||{}).hasOwnProperty("$page")?{$page:e.$page}:{},...e.hasOwnProperty("$limit")?{$limit:e.$limit}:{},...e.hasOwnProperty("$filter")?{$filter:e.$filter}:{},...e.hasOwnProperty("$orderby")?{$orderby:e.$orderby}:{},...e.hasOwnProperty("$select")?{$select:e.$select}:{}};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=yi;return this.apiClient.callApi("/api/dataprotection/v4.3/config/recovery-plan-jobs","GET",{},i,s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}listValidationErrorsByRecoveryPlanJobId(e,t,...n){let i=n.length>0?n[0]:{};if(t=t||{},null==e)throw new Error("Missing the required parameter 'recoveryPlanJobExtId' when calling listValidationErrorsByRecoveryPlanJobId");const o={recoveryPlanJobExtId:e},s={...t.hasOwnProperty("$page")?{$page:t.$page}:{},...t.hasOwnProperty("$limit")?{$limit:t.$limit}:{},...t.hasOwnProperty("$filter")?{$filter:t.$filter}:{},...t.hasOwnProperty("$orderby")?{$orderby:t.$orderby}:{}};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r},l=ui;return this.apiClient.callApi("/api/dataprotection/v4.3/config/recovery-plan-jobs/{recoveryPlanJobExtId}/validation-errors","GET",o,s,a,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],l)}},RecoveryPointsApi:class{#e;static get ApiClient(){return le}constructor(e){this.apiClient=e||le.instance,this.#e=new Set,this.#e.add("authorization"),this.#e.add("cookie"),this.#e.add("host"),this.#e.add("user-agent")}createRecoveryPoint(e,...t){let n=t.length>0?t[0]:{},i=null;if(i=e instanceof ss&&"function"==typeof e.toJson?e.toJson():e,null==i)throw new Error("Invalid body when calling createRecoveryPoint");let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o};le.addEtagReferenceToHeader(e,s);const r=fr;return this.apiClient.callApi("/api/dataprotection/v4.3/config/recovery-points","POST",{},{},s,{},i,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],r)}deleteRecoveryPointById(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'extId' when calling deleteRecoveryPointById");const i={extId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=xr;return this.apiClient.callApi("/api/dataprotection/v4.3/config/recovery-points/{extId}","DELETE",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}discoverClusterForRecoveryPointId(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof oo&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'extId' when calling discoverClusterForRecoveryPointId");if(null==o)throw new Error("Invalid body when calling discoverClusterForRecoveryPointId");const s={extId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=bo;return this.apiClient.callApi("/api/dataprotection/v4.3/config/recovery-points/{extId}/$actions/discover-cluster","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}getRecoveryPointById(e,...t){let n=t.length>0?t[0]:{};if(null==e)throw new Error("Missing the required parameter 'extId' when calling getRecoveryPointById");const i={extId:e};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={...o},r=tr;return this.apiClient.callApi("/api/dataprotection/v4.3/config/recovery-points/{extId}","GET",i,{},s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}getVmRecoveryPointById(e,t,...n){let i=n.length>0?n[0]:{};if(null==e)throw new Error("Missing the required parameter 'recoveryPointExtId' when calling getVmRecoveryPointById");if(null==t)throw new Error("Missing the required parameter 'extId' when calling getVmRecoveryPointById");const o={recoveryPointExtId:e,extId:t};let s={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(s[e]=i[e])});const r={...s},a=Nr;return this.apiClient.callApi("/api/dataprotection/v4.3/config/recovery-points/{recoveryPointExtId}/vm-recovery-points/{extId}","GET",o,{},r,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],a)}getVssMetadataByVmRecoveryPointId(e,t,...n){let i=n.length>0?n[0]:{};if(null==e)throw new Error("Missing the required parameter 'recoveryPointExtId' when calling getVssMetadataByVmRecoveryPointId");if(null==t)throw new Error("Missing the required parameter 'vmRecoveryPointExtId' when calling getVssMetadataByVmRecoveryPointId");const o={recoveryPointExtId:e,vmRecoveryPointExtId:t};let s={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(s[e]=i[e])});const r={...s},a=br;return this.apiClient.callApi("/api/dataprotection/v4.3/content/recovery-points/{recoveryPointExtId}/vm-recovery-points/{vmRecoveryPointExtId}/vss-metadata","GET",o,{},r,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/octet-stream","application/json"],a)}listRecoveryPoints(e,...t){let n=t.length>0?t[0]:{};const i={...(e=e||{}).hasOwnProperty("$page")?{$page:e.$page}:{},...e.hasOwnProperty("$limit")?{$limit:e.$limit}:{},...e.hasOwnProperty("$filter")?{$filter:e.$filter}:{},...e.hasOwnProperty("$orderby")?{$orderby:e.$orderby}:{},...e.hasOwnProperty("$select")?{$select:e.$select}:{}};let o={};Object.keys(n).forEach(e=>{this.#e.has(e.toLowerCase())||(o[e]=n[e])});const s={"X-Cluster-Id":e.xClusterId,...o},r=us;return this.apiClient.callApi("/api/dataprotection/v4.3/config/recovery-points","GET",{},i,s,{},null,["apiKeyAuthScheme","basicAuthScheme"],[],["application/json"],r)}replicateRecoveryPoint(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof qr&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'extId' when calling replicateRecoveryPoint");if(null==o)throw new Error("Invalid body when calling replicateRecoveryPoint");const s={extId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=_i;return this.apiClient.callApi("/api/dataprotection/v4.3/config/recovery-points/{extId}/$actions/replicate","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}restoreRecoveryPoint(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof Zs&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'extId' when calling restoreRecoveryPoint");const s={extId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=Or;return this.apiClient.callApi("/api/dataprotection/v4.3/config/recovery-points/{extId}/$actions/restore","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}setRecoveryPointExpirationTime(e,t,...n){let i=n.length>0?n[0]:{},o=null;if(o=t instanceof pr&&"function"==typeof t.toJson?t.toJson():t,null==e)throw new Error("Missing the required parameter 'extId' when calling setRecoveryPointExpirationTime");if(null==o)throw new Error("Invalid body when calling setRecoveryPointExpirationTime");const s={extId:e};let r={};Object.keys(i).forEach(e=>{this.#e.has(e.toLowerCase())||(r[e]=i[e])});const a={...r};le.addEtagReferenceToHeader(t,a);const l=Yr;return this.apiClient.callApi("/api/dataprotection/v4.3/config/recovery-points/{extId}/$actions/set-expiration-time","POST",s,{},a,{},o,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],l)}vmRecoveryPointComputeChangedRegions(e,t,n,i,...o){let s=o.length>0?o[0]:{},r=null;if(r=i instanceof ho&&"function"==typeof i.toJson?i.toJson():i,null==e)throw new Error("Missing the required parameter 'recoveryPointExtId' when calling vmRecoveryPointComputeChangedRegions");if(null==t)throw new Error("Missing the required parameter 'vmRecoveryPointExtId' when calling vmRecoveryPointComputeChangedRegions");if(null==n)throw new Error("Missing the required parameter 'extId' when calling vmRecoveryPointComputeChangedRegions");if(null==r)throw new Error("Invalid body when calling vmRecoveryPointComputeChangedRegions");const a={recoveryPointExtId:e,vmRecoveryPointExtId:t,extId:n};let l={};Object.keys(s).forEach(e=>{this.#e.has(e.toLowerCase())||(l[e]=s[e])});const d={...l};le.addEtagReferenceToHeader(i,d);const u=dr;return this.apiClient.callApi("/api/dataprotection/v4.3/content/recovery-points/{recoveryPointExtId}/vm-recovery-points/{vmRecoveryPointExtId}/disk-recovery-points/{extId}/$actions/compute-changed-regions","POST",a,{},d,{},r,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],u)}volumeGroupRecoveryPointComputeChangedRegions(e,t,n,i,...o){let s=o.length>0?o[0]:{},r=null;if(r=i instanceof _r&&"function"==typeof i.toJson?i.toJson():i,null==e)throw new Error("Missing the required parameter 'recoveryPointExtId' when calling volumeGroupRecoveryPointComputeChangedRegions");if(null==t)throw new Error("Missing the required parameter 'volumeGroupRecoveryPointExtId' when calling volumeGroupRecoveryPointComputeChangedRegions");if(null==n)throw new Error("Missing the required parameter 'extId' when calling volumeGroupRecoveryPointComputeChangedRegions");if(null==r)throw new Error("Invalid body when calling volumeGroupRecoveryPointComputeChangedRegions");const a={recoveryPointExtId:e,volumeGroupRecoveryPointExtId:t,extId:n};let l={};Object.keys(s).forEach(e=>{this.#e.has(e.toLowerCase())||(l[e]=s[e])});const d={...l};le.addEtagReferenceToHeader(i,d);const u=Gr;return this.apiClient.callApi("/api/dataprotection/v4.3/content/recovery-points/{recoveryPointExtId}/volume-group-recovery-points/{volumeGroupRecoveryPointExtId}/disk-recovery-points/{extId}/$actions/compute-changed-regions","POST",a,{},d,{},r,["apiKeyAuthScheme","basicAuthScheme"],["application/json"],["application/json"],u)}},CommonConfigEntityReference:Hn,EntityType:Kn,Flag:O,IPAddress:$o,IPv4Address:vo,IPv6Address:go,KVPair:S,MapOfStringWrapper:R,Message:J,MessageSeverity:U,TenantAwareModel:Re,ApiLink:L,ApiResponseMetadata:W,ExternalizableAbstractModel:Ae,BackupType:_o,BaseRecoveryPoint:xo,BaseVmRecoveryPoint:Bo,ClusterInfo:mo,DiskRecoveryPoint:Mo,RecoveryPointStatus:Io,RecoveryPointType:jo,VssProperties:Vo,AhvVmOverrideSpec:_s,AmazonS3Bucket:Zr,AzureBlobStorageContainer:ea,Capability:De,ClusterInfoApiResponse:bo,ConsistencyGroup:ra,ConsistencyGroupMember:oa,ConsistencyGroupMemberType:na,ConsistencyGroupMigrationSpec:la,ConsistencyGroupProjection:da,CreateRecoveryPointApiResponse:fr,CreationTimeRange:ha,DataProtectionCapabilityName:Se,DataProtectionClusterCapability:Me,DataProtectionClusterCapabilityProjection:Je,DataProtectionSiteReference:st,DeleteRecoveryPlanJobApiResponse:Bn,DeleteRecoveryPointApiResponse:xr,DisasterRecoveryLocation:So,EntityRecoveryResult:ki,DataprotectionConfigEntityReference:zt,ErrorGroup:Zn,ErrorMessage:ni,EsxiVmOverrideSpec:Vs,ExecutionStepEntityReference:mi,ExecutionStepEntityType:$i,ExecutionStepResult:Ei,ExpirationTimeSpec:pr,FailoverDirection:Yt,ForceDeleteAllRecoveryPointsSpec:ya,GetProtectedResourceApiResponse:It,GetRecoveryPlanJobApiResponse:Ln,GetRecoveryPointApiResponse:tr,GetVmRecoveryPointApiResponse:Nr,HostReference:wa,HostType:fa,HypervisorType:Yo,ListDPClusterCapabilitiesApiResponse:nt,ListRecoveryPlanJobExecutionStepsApiResponse:Di,ListRecoveryPlanJobValidationErrorsApiResponse:ui,ListRecoveryPlanJobsApiResponse:yi,ListRecoveryPointsApiResponse:us,LocationReference:Do,NutanixObjectsBucket:Ta,ObjectStorageType:ba,OperationType:ji,PhaseSummary:An,ProtectedEntityType:at,ProtectedResource:bt,ProtectedResourcePromoteApiResponse:Dt,ProtectedResourceReplicationStatus:dt,ProtectedResourceRestoreApiResponse:At,ProtectedResourceRestoreSpec:_t,RecoveryInfo:ft,RecoveryPlanActionType:Sn,RecoveryPlanJob:Un,RecoveryPlanJobExecutionStatus:Fn,RecoveryPlanJobExecutionStep:xi,RecoveryPlanJobExecutionStepProjection:Ci,RecoveryPlanJobPhaseType:In,RecoveryPlanJobProjection:hi,RecoveryPlanValidationError:ri,RecoveryPlanValidationErrorProjection:ai,RecoveryPoint:ss,RecoveryPointProjection:as,RecoveryPointReplicateApiResponse:_i,RecoveryPointReplicationSpec:qr,RecoveryPointRepository:Ia,RecoveryPointRepositoryProjection:ja,RecoveryPointRestorationSpec:Zs,RecoveryPointRestoreApiResponse:Or,RecycleBinEntry:xa,RecycleBinVm:Na,RecycleBinVmProjection:Ua,RecycleBinVolumeGroup:_a,RecycleBinVolumeGroupProjection:Va,ReplicationState:ct,RestorableTimeRange:vt,RootCauseAnalysis:oi,Severity:ei,SiteProtectionInfo:Tt,SiteReference:Wa,StageSummary:Rn,Summary:jn,SynchronousReplicationRole:wt,UpdateRecoveryPointExpirationTimeApiResponse:Yr,VmRecoveryPoint:Zo,VmRecoveryPointRestoreOverride:Bs,VolumeGroupOverrideSpec:Ks,VolumeGroupRecoveryPoint:ns,VolumeGroupRecoveryPointRestoreOverride:Hs,VolumeGroupSyncContext:qa,Witness:Ha,WitnessAvailabilityStatus:Ka,BaseRecoveryPointSpec:ao,ChangedRegion:rr,ChangedVmRegionsApiResponse:dr,ChangedVolumeGroupRegionsApiResponse:Gr,ClusterDiscoverOperation:Gi,ClusterDiscoverSpec:oo,ComputeChangedRegionsClusterDiscoverSpec:Zi,DiskRecoveryPointReference:Bi,FileWrapper:mr,GetVssMetadataApiResponse:br,GetVssMetadataClusterDiscoverSpec:to,RegionType:or,VmDiskRecoveryPointClusterDiscoverSpec:uo,VmDiskRecoveryPointReference:zi,VmRecoveryPointChangedRegionsComputeSpec:ho,VolumeGroupDiskRecoveryPointClusterDiscoverSpec:Mr,VolumeGroupDiskRecoveryPointReference:Yi,VolumeGroupRecoveryPointChangedRegionsComputeSpec:_r,AppMessage:Ve,ErrorResponse:Ze,SchemaValidationError:Ke,SchemaValidationErrorMessage:Be,BaseRecoveryPlanActionSpec:Xt,CleanupRecoveryPlanResourcesApiResponse:dn,PlannedFailoverRecoveryPlanApiResponse:Tn,PlannedFailoverSpec:Qt,TestFailoverRecoveryPlanApiResponse:fn,TestFailoverSpec:tn,UnplannedFailoverRecoveryPlanApiResponse:Wt,UnplannedFailoverSpec:pn,ValidateRecoveryPlanApiResponse:sn,ValidateSpec:Xa,TaskReference:Pt,CategoryReference:ps,GuestStaticIpSpec:Ts,OwnerReference:ys,OwnershipInfo:fs,SubnetReference:Es,VmConfigOverrideSpecification:Js,VmRestoreGuestNicInfoOverrideSpec:bs,VmRestoreGuestToolsSpecification:ws,VmRestoreIpv4ConfigOverrideSpec:Os,VmRestoreNicConfigOverrideParams:Ss,VmRestoreNicConfigSpecification:Us,VmRestoreVirtualEthernetNicNetworkInfoOverrideSpec:Ps,VmRestoreVirtualEthernetNicOverrideSpec:xs}})(),i.default})());
|