/// <summary>
        /// Rephrase, paraphrase English text sentence-by-sentence using Deep Learning AI Automatically rephrases or paraphrases input text in English sentence by sentence using advanced Deep Learning and Neural NLP.  Creates multiple reprhasing candidates per input sentence, from 1 to 10 possible rephrasings of the original sentence.  Seeks to preserve original semantic meaning in rephrased output candidates.  Consumes 1-2 API calls per output rephrasing option generated, per sentence.
        /// </summary>
        /// <exception cref="Cloudmersive.APIClient.NET.NLP.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="input">Input rephrase request</param>
        /// <returns>Task of RephraseResponse</returns>
        public async System.Threading.Tasks.Task <RephraseResponse> RephraseEnglishRephraseSentenceBySentenceAsync(RephraseRequest input)
        {
            ApiResponse <RephraseResponse> localVarResponse = await RephraseEnglishRephraseSentenceBySentenceAsyncWithHttpInfo(input);

            return(localVarResponse.Data);
        }
        /// <summary>
        /// Rephrase, paraphrase English text sentence-by-sentence using Deep Learning AI Automatically rephrases or paraphrases input text in English sentence by sentence using advanced Deep Learning and Neural NLP.  Creates multiple reprhasing candidates per input sentence, from 1 to 10 possible rephrasings of the original sentence.  Seeks to preserve original semantic meaning in rephrased output candidates.  Consumes 1-2 API calls per output rephrasing option generated, per sentence.
        /// </summary>
        /// <exception cref="Cloudmersive.APIClient.NET.NLP.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="input">Input rephrase request</param>
        /// <returns>Task of ApiResponse (RephraseResponse)</returns>
        public async System.Threading.Tasks.Task <ApiResponse <RephraseResponse> > RephraseEnglishRephraseSentenceBySentenceAsyncWithHttpInfo(RephraseRequest input)
        {
            // verify the required parameter 'input' is set
            if (input == null)
            {
                throw new ApiException(400, "Missing required parameter 'input' when calling RephraseApi->RephraseEnglishRephraseSentenceBySentence");
            }

            var    localVarPath         = "/nlp-v2/rephrase/rephrase/eng/by-sentence";
            var    localVarPathParams   = new Dictionary <String, String>();
            var    localVarQueryParams  = new List <KeyValuePair <String, String> >();
            var    localVarHeaderParams = new Dictionary <String, String>(this.Configuration.DefaultHeader);
            var    localVarFormParams   = new Dictionary <String, String>();
            var    localVarFileParams   = new Dictionary <String, FileParameter>();
            Object localVarPostBody     = null;

            // to determine the Content-Type header
            String[] localVarHttpContentTypes = new String[] {
                "application/json",
                "text/json",
                "application/xml",
                "text/xml",
                "application/x-www-form-urlencoded"
            };
            String localVarHttpContentType = this.Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes);

            // to determine the Accept header
            String[] localVarHttpHeaderAccepts = new String[] {
                "application/json"
            };
            String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts);

            if (localVarHttpHeaderAccept != null)
            {
                localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept);
            }

            if (input != null && input.GetType() != typeof(byte[]))
            {
                localVarPostBody = this.Configuration.ApiClient.Serialize(input); // http body (model) parameter
            }
            else
            {
                localVarPostBody = input; // byte array
            }

            // authentication (Apikey) required
            if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("Apikey")))
            {
                localVarHeaderParams["Apikey"] = this.Configuration.GetApiKeyWithPrefix("Apikey");
            }

            // make the HTTP request
            IRestResponse localVarResponse = (IRestResponse)await this.Configuration.ApiClient.CallApiAsync(localVarPath,
                                                                                                            Method.POST, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams,
                                                                                                            localVarPathParams, localVarHttpContentType);

            int localVarStatusCode = (int)localVarResponse.StatusCode;

            if (ExceptionFactory != null)
            {
                Exception exception = ExceptionFactory("RephraseEnglishRephraseSentenceBySentence", localVarResponse);
                if (exception != null)
                {
                    throw exception;
                }
            }

            return(new ApiResponse <RephraseResponse>(localVarStatusCode,
                                                      localVarResponse.Headers.ToDictionary(x => x.Name, x => x.Value.ToString()),
                                                      (RephraseResponse)this.Configuration.ApiClient.Deserialize(localVarResponse, typeof(RephraseResponse))));
        }
        /// <summary>
        /// Rephrase, paraphrase English text sentence-by-sentence using Deep Learning AI Automatically rephrases or paraphrases input text in English sentence by sentence using advanced Deep Learning and Neural NLP.  Creates multiple reprhasing candidates per input sentence, from 1 to 10 possible rephrasings of the original sentence.  Seeks to preserve original semantic meaning in rephrased output candidates.  Consumes 1-2 API calls per output rephrasing option generated, per sentence.
        /// </summary>
        /// <exception cref="Cloudmersive.APIClient.NET.NLP.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="input">Input rephrase request</param>
        /// <returns>RephraseResponse</returns>
        public RephraseResponse RephraseEnglishRephraseSentenceBySentence(RephraseRequest input)
        {
            ApiResponse <RephraseResponse> localVarResponse = RephraseEnglishRephraseSentenceBySentenceWithHttpInfo(input);

            return(localVarResponse.Data);
        }