/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the cloudsearchdomain-2013-01-01.normal.json service model.
*/
using System;
using System.Runtime.ExceptionServices;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Net;
using Amazon.CloudSearchDomain.Model;
using Amazon.CloudSearchDomain.Model.Internal.MarshallTransformations;
using Amazon.CloudSearchDomain.Internal;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
using Amazon.Runtime.Internal.Auth;
using Amazon.Runtime.Internal.Transform;
namespace Amazon.CloudSearchDomain
{
///
/// Implementation for accessing CloudSearchDomain
///
/// You use the AmazonCloudSearch2013 API to upload documents to a search domain and search
/// those documents.
///
///
///
/// The endpoints for submitting UploadDocuments
, Search
, and
/// Suggest
requests are domain-specific. To get the endpoints for your domain,
/// use the Amazon CloudSearch configuration service DescribeDomains
action.
/// The domain endpoints are also displayed on the domain dashboard in the Amazon CloudSearch
/// console. You submit suggest requests to the search endpoint.
///
///
///
/// For more information, see the Amazon
/// CloudSearch Developer Guide.
///
///
public partial class AmazonCloudSearchDomainClient : AmazonServiceClient, IAmazonCloudSearchDomain
{
private static IServiceMetadata serviceMetadata = new AmazonCloudSearchDomainMetadata();
#region Overrides
///
/// Creates the signer for the service.
///
protected override AbstractAWSSigner CreateSigner()
{
return new AWS4Signer();
}
///
/// Customizes the runtime pipeline.
///
/// Runtime pipeline for the current client.
protected override void CustomizeRuntimePipeline(RuntimePipeline pipeline)
{
pipeline.AddHandlerBefore(new Amazon.CloudSearchDomain.Internal.ProcessRequestHandler());
pipeline.AddHandlerBefore(new Amazon.CloudSearchDomain.Internal.ValidationResponseHandler());
pipeline.AddHandlerBefore(new Amazon.CloudSearchDomain.Internal.ProcessExceptionHandler());
pipeline.RemoveHandler();
pipeline.AddHandlerAfter(new AmazonCloudSearchDomainEndpointResolver());
}
///
/// Capture metadata for the service.
///
protected override IServiceMetadata ServiceMetadata
{
get
{
return serviceMetadata;
}
}
#endregion
#region Dispose
///
/// Disposes the service client.
///
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
}
#endregion
#region Search
internal virtual SearchResponse Search(SearchRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = SearchRequestMarshaller.Instance;
options.ResponseUnmarshaller = SearchResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Retrieves a list of documents that match the specified search criteria. How you specify
/// the search criteria depends on which query parser you use. Amazon CloudSearch supports
/// four query parsers:
///
/// simple
: search all text
and text-array
/// fields for the specified string. Search for phrases, individual terms, and prefixes.
/// structured
: search specific fields, construct compound queries
/// using Boolean operators, and use advanced features such as term boosting and proximity
/// searching. lucene
: specify search criteria using the Apache
/// Lucene query parser syntax. dismax
: specify search criteria
/// using the simplified subset of the Apache Lucene query parser syntax defined by the
/// DisMax query parser.
///
/// For more information, see Searching
/// Your Data in the Amazon CloudSearch Developer Guide.
///
///
///
/// The endpoint for submitting Search
requests is domain-specific. You submit
/// search requests to a domain's search endpoint. To get the search endpoint for your
/// domain, use the Amazon CloudSearch configuration service DescribeDomains
/// action. A domain's endpoints are also displayed on the domain dashboard in the Amazon
/// CloudSearch console.
///
///
/// Container for the necessary parameters to execute the Search service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the Search service method, as returned by CloudSearchDomain.
///
/// Information about any problems encountered while processing a search request.
///
/// REST API Reference for Search Operation
public virtual Task SearchAsync(SearchRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = SearchRequestMarshaller.Instance;
options.ResponseUnmarshaller = SearchResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region Suggest
internal virtual SuggestResponse Suggest(SuggestRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = SuggestRequestMarshaller.Instance;
options.ResponseUnmarshaller = SuggestResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Retrieves autocomplete suggestions for a partial query string. You can use suggestions
/// enable you to display likely matches before users finish typing. In Amazon CloudSearch,
/// suggestions are based on the contents of a particular text field. When you request
/// suggestions, Amazon CloudSearch finds all of the documents whose values in the suggester
/// field start with the specified query string. The beginning of the field must match
/// the query string to be considered a match.
///
///
///
/// For more information about configuring suggesters and retrieving suggestions, see
/// Getting
/// Suggestions in the Amazon CloudSearch Developer Guide.
///
///
///
/// The endpoint for submitting Suggest
requests is domain-specific. You
/// submit suggest requests to a domain's search endpoint. To get the search endpoint
/// for your domain, use the Amazon CloudSearch configuration service DescribeDomains
/// action. A domain's endpoints are also displayed on the domain dashboard in the Amazon
/// CloudSearch console.
///
///
/// Container for the necessary parameters to execute the Suggest service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the Suggest service method, as returned by CloudSearchDomain.
///
/// Information about any problems encountered while processing a search request.
///
/// REST API Reference for Suggest Operation
public virtual Task SuggestAsync(SuggestRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = SuggestRequestMarshaller.Instance;
options.ResponseUnmarshaller = SuggestResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region UploadDocuments
internal virtual UploadDocumentsResponse UploadDocuments(UploadDocumentsRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = UploadDocumentsRequestMarshaller.Instance;
options.ResponseUnmarshaller = UploadDocumentsResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Posts a batch of documents to a search domain for indexing. A document batch is a
/// collection of add and delete operations that represent the documents you want to add,
/// update, or delete from your domain. Batches can be described in either JSON or XML.
/// Each item that you want Amazon CloudSearch to return as a search result (such as a
/// product) is represented as a document. Every document has a unique ID and one or more
/// fields that contain the data that you want to search and return in results. Individual
/// documents cannot contain more than 1 MB of data. The entire batch cannot exceed 5
/// MB. To get the best possible upload performance, group add and delete operations in
/// batches that are close the 5 MB limit. Submitting a large volume of single-document
/// batches can overload a domain's document service.
///
///
///
/// The endpoint for submitting UploadDocuments
requests is domain-specific.
/// To get the document endpoint for your domain, use the Amazon CloudSearch configuration
/// service DescribeDomains
action. A domain's endpoints are also displayed
/// on the domain dashboard in the Amazon CloudSearch console.
///
///
///
/// For more information about formatting your data for Amazon CloudSearch, see Preparing
/// Your Data in the Amazon CloudSearch Developer Guide. For more information
/// about uploading data for indexing, see Uploading
/// Data in the Amazon CloudSearch Developer Guide.
///
///
/// Container for the necessary parameters to execute the UploadDocuments service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the UploadDocuments service method, as returned by CloudSearchDomain.
///
/// Information about any problems encountered while processing an upload request.
///
/// REST API Reference for UploadDocuments Operation
public virtual Task UploadDocumentsAsync(UploadDocumentsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = UploadDocumentsRequestMarshaller.Instance;
options.ResponseUnmarshaller = UploadDocumentsResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
}
}