1414
1515package com .ibm .watson .developer_cloud .spring .boot ;
1616
17+ import com .ibm .watson .developer_cloud .assistant .v1 .Assistant ;
1718import com .ibm .watson .developer_cloud .conversation .v1 .Conversation ;
1819import com .ibm .watson .developer_cloud .discovery .v1 .Discovery ;
19- import com .ibm .watson .developer_cloud .language_translator .v2 .LanguageTranslator ;
20+ import com .ibm .watson .developer_cloud .language_translator .v3 .LanguageTranslator ;
2021import com .ibm .watson .developer_cloud .natural_language_classifier .v1 .NaturalLanguageClassifier ;
2122import com .ibm .watson .developer_cloud .natural_language_understanding .v1 .NaturalLanguageUnderstanding ;
2223import com .ibm .watson .developer_cloud .personality_insights .v3 .PersonalityInsights ;
2324import com .ibm .watson .developer_cloud .service .WatsonService ;
25+ import com .ibm .watson .developer_cloud .service .security .IamOptions ;
2426import com .ibm .watson .developer_cloud .speech_to_text .v1 .SpeechToText ;
2527import com .ibm .watson .developer_cloud .text_to_speech .v1 .TextToSpeech ;
2628import com .ibm .watson .developer_cloud .tone_analyzer .v3 .ToneAnalyzer ;
3436
3537@ Configuration
3638@ EnableConfigurationProperties ({
39+ WatsonAssistantConfigurationProperties .class ,
3740 WatsonConversationConfigurationProperties .class ,
3841 WatsonDiscoveryConfigurationProperties .class ,
3942 WatsonLanguageTranslatorConfigurationProperties .class ,
@@ -54,21 +57,41 @@ private void configUrl(WatsonService service, WatsonConfigurationProperties conf
5457 }
5558 }
5659
57- private void configBasicAuth (WatsonService service , WatsonConfigurationProperties config ) {
60+ private void configAuth (WatsonService service , WatsonConfigurationProperties config ) {
61+ String iamApiKey = config .getIamApiKey ();
62+ if (iamApiKey != null ) {
63+ IamOptions options = new IamOptions .Builder ().apiKey (iamApiKey ).build ();
64+ service .setIamCredentials (options );
65+ return ;
66+ }
5867 String username = config .getUsername ();
5968 String password = config .getPassword ();
6069 if (username != null && password != null ) {
6170 service .setUsernameAndPassword (username , password );
71+ return ;
6272 }
63- }
64-
65- private void configApiKey (WatsonService service , WatsonConfigurationProperties config ) {
6673 String apiKey = config .getApiKey ();
6774 if (apiKey != null ) {
6875 service .setApiKey (apiKey );
76+ return ;
6977 }
7078 }
7179
80+ // Watson Assistant service
81+
82+ @ Autowired
83+ private WatsonAssistantConfigurationProperties assistantConfig ;
84+
85+ @ Bean
86+ @ ConditionalOnMissingBean
87+ @ ConditionalOnWatsonServiceProperties (prefix = WatsonAssistantConfigurationProperties .PREFIX )
88+ public Assistant assistant () {
89+ Assistant service = new Assistant (assistantConfig .getVersionDate ());
90+ configUrl (service , assistantConfig );
91+ configAuth (service , assistantConfig );
92+ return service ;
93+ }
94+
7295 // Watson Conversation service
7396
7497 @ Autowired
@@ -80,7 +103,7 @@ private void configApiKey(WatsonService service, WatsonConfigurationProperties c
80103 public Conversation conversation () {
81104 Conversation service = new Conversation (conversationConfig .getVersionDate ());
82105 configUrl (service , conversationConfig );
83- configBasicAuth (service , conversationConfig );
106+ configAuth (service , conversationConfig );
84107 return service ;
85108 }
86109
@@ -95,7 +118,7 @@ public Conversation conversation() {
95118 public Discovery discovery () {
96119 Discovery service = new Discovery (discoveryConfig .getVersionDate ());
97120 configUrl (service , discoveryConfig );
98- configBasicAuth (service , discoveryConfig );
121+ configAuth (service , discoveryConfig );
99122 return service ;
100123 }
101124
@@ -108,9 +131,9 @@ public Discovery discovery() {
108131 @ ConditionalOnMissingBean
109132 @ ConditionalOnWatsonServiceProperties (prefix = WatsonLanguageTranslatorConfigurationProperties .PREFIX )
110133 public LanguageTranslator languageTranslator () {
111- LanguageTranslator service = new LanguageTranslator ();
134+ LanguageTranslator service = new LanguageTranslator (ltConfig . getVersionDate () );
112135 configUrl (service , ltConfig );
113- configBasicAuth (service , ltConfig );
136+ configAuth (service , ltConfig );
114137 return service ;
115138 }
116139
@@ -125,7 +148,7 @@ public LanguageTranslator languageTranslator() {
125148 public NaturalLanguageClassifier naturalLanguageClassifier () {
126149 NaturalLanguageClassifier service = new NaturalLanguageClassifier ();
127150 configUrl (service , nlcConfig );
128- configBasicAuth (service , nlcConfig );
151+ configAuth (service , nlcConfig );
129152 return service ;
130153 }
131154
@@ -140,7 +163,7 @@ public NaturalLanguageClassifier naturalLanguageClassifier() {
140163 public NaturalLanguageUnderstanding naturalLanguageUnderstanding () {
141164 NaturalLanguageUnderstanding service = new NaturalLanguageUnderstanding (nluConfig .getVersionDate ());
142165 configUrl (service , nluConfig );
143- configBasicAuth (service , nluConfig );
166+ configAuth (service , nluConfig );
144167 return service ;
145168 }
146169
@@ -155,7 +178,7 @@ public NaturalLanguageUnderstanding naturalLanguageUnderstanding() {
155178 public PersonalityInsights personalityInsights () {
156179 PersonalityInsights service = new PersonalityInsights (piConfig .getVersionDate ());
157180 configUrl (service , piConfig );
158- configBasicAuth (service , piConfig );
181+ configAuth (service , piConfig );
159182 return service ;
160183 }
161184
@@ -170,7 +193,7 @@ public PersonalityInsights personalityInsights() {
170193 public SpeechToText speechToText () {
171194 SpeechToText service = new SpeechToText ();
172195 configUrl (service , sttConfig );
173- configBasicAuth (service , sttConfig );
196+ configAuth (service , sttConfig );
174197 return service ;
175198 }
176199
@@ -185,7 +208,7 @@ public SpeechToText speechToText() {
185208 public TextToSpeech textToSpeech () {
186209 TextToSpeech service = new TextToSpeech ();
187210 configUrl (service , ttsConfig );
188- configBasicAuth (service , ttsConfig );
211+ configAuth (service , ttsConfig );
189212 return service ;
190213 }
191214
@@ -200,7 +223,7 @@ public TextToSpeech textToSpeech() {
200223 public ToneAnalyzer toneAnalyzer () {
201224 ToneAnalyzer service = new ToneAnalyzer (taConfig .getVersionDate ());
202225 configUrl (service , taConfig );
203- configBasicAuth (service , taConfig );
226+ configAuth (service , taConfig );
204227 return service ;
205228 }
206229
@@ -215,8 +238,7 @@ public ToneAnalyzer toneAnalyzer() {
215238 public VisualRecognition visualRecognition () {
216239 VisualRecognition service = new VisualRecognition (vrConfig .getVersionDate ());
217240 configUrl (service , vrConfig );
218- configBasicAuth (service , vrConfig );
219- configApiKey (service , vrConfig );
241+ configAuth (service , vrConfig );
220242 return service ;
221243 }
222244
0 commit comments