public CustomMonitorConfig(MonitorDescriptor descriptor)
        {
            if (descriptor == null)
            {
                throw new ArgumentNullException("descriptor");
            }

            Descriptor = descriptor;
            Name = Descriptor.Name;
        }
        /// <summary>
        /// Use to add a new Custom monitor.
        /// </summary>
        /// <param name="apiKey"></param>
        /// <param name="authToken"></param>
        /// <param name="descriptor">Configuration of monitor for add</param>
        /// <returns></returns>
        public AddMonitorResponse AddMonitor(String authToken, MonitorDescriptor descriptor)
        {
            if(descriptor == null)
             {
                 throw new ArgumentNullException("descriptor");
             }

            APIClient apiClient = GetApiClient(ActionNames.AddMonitor, authToken);

            String resultParams = Utils.JoinMonitorResultParams(descriptor.ResultParams);

            apiClient.AddParam(ParamNames.ResultParams, resultParams);
            apiClient.AddParam(ParamNames.Name, descriptor.Name);
            apiClient.AddParam(ParamNames.Tag, descriptor.Tag);
            AddMonitorResponse addMonitorResponse = apiClient.InvokePost<AddMonitorResponse>();
            return addMonitorResponse;
        }