/// <summary>
 /// Gets ApiCallDescription from FabricMonitoringData and FabricMonitoringParameters
 /// </summary>
 /// <param name="data"> FabricApiMonitoringData </param>
 /// <param name="parameters"> FabricApiMonitoringParameters </param>
 /// <returns> New FabricApiCall description object </returns>
 private FabricApiCallDescription GetApiCallDescription(FabricMonitoringData data, FabricMonitoringParameters parameters)
 {
     return(new FabricApiCallDescription(
                data,
                parameters,
                this.partition));
 }
        /// <summary>
        /// Invoked by BackupManager to monitor backup callbacks
        /// </summary>
        /// <returns> FabricApiCallDescription being monitored, or null if settings are invalid </returns>
        public FabricApiCallDescription StartBackupCallbackAsyncMonitoring()
        {
            if (!this.ValidateSettings())
            {
                return(null);
            }

            var fabricMonitorParams = new FabricMonitoringParameters(true, true, true, this.Settings.PublicSettings.SlowApiMonitoringDuration.Value);

            var fabricMonitorData = new FabricMonitoringData(
                this.context,
                SR.ReplicatorApiMonitor_BackupApiName,
                SR.HealthProperty_BackupCallbackSlow);

            var backupCallbackStart = this.GetApiCallDescription(fabricMonitorData, fabricMonitorParams);

            return(this.StartMonitoringApi(backupCallbackStart));
        }