Skip to content

Commit b03ebfe

Browse files
committed
feat(Discovery): Add getAutocompletion method
This only works in the Cloud Pak for Data version of Discovery
1 parent 617cdf7 commit b03ebfe

File tree

3 files changed

+310
-0
lines changed

3 files changed

+310
-0
lines changed

discovery/src/main/java/com/ibm/watson/discovery/v1/Discovery.java

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.ibm.watson.discovery.v1.model.AddDocumentOptions;
2626
import com.ibm.watson.discovery.v1.model.AddTrainingDataOptions;
2727
import com.ibm.watson.discovery.v1.model.Collection;
28+
import com.ibm.watson.discovery.v1.model.Completions;
2829
import com.ibm.watson.discovery.v1.model.Configuration;
2930
import com.ibm.watson.discovery.v1.model.CreateCollectionOptions;
3031
import com.ibm.watson.discovery.v1.model.CreateConfigurationOptions;
@@ -66,6 +67,7 @@
6667
import com.ibm.watson.discovery.v1.model.Gateway;
6768
import com.ibm.watson.discovery.v1.model.GatewayDelete;
6869
import com.ibm.watson.discovery.v1.model.GatewayList;
70+
import com.ibm.watson.discovery.v1.model.GetAutocompletionOptions;
6971
import com.ibm.watson.discovery.v1.model.GetCollectionOptions;
7072
import com.ibm.watson.discovery.v1.model.GetConfigurationOptions;
7173
import com.ibm.watson.discovery.v1.model.GetCredentialsOptions;
@@ -256,6 +258,7 @@ public ServiceCall<Environment> getEnvironment(GetEnvironmentOptions getEnvironm
256258
builder.header(header.getKey(), header.getValue());
257259
}
258260
builder.header("Accept", "application/json");
261+
259262
ResponseConverter<Environment> responseConverter = ResponseConverterUtils.getValue(
260263
new com.google.gson.reflect.TypeToken<Environment>() {
261264
}.getType());
@@ -320,6 +323,7 @@ public ServiceCall<DeleteEnvironmentResponse> deleteEnvironment(DeleteEnvironmen
320323
builder.header(header.getKey(), header.getValue());
321324
}
322325
builder.header("Accept", "application/json");
326+
323327
ResponseConverter<DeleteEnvironmentResponse> responseConverter = ResponseConverterUtils.getValue(
324328
new com.google.gson.reflect.TypeToken<DeleteEnvironmentResponse>() {
325329
}.getType());
@@ -461,6 +465,7 @@ public ServiceCall<Configuration> getConfiguration(GetConfigurationOptions getCo
461465
builder.header(header.getKey(), header.getValue());
462466
}
463467
builder.header("Accept", "application/json");
468+
464469
ResponseConverter<Configuration> responseConverter = ResponseConverterUtils.getValue(
465470
new com.google.gson.reflect.TypeToken<Configuration>() {
466471
}.getType());
@@ -549,6 +554,7 @@ public ServiceCall<DeleteConfigurationResponse> deleteConfiguration(
549554
builder.header(header.getKey(), header.getValue());
550555
}
551556
builder.header("Accept", "application/json");
557+
552558
ResponseConverter<DeleteConfigurationResponse> responseConverter = ResponseConverterUtils.getValue(
553559
new com.google.gson.reflect.TypeToken<DeleteConfigurationResponse>() {
554560
}.getType());
@@ -641,6 +647,7 @@ public ServiceCall<Collection> getCollection(GetCollectionOptions getCollectionO
641647
builder.header(header.getKey(), header.getValue());
642648
}
643649
builder.header("Accept", "application/json");
650+
644651
ResponseConverter<Collection> responseConverter = ResponseConverterUtils.getValue(
645652
new com.google.gson.reflect.TypeToken<Collection>() {
646653
}.getType());
@@ -702,6 +709,7 @@ public ServiceCall<DeleteCollectionResponse> deleteCollection(DeleteCollectionOp
702709
builder.header(header.getKey(), header.getValue());
703710
}
704711
builder.header("Accept", "application/json");
712+
705713
ResponseConverter<DeleteCollectionResponse> responseConverter = ResponseConverterUtils.getValue(
706714
new com.google.gson.reflect.TypeToken<DeleteCollectionResponse>() {
707715
}.getType());
@@ -731,6 +739,7 @@ public ServiceCall<ListCollectionFieldsResponse> listCollectionFields(
731739
builder.header(header.getKey(), header.getValue());
732740
}
733741
builder.header("Accept", "application/json");
742+
734743
ResponseConverter<ListCollectionFieldsResponse> responseConverter = ResponseConverterUtils.getValue(
735744
new com.google.gson.reflect.TypeToken<ListCollectionFieldsResponse>() {
736745
}.getType());
@@ -759,6 +768,7 @@ public ServiceCall<Expansions> listExpansions(ListExpansionsOptions listExpansio
759768
builder.header(header.getKey(), header.getValue());
760769
}
761770
builder.header("Accept", "application/json");
771+
762772
ResponseConverter<Expansions> responseConverter = ResponseConverterUtils.getValue(
763773
new com.google.gson.reflect.TypeToken<Expansions>() {
764774
}.getType());
@@ -818,6 +828,7 @@ public ServiceCall<Void> deleteExpansions(DeleteExpansionsOptions deleteExpansio
818828
for (Entry<String, String> header : sdkHeaders.entrySet()) {
819829
builder.header(header.getKey(), header.getValue());
820830
}
831+
821832
ResponseConverter<Void> responseConverter = ResponseConverterUtils.getVoid();
822833
return createServiceCall(builder.build(), responseConverter);
823834
}
@@ -846,6 +857,7 @@ public ServiceCall<TokenDictStatusResponse> getTokenizationDictionaryStatus(
846857
builder.header(header.getKey(), header.getValue());
847858
}
848859
builder.header("Accept", "application/json");
860+
849861
ResponseConverter<TokenDictStatusResponse> responseConverter = ResponseConverterUtils.getValue(
850862
new com.google.gson.reflect.TypeToken<TokenDictStatusResponse>() {
851863
}.getType());
@@ -911,6 +923,7 @@ public ServiceCall<Void> deleteTokenizationDictionary(
911923
for (Entry<String, String> header : sdkHeaders.entrySet()) {
912924
builder.header(header.getKey(), header.getValue());
913925
}
926+
914927
ResponseConverter<Void> responseConverter = ResponseConverterUtils.getVoid();
915928
return createServiceCall(builder.build(), responseConverter);
916929
}
@@ -938,6 +951,7 @@ public ServiceCall<TokenDictStatusResponse> getStopwordListStatus(
938951
builder.header(header.getKey(), header.getValue());
939952
}
940953
builder.header("Accept", "application/json");
954+
941955
ResponseConverter<TokenDictStatusResponse> responseConverter = ResponseConverterUtils.getValue(
942956
new com.google.gson.reflect.TypeToken<TokenDictStatusResponse>() {
943957
}.getType());
@@ -998,6 +1012,7 @@ public ServiceCall<Void> deleteStopwordList(DeleteStopwordListOptions deleteStop
9981012
for (Entry<String, String> header : sdkHeaders.entrySet()) {
9991013
builder.header(header.getKey(), header.getValue());
10001014
}
1015+
10011016
ResponseConverter<Void> responseConverter = ResponseConverterUtils.getVoid();
10021017
return createServiceCall(builder.build(), responseConverter);
10031018
}
@@ -1087,6 +1102,7 @@ public ServiceCall<DocumentStatus> getDocumentStatus(GetDocumentStatusOptions ge
10871102
builder.header(header.getKey(), header.getValue());
10881103
}
10891104
builder.header("Accept", "application/json");
1105+
10901106
ResponseConverter<DocumentStatus> responseConverter = ResponseConverterUtils.getValue(
10911107
new com.google.gson.reflect.TypeToken<DocumentStatus>() {
10921108
}.getType());
@@ -1161,6 +1177,7 @@ public ServiceCall<DeleteDocumentResponse> deleteDocument(DeleteDocumentOptions
11611177
builder.header(header.getKey(), header.getValue());
11621178
}
11631179
builder.header("Accept", "application/json");
1180+
11641181
ResponseConverter<DeleteDocumentResponse> responseConverter = ResponseConverterUtils.getValue(
11651182
new com.google.gson.reflect.TypeToken<DeleteDocumentResponse>() {
11661183
}.getType());
@@ -1250,6 +1267,9 @@ public ServiceCall<QueryResponse> query(QueryOptions queryOptions) {
12501267
if (queryOptions.bias() != null) {
12511268
contentJson.addProperty("bias", queryOptions.bias());
12521269
}
1270+
if (queryOptions.spellingSuggestions() != null) {
1271+
contentJson.addProperty("spelling_suggestions", queryOptions.spellingSuggestions());
1272+
}
12531273
builder.bodyJson(contentJson);
12541274
ResponseConverter<QueryResponse> responseConverter = ResponseConverterUtils.getValue(
12551275
new com.google.gson.reflect.TypeToken<QueryResponse>() {
@@ -1503,6 +1523,43 @@ public ServiceCall<QueryNoticesResponse> federatedQueryNotices(
15031523
return createServiceCall(builder.build(), responseConverter);
15041524
}
15051525

1526+
/**
1527+
* Get Autocomplete Suggestions.
1528+
*
1529+
* Returns completion query suggestions for the specified prefix. /n/n **Important:** this method is only valid when
1530+
* using the Cloud Pak version of Discovery.
1531+
*
1532+
* @param getAutocompletionOptions the {@link GetAutocompletionOptions} containing the options for the call
1533+
* @return a {@link ServiceCall} with a response type of {@link Completions}
1534+
*/
1535+
public ServiceCall<Completions> getAutocompletion(GetAutocompletionOptions getAutocompletionOptions) {
1536+
com.ibm.cloud.sdk.core.util.Validator.notNull(getAutocompletionOptions,
1537+
"getAutocompletionOptions cannot be null");
1538+
String[] pathSegments = { "v1/environments", "collections", "autocompletion" };
1539+
String[] pathParameters = { getAutocompletionOptions.environmentId(), getAutocompletionOptions.collectionId() };
1540+
RequestBuilder builder = RequestBuilder.get(RequestBuilder.constructHttpUrl(getServiceUrl(), pathSegments,
1541+
pathParameters));
1542+
builder.query("version", versionDate);
1543+
Map<String, String> sdkHeaders = SdkCommon.getSdkHeaders("discovery", "v1", "getAutocompletion");
1544+
for (Entry<String, String> header : sdkHeaders.entrySet()) {
1545+
builder.header(header.getKey(), header.getValue());
1546+
}
1547+
builder.header("Accept", "application/json");
1548+
if (getAutocompletionOptions.field() != null) {
1549+
builder.query("field", getAutocompletionOptions.field());
1550+
}
1551+
if (getAutocompletionOptions.prefix() != null) {
1552+
builder.query("prefix", getAutocompletionOptions.prefix());
1553+
}
1554+
if (getAutocompletionOptions.count() != null) {
1555+
builder.query("count", String.valueOf(getAutocompletionOptions.count()));
1556+
}
1557+
ResponseConverter<Completions> responseConverter = ResponseConverterUtils.getValue(
1558+
new com.google.gson.reflect.TypeToken<Completions>() {
1559+
}.getType());
1560+
return createServiceCall(builder.build(), responseConverter);
1561+
}
1562+
15061563
/**
15071564
* List training data.
15081565
*
@@ -1524,6 +1581,7 @@ public ServiceCall<TrainingDataSet> listTrainingData(ListTrainingDataOptions lis
15241581
builder.header(header.getKey(), header.getValue());
15251582
}
15261583
builder.header("Accept", "application/json");
1584+
15271585
ResponseConverter<TrainingDataSet> responseConverter = ResponseConverterUtils.getValue(
15281586
new com.google.gson.reflect.TypeToken<TrainingDataSet>() {
15291587
}.getType());
@@ -1590,6 +1648,7 @@ public ServiceCall<Void> deleteAllTrainingData(DeleteAllTrainingDataOptions dele
15901648
for (Entry<String, String> header : sdkHeaders.entrySet()) {
15911649
builder.header(header.getKey(), header.getValue());
15921650
}
1651+
15931652
ResponseConverter<Void> responseConverter = ResponseConverterUtils.getVoid();
15941653
return createServiceCall(builder.build(), responseConverter);
15951654
}
@@ -1616,6 +1675,7 @@ public ServiceCall<TrainingQuery> getTrainingData(GetTrainingDataOptions getTrai
16161675
builder.header(header.getKey(), header.getValue());
16171676
}
16181677
builder.header("Accept", "application/json");
1678+
16191679
ResponseConverter<TrainingQuery> responseConverter = ResponseConverterUtils.getValue(
16201680
new com.google.gson.reflect.TypeToken<TrainingQuery>() {
16211681
}.getType());
@@ -1643,6 +1703,7 @@ public ServiceCall<Void> deleteTrainingData(DeleteTrainingDataOptions deleteTrai
16431703
for (Entry<String, String> header : sdkHeaders.entrySet()) {
16441704
builder.header(header.getKey(), header.getValue());
16451705
}
1706+
16461707
ResponseConverter<Void> responseConverter = ResponseConverterUtils.getVoid();
16471708
return createServiceCall(builder.build(), responseConverter);
16481709
}
@@ -1670,6 +1731,7 @@ public ServiceCall<TrainingExampleList> listTrainingExamples(
16701731
builder.header(header.getKey(), header.getValue());
16711732
}
16721733
builder.header("Accept", "application/json");
1734+
16731735
ResponseConverter<TrainingExampleList> responseConverter = ResponseConverterUtils.getValue(
16741736
new com.google.gson.reflect.TypeToken<TrainingExampleList>() {
16751737
}.getType());
@@ -1736,6 +1798,7 @@ public ServiceCall<Void> deleteTrainingExample(DeleteTrainingExampleOptions dele
17361798
for (Entry<String, String> header : sdkHeaders.entrySet()) {
17371799
builder.header(header.getKey(), header.getValue());
17381800
}
1801+
17391802
ResponseConverter<Void> responseConverter = ResponseConverterUtils.getVoid();
17401803
return createServiceCall(builder.build(), responseConverter);
17411804
}
@@ -1798,6 +1861,7 @@ public ServiceCall<TrainingExample> getTrainingExample(GetTrainingExampleOptions
17981861
builder.header(header.getKey(), header.getValue());
17991862
}
18001863
builder.header("Accept", "application/json");
1864+
18011865
ResponseConverter<TrainingExample> responseConverter = ResponseConverterUtils.getValue(
18021866
new com.google.gson.reflect.TypeToken<TrainingExample>() {
18031867
}.getType());
@@ -2175,6 +2239,7 @@ public ServiceCall<CredentialsList> listCredentials(ListCredentialsOptions listC
21752239
builder.header(header.getKey(), header.getValue());
21762240
}
21772241
builder.header("Accept", "application/json");
2242+
21782243
ResponseConverter<CredentialsList> responseConverter = ResponseConverterUtils.getValue(
21792244
new com.google.gson.reflect.TypeToken<CredentialsList>() {
21802245
}.getType());
@@ -2247,6 +2312,7 @@ public ServiceCall<Credentials> getCredentials(GetCredentialsOptions getCredenti
22472312
builder.header(header.getKey(), header.getValue());
22482313
}
22492314
builder.header("Accept", "application/json");
2315+
22502316
ResponseConverter<Credentials> responseConverter = ResponseConverterUtils.getValue(
22512317
new com.google.gson.reflect.TypeToken<Credentials>() {
22522318
}.getType());
@@ -2315,6 +2381,7 @@ public ServiceCall<DeleteCredentials> deleteCredentials(DeleteCredentialsOptions
23152381
builder.header(header.getKey(), header.getValue());
23162382
}
23172383
builder.header("Accept", "application/json");
2384+
23182385
ResponseConverter<DeleteCredentials> responseConverter = ResponseConverterUtils.getValue(
23192386
new com.google.gson.reflect.TypeToken<DeleteCredentials>() {
23202387
}.getType());
@@ -2342,6 +2409,7 @@ public ServiceCall<GatewayList> listGateways(ListGatewaysOptions listGatewaysOpt
23422409
builder.header(header.getKey(), header.getValue());
23432410
}
23442411
builder.header("Accept", "application/json");
2412+
23452413
ResponseConverter<GatewayList> responseConverter = ResponseConverterUtils.getValue(
23462414
new com.google.gson.reflect.TypeToken<GatewayList>() {
23472415
}.getType());
@@ -2401,6 +2469,7 @@ public ServiceCall<Gateway> getGateway(GetGatewayOptions getGatewayOptions) {
24012469
builder.header(header.getKey(), header.getValue());
24022470
}
24032471
builder.header("Accept", "application/json");
2472+
24042473
ResponseConverter<Gateway> responseConverter = ResponseConverterUtils.getValue(
24052474
new com.google.gson.reflect.TypeToken<Gateway>() {
24062475
}.getType());
@@ -2428,6 +2497,7 @@ public ServiceCall<GatewayDelete> deleteGateway(DeleteGatewayOptions deleteGatew
24282497
builder.header(header.getKey(), header.getValue());
24292498
}
24302499
builder.header("Accept", "application/json");
2500+
24312501
ResponseConverter<GatewayDelete> responseConverter = ResponseConverterUtils.getValue(
24322502
new com.google.gson.reflect.TypeToken<GatewayDelete>() {
24332503
}.getType());
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* (C) Copyright IBM Corp. 2019.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
5+
* the License. You may obtain a copy of the License at
6+
*
7+
* http://www.apache.org/licenses/LICENSE-2.0
8+
*
9+
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
10+
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
11+
* specific language governing permissions and limitations under the License.
12+
*/
13+
package com.ibm.watson.discovery.v1.model;
14+
15+
import java.util.List;
16+
17+
import com.ibm.cloud.sdk.core.service.model.GenericModel;
18+
19+
/**
20+
* An object containing an array of autocompletion suggestions.
21+
*/
22+
public class Completions extends GenericModel {
23+
24+
private List<String> completions;
25+
26+
/**
27+
* Gets the completions.
28+
*
29+
* Array of autcomplete suggestion based on the provided prefix.
30+
*
31+
* @return the completions
32+
*/
33+
public List<String> getCompletions() {
34+
return completions;
35+
}
36+
}

0 commit comments

Comments
 (0)