azure_cognitiveservices_textanalytics 0.17.0 → 0.17.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. checksums.yaml +4 -4
  2. data/lib/azure_cognitiveservices_textanalytics.rb +1 -0
  3. data/lib/profiles/latest/modules/textanalytics_profile_module.rb +41 -41
  4. data/lib/v2.0/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb +16 -5
  5. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics.rb +45 -0
  6. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/batch_input.rb +56 -0
  7. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/detected_language.rb +72 -0
  8. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/entities_batch_result_item_v2dot1.rb +70 -0
  9. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/entities_batch_result_v2dot1.rb +78 -0
  10. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/entity_record_v2dot1.rb +138 -0
  11. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/error_record.rb +58 -0
  12. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/error_response.rb +81 -0
  13. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/input.rb +58 -0
  14. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/internal_error.rb +70 -0
  15. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/key_phrase_batch_result.rb +78 -0
  16. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/key_phrase_batch_result_item.rb +70 -0
  17. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/language_batch_result.rb +78 -0
  18. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/language_batch_result_item.rb +69 -0
  19. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/match_record_v2dot1.rb +71 -0
  20. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/multi_language_batch_input.rb +56 -0
  21. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/multi_language_input.rb +70 -0
  22. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/sentiment_batch_result.rb +78 -0
  23. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/models/sentiment_batch_result_item.rb +63 -0
  24. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/module_definition.rb +9 -0
  25. data/lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb +604 -0
  26. data/lib/version.rb +1 -1
  27. metadata +23 -2
@@ -0,0 +1,78 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator.
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::CognitiveServices::TextAnalytics::V2_1_preview
7
+ module Models
8
+ #
9
+ # Model object.
10
+ #
11
+ #
12
+ class SentimentBatchResult
13
+
14
+ include MsRestAzure
15
+
16
+ # @return [Array<SentimentBatchResultItem>]
17
+ attr_accessor :documents
18
+
19
+ # @return [Array<ErrorRecord>]
20
+ attr_accessor :errors
21
+
22
+
23
+ #
24
+ # Mapper for SentimentBatchResult class as Ruby Hash.
25
+ # This will be used for serialization/deserialization.
26
+ #
27
+ def self.mapper()
28
+ {
29
+ client_side_validation: true,
30
+ required: false,
31
+ serialized_name: 'SentimentBatchResult',
32
+ type: {
33
+ name: 'Composite',
34
+ class_name: 'SentimentBatchResult',
35
+ model_properties: {
36
+ documents: {
37
+ client_side_validation: true,
38
+ required: false,
39
+ read_only: true,
40
+ serialized_name: 'documents',
41
+ type: {
42
+ name: 'Sequence',
43
+ element: {
44
+ client_side_validation: true,
45
+ required: false,
46
+ serialized_name: 'SentimentBatchResultItemElementType',
47
+ type: {
48
+ name: 'Composite',
49
+ class_name: 'SentimentBatchResultItem'
50
+ }
51
+ }
52
+ }
53
+ },
54
+ errors: {
55
+ client_side_validation: true,
56
+ required: false,
57
+ read_only: true,
58
+ serialized_name: 'errors',
59
+ type: {
60
+ name: 'Sequence',
61
+ element: {
62
+ client_side_validation: true,
63
+ required: false,
64
+ serialized_name: 'ErrorRecordElementType',
65
+ type: {
66
+ name: 'Composite',
67
+ class_name: 'ErrorRecord'
68
+ }
69
+ }
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,63 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator.
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::CognitiveServices::TextAnalytics::V2_1_preview
7
+ module Models
8
+ #
9
+ # Model object.
10
+ #
11
+ #
12
+ class SentimentBatchResultItem
13
+
14
+ include MsRestAzure
15
+
16
+ # @return [Float] A decimal number between 0 and 1 denoting the sentiment
17
+ # of the document. A score above 0.7 usually refers to a positive
18
+ # document while a score below 0.3 normally has a negative connotation.
19
+ # Mid values refer to neutral text.
20
+ attr_accessor :score
21
+
22
+ # @return [String] Unique document identifier.
23
+ attr_accessor :id
24
+
25
+
26
+ #
27
+ # Mapper for SentimentBatchResultItem class as Ruby Hash.
28
+ # This will be used for serialization/deserialization.
29
+ #
30
+ def self.mapper()
31
+ {
32
+ client_side_validation: true,
33
+ required: false,
34
+ serialized_name: 'SentimentBatchResultItem',
35
+ type: {
36
+ name: 'Composite',
37
+ class_name: 'SentimentBatchResultItem',
38
+ model_properties: {
39
+ score: {
40
+ client_side_validation: true,
41
+ required: false,
42
+ read_only: true,
43
+ serialized_name: 'score',
44
+ type: {
45
+ name: 'Double'
46
+ }
47
+ },
48
+ id: {
49
+ client_side_validation: true,
50
+ required: false,
51
+ read_only: true,
52
+ serialized_name: 'id',
53
+ type: {
54
+ name: 'String'
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator.
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure end
7
+ module Azure::CognitiveServices end
8
+ module Azure::CognitiveServices::TextAnalytics end
9
+ module Azure::CognitiveServices::TextAnalytics::V2_1_preview end
@@ -0,0 +1,604 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator.
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::CognitiveServices::TextAnalytics::V2_1_preview
7
+ #
8
+ # A service client - single point of access to the REST API.
9
+ #
10
+ class TextAnalyticsClient < MsRestAzure::AzureServiceClient
11
+ include MsRestAzure
12
+ include MsRestAzure::Serialization
13
+
14
+ # @return [String] the base URI of the service.
15
+ attr_reader :base_url
16
+
17
+ # @return Credentials needed for the client to connect to Azure.
18
+ attr_reader :credentials1
19
+
20
+ # @return [String] Supported Cognitive Services endpoints (protocol and
21
+ # hostname, for example: https://westus.api.cognitive.microsoft.com).
22
+ attr_accessor :endpoint
23
+
24
+ # @return Subscription credentials which uniquely identify client
25
+ # subscription.
26
+ attr_accessor :credentials
27
+
28
+ # @return [String] The preferred language for the response.
29
+ attr_accessor :accept_language
30
+
31
+ # @return [Integer] The retry timeout in seconds for Long Running
32
+ # Operations. Default value is 30.
33
+ attr_accessor :long_running_operation_retry_timeout
34
+
35
+ # @return [Boolean] Whether a unique x-ms-client-request-id should be
36
+ # generated. When set to true a unique x-ms-client-request-id value is
37
+ # generated and included in each request. Default is true.
38
+ attr_accessor :generate_client_request_id
39
+
40
+ #
41
+ # Creates initializes a new instance of the TextAnalyticsClient class.
42
+ # @param credentials [MsRest::ServiceClientCredentials] credentials to authorize HTTP requests made by the service client.
43
+ # @param options [Array] filters to be applied to the HTTP requests.
44
+ #
45
+ def initialize(credentials = nil, options = nil)
46
+ super(credentials, options)
47
+ @base_url = '{Endpoint}/text/analytics/v2.1-preview'
48
+
49
+ fail ArgumentError, 'invalid type of credentials input parameter' unless credentials.is_a?(MsRest::ServiceClientCredentials) unless credentials.nil?
50
+ @credentials = credentials
51
+
52
+ @accept_language = 'en-US'
53
+ @long_running_operation_retry_timeout = 30
54
+ @generate_client_request_id = true
55
+ add_telemetry
56
+ end
57
+
58
+ #
59
+ # Makes a request and returns the body of the response.
60
+ # @param method [Symbol] with any of the following values :get, :put, :post, :patch, :delete.
61
+ # @param path [String] the path, relative to {base_url}.
62
+ # @param options [Hash{String=>String}] specifying any request options like :body.
63
+ # @return [Hash{String=>String}] containing the body of the response.
64
+ # Example:
65
+ #
66
+ # request_content = "{'location':'westus','tags':{'tag1':'val1','tag2':'val2'}}"
67
+ # path = "/path"
68
+ # options = {
69
+ # body: request_content,
70
+ # query_params: {'api-version' => '2016-02-01'}
71
+ # }
72
+ # result = @client.make_request(:put, path, options)
73
+ #
74
+ def make_request(method, path, options = {})
75
+ result = make_request_with_http_info(method, path, options)
76
+ result.body unless result.nil?
77
+ end
78
+
79
+ #
80
+ # Makes a request and returns the operation response.
81
+ # @param method [Symbol] with any of the following values :get, :put, :post, :patch, :delete.
82
+ # @param path [String] the path, relative to {base_url}.
83
+ # @param options [Hash{String=>String}] specifying any request options like :body.
84
+ # @return [MsRestAzure::AzureOperationResponse] Operation response containing the request, response and status.
85
+ #
86
+ def make_request_with_http_info(method, path, options = {})
87
+ result = make_request_async(method, path, options).value!
88
+ result.body = result.response.body.to_s.empty? ? nil : JSON.load(result.response.body)
89
+ result
90
+ end
91
+
92
+ #
93
+ # Makes a request asynchronously.
94
+ # @param method [Symbol] with any of the following values :get, :put, :post, :patch, :delete.
95
+ # @param path [String] the path, relative to {base_url}.
96
+ # @param options [Hash{String=>String}] specifying any request options like :body.
97
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
98
+ #
99
+ def make_request_async(method, path, options = {})
100
+ fail ArgumentError, 'method is nil' if method.nil?
101
+ fail ArgumentError, 'path is nil' if path.nil?
102
+
103
+ request_url = options[:base_url] || @base_url
104
+ if(!options[:headers].nil? && !options[:headers]['Content-Type'].nil?)
105
+ @request_headers['Content-Type'] = options[:headers]['Content-Type']
106
+ end
107
+
108
+ request_headers = @request_headers
109
+ request_headers.merge!({'accept-language' => @accept_language}) unless @accept_language.nil?
110
+ options.merge!({headers: request_headers.merge(options[:headers] || {})})
111
+ options.merge!({credentials: @credentials}) unless @credentials.nil?
112
+
113
+ super(request_url, method, path, options)
114
+ end
115
+
116
+ #
117
+ # The API returns a list of strings denoting the key talking points in the
118
+ # input text.
119
+ #
120
+ # See the <a
121
+ # href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text
122
+ # Analytics Documentation</a> for details about the languages that are
123
+ # supported by key phrase extraction.
124
+ #
125
+ # @param input [MultiLanguageBatchInput] Collection of documents to analyze.
126
+ # Documents can now contain a language field to indicate the text language
127
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
128
+ # will be added to the HTTP request.
129
+ #
130
+ # @return [KeyPhraseBatchResult] operation results.
131
+ #
132
+ def key_phrases(input, custom_headers:nil)
133
+ response = key_phrases_async(input, custom_headers:custom_headers).value!
134
+ response.body unless response.nil?
135
+ end
136
+
137
+ #
138
+ # The API returns a list of strings denoting the key talking points in the
139
+ # input text.
140
+ #
141
+ # See the <a
142
+ # href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text
143
+ # Analytics Documentation</a> for details about the languages that are
144
+ # supported by key phrase extraction.
145
+ #
146
+ # @param input [MultiLanguageBatchInput] Collection of documents to analyze.
147
+ # Documents can now contain a language field to indicate the text language
148
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
149
+ # will be added to the HTTP request.
150
+ #
151
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
152
+ #
153
+ def key_phrases_with_http_info(input, custom_headers:nil)
154
+ key_phrases_async(input, custom_headers:custom_headers).value!
155
+ end
156
+
157
+ #
158
+ # The API returns a list of strings denoting the key talking points in the
159
+ # input text.
160
+ #
161
+ # See the <a
162
+ # href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text
163
+ # Analytics Documentation</a> for details about the languages that are
164
+ # supported by key phrase extraction.
165
+ #
166
+ # @param input [MultiLanguageBatchInput] Collection of documents to analyze.
167
+ # Documents can now contain a language field to indicate the text language
168
+ # @param [Hash{String => String}] A hash of custom headers that will be added
169
+ # to the HTTP request.
170
+ #
171
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
172
+ #
173
+ def key_phrases_async(input, custom_headers:nil)
174
+ fail ArgumentError, 'endpoint is nil' if endpoint.nil?
175
+ fail ArgumentError, 'input is nil' if input.nil?
176
+
177
+
178
+ request_headers = {}
179
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
180
+
181
+ # Set Headers
182
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
183
+ request_headers['accept-language'] = accept_language unless accept_language.nil?
184
+
185
+ # Serialize Request
186
+ request_mapper = Azure::CognitiveServices::TextAnalytics::V2_1_preview::Models::MultiLanguageBatchInput.mapper()
187
+ request_content = self.serialize(request_mapper, input)
188
+ request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil
189
+
190
+ path_template = 'keyPhrases'
191
+
192
+ request_url = @base_url || self.base_url
193
+ request_url = request_url.gsub('{Endpoint}', endpoint)
194
+
195
+ options = {
196
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
197
+ body: request_content,
198
+ headers: request_headers.merge(custom_headers || {}),
199
+ base_url: request_url
200
+ }
201
+ promise = self.make_request_async(:post, path_template, options)
202
+
203
+ promise = promise.then do |result|
204
+ http_response = result.response
205
+ status_code = http_response.status
206
+ response_content = http_response.body
207
+ unless status_code == 200
208
+ error_model = JSON.load(response_content)
209
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
210
+ end
211
+
212
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
213
+ # Deserialize Response
214
+ if status_code == 200
215
+ begin
216
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
217
+ result_mapper = Azure::CognitiveServices::TextAnalytics::V2_1_preview::Models::KeyPhraseBatchResult.mapper()
218
+ result.body = self.deserialize(result_mapper, parsed_response)
219
+ rescue Exception => e
220
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
221
+ end
222
+ end
223
+
224
+ result
225
+ end
226
+
227
+ promise.execute
228
+ end
229
+
230
+ #
231
+ # The API returns the detected language and a numeric score between 0 and 1.
232
+ #
233
+ # Scores close to 1 indicate 100% certainty that the identified language is
234
+ # true. A total of 120 languages are supported.
235
+ #
236
+ # @param input [BatchInput] Collection of documents to analyze.
237
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
238
+ # will be added to the HTTP request.
239
+ #
240
+ # @return [LanguageBatchResult] operation results.
241
+ #
242
+ def detect_language(input, custom_headers:nil)
243
+ response = detect_language_async(input, custom_headers:custom_headers).value!
244
+ response.body unless response.nil?
245
+ end
246
+
247
+ #
248
+ # The API returns the detected language and a numeric score between 0 and 1.
249
+ #
250
+ # Scores close to 1 indicate 100% certainty that the identified language is
251
+ # true. A total of 120 languages are supported.
252
+ #
253
+ # @param input [BatchInput] Collection of documents to analyze.
254
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
255
+ # will be added to the HTTP request.
256
+ #
257
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
258
+ #
259
+ def detect_language_with_http_info(input, custom_headers:nil)
260
+ detect_language_async(input, custom_headers:custom_headers).value!
261
+ end
262
+
263
+ #
264
+ # The API returns the detected language and a numeric score between 0 and 1.
265
+ #
266
+ # Scores close to 1 indicate 100% certainty that the identified language is
267
+ # true. A total of 120 languages are supported.
268
+ #
269
+ # @param input [BatchInput] Collection of documents to analyze.
270
+ # @param [Hash{String => String}] A hash of custom headers that will be added
271
+ # to the HTTP request.
272
+ #
273
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
274
+ #
275
+ def detect_language_async(input, custom_headers:nil)
276
+ fail ArgumentError, 'endpoint is nil' if endpoint.nil?
277
+ fail ArgumentError, 'input is nil' if input.nil?
278
+
279
+
280
+ request_headers = {}
281
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
282
+
283
+ # Set Headers
284
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
285
+ request_headers['accept-language'] = accept_language unless accept_language.nil?
286
+
287
+ # Serialize Request
288
+ request_mapper = Azure::CognitiveServices::TextAnalytics::V2_1_preview::Models::BatchInput.mapper()
289
+ request_content = self.serialize(request_mapper, input)
290
+ request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil
291
+
292
+ path_template = 'languages'
293
+
294
+ request_url = @base_url || self.base_url
295
+ request_url = request_url.gsub('{Endpoint}', endpoint)
296
+
297
+ options = {
298
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
299
+ body: request_content,
300
+ headers: request_headers.merge(custom_headers || {}),
301
+ base_url: request_url
302
+ }
303
+ promise = self.make_request_async(:post, path_template, options)
304
+
305
+ promise = promise.then do |result|
306
+ http_response = result.response
307
+ status_code = http_response.status
308
+ response_content = http_response.body
309
+ unless status_code == 200
310
+ error_model = JSON.load(response_content)
311
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
312
+ end
313
+
314
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
315
+ # Deserialize Response
316
+ if status_code == 200
317
+ begin
318
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
319
+ result_mapper = Azure::CognitiveServices::TextAnalytics::V2_1_preview::Models::LanguageBatchResult.mapper()
320
+ result.body = self.deserialize(result_mapper, parsed_response)
321
+ rescue Exception => e
322
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
323
+ end
324
+ end
325
+
326
+ result
327
+ end
328
+
329
+ promise.execute
330
+ end
331
+
332
+ #
333
+ # The API returns a numeric score between 0 and 1.
334
+ #
335
+ # Scores close to 1 indicate positive sentiment, while scores close to 0
336
+ # indicate negative sentiment. A score of 0.5 indicates the lack of sentiment
337
+ # (e.g. a factoid statement). See the <a
338
+ # href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text
339
+ # Analytics Documentation</a> for details about the languages that are
340
+ # supported by sentiment analysis.
341
+ #
342
+ # @param input [MultiLanguageBatchInput] Collection of documents to analyze.
343
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
344
+ # will be added to the HTTP request.
345
+ #
346
+ # @return [SentimentBatchResult] operation results.
347
+ #
348
+ def sentiment(input, custom_headers:nil)
349
+ response = sentiment_async(input, custom_headers:custom_headers).value!
350
+ response.body unless response.nil?
351
+ end
352
+
353
+ #
354
+ # The API returns a numeric score between 0 and 1.
355
+ #
356
+ # Scores close to 1 indicate positive sentiment, while scores close to 0
357
+ # indicate negative sentiment. A score of 0.5 indicates the lack of sentiment
358
+ # (e.g. a factoid statement). See the <a
359
+ # href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text
360
+ # Analytics Documentation</a> for details about the languages that are
361
+ # supported by sentiment analysis.
362
+ #
363
+ # @param input [MultiLanguageBatchInput] Collection of documents to analyze.
364
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
365
+ # will be added to the HTTP request.
366
+ #
367
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
368
+ #
369
+ def sentiment_with_http_info(input, custom_headers:nil)
370
+ sentiment_async(input, custom_headers:custom_headers).value!
371
+ end
372
+
373
+ #
374
+ # The API returns a numeric score between 0 and 1.
375
+ #
376
+ # Scores close to 1 indicate positive sentiment, while scores close to 0
377
+ # indicate negative sentiment. A score of 0.5 indicates the lack of sentiment
378
+ # (e.g. a factoid statement). See the <a
379
+ # href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text
380
+ # Analytics Documentation</a> for details about the languages that are
381
+ # supported by sentiment analysis.
382
+ #
383
+ # @param input [MultiLanguageBatchInput] Collection of documents to analyze.
384
+ # @param [Hash{String => String}] A hash of custom headers that will be added
385
+ # to the HTTP request.
386
+ #
387
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
388
+ #
389
+ def sentiment_async(input, custom_headers:nil)
390
+ fail ArgumentError, 'endpoint is nil' if endpoint.nil?
391
+ fail ArgumentError, 'input is nil' if input.nil?
392
+
393
+
394
+ request_headers = {}
395
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
396
+
397
+ # Set Headers
398
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
399
+ request_headers['accept-language'] = accept_language unless accept_language.nil?
400
+
401
+ # Serialize Request
402
+ request_mapper = Azure::CognitiveServices::TextAnalytics::V2_1_preview::Models::MultiLanguageBatchInput.mapper()
403
+ request_content = self.serialize(request_mapper, input)
404
+ request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil
405
+
406
+ path_template = 'sentiment'
407
+
408
+ request_url = @base_url || self.base_url
409
+ request_url = request_url.gsub('{Endpoint}', endpoint)
410
+
411
+ options = {
412
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
413
+ body: request_content,
414
+ headers: request_headers.merge(custom_headers || {}),
415
+ base_url: request_url
416
+ }
417
+ promise = self.make_request_async(:post, path_template, options)
418
+
419
+ promise = promise.then do |result|
420
+ http_response = result.response
421
+ status_code = http_response.status
422
+ response_content = http_response.body
423
+ unless status_code == 200
424
+ error_model = JSON.load(response_content)
425
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
426
+ end
427
+
428
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
429
+ # Deserialize Response
430
+ if status_code == 200
431
+ begin
432
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
433
+ result_mapper = Azure::CognitiveServices::TextAnalytics::V2_1_preview::Models::SentimentBatchResult.mapper()
434
+ result.body = self.deserialize(result_mapper, parsed_response)
435
+ rescue Exception => e
436
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
437
+ end
438
+ end
439
+
440
+ result
441
+ end
442
+
443
+ promise.execute
444
+ end
445
+
446
+ #
447
+ # The API returns a list of recognized entities in a given document.
448
+ #
449
+ # The API returns a list of recognized entities in a given document. To get
450
+ # even more information on each recognized entity we recommend using the Bing
451
+ # Entity Search API by querying for the recognized entities names. See the <a
452
+ # href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/text-analytics-supported-languages">Supported
453
+ # languages in Text Analytics API</a> for the list of enabled languages.The API
454
+ # returns a list of known entities and general named entities ("Person",
455
+ # "Location", "Organization" etc) in a given document. Known entities are
456
+ # returned with Wikipedia Id and Wikipedia link, and also Bing Id which can be
457
+ # used in Bing Entity Search API. General named entities are returned with
458
+ # entity types. If a general named entity is also a known entity, then all
459
+ # information regarding it (Wikipedia Id, Bing Id, entity type etc) will be
460
+ # returned. See the <a
461
+ # href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/how-tos/text-analytics-how-to-entity-linking#supported-types-for-named-entity-recognition">Supported
462
+ # Entity Types in Text Analytics API</a> for the list of supported Entity
463
+ # Types. See the <a
464
+ # href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/text-analytics-supported-languages">Supported
465
+ # languages in Text Analytics API</a> for the list of enabled languages.
466
+ #
467
+ # @param input [MultiLanguageBatchInput] Collection of documents to analyze.
468
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
469
+ # will be added to the HTTP request.
470
+ #
471
+ # @return [EntitiesBatchResultV2dot1] operation results.
472
+ #
473
+ def entities(input, custom_headers:nil)
474
+ response = entities_async(input, custom_headers:custom_headers).value!
475
+ response.body unless response.nil?
476
+ end
477
+
478
+ #
479
+ # The API returns a list of recognized entities in a given document.
480
+ #
481
+ # The API returns a list of recognized entities in a given document. To get
482
+ # even more information on each recognized entity we recommend using the Bing
483
+ # Entity Search API by querying for the recognized entities names. See the <a
484
+ # href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/text-analytics-supported-languages">Supported
485
+ # languages in Text Analytics API</a> for the list of enabled languages.The API
486
+ # returns a list of known entities and general named entities ("Person",
487
+ # "Location", "Organization" etc) in a given document. Known entities are
488
+ # returned with Wikipedia Id and Wikipedia link, and also Bing Id which can be
489
+ # used in Bing Entity Search API. General named entities are returned with
490
+ # entity types. If a general named entity is also a known entity, then all
491
+ # information regarding it (Wikipedia Id, Bing Id, entity type etc) will be
492
+ # returned. See the <a
493
+ # href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/how-tos/text-analytics-how-to-entity-linking#supported-types-for-named-entity-recognition">Supported
494
+ # Entity Types in Text Analytics API</a> for the list of supported Entity
495
+ # Types. See the <a
496
+ # href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/text-analytics-supported-languages">Supported
497
+ # languages in Text Analytics API</a> for the list of enabled languages.
498
+ #
499
+ # @param input [MultiLanguageBatchInput] Collection of documents to analyze.
500
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
501
+ # will be added to the HTTP request.
502
+ #
503
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
504
+ #
505
+ def entities_with_http_info(input, custom_headers:nil)
506
+ entities_async(input, custom_headers:custom_headers).value!
507
+ end
508
+
509
+ #
510
+ # The API returns a list of recognized entities in a given document.
511
+ #
512
+ # The API returns a list of recognized entities in a given document. To get
513
+ # even more information on each recognized entity we recommend using the Bing
514
+ # Entity Search API by querying for the recognized entities names. See the <a
515
+ # href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/text-analytics-supported-languages">Supported
516
+ # languages in Text Analytics API</a> for the list of enabled languages.The API
517
+ # returns a list of known entities and general named entities ("Person",
518
+ # "Location", "Organization" etc) in a given document. Known entities are
519
+ # returned with Wikipedia Id and Wikipedia link, and also Bing Id which can be
520
+ # used in Bing Entity Search API. General named entities are returned with
521
+ # entity types. If a general named entity is also a known entity, then all
522
+ # information regarding it (Wikipedia Id, Bing Id, entity type etc) will be
523
+ # returned. See the <a
524
+ # href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/how-tos/text-analytics-how-to-entity-linking#supported-types-for-named-entity-recognition">Supported
525
+ # Entity Types in Text Analytics API</a> for the list of supported Entity
526
+ # Types. See the <a
527
+ # href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/text-analytics-supported-languages">Supported
528
+ # languages in Text Analytics API</a> for the list of enabled languages.
529
+ #
530
+ # @param input [MultiLanguageBatchInput] Collection of documents to analyze.
531
+ # @param [Hash{String => String}] A hash of custom headers that will be added
532
+ # to the HTTP request.
533
+ #
534
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
535
+ #
536
+ def entities_async(input, custom_headers:nil)
537
+ fail ArgumentError, 'endpoint is nil' if endpoint.nil?
538
+ fail ArgumentError, 'input is nil' if input.nil?
539
+
540
+
541
+ request_headers = {}
542
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
543
+
544
+ # Set Headers
545
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
546
+ request_headers['accept-language'] = accept_language unless accept_language.nil?
547
+
548
+ # Serialize Request
549
+ request_mapper = Azure::CognitiveServices::TextAnalytics::V2_1_preview::Models::MultiLanguageBatchInput.mapper()
550
+ request_content = self.serialize(request_mapper, input)
551
+ request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil
552
+
553
+ path_template = 'entities'
554
+
555
+ request_url = @base_url || self.base_url
556
+ request_url = request_url.gsub('{Endpoint}', endpoint)
557
+
558
+ options = {
559
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
560
+ body: request_content,
561
+ headers: request_headers.merge(custom_headers || {}),
562
+ base_url: request_url
563
+ }
564
+ promise = self.make_request_async(:post, path_template, options)
565
+
566
+ promise = promise.then do |result|
567
+ http_response = result.response
568
+ status_code = http_response.status
569
+ response_content = http_response.body
570
+ unless status_code == 200
571
+ error_model = JSON.load(response_content)
572
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
573
+ end
574
+
575
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
576
+ # Deserialize Response
577
+ if status_code == 200
578
+ begin
579
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
580
+ result_mapper = Azure::CognitiveServices::TextAnalytics::V2_1_preview::Models::EntitiesBatchResultV2dot1.mapper()
581
+ result.body = self.deserialize(result_mapper, parsed_response)
582
+ rescue Exception => e
583
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
584
+ end
585
+ end
586
+
587
+ result
588
+ end
589
+
590
+ promise.execute
591
+ end
592
+
593
+
594
+ private
595
+ #
596
+ # Adds telemetry information.
597
+ #
598
+ def add_telemetry
599
+ sdk_information = 'azure_cognitiveservices_textanalytics'
600
+ sdk_information = "#{sdk_information}/0.17.1"
601
+ add_user_agent_information(sdk_information)
602
+ end
603
+ end
604
+ end