azure_cognitiveservices_autosuggest 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/lib/1.0/generated/azure_cognitiveservices_autosuggest.rb +46 -0
  4. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/autosuggest_client.rb +700 -0
  5. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/action.rb +380 -0
  6. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/answer.rb +131 -0
  7. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/creative_work.rb +371 -0
  8. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/error.rb +109 -0
  9. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/error_code.rb +20 -0
  10. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/error_response.rb +154 -0
  11. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/identifiable.rb +62 -0
  12. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/query_context.rb +136 -0
  13. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/response.rb +150 -0
  14. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/response_base.rb +55 -0
  15. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/response_format.rb +16 -0
  16. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/safe_search.rb +17 -0
  17. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/scenario_type.rb +21 -0
  18. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/search_action.rb +407 -0
  19. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/search_kind.rb +20 -0
  20. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/search_results_answer.rb +146 -0
  21. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/suggestions.rb +166 -0
  22. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/suggestions_suggestion_group.rb +80 -0
  23. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/models/thing.rb +144 -0
  24. data/lib/1.0/generated/azure_cognitiveservices_autosuggest/module_definition.rb +9 -0
  25. data/lib/azure_cognitiveservices_autosuggest.rb +6 -0
  26. data/lib/module_definition.rb +7 -0
  27. data/lib/profiles/latest/autosuggest_latest_profile_client.rb +38 -0
  28. data/lib/profiles/latest/autosuggest_module_definition.rb +8 -0
  29. data/lib/profiles/latest/modules/autosuggest_profile_module.rb +133 -0
  30. data/lib/version.rb +7 -0
  31. metadata +148 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e96cc5588dcdd77d951ac483b84fd391538b3ad2
4
+ data.tar.gz: 14d3e668b8d0c963f0b95c1a25b55617c876176a
5
+ SHA512:
6
+ metadata.gz: 68c087f893748976655ea3ad254b5f526a763da0610a73990011cc6c5bdb61ad11cdca60630f9f6c8cdb92b67413966a529736f1b0f36d956f23cb1cac07c1c2
7
+ data.tar.gz: e66d65df321123693685f23721ccf9bd4ccd258538a4d8ffd4e071ea85f7b3d31b125a25e597bdd2a6e33b425ced39d0ee94d7a0fa5b6373f5b94a5665bb9e92
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Microsoft Corporation
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,46 @@
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
+ require 'uri'
7
+ require 'cgi'
8
+ require 'date'
9
+ require 'json'
10
+ require 'base64'
11
+ require 'erb'
12
+ require 'securerandom'
13
+ require 'time'
14
+ require 'timeliness'
15
+ require 'faraday'
16
+ require 'faraday-cookie_jar'
17
+ require 'concurrent'
18
+ require 'ms_rest'
19
+ require '1.0/generated/azure_cognitiveservices_autosuggest/module_definition'
20
+ require 'ms_rest_azure'
21
+
22
+ module Azure::CognitiveServices::Autosuggest::V1_0
23
+ autoload :AutosuggestClient, '1.0/generated/azure_cognitiveservices_autosuggest/autosuggest_client.rb'
24
+
25
+ module Models
26
+ autoload :Error, '1.0/generated/azure_cognitiveservices_autosuggest/models/error.rb'
27
+ autoload :QueryContext, '1.0/generated/azure_cognitiveservices_autosuggest/models/query_context.rb'
28
+ autoload :SuggestionsSuggestionGroup, '1.0/generated/azure_cognitiveservices_autosuggest/models/suggestions_suggestion_group.rb'
29
+ autoload :ResponseBase, '1.0/generated/azure_cognitiveservices_autosuggest/models/response_base.rb'
30
+ autoload :Answer, '1.0/generated/azure_cognitiveservices_autosuggest/models/answer.rb'
31
+ autoload :SearchResultsAnswer, '1.0/generated/azure_cognitiveservices_autosuggest/models/search_results_answer.rb'
32
+ autoload :Suggestions, '1.0/generated/azure_cognitiveservices_autosuggest/models/suggestions.rb'
33
+ autoload :Thing, '1.0/generated/azure_cognitiveservices_autosuggest/models/thing.rb'
34
+ autoload :CreativeWork, '1.0/generated/azure_cognitiveservices_autosuggest/models/creative_work.rb'
35
+ autoload :Action, '1.0/generated/azure_cognitiveservices_autosuggest/models/action.rb'
36
+ autoload :SearchAction, '1.0/generated/azure_cognitiveservices_autosuggest/models/search_action.rb'
37
+ autoload :Identifiable, '1.0/generated/azure_cognitiveservices_autosuggest/models/identifiable.rb'
38
+ autoload :Response, '1.0/generated/azure_cognitiveservices_autosuggest/models/response.rb'
39
+ autoload :ErrorResponse, '1.0/generated/azure_cognitiveservices_autosuggest/models/error_response.rb'
40
+ autoload :ScenarioType, '1.0/generated/azure_cognitiveservices_autosuggest/models/scenario_type.rb'
41
+ autoload :SearchKind, '1.0/generated/azure_cognitiveservices_autosuggest/models/search_kind.rb'
42
+ autoload :ErrorCode, '1.0/generated/azure_cognitiveservices_autosuggest/models/error_code.rb'
43
+ autoload :SafeSearch, '1.0/generated/azure_cognitiveservices_autosuggest/models/safe_search.rb'
44
+ autoload :ResponseFormat, '1.0/generated/azure_cognitiveservices_autosuggest/models/response_format.rb'
45
+ end
46
+ end
@@ -0,0 +1,700 @@
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::Autosuggest::V1_0
7
+ #
8
+ # A service client - single point of access to the REST API.
9
+ #
10
+ class AutosuggestClient < 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
+ # "https://api.cognitive.microsoft.com").
23
+ attr_accessor :endpoint
24
+
25
+ # @return Subscription credentials which uniquely identify client
26
+ # subscription.
27
+ attr_accessor :credentials
28
+
29
+ # @return [String] The preferred language for the response.
30
+ attr_accessor :accept_language
31
+
32
+ # @return [Integer] The retry timeout in seconds for Long Running
33
+ # Operations. Default value is 30.
34
+ attr_accessor :long_running_operation_retry_timeout
35
+
36
+ # @return [Boolean] Whether a unique x-ms-client-request-id should be
37
+ # generated. When set to true a unique x-ms-client-request-id value is
38
+ # generated and included in each request. Default is true.
39
+ attr_accessor :generate_client_request_id
40
+
41
+ #
42
+ # Creates initializes a new instance of the AutosuggestClient class.
43
+ # @param credentials [MsRest::ServiceClientCredentials] credentials to authorize HTTP requests made by the service client.
44
+ # @param options [Array] filters to be applied to the HTTP requests.
45
+ #
46
+ def initialize(credentials = nil, options = nil)
47
+ super(credentials, options)
48
+ @base_url = '{Endpoint}/bing/v7.0'
49
+
50
+ fail ArgumentError, 'invalid type of credentials input parameter' unless credentials.is_a?(MsRest::ServiceClientCredentials) unless credentials.nil?
51
+ @credentials = credentials
52
+
53
+ @endpoint = 'https://api.cognitive.microsoft.com'
54
+ @accept_language = 'en-US'
55
+ @long_running_operation_retry_timeout = 30
56
+ @generate_client_request_id = true
57
+ add_telemetry
58
+ end
59
+
60
+ #
61
+ # Makes a request and returns the body of the response.
62
+ # @param method [Symbol] with any of the following values :get, :put, :post, :patch, :delete.
63
+ # @param path [String] the path, relative to {base_url}.
64
+ # @param options [Hash{String=>String}] specifying any request options like :body.
65
+ # @return [Hash{String=>String}] containing the body of the response.
66
+ # Example:
67
+ #
68
+ # request_content = "{'location':'westus','tags':{'tag1':'val1','tag2':'val2'}}"
69
+ # path = "/path"
70
+ # options = {
71
+ # body: request_content,
72
+ # query_params: {'api-version' => '2016-02-01'}
73
+ # }
74
+ # result = @client.make_request(:put, path, options)
75
+ #
76
+ def make_request(method, path, options = {})
77
+ result = make_request_with_http_info(method, path, options)
78
+ result.body unless result.nil?
79
+ end
80
+
81
+ #
82
+ # Makes a request and returns the operation response.
83
+ # @param method [Symbol] with any of the following values :get, :put, :post, :patch, :delete.
84
+ # @param path [String] the path, relative to {base_url}.
85
+ # @param options [Hash{String=>String}] specifying any request options like :body.
86
+ # @return [MsRestAzure::AzureOperationResponse] Operation response containing the request, response and status.
87
+ #
88
+ def make_request_with_http_info(method, path, options = {})
89
+ result = make_request_async(method, path, options).value!
90
+ result.body = result.response.body.to_s.empty? ? nil : JSON.load(result.response.body)
91
+ result
92
+ end
93
+
94
+ #
95
+ # Makes a request asynchronously.
96
+ # @param method [Symbol] with any of the following values :get, :put, :post, :patch, :delete.
97
+ # @param path [String] the path, relative to {base_url}.
98
+ # @param options [Hash{String=>String}] specifying any request options like :body.
99
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
100
+ #
101
+ def make_request_async(method, path, options = {})
102
+ fail ArgumentError, 'method is nil' if method.nil?
103
+ fail ArgumentError, 'path is nil' if path.nil?
104
+
105
+ request_url = options[:base_url] || @base_url
106
+ if(!options[:headers].nil? && !options[:headers]['Content-Type'].nil?)
107
+ @request_headers['Content-Type'] = options[:headers]['Content-Type']
108
+ end
109
+
110
+ request_headers = @request_headers
111
+ request_headers.merge!({'accept-language' => @accept_language}) unless @accept_language.nil?
112
+ options.merge!({headers: request_headers.merge(options[:headers] || {})})
113
+ options.merge!({credentials: @credentials}) unless @credentials.nil?
114
+
115
+ super(request_url, method, path, options)
116
+ end
117
+
118
+ #
119
+ # The AutoSuggest API lets you send a search query to Bing and get back a list
120
+ # of query suggestions. This section provides technical details about the query
121
+ # parameters and headers that you use to request suggestions and the JSON
122
+ # response objects that contain them.
123
+ #
124
+ # @param query [String] The user's search term.
125
+ # @param accept_language [String] A comma-delimited list of one or more
126
+ # languages to use for user interface strings. The list is in decreasing order
127
+ # of preference. For additional information, including expected format, see
128
+ # [RFC2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). This
129
+ # header and the setLang query parameter are mutually exclusive; do not specify
130
+ # both. If you set this header, you must also specify the
131
+ # [cc](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-autosuggest-api-v7-reference#cc)
132
+ # query parameter. To determine the market to return results for, Bing uses the
133
+ # first supported language it finds from the list and combines it with the cc
134
+ # parameter value. If the list does not include a supported language, Bing
135
+ # finds the closest language and market that supports the request or it uses an
136
+ # aggregated or default market for the results. To determine the market that
137
+ # Bing used, see the BingAPIs-Market header. Use this header and the cc query
138
+ # parameter only if you specify multiple languages. Otherwise, use the
139
+ # [mkt](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-autosuggest-api-v7-reference#mkt)
140
+ # and
141
+ # [setLang](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-autosuggest-api-v7-reference#setlang)
142
+ # query parameters. A user interface string is a string that's used as a label
143
+ # in a user interface. There are few user interface strings in the JSON
144
+ # response objects. Any links to Bing.com properties in the response objects
145
+ # apply the specified language.
146
+ # @param pragma [String] By default, Bing returns cached content, if available.
147
+ # To prevent Bing from returning cached content, set the Pragma header to
148
+ # no-cache (for example, Pragma: no-cache).
149
+ # @param user_agent [String] The user agent originating the request. Bing uses
150
+ # the user agent to provide mobile users with an optimized experience. Although
151
+ # optional, you are encouraged to always specify this header. The user-agent
152
+ # should be the same string that any commonly used browser sends. For
153
+ # information about user agents, see [RFC
154
+ # 2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). The following
155
+ # are examples of user-agent strings. Windows Phone: Mozilla/5.0 (compatible;
156
+ # MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA;
157
+ # Lumia 822). Android: Mozilla / 5.0 (Linux; U; Android 2.3.5; en - us; SCH -
158
+ # I500 Build / GINGERBREAD) AppleWebKit / 533.1 (KHTML; like Gecko) Version /
159
+ # 4.0 Mobile Safari / 533.1. iPhone: Mozilla / 5.0 (iPhone; CPU iPhone OS 6_1
160
+ # like Mac OS X) AppleWebKit / 536.26 (KHTML; like Gecko) Mobile / 10B142
161
+ # iPhone4; 1 BingWeb / 3.03.1428.20120423. PC: Mozilla / 5.0 (Windows NT 6.3;
162
+ # WOW64; Trident / 7.0; Touch; rv:11.0) like Gecko. iPad: Mozilla / 5.0 (iPad;
163
+ # CPU OS 7_0 like Mac OS X) AppleWebKit / 537.51.1 (KHTML, like Gecko) Version
164
+ # / 7.0 Mobile / 11A465 Safari / 9537.53
165
+ # @param client_id [String] Bing uses this header to provide users with
166
+ # consistent behavior across Bing API calls. Bing often flights new features
167
+ # and improvements, and it uses the client ID as a key for assigning traffic on
168
+ # different flights. If you do not use the same client ID for a user across
169
+ # multiple requests, then Bing may assign the user to multiple conflicting
170
+ # flights. Being assigned to multiple conflicting flights can lead to an
171
+ # inconsistent user experience. For example, if the second request has a
172
+ # different flight assignment than the first, the experience may be unexpected.
173
+ # Also, Bing can use the client ID to tailor web results to that client ID’s
174
+ # search history, providing a richer experience for the user. Bing also uses
175
+ # this header to help improve result rankings by analyzing the activity
176
+ # generated by a client ID. The relevance improvements help with better quality
177
+ # of results delivered by Bing APIs and in turn enables higher click-through
178
+ # rates for the API consumer. IMPORTANT: Although optional, you should consider
179
+ # this header required. Persisting the client ID across multiple requests for
180
+ # the same end user and device combination enables 1) the API consumer to
181
+ # receive a consistent user experience, and 2) higher click-through rates via
182
+ # better quality of results from the Bing APIs. Each user that uses your
183
+ # application on the device must have a unique, Bing generated client ID. If
184
+ # you do not include this header in the request, Bing generates an ID and
185
+ # returns it in the X-MSEdge-ClientID response header. The only time that you
186
+ # should NOT include this header in a request is the first time the user uses
187
+ # your app on that device. Use the client ID for each Bing API request that
188
+ # your app makes for this user on the device. Persist the client ID. To persist
189
+ # the ID in a browser app, use a persistent HTTP cookie to ensure the ID is
190
+ # used across all sessions. Do not use a session cookie. For other apps such as
191
+ # mobile apps, use the device's persistent storage to persist the ID. The next
192
+ # time the user uses your app on that device, get the client ID that you
193
+ # persisted. Bing responses may or may not include this header. If the response
194
+ # includes this header, capture the client ID and use it for all subsequent
195
+ # Bing requests for the user on that device. If you include the
196
+ # X-MSEdge-ClientID, you must not include cookies in the request.
197
+ # @param client_ip [String] The IPv4 or IPv6 address of the client device. The
198
+ # IP address is used to discover the user's location. Bing uses the location
199
+ # information to determine safe search behavior. Although optional, you are
200
+ # encouraged to always specify this header and the X-Search-Location header. Do
201
+ # not obfuscate the address (for example, by changing the last octet to 0).
202
+ # Obfuscating the address results in the location not being anywhere near the
203
+ # device's actual location, which may result in Bing serving erroneous results.
204
+ # @param location [String] A semicolon-delimited list of key/value pairs that
205
+ # describe the client's geographical location. Bing uses the location
206
+ # information to determine safe search behavior and to return relevant local
207
+ # content. Specify the key/value pair as <key>:<value>. The following are the
208
+ # keys that you use to specify the user's location. lat (required): The
209
+ # latitude of the client's location, in degrees. The latitude must be greater
210
+ # than or equal to -90.0 and less than or equal to +90.0. Negative values
211
+ # indicate southern latitudes and positive values indicate northern latitudes.
212
+ # long (required): The longitude of the client's location, in degrees. The
213
+ # longitude must be greater than or equal to -180.0 and less than or equal to
214
+ # +180.0. Negative values indicate western longitudes and positive values
215
+ # indicate eastern longitudes. re (required): The radius, in meters, which
216
+ # specifies the horizontal accuracy of the coordinates. Pass the value returned
217
+ # by the device's location service. Typical values might be 22m for GPS/Wi-Fi,
218
+ # 380m for cell tower triangulation, and 18,000m for reverse IP lookup. ts
219
+ # (optional): The UTC UNIX timestamp of when the client was at the location.
220
+ # (The UNIX timestamp is the number of seconds since January 1, 1970.) head
221
+ # (optional): The client's relative heading or direction of travel. Specify the
222
+ # direction of travel as degrees from 0 through 360, counting clockwise
223
+ # relative to true north. Specify this key only if the sp key is nonzero. sp
224
+ # (optional): The horizontal velocity (speed), in meters per second, that the
225
+ # client device is traveling. alt (optional): The altitude of the client
226
+ # device, in meters. are (optional): The radius, in meters, that specifies the
227
+ # vertical accuracy of the coordinates. Specify this key only if you specify
228
+ # the alt key. Although many of the keys are optional, the more information
229
+ # that you provide, the more accurate the location results are. Although
230
+ # optional, you are encouraged to always specify the user's geographical
231
+ # location. Providing the location is especially important if the client's IP
232
+ # address does not accurately reflect the user's physical location (for
233
+ # example, if the client uses VPN). For optimal results, you should include
234
+ # this header and the X-MSEdge-ClientIP header, but at a minimum, you should
235
+ # include this header.
236
+ # @param country_code [String] A 2-character country code of the country where
237
+ # the results come from. This API supports only the United States market. If
238
+ # you specify this query parameter, it must be set to us. If you set this
239
+ # parameter, you must also specify the Accept-Language header. Bing uses the
240
+ # first supported language it finds from the languages list, and combine that
241
+ # language with the country code that you specify to determine the market to
242
+ # return results for. If the languages list does not include a supported
243
+ # language, Bing finds the closest language and market that supports the
244
+ # request, or it may use an aggregated or default market for the results
245
+ # instead of a specified one. You should use this query parameter and the
246
+ # Accept-Language query parameter only if you specify multiple languages;
247
+ # otherwise, you should use the mkt and setLang query parameters. This
248
+ # parameter and the mkt query parameter are mutually exclusive—do not specify
249
+ # both.
250
+ # @param market [String] The market where the results come from. You are
251
+ # strongly encouraged to always specify the market, if known. Specifying the
252
+ # market helps Bing route the request and return an appropriate and optimal
253
+ # response. This parameter and the cc query parameter are mutually exclusive—do
254
+ # not specify both.
255
+ # @param safe_search [SafeSearch] Filter suggestions for adult content. The
256
+ # following are the possible filter values. Off: Return suggestions with adult
257
+ # text, images, or videos. Moderate: Return suggestion with adult text but not
258
+ # adult images or videos. Strict: Do not return news articles with adult text,
259
+ # images, or videos. If the request comes from a market that Bing's adult
260
+ # policy requires that safeSearch is set to Strict, Bing ignores the safeSearch
261
+ # value and uses Strict. If you use the site: query operator, there is the
262
+ # chance that the response may contain adult content regardless of what the
263
+ # safeSearch query parameter is set to. Use site: only if you are aware of the
264
+ # content on the site and your scenario supports the possibility of adult
265
+ # content. Possible values include: 'Off', 'Moderate', 'Strict'
266
+ # @param set_lang [String] The language to use for user interface strings.
267
+ # Specify the language using the ISO 639-1 2-letter language code. For example,
268
+ # the language code for English is EN. The default is EN (English). Although
269
+ # optional, you should always specify the language. Typically, you set setLang
270
+ # to the same language specified by mkt unless the user wants the user
271
+ # interface strings displayed in a different language. This parameter and the
272
+ # Accept-Language header are mutually exclusive; do not specify both. A user
273
+ # interface string is a string that's used as a label in a user interface.
274
+ # There are few user interface strings in the JSON response objects. Also, any
275
+ # links to Bing.com properties in the response objects apply the specified
276
+ # language.
277
+ # @param response_format [Array<ResponseFormat>] The media type to use for the
278
+ # response. The following are the possible case-insensitive values: JSON,
279
+ # JSONLD. The default is JSON. If you specify JSONLD, the response body
280
+ # includes JSON-LD objects that contain the search results.
281
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
282
+ # will be added to the HTTP request.
283
+ #
284
+ # @return [Suggestions] operation results.
285
+ #
286
+ def auto_suggest(query, accept_language:nil, pragma:nil, user_agent:nil, client_id:nil, client_ip:nil, location:nil, country_code:nil, market:'en-us', safe_search:nil, set_lang:nil, response_format:nil, custom_headers:nil)
287
+ response = auto_suggest_async(query, accept_language:accept_language, pragma:pragma, user_agent:user_agent, client_id:client_id, client_ip:client_ip, location:location, country_code:country_code, market:market, safe_search:safe_search, set_lang:set_lang, response_format:response_format, custom_headers:custom_headers).value!
288
+ response.body unless response.nil?
289
+ end
290
+
291
+ #
292
+ # The AutoSuggest API lets you send a search query to Bing and get back a list
293
+ # of query suggestions. This section provides technical details about the query
294
+ # parameters and headers that you use to request suggestions and the JSON
295
+ # response objects that contain them.
296
+ #
297
+ # @param query [String] The user's search term.
298
+ # @param accept_language [String] A comma-delimited list of one or more
299
+ # languages to use for user interface strings. The list is in decreasing order
300
+ # of preference. For additional information, including expected format, see
301
+ # [RFC2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). This
302
+ # header and the setLang query parameter are mutually exclusive; do not specify
303
+ # both. If you set this header, you must also specify the
304
+ # [cc](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-autosuggest-api-v7-reference#cc)
305
+ # query parameter. To determine the market to return results for, Bing uses the
306
+ # first supported language it finds from the list and combines it with the cc
307
+ # parameter value. If the list does not include a supported language, Bing
308
+ # finds the closest language and market that supports the request or it uses an
309
+ # aggregated or default market for the results. To determine the market that
310
+ # Bing used, see the BingAPIs-Market header. Use this header and the cc query
311
+ # parameter only if you specify multiple languages. Otherwise, use the
312
+ # [mkt](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-autosuggest-api-v7-reference#mkt)
313
+ # and
314
+ # [setLang](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-autosuggest-api-v7-reference#setlang)
315
+ # query parameters. A user interface string is a string that's used as a label
316
+ # in a user interface. There are few user interface strings in the JSON
317
+ # response objects. Any links to Bing.com properties in the response objects
318
+ # apply the specified language.
319
+ # @param pragma [String] By default, Bing returns cached content, if available.
320
+ # To prevent Bing from returning cached content, set the Pragma header to
321
+ # no-cache (for example, Pragma: no-cache).
322
+ # @param user_agent [String] The user agent originating the request. Bing uses
323
+ # the user agent to provide mobile users with an optimized experience. Although
324
+ # optional, you are encouraged to always specify this header. The user-agent
325
+ # should be the same string that any commonly used browser sends. For
326
+ # information about user agents, see [RFC
327
+ # 2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). The following
328
+ # are examples of user-agent strings. Windows Phone: Mozilla/5.0 (compatible;
329
+ # MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA;
330
+ # Lumia 822). Android: Mozilla / 5.0 (Linux; U; Android 2.3.5; en - us; SCH -
331
+ # I500 Build / GINGERBREAD) AppleWebKit / 533.1 (KHTML; like Gecko) Version /
332
+ # 4.0 Mobile Safari / 533.1. iPhone: Mozilla / 5.0 (iPhone; CPU iPhone OS 6_1
333
+ # like Mac OS X) AppleWebKit / 536.26 (KHTML; like Gecko) Mobile / 10B142
334
+ # iPhone4; 1 BingWeb / 3.03.1428.20120423. PC: Mozilla / 5.0 (Windows NT 6.3;
335
+ # WOW64; Trident / 7.0; Touch; rv:11.0) like Gecko. iPad: Mozilla / 5.0 (iPad;
336
+ # CPU OS 7_0 like Mac OS X) AppleWebKit / 537.51.1 (KHTML, like Gecko) Version
337
+ # / 7.0 Mobile / 11A465 Safari / 9537.53
338
+ # @param client_id [String] Bing uses this header to provide users with
339
+ # consistent behavior across Bing API calls. Bing often flights new features
340
+ # and improvements, and it uses the client ID as a key for assigning traffic on
341
+ # different flights. If you do not use the same client ID for a user across
342
+ # multiple requests, then Bing may assign the user to multiple conflicting
343
+ # flights. Being assigned to multiple conflicting flights can lead to an
344
+ # inconsistent user experience. For example, if the second request has a
345
+ # different flight assignment than the first, the experience may be unexpected.
346
+ # Also, Bing can use the client ID to tailor web results to that client ID’s
347
+ # search history, providing a richer experience for the user. Bing also uses
348
+ # this header to help improve result rankings by analyzing the activity
349
+ # generated by a client ID. The relevance improvements help with better quality
350
+ # of results delivered by Bing APIs and in turn enables higher click-through
351
+ # rates for the API consumer. IMPORTANT: Although optional, you should consider
352
+ # this header required. Persisting the client ID across multiple requests for
353
+ # the same end user and device combination enables 1) the API consumer to
354
+ # receive a consistent user experience, and 2) higher click-through rates via
355
+ # better quality of results from the Bing APIs. Each user that uses your
356
+ # application on the device must have a unique, Bing generated client ID. If
357
+ # you do not include this header in the request, Bing generates an ID and
358
+ # returns it in the X-MSEdge-ClientID response header. The only time that you
359
+ # should NOT include this header in a request is the first time the user uses
360
+ # your app on that device. Use the client ID for each Bing API request that
361
+ # your app makes for this user on the device. Persist the client ID. To persist
362
+ # the ID in a browser app, use a persistent HTTP cookie to ensure the ID is
363
+ # used across all sessions. Do not use a session cookie. For other apps such as
364
+ # mobile apps, use the device's persistent storage to persist the ID. The next
365
+ # time the user uses your app on that device, get the client ID that you
366
+ # persisted. Bing responses may or may not include this header. If the response
367
+ # includes this header, capture the client ID and use it for all subsequent
368
+ # Bing requests for the user on that device. If you include the
369
+ # X-MSEdge-ClientID, you must not include cookies in the request.
370
+ # @param client_ip [String] The IPv4 or IPv6 address of the client device. The
371
+ # IP address is used to discover the user's location. Bing uses the location
372
+ # information to determine safe search behavior. Although optional, you are
373
+ # encouraged to always specify this header and the X-Search-Location header. Do
374
+ # not obfuscate the address (for example, by changing the last octet to 0).
375
+ # Obfuscating the address results in the location not being anywhere near the
376
+ # device's actual location, which may result in Bing serving erroneous results.
377
+ # @param location [String] A semicolon-delimited list of key/value pairs that
378
+ # describe the client's geographical location. Bing uses the location
379
+ # information to determine safe search behavior and to return relevant local
380
+ # content. Specify the key/value pair as <key>:<value>. The following are the
381
+ # keys that you use to specify the user's location. lat (required): The
382
+ # latitude of the client's location, in degrees. The latitude must be greater
383
+ # than or equal to -90.0 and less than or equal to +90.0. Negative values
384
+ # indicate southern latitudes and positive values indicate northern latitudes.
385
+ # long (required): The longitude of the client's location, in degrees. The
386
+ # longitude must be greater than or equal to -180.0 and less than or equal to
387
+ # +180.0. Negative values indicate western longitudes and positive values
388
+ # indicate eastern longitudes. re (required): The radius, in meters, which
389
+ # specifies the horizontal accuracy of the coordinates. Pass the value returned
390
+ # by the device's location service. Typical values might be 22m for GPS/Wi-Fi,
391
+ # 380m for cell tower triangulation, and 18,000m for reverse IP lookup. ts
392
+ # (optional): The UTC UNIX timestamp of when the client was at the location.
393
+ # (The UNIX timestamp is the number of seconds since January 1, 1970.) head
394
+ # (optional): The client's relative heading or direction of travel. Specify the
395
+ # direction of travel as degrees from 0 through 360, counting clockwise
396
+ # relative to true north. Specify this key only if the sp key is nonzero. sp
397
+ # (optional): The horizontal velocity (speed), in meters per second, that the
398
+ # client device is traveling. alt (optional): The altitude of the client
399
+ # device, in meters. are (optional): The radius, in meters, that specifies the
400
+ # vertical accuracy of the coordinates. Specify this key only if you specify
401
+ # the alt key. Although many of the keys are optional, the more information
402
+ # that you provide, the more accurate the location results are. Although
403
+ # optional, you are encouraged to always specify the user's geographical
404
+ # location. Providing the location is especially important if the client's IP
405
+ # address does not accurately reflect the user's physical location (for
406
+ # example, if the client uses VPN). For optimal results, you should include
407
+ # this header and the X-MSEdge-ClientIP header, but at a minimum, you should
408
+ # include this header.
409
+ # @param country_code [String] A 2-character country code of the country where
410
+ # the results come from. This API supports only the United States market. If
411
+ # you specify this query parameter, it must be set to us. If you set this
412
+ # parameter, you must also specify the Accept-Language header. Bing uses the
413
+ # first supported language it finds from the languages list, and combine that
414
+ # language with the country code that you specify to determine the market to
415
+ # return results for. If the languages list does not include a supported
416
+ # language, Bing finds the closest language and market that supports the
417
+ # request, or it may use an aggregated or default market for the results
418
+ # instead of a specified one. You should use this query parameter and the
419
+ # Accept-Language query parameter only if you specify multiple languages;
420
+ # otherwise, you should use the mkt and setLang query parameters. This
421
+ # parameter and the mkt query parameter are mutually exclusive—do not specify
422
+ # both.
423
+ # @param market [String] The market where the results come from. You are
424
+ # strongly encouraged to always specify the market, if known. Specifying the
425
+ # market helps Bing route the request and return an appropriate and optimal
426
+ # response. This parameter and the cc query parameter are mutually exclusive—do
427
+ # not specify both.
428
+ # @param safe_search [SafeSearch] Filter suggestions for adult content. The
429
+ # following are the possible filter values. Off: Return suggestions with adult
430
+ # text, images, or videos. Moderate: Return suggestion with adult text but not
431
+ # adult images or videos. Strict: Do not return news articles with adult text,
432
+ # images, or videos. If the request comes from a market that Bing's adult
433
+ # policy requires that safeSearch is set to Strict, Bing ignores the safeSearch
434
+ # value and uses Strict. If you use the site: query operator, there is the
435
+ # chance that the response may contain adult content regardless of what the
436
+ # safeSearch query parameter is set to. Use site: only if you are aware of the
437
+ # content on the site and your scenario supports the possibility of adult
438
+ # content. Possible values include: 'Off', 'Moderate', 'Strict'
439
+ # @param set_lang [String] The language to use for user interface strings.
440
+ # Specify the language using the ISO 639-1 2-letter language code. For example,
441
+ # the language code for English is EN. The default is EN (English). Although
442
+ # optional, you should always specify the language. Typically, you set setLang
443
+ # to the same language specified by mkt unless the user wants the user
444
+ # interface strings displayed in a different language. This parameter and the
445
+ # Accept-Language header are mutually exclusive; do not specify both. A user
446
+ # interface string is a string that's used as a label in a user interface.
447
+ # There are few user interface strings in the JSON response objects. Also, any
448
+ # links to Bing.com properties in the response objects apply the specified
449
+ # language.
450
+ # @param response_format [Array<ResponseFormat>] The media type to use for the
451
+ # response. The following are the possible case-insensitive values: JSON,
452
+ # JSONLD. The default is JSON. If you specify JSONLD, the response body
453
+ # includes JSON-LD objects that contain the search results.
454
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
455
+ # will be added to the HTTP request.
456
+ #
457
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
458
+ #
459
+ def auto_suggest_with_http_info(query, accept_language:nil, pragma:nil, user_agent:nil, client_id:nil, client_ip:nil, location:nil, country_code:nil, market:'en-us', safe_search:nil, set_lang:nil, response_format:nil, custom_headers:nil)
460
+ auto_suggest_async(query, accept_language:accept_language, pragma:pragma, user_agent:user_agent, client_id:client_id, client_ip:client_ip, location:location, country_code:country_code, market:market, safe_search:safe_search, set_lang:set_lang, response_format:response_format, custom_headers:custom_headers).value!
461
+ end
462
+
463
+ #
464
+ # The AutoSuggest API lets you send a search query to Bing and get back a list
465
+ # of query suggestions. This section provides technical details about the query
466
+ # parameters and headers that you use to request suggestions and the JSON
467
+ # response objects that contain them.
468
+ #
469
+ # @param query [String] The user's search term.
470
+ # @param accept_language [String] A comma-delimited list of one or more
471
+ # languages to use for user interface strings. The list is in decreasing order
472
+ # of preference. For additional information, including expected format, see
473
+ # [RFC2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). This
474
+ # header and the setLang query parameter are mutually exclusive; do not specify
475
+ # both. If you set this header, you must also specify the
476
+ # [cc](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-autosuggest-api-v7-reference#cc)
477
+ # query parameter. To determine the market to return results for, Bing uses the
478
+ # first supported language it finds from the list and combines it with the cc
479
+ # parameter value. If the list does not include a supported language, Bing
480
+ # finds the closest language and market that supports the request or it uses an
481
+ # aggregated or default market for the results. To determine the market that
482
+ # Bing used, see the BingAPIs-Market header. Use this header and the cc query
483
+ # parameter only if you specify multiple languages. Otherwise, use the
484
+ # [mkt](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-autosuggest-api-v7-reference#mkt)
485
+ # and
486
+ # [setLang](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-autosuggest-api-v7-reference#setlang)
487
+ # query parameters. A user interface string is a string that's used as a label
488
+ # in a user interface. There are few user interface strings in the JSON
489
+ # response objects. Any links to Bing.com properties in the response objects
490
+ # apply the specified language.
491
+ # @param pragma [String] By default, Bing returns cached content, if available.
492
+ # To prevent Bing from returning cached content, set the Pragma header to
493
+ # no-cache (for example, Pragma: no-cache).
494
+ # @param user_agent [String] The user agent originating the request. Bing uses
495
+ # the user agent to provide mobile users with an optimized experience. Although
496
+ # optional, you are encouraged to always specify this header. The user-agent
497
+ # should be the same string that any commonly used browser sends. For
498
+ # information about user agents, see [RFC
499
+ # 2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). The following
500
+ # are examples of user-agent strings. Windows Phone: Mozilla/5.0 (compatible;
501
+ # MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA;
502
+ # Lumia 822). Android: Mozilla / 5.0 (Linux; U; Android 2.3.5; en - us; SCH -
503
+ # I500 Build / GINGERBREAD) AppleWebKit / 533.1 (KHTML; like Gecko) Version /
504
+ # 4.0 Mobile Safari / 533.1. iPhone: Mozilla / 5.0 (iPhone; CPU iPhone OS 6_1
505
+ # like Mac OS X) AppleWebKit / 536.26 (KHTML; like Gecko) Mobile / 10B142
506
+ # iPhone4; 1 BingWeb / 3.03.1428.20120423. PC: Mozilla / 5.0 (Windows NT 6.3;
507
+ # WOW64; Trident / 7.0; Touch; rv:11.0) like Gecko. iPad: Mozilla / 5.0 (iPad;
508
+ # CPU OS 7_0 like Mac OS X) AppleWebKit / 537.51.1 (KHTML, like Gecko) Version
509
+ # / 7.0 Mobile / 11A465 Safari / 9537.53
510
+ # @param client_id [String] Bing uses this header to provide users with
511
+ # consistent behavior across Bing API calls. Bing often flights new features
512
+ # and improvements, and it uses the client ID as a key for assigning traffic on
513
+ # different flights. If you do not use the same client ID for a user across
514
+ # multiple requests, then Bing may assign the user to multiple conflicting
515
+ # flights. Being assigned to multiple conflicting flights can lead to an
516
+ # inconsistent user experience. For example, if the second request has a
517
+ # different flight assignment than the first, the experience may be unexpected.
518
+ # Also, Bing can use the client ID to tailor web results to that client ID’s
519
+ # search history, providing a richer experience for the user. Bing also uses
520
+ # this header to help improve result rankings by analyzing the activity
521
+ # generated by a client ID. The relevance improvements help with better quality
522
+ # of results delivered by Bing APIs and in turn enables higher click-through
523
+ # rates for the API consumer. IMPORTANT: Although optional, you should consider
524
+ # this header required. Persisting the client ID across multiple requests for
525
+ # the same end user and device combination enables 1) the API consumer to
526
+ # receive a consistent user experience, and 2) higher click-through rates via
527
+ # better quality of results from the Bing APIs. Each user that uses your
528
+ # application on the device must have a unique, Bing generated client ID. If
529
+ # you do not include this header in the request, Bing generates an ID and
530
+ # returns it in the X-MSEdge-ClientID response header. The only time that you
531
+ # should NOT include this header in a request is the first time the user uses
532
+ # your app on that device. Use the client ID for each Bing API request that
533
+ # your app makes for this user on the device. Persist the client ID. To persist
534
+ # the ID in a browser app, use a persistent HTTP cookie to ensure the ID is
535
+ # used across all sessions. Do not use a session cookie. For other apps such as
536
+ # mobile apps, use the device's persistent storage to persist the ID. The next
537
+ # time the user uses your app on that device, get the client ID that you
538
+ # persisted. Bing responses may or may not include this header. If the response
539
+ # includes this header, capture the client ID and use it for all subsequent
540
+ # Bing requests for the user on that device. If you include the
541
+ # X-MSEdge-ClientID, you must not include cookies in the request.
542
+ # @param client_ip [String] The IPv4 or IPv6 address of the client device. The
543
+ # IP address is used to discover the user's location. Bing uses the location
544
+ # information to determine safe search behavior. Although optional, you are
545
+ # encouraged to always specify this header and the X-Search-Location header. Do
546
+ # not obfuscate the address (for example, by changing the last octet to 0).
547
+ # Obfuscating the address results in the location not being anywhere near the
548
+ # device's actual location, which may result in Bing serving erroneous results.
549
+ # @param location [String] A semicolon-delimited list of key/value pairs that
550
+ # describe the client's geographical location. Bing uses the location
551
+ # information to determine safe search behavior and to return relevant local
552
+ # content. Specify the key/value pair as <key>:<value>. The following are the
553
+ # keys that you use to specify the user's location. lat (required): The
554
+ # latitude of the client's location, in degrees. The latitude must be greater
555
+ # than or equal to -90.0 and less than or equal to +90.0. Negative values
556
+ # indicate southern latitudes and positive values indicate northern latitudes.
557
+ # long (required): The longitude of the client's location, in degrees. The
558
+ # longitude must be greater than or equal to -180.0 and less than or equal to
559
+ # +180.0. Negative values indicate western longitudes and positive values
560
+ # indicate eastern longitudes. re (required): The radius, in meters, which
561
+ # specifies the horizontal accuracy of the coordinates. Pass the value returned
562
+ # by the device's location service. Typical values might be 22m for GPS/Wi-Fi,
563
+ # 380m for cell tower triangulation, and 18,000m for reverse IP lookup. ts
564
+ # (optional): The UTC UNIX timestamp of when the client was at the location.
565
+ # (The UNIX timestamp is the number of seconds since January 1, 1970.) head
566
+ # (optional): The client's relative heading or direction of travel. Specify the
567
+ # direction of travel as degrees from 0 through 360, counting clockwise
568
+ # relative to true north. Specify this key only if the sp key is nonzero. sp
569
+ # (optional): The horizontal velocity (speed), in meters per second, that the
570
+ # client device is traveling. alt (optional): The altitude of the client
571
+ # device, in meters. are (optional): The radius, in meters, that specifies the
572
+ # vertical accuracy of the coordinates. Specify this key only if you specify
573
+ # the alt key. Although many of the keys are optional, the more information
574
+ # that you provide, the more accurate the location results are. Although
575
+ # optional, you are encouraged to always specify the user's geographical
576
+ # location. Providing the location is especially important if the client's IP
577
+ # address does not accurately reflect the user's physical location (for
578
+ # example, if the client uses VPN). For optimal results, you should include
579
+ # this header and the X-MSEdge-ClientIP header, but at a minimum, you should
580
+ # include this header.
581
+ # @param country_code [String] A 2-character country code of the country where
582
+ # the results come from. This API supports only the United States market. If
583
+ # you specify this query parameter, it must be set to us. If you set this
584
+ # parameter, you must also specify the Accept-Language header. Bing uses the
585
+ # first supported language it finds from the languages list, and combine that
586
+ # language with the country code that you specify to determine the market to
587
+ # return results for. If the languages list does not include a supported
588
+ # language, Bing finds the closest language and market that supports the
589
+ # request, or it may use an aggregated or default market for the results
590
+ # instead of a specified one. You should use this query parameter and the
591
+ # Accept-Language query parameter only if you specify multiple languages;
592
+ # otherwise, you should use the mkt and setLang query parameters. This
593
+ # parameter and the mkt query parameter are mutually exclusive—do not specify
594
+ # both.
595
+ # @param market [String] The market where the results come from. You are
596
+ # strongly encouraged to always specify the market, if known. Specifying the
597
+ # market helps Bing route the request and return an appropriate and optimal
598
+ # response. This parameter and the cc query parameter are mutually exclusive—do
599
+ # not specify both.
600
+ # @param safe_search [SafeSearch] Filter suggestions for adult content. The
601
+ # following are the possible filter values. Off: Return suggestions with adult
602
+ # text, images, or videos. Moderate: Return suggestion with adult text but not
603
+ # adult images or videos. Strict: Do not return news articles with adult text,
604
+ # images, or videos. If the request comes from a market that Bing's adult
605
+ # policy requires that safeSearch is set to Strict, Bing ignores the safeSearch
606
+ # value and uses Strict. If you use the site: query operator, there is the
607
+ # chance that the response may contain adult content regardless of what the
608
+ # safeSearch query parameter is set to. Use site: only if you are aware of the
609
+ # content on the site and your scenario supports the possibility of adult
610
+ # content. Possible values include: 'Off', 'Moderate', 'Strict'
611
+ # @param set_lang [String] The language to use for user interface strings.
612
+ # Specify the language using the ISO 639-1 2-letter language code. For example,
613
+ # the language code for English is EN. The default is EN (English). Although
614
+ # optional, you should always specify the language. Typically, you set setLang
615
+ # to the same language specified by mkt unless the user wants the user
616
+ # interface strings displayed in a different language. This parameter and the
617
+ # Accept-Language header are mutually exclusive; do not specify both. A user
618
+ # interface string is a string that's used as a label in a user interface.
619
+ # There are few user interface strings in the JSON response objects. Also, any
620
+ # links to Bing.com properties in the response objects apply the specified
621
+ # language.
622
+ # @param response_format [Array<ResponseFormat>] The media type to use for the
623
+ # response. The following are the possible case-insensitive values: JSON,
624
+ # JSONLD. The default is JSON. If you specify JSONLD, the response body
625
+ # includes JSON-LD objects that contain the search results.
626
+ # @param [Hash{String => String}] A hash of custom headers that will be added
627
+ # to the HTTP request.
628
+ #
629
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
630
+ #
631
+ def auto_suggest_async(query, accept_language:nil, pragma:nil, user_agent:nil, client_id:nil, client_ip:nil, location:nil, country_code:nil, market:'en-us', safe_search:nil, set_lang:nil, response_format:nil, custom_headers:nil)
632
+ fail ArgumentError, 'endpoint is nil' if endpoint.nil?
633
+ x_bing_apis_sdk = 'true'
634
+ fail ArgumentError, 'query is nil' if query.nil?
635
+
636
+
637
+ request_headers = {}
638
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
639
+
640
+ # Set Headers
641
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
642
+ request_headers['X-BingApis-SDK'] = x_bing_apis_sdk unless x_bing_apis_sdk.nil?
643
+ request_headers['Accept-Language'] = accept_language unless accept_language.nil?
644
+ request_headers['Pragma'] = pragma unless pragma.nil?
645
+ request_headers['User-Agent'] = user_agent unless user_agent.nil?
646
+ request_headers['X-MSEdge-ClientID'] = client_id unless client_id.nil?
647
+ request_headers['X-MSEdge-ClientIP'] = client_ip unless client_ip.nil?
648
+ request_headers['X-Search-Location'] = location unless location.nil?
649
+ path_template = 'Suggestions'
650
+
651
+ request_url = @base_url || self.base_url
652
+ request_url = request_url.gsub('{Endpoint}', endpoint)
653
+
654
+ options = {
655
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
656
+ query_params: {'cc' => country_code,'mkt' => market,'q' => query,'safeSearch' => safe_search,'setLang' => set_lang,'ResponseFormat' => response_format.nil? ? nil : response_format.join(',')},
657
+ headers: request_headers.merge(custom_headers || {}),
658
+ base_url: request_url
659
+ }
660
+ promise = self.make_request_async(:get, path_template, options)
661
+
662
+ promise = promise.then do |result|
663
+ http_response = result.response
664
+ status_code = http_response.status
665
+ response_content = http_response.body
666
+ unless status_code == 200
667
+ error_model = JSON.load(response_content)
668
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
669
+ end
670
+
671
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
672
+ # Deserialize Response
673
+ if status_code == 200
674
+ begin
675
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
676
+ result_mapper = Azure::CognitiveServices::Autosuggest::V1_0::Models::Suggestions.mapper()
677
+ result.body = self.deserialize(result_mapper, parsed_response)
678
+ rescue Exception => e
679
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
680
+ end
681
+ end
682
+
683
+ result
684
+ end
685
+
686
+ promise.execute
687
+ end
688
+
689
+
690
+ private
691
+ #
692
+ # Adds telemetry information.
693
+ #
694
+ def add_telemetry
695
+ sdk_information = 'azure_cognitiveservices_autosuggest'
696
+ sdk_information = "#{sdk_information}/0.17.0"
697
+ add_user_agent_information(sdk_information)
698
+ end
699
+ end
700
+ end