azure_cognitiveservices_spellcheck 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/lib/1.0/generated/azure_cognitiveservices_spellcheck.rb +41 -0
  4. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/models/action_type.rb +16 -0
  5. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/models/answer.rb +60 -0
  6. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/models/error.rb +116 -0
  7. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/models/error_code.rb +20 -0
  8. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/models/error_response.rb +80 -0
  9. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/models/error_sub_code.rb +25 -0
  10. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/models/error_type.rb +16 -0
  11. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/models/identifiable.rb +62 -0
  12. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/models/mode.rb +16 -0
  13. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/models/response.rb +60 -0
  14. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/models/response_base.rb +51 -0
  15. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/models/spell_check.rb +80 -0
  16. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/models/spelling_flagged_token.rb +104 -0
  17. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/models/spelling_token_suggestion.rb +71 -0
  18. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/module_definition.rb +9 -0
  19. data/lib/1.0/generated/azure_cognitiveservices_spellcheck/spell_check_client.rb +776 -0
  20. data/lib/azure_cognitiveservices_spellcheck.rb +6 -0
  21. data/lib/module_definition.rb +7 -0
  22. data/lib/profiles/latest/modules/spellcheck_profile_module.rb +113 -0
  23. data/lib/profiles/latest/spellcheck_latest_profile_client.rb +38 -0
  24. data/lib/profiles/latest/spellcheck_module_definition.rb +8 -0
  25. data/lib/version.rb +7 -0
  26. metadata +143 -0
@@ -0,0 +1,16 @@
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::SpellCheck::V1_0
7
+ module Models
8
+ #
9
+ # Defines values for Mode
10
+ #
11
+ module Mode
12
+ Proof = "Proof"
13
+ Spell = "Spell"
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,60 @@
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::SpellCheck::V1_0
7
+ module Models
8
+ #
9
+ # Defines a response. All schemas that could be returned at the root of a
10
+ # response should inherit from this
11
+ #
12
+ class Response < Identifiable
13
+
14
+ include MsRestAzure
15
+
16
+
17
+ def initialize
18
+ @_type = "Response"
19
+ end
20
+
21
+ attr_accessor :_type
22
+
23
+
24
+ #
25
+ # Mapper for Response class as Ruby Hash.
26
+ # This will be used for serialization/deserialization.
27
+ #
28
+ def self.mapper()
29
+ {
30
+ client_side_validation: true,
31
+ required: false,
32
+ serialized_name: 'Response',
33
+ type: {
34
+ name: 'Composite',
35
+ class_name: 'Response',
36
+ model_properties: {
37
+ _type: {
38
+ client_side_validation: true,
39
+ required: true,
40
+ serialized_name: '_type',
41
+ type: {
42
+ name: 'String'
43
+ }
44
+ },
45
+ id: {
46
+ client_side_validation: true,
47
+ required: false,
48
+ read_only: true,
49
+ serialized_name: 'id',
50
+ type: {
51
+ name: 'String'
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,51 @@
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::SpellCheck::V1_0
7
+ module Models
8
+ #
9
+ # Model object.
10
+ #
11
+ #
12
+ class ResponseBase
13
+
14
+ include MsRestAzure
15
+
16
+ @@discriminatorMap = Hash.new
17
+ @@discriminatorMap["SpellCheck"] = "SpellCheck"
18
+ @@discriminatorMap["Answer"] = "Answer"
19
+ @@discriminatorMap["Response"] = "Response"
20
+ @@discriminatorMap["Identifiable"] = "Identifiable"
21
+ @@discriminatorMap["ErrorResponse"] = "ErrorResponse"
22
+
23
+ def initialize
24
+ @_type = "ResponseBase"
25
+ end
26
+
27
+ attr_accessor :_type
28
+
29
+
30
+ #
31
+ # Mapper for ResponseBase class as Ruby Hash.
32
+ # This will be used for serialization/deserialization.
33
+ #
34
+ def self.mapper()
35
+ {
36
+ client_side_validation: true,
37
+ required: false,
38
+ serialized_name: 'ResponseBase',
39
+ type: {
40
+ name: 'Composite',
41
+ polymorphic_discriminator: '_type',
42
+ uber_parent: 'ResponseBase',
43
+ class_name: 'ResponseBase',
44
+ model_properties: {
45
+ }
46
+ }
47
+ }
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,80 @@
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::SpellCheck::V1_0
7
+ module Models
8
+ #
9
+ # Model object.
10
+ #
11
+ #
12
+ class SpellCheck < Answer
13
+
14
+ include MsRestAzure
15
+
16
+
17
+ def initialize
18
+ @_type = "SpellCheck"
19
+ end
20
+
21
+ attr_accessor :_type
22
+
23
+ # @return [Array<SpellingFlaggedToken>]
24
+ attr_accessor :flagged_tokens
25
+
26
+
27
+ #
28
+ # Mapper for SpellCheck class as Ruby Hash.
29
+ # This will be used for serialization/deserialization.
30
+ #
31
+ def self.mapper()
32
+ {
33
+ client_side_validation: true,
34
+ required: false,
35
+ serialized_name: 'SpellCheck',
36
+ type: {
37
+ name: 'Composite',
38
+ class_name: 'SpellCheck',
39
+ model_properties: {
40
+ _type: {
41
+ client_side_validation: true,
42
+ required: true,
43
+ serialized_name: '_type',
44
+ type: {
45
+ name: 'String'
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
+ flagged_tokens: {
58
+ client_side_validation: true,
59
+ required: true,
60
+ serialized_name: 'flaggedTokens',
61
+ type: {
62
+ name: 'Sequence',
63
+ element: {
64
+ client_side_validation: true,
65
+ required: false,
66
+ serialized_name: 'SpellingFlaggedTokenElementType',
67
+ type: {
68
+ name: 'Composite',
69
+ class_name: 'SpellingFlaggedToken'
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
75
+ }
76
+ }
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,104 @@
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::SpellCheck::V1_0
7
+ module Models
8
+ #
9
+ # Model object.
10
+ #
11
+ #
12
+ class SpellingFlaggedToken
13
+
14
+ include MsRestAzure
15
+
16
+ # @return [Integer]
17
+ attr_accessor :offset
18
+
19
+ # @return [String]
20
+ attr_accessor :token
21
+
22
+ # @return [ErrorType] Possible values include: 'UnknownToken',
23
+ # 'RepeatedToken'. Default value: 'UnknownToken' .
24
+ attr_accessor :type
25
+
26
+ # @return [Array<SpellingTokenSuggestion>]
27
+ attr_accessor :suggestions
28
+
29
+ # @return [String]
30
+ attr_accessor :ping_url_suffix
31
+
32
+
33
+ #
34
+ # Mapper for SpellingFlaggedToken class as Ruby Hash.
35
+ # This will be used for serialization/deserialization.
36
+ #
37
+ def self.mapper()
38
+ {
39
+ client_side_validation: true,
40
+ required: false,
41
+ serialized_name: 'Spelling/FlaggedToken',
42
+ type: {
43
+ name: 'Composite',
44
+ class_name: 'SpellingFlaggedToken',
45
+ model_properties: {
46
+ offset: {
47
+ client_side_validation: true,
48
+ required: true,
49
+ serialized_name: 'offset',
50
+ type: {
51
+ name: 'Number'
52
+ }
53
+ },
54
+ token: {
55
+ client_side_validation: true,
56
+ required: true,
57
+ serialized_name: 'token',
58
+ type: {
59
+ name: 'String'
60
+ }
61
+ },
62
+ type: {
63
+ client_side_validation: true,
64
+ required: true,
65
+ serialized_name: 'type',
66
+ default_value: 'UnknownToken',
67
+ type: {
68
+ name: 'String'
69
+ }
70
+ },
71
+ suggestions: {
72
+ client_side_validation: true,
73
+ required: false,
74
+ read_only: true,
75
+ serialized_name: 'suggestions',
76
+ type: {
77
+ name: 'Sequence',
78
+ element: {
79
+ client_side_validation: true,
80
+ required: false,
81
+ serialized_name: 'SpellingTokenSuggestionElementType',
82
+ type: {
83
+ name: 'Composite',
84
+ class_name: 'SpellingTokenSuggestion'
85
+ }
86
+ }
87
+ }
88
+ },
89
+ ping_url_suffix: {
90
+ client_side_validation: true,
91
+ required: false,
92
+ read_only: true,
93
+ serialized_name: 'pingUrlSuffix',
94
+ type: {
95
+ name: 'String'
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+ end
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,71 @@
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::SpellCheck::V1_0
7
+ module Models
8
+ #
9
+ # Model object.
10
+ #
11
+ #
12
+ class SpellingTokenSuggestion
13
+
14
+ include MsRestAzure
15
+
16
+ # @return [String]
17
+ attr_accessor :suggestion
18
+
19
+ # @return [Float]
20
+ attr_accessor :score
21
+
22
+ # @return [String]
23
+ attr_accessor :ping_url_suffix
24
+
25
+
26
+ #
27
+ # Mapper for SpellingTokenSuggestion 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: 'Spelling/TokenSuggestion',
35
+ type: {
36
+ name: 'Composite',
37
+ class_name: 'SpellingTokenSuggestion',
38
+ model_properties: {
39
+ suggestion: {
40
+ client_side_validation: true,
41
+ required: true,
42
+ serialized_name: 'suggestion',
43
+ type: {
44
+ name: 'String'
45
+ }
46
+ },
47
+ score: {
48
+ client_side_validation: true,
49
+ required: false,
50
+ read_only: true,
51
+ serialized_name: 'score',
52
+ type: {
53
+ name: 'Double'
54
+ }
55
+ },
56
+ ping_url_suffix: {
57
+ client_side_validation: true,
58
+ required: false,
59
+ read_only: true,
60
+ serialized_name: 'pingUrlSuffix',
61
+ type: {
62
+ name: 'String'
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ end
69
+ end
70
+ end
71
+ 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::SpellCheck end
9
+ module Azure::CognitiveServices::SpellCheck::V1_0 end
@@ -0,0 +1,776 @@
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::SpellCheck::V1_0
7
+ #
8
+ # A service client - single point of access to the REST API.
9
+ #
10
+ class SpellCheckClient < MsRestAzure::AzureServiceClient
11
+ include MsRestAzure
12
+ include MsRestAzure::Serialization
13
+
14
+ # @return [String] the base URI of the service.
15
+ attr_accessor :base_url
16
+
17
+ # @return Credentials needed for the client to connect to Azure.
18
+ attr_reader :credentials1
19
+
20
+ # @return Subscription credentials which uniquely identify client
21
+ # subscription.
22
+ attr_accessor :credentials
23
+
24
+ # @return [String] Gets or sets the preferred language for the response.
25
+ attr_accessor :accept_language
26
+
27
+ # @return [Integer] Gets or sets the retry timeout in seconds for Long
28
+ # Running Operations. Default value is 30.
29
+ attr_accessor :long_running_operation_retry_timeout
30
+
31
+ # @return [Boolean] When set to true a unique x-ms-client-request-id value
32
+ # is generated and included in each request. Default is true.
33
+ attr_accessor :generate_client_request_id
34
+
35
+ #
36
+ # Creates initializes a new instance of the SpellCheckClient class.
37
+ # @param credentials [MsRest::ServiceClientCredentials] credentials to authorize HTTP requests made by the service client.
38
+ # @param base_url [String] the base URI of the service.
39
+ # @param options [Array] filters to be applied to the HTTP requests.
40
+ #
41
+ def initialize(credentials = nil, base_url = nil, options = nil)
42
+ super(credentials, options)
43
+ @base_url = base_url || 'https://api.cognitive.microsoft.com/bing/v7.0'
44
+
45
+ fail ArgumentError, 'invalid type of credentials input parameter' unless credentials.is_a?(MsRest::ServiceClientCredentials) unless credentials.nil?
46
+ @credentials = credentials
47
+
48
+ @accept_language = 'en-US'
49
+ @long_running_operation_retry_timeout = 30
50
+ @generate_client_request_id = true
51
+ add_telemetry
52
+ end
53
+
54
+ #
55
+ # Makes a request and returns the body of the response.
56
+ # @param method [Symbol] with any of the following values :get, :put, :post, :patch, :delete.
57
+ # @param path [String] the path, relative to {base_url}.
58
+ # @param options [Hash{String=>String}] specifying any request options like :body.
59
+ # @return [Hash{String=>String}] containing the body of the response.
60
+ # Example:
61
+ #
62
+ # request_content = "{'location':'westus','tags':{'tag1':'val1','tag2':'val2'}}"
63
+ # path = "/path"
64
+ # options = {
65
+ # body: request_content,
66
+ # query_params: {'api-version' => '2016-02-01'}
67
+ # }
68
+ # result = @client.make_request(:put, path, options)
69
+ #
70
+ def make_request(method, path, options = {})
71
+ result = make_request_with_http_info(method, path, options)
72
+ result.body unless result.nil?
73
+ end
74
+
75
+ #
76
+ # Makes a request and returns the operation response.
77
+ # @param method [Symbol] with any of the following values :get, :put, :post, :patch, :delete.
78
+ # @param path [String] the path, relative to {base_url}.
79
+ # @param options [Hash{String=>String}] specifying any request options like :body.
80
+ # @return [MsRestAzure::AzureOperationResponse] Operation response containing the request, response and status.
81
+ #
82
+ def make_request_with_http_info(method, path, options = {})
83
+ result = make_request_async(method, path, options).value!
84
+ result.body = result.response.body.to_s.empty? ? nil : JSON.load(result.response.body)
85
+ result
86
+ end
87
+
88
+ #
89
+ # Makes a request asynchronously.
90
+ # @param method [Symbol] with any of the following values :get, :put, :post, :patch, :delete.
91
+ # @param path [String] the path, relative to {base_url}.
92
+ # @param options [Hash{String=>String}] specifying any request options like :body.
93
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
94
+ #
95
+ def make_request_async(method, path, options = {})
96
+ fail ArgumentError, 'method is nil' if method.nil?
97
+ fail ArgumentError, 'path is nil' if path.nil?
98
+
99
+ request_url = options[:base_url] || @base_url
100
+ if(!options[:headers].nil? && !options[:headers]['Content-Type'].nil?)
101
+ @request_headers['Content-Type'] = options[:headers]['Content-Type']
102
+ end
103
+
104
+ request_headers = @request_headers
105
+ request_headers.merge!({'accept-language' => @accept_language}) unless @accept_language.nil?
106
+ options.merge!({headers: request_headers.merge(options[:headers] || {})})
107
+ options.merge!({credentials: @credentials}) unless @credentials.nil?
108
+
109
+ super(request_url, method, path, options)
110
+ end
111
+
112
+ #
113
+ # The Bing Spell Check API lets you perform contextual grammar and spell
114
+ # checking. Bing has developed a web-based spell-checker that leverages machine
115
+ # learning and statistical machine translation to dynamically train a
116
+ # constantly evolving and highly contextual algorithm. The spell-checker is
117
+ # based on a massive corpus of web searches and documents.
118
+ #
119
+ # @param text [String] The text string to check for spelling and grammar
120
+ # errors. The combined length of the text string, preContextText string, and
121
+ # postContextText string may not exceed 10,000 characters. You may specify this
122
+ # parameter in the query string of a GET request or in the body of a POST
123
+ # request. Because of the query string length limit, you'll typically use a
124
+ # POST request unless you're checking only short strings.
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 cc query parameter.
131
+ # Bing will use the first supported language it finds from the list, and
132
+ # combine that language with the cc parameter value to determine the market to
133
+ # return results for. If the list does not include a supported language, Bing
134
+ # will find the closest language and market that supports the request, and may
135
+ # use an aggregated or default market for the results instead of a specified
136
+ # one. You should use this header and the cc query parameter only if you
137
+ # specify multiple languages; otherwise, you should use the mkt and setLang
138
+ # query parameters. A user interface string is a string that's used as a label
139
+ # in a user interface. There are very few user interface strings in the JSON
140
+ # response objects. Any links in the response objects to Bing.com properties
141
+ # will apply the specified language.
142
+ # @param pragma [String] By default, Bing returns cached content, if available.
143
+ # To prevent Bing from returning cached content, set the Pragma header to
144
+ # no-cache (for example, Pragma: no-cache).
145
+ # @param user_agent [String] The user agent originating the request. Bing uses
146
+ # the user agent to provide mobile users with an optimized experience. Although
147
+ # optional, you are strongly encouraged to always specify this header. The
148
+ # user-agent should be the same string that any commonly used browser would
149
+ # send. For information about user agents, see [RFC
150
+ # 2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
151
+ # @param client_id [String] Bing uses this header to provide users with
152
+ # consistent behavior across Bing API calls. Bing often flights new features
153
+ # and improvements, and it uses the client ID as a key for assigning traffic on
154
+ # different flights. If you do not use the same client ID for a user across
155
+ # multiple requests, then Bing may assign the user to multiple conflicting
156
+ # flights. Being assigned to multiple conflicting flights can lead to an
157
+ # inconsistent user experience. For example, if the second request has a
158
+ # different flight assignment than the first, the experience may be unexpected.
159
+ # Also, Bing can use the client ID to tailor web results to that client ID’s
160
+ # search history, providing a richer experience for the user. Bing also uses
161
+ # this header to help improve result rankings by analyzing the activity
162
+ # generated by a client ID. The relevance improvements help with better quality
163
+ # of results delivered by Bing APIs and in turn enables higher click-through
164
+ # rates for the API consumer. IMPORTANT: Although optional, you should consider
165
+ # this header required. Persisting the client ID across multiple requests for
166
+ # the same end user and device combination enables 1) the API consumer to
167
+ # receive a consistent user experience, and 2) higher click-through rates via
168
+ # better quality of results from the Bing APIs. Each user that uses your
169
+ # application on the device must have a unique, Bing generated client ID. If
170
+ # you do not include this header in the request, Bing generates an ID and
171
+ # returns it in the X-MSEdge-ClientID response header. The only time that you
172
+ # should NOT include this header in a request is the first time the user uses
173
+ # your app on that device. Use the client ID for each Bing API request that
174
+ # your app makes for this user on the device. Persist the client ID. To persist
175
+ # the ID in a browser app, use a persistent HTTP cookie to ensure the ID is
176
+ # used across all sessions. Do not use a session cookie. For other apps such as
177
+ # mobile apps, use the device's persistent storage to persist the ID. The next
178
+ # time the user uses your app on that device, get the client ID that you
179
+ # persisted. Bing responses may or may not include this header. If the response
180
+ # includes this header, capture the client ID and use it for all subsequent
181
+ # Bing requests for the user on that device. If you include the
182
+ # X-MSEdge-ClientID, you must not include cookies in the request.
183
+ # @param client_ip [String] The IPv4 or IPv6 address of the client device. The
184
+ # IP address is used to discover the user's location. Bing uses the location
185
+ # information to determine safe search behavior. Although optional, you are
186
+ # encouraged to always specify this header and the X-Search-Location header. Do
187
+ # not obfuscate the address (for example, by changing the last octet to 0).
188
+ # Obfuscating the address results in the location not being anywhere near the
189
+ # device's actual location, which may result in Bing serving erroneous results.
190
+ # @param location [String] A semicolon-delimited list of key/value pairs that
191
+ # describe the client's geographical location. Bing uses the location
192
+ # information to determine safe search behavior and to return relevant local
193
+ # content. Specify the key/value pair as <key>:<value>. The following are the
194
+ # keys that you use to specify the user's location. lat (required): The
195
+ # latitude of the client's location, in degrees. The latitude must be greater
196
+ # than or equal to -90.0 and less than or equal to +90.0. Negative values
197
+ # indicate southern latitudes and positive values indicate northern latitudes.
198
+ # long (required): The longitude of the client's location, in degrees. The
199
+ # longitude must be greater than or equal to -180.0 and less than or equal to
200
+ # +180.0. Negative values indicate western longitudes and positive values
201
+ # indicate eastern longitudes. re (required): The radius, in meters, which
202
+ # specifies the horizontal accuracy of the coordinates. Pass the value returned
203
+ # by the device's location service. Typical values might be 22m for GPS/Wi-Fi,
204
+ # 380m for cell tower triangulation, and 18,000m for reverse IP lookup. ts
205
+ # (optional): The UTC UNIX timestamp of when the client was at the location.
206
+ # (The UNIX timestamp is the number of seconds since January 1, 1970.) head
207
+ # (optional): The client's relative heading or direction of travel. Specify the
208
+ # direction of travel as degrees from 0 through 360, counting clockwise
209
+ # relative to true north. Specify this key only if the sp key is nonzero. sp
210
+ # (optional): The horizontal velocity (speed), in meters per second, that the
211
+ # client device is traveling. alt (optional): The altitude of the client
212
+ # device, in meters. are (optional): The radius, in meters, that specifies the
213
+ # vertical accuracy of the coordinates. Specify this key only if you specify
214
+ # the alt key. Although many of the keys are optional, the more information
215
+ # that you provide, the more accurate the location results are. Although
216
+ # optional, you are encouraged to always specify the user's geographical
217
+ # location. Providing the location is especially important if the client's IP
218
+ # address does not accurately reflect the user's physical location (for
219
+ # example, if the client uses VPN). For optimal results, you should include
220
+ # this header and the X-Search-ClientIP header, but at a minimum, you should
221
+ # include this header.
222
+ # @param action_type [ActionType] A string that's used by logging to determine
223
+ # whether the request is coming from an interactive session or a page load. The
224
+ # following are the possible values. 1) Edit—The request is from an interactive
225
+ # session 2) Load—The request is from a page load. Possible values include:
226
+ # 'Edit', 'Load'
227
+ # @param app_name [String] The unique name of your app. The name must be known
228
+ # by Bing. Do not include this parameter unless you have previously contacted
229
+ # Bing to get a unique app name. To get a unique name, contact your Bing
230
+ # Business Development manager.
231
+ # @param country_code [String] A 2-character country code of the country where
232
+ # the results come from. This API supports only the United States market. If
233
+ # you specify this query parameter, it must be set to us. If you set this
234
+ # parameter, you must also specify the Accept-Language header. Bing uses the
235
+ # first supported language it finds from the languages list, and combine that
236
+ # language with the country code that you specify to determine the market to
237
+ # return results for. If the languages list does not include a supported
238
+ # language, Bing finds the closest language and market that supports the
239
+ # request, or it may use an aggregated or default market for the results
240
+ # instead of a specified one. You should use this query parameter and the
241
+ # Accept-Language query parameter only if you specify multiple languages;
242
+ # otherwise, you should use the mkt and setLang query parameters. This
243
+ # parameter and the mkt query parameter are mutually exclusive—do not specify
244
+ # both.
245
+ # @param client_machine_name [String] A unique name of the device that the
246
+ # request is being made from. Generate a unique value for each device (the
247
+ # value is unimportant). The service uses the ID to help debug issues and
248
+ # improve the quality of corrections.
249
+ # @param doc_id [String] A unique ID that identifies the document that the text
250
+ # belongs to. Generate a unique value for each document (the value is
251
+ # unimportant). The service uses the ID to help debug issues and improve the
252
+ # quality of corrections.
253
+ # @param market [String] The market where the results come from. You are
254
+ # strongly encouraged to always specify the market, if known. Specifying the
255
+ # market helps Bing route the request and return an appropriate and optimal
256
+ # response. This parameter and the cc query parameter are mutually exclusive—do
257
+ # not specify both.
258
+ # @param session_id [String] A unique ID that identifies this user session.
259
+ # Generate a unique value for each user session (the value is unimportant). The
260
+ # service uses the ID to help debug issues and improve the quality of
261
+ # corrections
262
+ # @param set_lang [String] The language to use for user interface strings.
263
+ # Specify the language using the ISO 639-1 2-letter language code. For example,
264
+ # the language code for English is EN. The default is EN (English). Although
265
+ # optional, you should always specify the language. Typically, you set setLang
266
+ # to the same language specified by mkt unless the user wants the user
267
+ # interface strings displayed in a different language. This parameter and the
268
+ # Accept-Language header are mutually exclusive—do not specify both. A user
269
+ # interface string is a string that's used as a label in a user interface.
270
+ # There are few user interface strings in the JSON response objects. Also, any
271
+ # links to Bing.com properties in the response objects apply the specified
272
+ # language.
273
+ # @param user_id [String] A unique ID that identifies the user. Generate a
274
+ # unique value for each user (the value is unimportant). The service uses the
275
+ # ID to help debug issues and improve the quality of corrections.
276
+ # @param mode [Mode] The type of spelling and grammar checks to perform. The
277
+ # following are the possible values (the values are case insensitive). The
278
+ # default is Proof. 1) Proof—Finds most spelling and grammar mistakes. 2)
279
+ # Spell—Finds most spelling mistakes but does not find some of the grammar
280
+ # errors that Proof catches (for example, capitalization and repeated words).
281
+ # Possible values include: 'Proof', 'Spell'
282
+ # @param pre_context_text [String] A string that gives context to the text
283
+ # string. For example, the text string petal is valid. However, if you set
284
+ # preContextText to bike, the context changes and the text string becomes not
285
+ # valid. In this case, the API suggests that you change petal to pedal (as in
286
+ # bike pedal). This text is not checked for grammar or spelling errors. The
287
+ # combined length of the text string, preContextText string, and
288
+ # postContextText string may not exceed 10,000 characters. You may specify this
289
+ # parameter in the query string of a GET request or in the body of a POST
290
+ # request.
291
+ # @param post_context_text [String] A string that gives context to the text
292
+ # string. For example, the text string read is valid. However, if you set
293
+ # postContextText to carpet, the context changes and the text string becomes
294
+ # not valid. In this case, the API suggests that you change read to red (as in
295
+ # red carpet). This text is not checked for grammar or spelling errors. The
296
+ # combined length of the text string, preContextText string, and
297
+ # postContextText string may not exceed 10,000 characters. You may specify this
298
+ # parameter in the query string of a GET request or in the body of a POST
299
+ # request.
300
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
301
+ # will be added to the HTTP request.
302
+ #
303
+ # @return [SpellCheck] operation results.
304
+ #
305
+ def spell_checker(text, accept_language:nil, pragma:nil, user_agent:nil, client_id:nil, client_ip:nil, location:nil, action_type:nil, app_name:nil, country_code:nil, client_machine_name:nil, doc_id:nil, market:nil, session_id:nil, set_lang:nil, user_id:nil, mode:nil, pre_context_text:nil, post_context_text:nil, custom_headers:nil)
306
+ response = spell_checker_async(text, accept_language:accept_language, pragma:pragma, user_agent:user_agent, client_id:client_id, client_ip:client_ip, location:location, action_type:action_type, app_name:app_name, country_code:country_code, client_machine_name:client_machine_name, doc_id:doc_id, market:market, session_id:session_id, set_lang:set_lang, user_id:user_id, mode:mode, pre_context_text:pre_context_text, post_context_text:post_context_text, custom_headers:custom_headers).value!
307
+ response.body unless response.nil?
308
+ end
309
+
310
+ #
311
+ # The Bing Spell Check API lets you perform contextual grammar and spell
312
+ # checking. Bing has developed a web-based spell-checker that leverages machine
313
+ # learning and statistical machine translation to dynamically train a
314
+ # constantly evolving and highly contextual algorithm. The spell-checker is
315
+ # based on a massive corpus of web searches and documents.
316
+ #
317
+ # @param text [String] The text string to check for spelling and grammar
318
+ # errors. The combined length of the text string, preContextText string, and
319
+ # postContextText string may not exceed 10,000 characters. You may specify this
320
+ # parameter in the query string of a GET request or in the body of a POST
321
+ # request. Because of the query string length limit, you'll typically use a
322
+ # POST request unless you're checking only short strings.
323
+ # @param accept_language [String] A comma-delimited list of one or more
324
+ # languages to use for user interface strings. The list is in decreasing order
325
+ # of preference. For additional information, including expected format, see
326
+ # [RFC2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). This
327
+ # header and the setLang query parameter are mutually exclusive; do not specify
328
+ # both. If you set this header, you must also specify the cc query parameter.
329
+ # Bing will use the first supported language it finds from the list, and
330
+ # combine that language with the cc parameter value to determine the market to
331
+ # return results for. If the list does not include a supported language, Bing
332
+ # will find the closest language and market that supports the request, and may
333
+ # use an aggregated or default market for the results instead of a specified
334
+ # one. You should use this header and the cc query parameter only if you
335
+ # specify multiple languages; otherwise, you should use the mkt and setLang
336
+ # query parameters. A user interface string is a string that's used as a label
337
+ # in a user interface. There are very few user interface strings in the JSON
338
+ # response objects. Any links in the response objects to Bing.com properties
339
+ # will apply the specified language.
340
+ # @param pragma [String] By default, Bing returns cached content, if available.
341
+ # To prevent Bing from returning cached content, set the Pragma header to
342
+ # no-cache (for example, Pragma: no-cache).
343
+ # @param user_agent [String] The user agent originating the request. Bing uses
344
+ # the user agent to provide mobile users with an optimized experience. Although
345
+ # optional, you are strongly encouraged to always specify this header. The
346
+ # user-agent should be the same string that any commonly used browser would
347
+ # send. For information about user agents, see [RFC
348
+ # 2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
349
+ # @param client_id [String] Bing uses this header to provide users with
350
+ # consistent behavior across Bing API calls. Bing often flights new features
351
+ # and improvements, and it uses the client ID as a key for assigning traffic on
352
+ # different flights. If you do not use the same client ID for a user across
353
+ # multiple requests, then Bing may assign the user to multiple conflicting
354
+ # flights. Being assigned to multiple conflicting flights can lead to an
355
+ # inconsistent user experience. For example, if the second request has a
356
+ # different flight assignment than the first, the experience may be unexpected.
357
+ # Also, Bing can use the client ID to tailor web results to that client ID’s
358
+ # search history, providing a richer experience for the user. Bing also uses
359
+ # this header to help improve result rankings by analyzing the activity
360
+ # generated by a client ID. The relevance improvements help with better quality
361
+ # of results delivered by Bing APIs and in turn enables higher click-through
362
+ # rates for the API consumer. IMPORTANT: Although optional, you should consider
363
+ # this header required. Persisting the client ID across multiple requests for
364
+ # the same end user and device combination enables 1) the API consumer to
365
+ # receive a consistent user experience, and 2) higher click-through rates via
366
+ # better quality of results from the Bing APIs. Each user that uses your
367
+ # application on the device must have a unique, Bing generated client ID. If
368
+ # you do not include this header in the request, Bing generates an ID and
369
+ # returns it in the X-MSEdge-ClientID response header. The only time that you
370
+ # should NOT include this header in a request is the first time the user uses
371
+ # your app on that device. Use the client ID for each Bing API request that
372
+ # your app makes for this user on the device. Persist the client ID. To persist
373
+ # the ID in a browser app, use a persistent HTTP cookie to ensure the ID is
374
+ # used across all sessions. Do not use a session cookie. For other apps such as
375
+ # mobile apps, use the device's persistent storage to persist the ID. The next
376
+ # time the user uses your app on that device, get the client ID that you
377
+ # persisted. Bing responses may or may not include this header. If the response
378
+ # includes this header, capture the client ID and use it for all subsequent
379
+ # Bing requests for the user on that device. If you include the
380
+ # X-MSEdge-ClientID, you must not include cookies in the request.
381
+ # @param client_ip [String] The IPv4 or IPv6 address of the client device. The
382
+ # IP address is used to discover the user's location. Bing uses the location
383
+ # information to determine safe search behavior. Although optional, you are
384
+ # encouraged to always specify this header and the X-Search-Location header. Do
385
+ # not obfuscate the address (for example, by changing the last octet to 0).
386
+ # Obfuscating the address results in the location not being anywhere near the
387
+ # device's actual location, which may result in Bing serving erroneous results.
388
+ # @param location [String] A semicolon-delimited list of key/value pairs that
389
+ # describe the client's geographical location. Bing uses the location
390
+ # information to determine safe search behavior and to return relevant local
391
+ # content. Specify the key/value pair as <key>:<value>. The following are the
392
+ # keys that you use to specify the user's location. lat (required): The
393
+ # latitude of the client's location, in degrees. The latitude must be greater
394
+ # than or equal to -90.0 and less than or equal to +90.0. Negative values
395
+ # indicate southern latitudes and positive values indicate northern latitudes.
396
+ # long (required): The longitude of the client's location, in degrees. The
397
+ # longitude must be greater than or equal to -180.0 and less than or equal to
398
+ # +180.0. Negative values indicate western longitudes and positive values
399
+ # indicate eastern longitudes. re (required): The radius, in meters, which
400
+ # specifies the horizontal accuracy of the coordinates. Pass the value returned
401
+ # by the device's location service. Typical values might be 22m for GPS/Wi-Fi,
402
+ # 380m for cell tower triangulation, and 18,000m for reverse IP lookup. ts
403
+ # (optional): The UTC UNIX timestamp of when the client was at the location.
404
+ # (The UNIX timestamp is the number of seconds since January 1, 1970.) head
405
+ # (optional): The client's relative heading or direction of travel. Specify the
406
+ # direction of travel as degrees from 0 through 360, counting clockwise
407
+ # relative to true north. Specify this key only if the sp key is nonzero. sp
408
+ # (optional): The horizontal velocity (speed), in meters per second, that the
409
+ # client device is traveling. alt (optional): The altitude of the client
410
+ # device, in meters. are (optional): The radius, in meters, that specifies the
411
+ # vertical accuracy of the coordinates. Specify this key only if you specify
412
+ # the alt key. Although many of the keys are optional, the more information
413
+ # that you provide, the more accurate the location results are. Although
414
+ # optional, you are encouraged to always specify the user's geographical
415
+ # location. Providing the location is especially important if the client's IP
416
+ # address does not accurately reflect the user's physical location (for
417
+ # example, if the client uses VPN). For optimal results, you should include
418
+ # this header and the X-Search-ClientIP header, but at a minimum, you should
419
+ # include this header.
420
+ # @param action_type [ActionType] A string that's used by logging to determine
421
+ # whether the request is coming from an interactive session or a page load. The
422
+ # following are the possible values. 1) Edit—The request is from an interactive
423
+ # session 2) Load—The request is from a page load. Possible values include:
424
+ # 'Edit', 'Load'
425
+ # @param app_name [String] The unique name of your app. The name must be known
426
+ # by Bing. Do not include this parameter unless you have previously contacted
427
+ # Bing to get a unique app name. To get a unique name, contact your Bing
428
+ # Business Development manager.
429
+ # @param country_code [String] A 2-character country code of the country where
430
+ # the results come from. This API supports only the United States market. If
431
+ # you specify this query parameter, it must be set to us. If you set this
432
+ # parameter, you must also specify the Accept-Language header. Bing uses the
433
+ # first supported language it finds from the languages list, and combine that
434
+ # language with the country code that you specify to determine the market to
435
+ # return results for. If the languages list does not include a supported
436
+ # language, Bing finds the closest language and market that supports the
437
+ # request, or it may use an aggregated or default market for the results
438
+ # instead of a specified one. You should use this query parameter and the
439
+ # Accept-Language query parameter only if you specify multiple languages;
440
+ # otherwise, you should use the mkt and setLang query parameters. This
441
+ # parameter and the mkt query parameter are mutually exclusive—do not specify
442
+ # both.
443
+ # @param client_machine_name [String] A unique name of the device that the
444
+ # request is being made from. Generate a unique value for each device (the
445
+ # value is unimportant). The service uses the ID to help debug issues and
446
+ # improve the quality of corrections.
447
+ # @param doc_id [String] A unique ID that identifies the document that the text
448
+ # belongs to. Generate a unique value for each document (the value is
449
+ # unimportant). The service uses the ID to help debug issues and improve the
450
+ # quality of corrections.
451
+ # @param market [String] The market where the results come from. You are
452
+ # strongly encouraged to always specify the market, if known. Specifying the
453
+ # market helps Bing route the request and return an appropriate and optimal
454
+ # response. This parameter and the cc query parameter are mutually exclusive—do
455
+ # not specify both.
456
+ # @param session_id [String] A unique ID that identifies this user session.
457
+ # Generate a unique value for each user session (the value is unimportant). The
458
+ # service uses the ID to help debug issues and improve the quality of
459
+ # corrections
460
+ # @param set_lang [String] The language to use for user interface strings.
461
+ # Specify the language using the ISO 639-1 2-letter language code. For example,
462
+ # the language code for English is EN. The default is EN (English). Although
463
+ # optional, you should always specify the language. Typically, you set setLang
464
+ # to the same language specified by mkt unless the user wants the user
465
+ # interface strings displayed in a different language. This parameter and the
466
+ # Accept-Language header are mutually exclusive—do not specify both. A user
467
+ # interface string is a string that's used as a label in a user interface.
468
+ # There are few user interface strings in the JSON response objects. Also, any
469
+ # links to Bing.com properties in the response objects apply the specified
470
+ # language.
471
+ # @param user_id [String] A unique ID that identifies the user. Generate a
472
+ # unique value for each user (the value is unimportant). The service uses the
473
+ # ID to help debug issues and improve the quality of corrections.
474
+ # @param mode [Mode] The type of spelling and grammar checks to perform. The
475
+ # following are the possible values (the values are case insensitive). The
476
+ # default is Proof. 1) Proof—Finds most spelling and grammar mistakes. 2)
477
+ # Spell—Finds most spelling mistakes but does not find some of the grammar
478
+ # errors that Proof catches (for example, capitalization and repeated words).
479
+ # Possible values include: 'Proof', 'Spell'
480
+ # @param pre_context_text [String] A string that gives context to the text
481
+ # string. For example, the text string petal is valid. However, if you set
482
+ # preContextText to bike, the context changes and the text string becomes not
483
+ # valid. In this case, the API suggests that you change petal to pedal (as in
484
+ # bike pedal). This text is not checked for grammar or spelling errors. The
485
+ # combined length of the text string, preContextText string, and
486
+ # postContextText string may not exceed 10,000 characters. You may specify this
487
+ # parameter in the query string of a GET request or in the body of a POST
488
+ # request.
489
+ # @param post_context_text [String] A string that gives context to the text
490
+ # string. For example, the text string read is valid. However, if you set
491
+ # postContextText to carpet, the context changes and the text string becomes
492
+ # not valid. In this case, the API suggests that you change read to red (as in
493
+ # red carpet). This text is not checked for grammar or spelling errors. The
494
+ # combined length of the text string, preContextText string, and
495
+ # postContextText string may not exceed 10,000 characters. You may specify this
496
+ # parameter in the query string of a GET request or in the body of a POST
497
+ # request.
498
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
499
+ # will be added to the HTTP request.
500
+ #
501
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
502
+ #
503
+ def spell_checker_with_http_info(text, accept_language:nil, pragma:nil, user_agent:nil, client_id:nil, client_ip:nil, location:nil, action_type:nil, app_name:nil, country_code:nil, client_machine_name:nil, doc_id:nil, market:nil, session_id:nil, set_lang:nil, user_id:nil, mode:nil, pre_context_text:nil, post_context_text:nil, custom_headers:nil)
504
+ spell_checker_async(text, accept_language:accept_language, pragma:pragma, user_agent:user_agent, client_id:client_id, client_ip:client_ip, location:location, action_type:action_type, app_name:app_name, country_code:country_code, client_machine_name:client_machine_name, doc_id:doc_id, market:market, session_id:session_id, set_lang:set_lang, user_id:user_id, mode:mode, pre_context_text:pre_context_text, post_context_text:post_context_text, custom_headers:custom_headers).value!
505
+ end
506
+
507
+ #
508
+ # The Bing Spell Check API lets you perform contextual grammar and spell
509
+ # checking. Bing has developed a web-based spell-checker that leverages machine
510
+ # learning and statistical machine translation to dynamically train a
511
+ # constantly evolving and highly contextual algorithm. The spell-checker is
512
+ # based on a massive corpus of web searches and documents.
513
+ #
514
+ # @param text [String] The text string to check for spelling and grammar
515
+ # errors. The combined length of the text string, preContextText string, and
516
+ # postContextText string may not exceed 10,000 characters. You may specify this
517
+ # parameter in the query string of a GET request or in the body of a POST
518
+ # request. Because of the query string length limit, you'll typically use a
519
+ # POST request unless you're checking only short strings.
520
+ # @param accept_language [String] A comma-delimited list of one or more
521
+ # languages to use for user interface strings. The list is in decreasing order
522
+ # of preference. For additional information, including expected format, see
523
+ # [RFC2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). This
524
+ # header and the setLang query parameter are mutually exclusive; do not specify
525
+ # both. If you set this header, you must also specify the cc query parameter.
526
+ # Bing will use the first supported language it finds from the list, and
527
+ # combine that language with the cc parameter value to determine the market to
528
+ # return results for. If the list does not include a supported language, Bing
529
+ # will find the closest language and market that supports the request, and may
530
+ # use an aggregated or default market for the results instead of a specified
531
+ # one. You should use this header and the cc query parameter only if you
532
+ # specify multiple languages; otherwise, you should use the mkt and setLang
533
+ # query parameters. A user interface string is a string that's used as a label
534
+ # in a user interface. There are very few user interface strings in the JSON
535
+ # response objects. Any links in the response objects to Bing.com properties
536
+ # will apply the specified language.
537
+ # @param pragma [String] By default, Bing returns cached content, if available.
538
+ # To prevent Bing from returning cached content, set the Pragma header to
539
+ # no-cache (for example, Pragma: no-cache).
540
+ # @param user_agent [String] The user agent originating the request. Bing uses
541
+ # the user agent to provide mobile users with an optimized experience. Although
542
+ # optional, you are strongly encouraged to always specify this header. The
543
+ # user-agent should be the same string that any commonly used browser would
544
+ # send. For information about user agents, see [RFC
545
+ # 2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
546
+ # @param client_id [String] Bing uses this header to provide users with
547
+ # consistent behavior across Bing API calls. Bing often flights new features
548
+ # and improvements, and it uses the client ID as a key for assigning traffic on
549
+ # different flights. If you do not use the same client ID for a user across
550
+ # multiple requests, then Bing may assign the user to multiple conflicting
551
+ # flights. Being assigned to multiple conflicting flights can lead to an
552
+ # inconsistent user experience. For example, if the second request has a
553
+ # different flight assignment than the first, the experience may be unexpected.
554
+ # Also, Bing can use the client ID to tailor web results to that client ID’s
555
+ # search history, providing a richer experience for the user. Bing also uses
556
+ # this header to help improve result rankings by analyzing the activity
557
+ # generated by a client ID. The relevance improvements help with better quality
558
+ # of results delivered by Bing APIs and in turn enables higher click-through
559
+ # rates for the API consumer. IMPORTANT: Although optional, you should consider
560
+ # this header required. Persisting the client ID across multiple requests for
561
+ # the same end user and device combination enables 1) the API consumer to
562
+ # receive a consistent user experience, and 2) higher click-through rates via
563
+ # better quality of results from the Bing APIs. Each user that uses your
564
+ # application on the device must have a unique, Bing generated client ID. If
565
+ # you do not include this header in the request, Bing generates an ID and
566
+ # returns it in the X-MSEdge-ClientID response header. The only time that you
567
+ # should NOT include this header in a request is the first time the user uses
568
+ # your app on that device. Use the client ID for each Bing API request that
569
+ # your app makes for this user on the device. Persist the client ID. To persist
570
+ # the ID in a browser app, use a persistent HTTP cookie to ensure the ID is
571
+ # used across all sessions. Do not use a session cookie. For other apps such as
572
+ # mobile apps, use the device's persistent storage to persist the ID. The next
573
+ # time the user uses your app on that device, get the client ID that you
574
+ # persisted. Bing responses may or may not include this header. If the response
575
+ # includes this header, capture the client ID and use it for all subsequent
576
+ # Bing requests for the user on that device. If you include the
577
+ # X-MSEdge-ClientID, you must not include cookies in the request.
578
+ # @param client_ip [String] The IPv4 or IPv6 address of the client device. The
579
+ # IP address is used to discover the user's location. Bing uses the location
580
+ # information to determine safe search behavior. Although optional, you are
581
+ # encouraged to always specify this header and the X-Search-Location header. Do
582
+ # not obfuscate the address (for example, by changing the last octet to 0).
583
+ # Obfuscating the address results in the location not being anywhere near the
584
+ # device's actual location, which may result in Bing serving erroneous results.
585
+ # @param location [String] A semicolon-delimited list of key/value pairs that
586
+ # describe the client's geographical location. Bing uses the location
587
+ # information to determine safe search behavior and to return relevant local
588
+ # content. Specify the key/value pair as <key>:<value>. The following are the
589
+ # keys that you use to specify the user's location. lat (required): The
590
+ # latitude of the client's location, in degrees. The latitude must be greater
591
+ # than or equal to -90.0 and less than or equal to +90.0. Negative values
592
+ # indicate southern latitudes and positive values indicate northern latitudes.
593
+ # long (required): The longitude of the client's location, in degrees. The
594
+ # longitude must be greater than or equal to -180.0 and less than or equal to
595
+ # +180.0. Negative values indicate western longitudes and positive values
596
+ # indicate eastern longitudes. re (required): The radius, in meters, which
597
+ # specifies the horizontal accuracy of the coordinates. Pass the value returned
598
+ # by the device's location service. Typical values might be 22m for GPS/Wi-Fi,
599
+ # 380m for cell tower triangulation, and 18,000m for reverse IP lookup. ts
600
+ # (optional): The UTC UNIX timestamp of when the client was at the location.
601
+ # (The UNIX timestamp is the number of seconds since January 1, 1970.) head
602
+ # (optional): The client's relative heading or direction of travel. Specify the
603
+ # direction of travel as degrees from 0 through 360, counting clockwise
604
+ # relative to true north. Specify this key only if the sp key is nonzero. sp
605
+ # (optional): The horizontal velocity (speed), in meters per second, that the
606
+ # client device is traveling. alt (optional): The altitude of the client
607
+ # device, in meters. are (optional): The radius, in meters, that specifies the
608
+ # vertical accuracy of the coordinates. Specify this key only if you specify
609
+ # the alt key. Although many of the keys are optional, the more information
610
+ # that you provide, the more accurate the location results are. Although
611
+ # optional, you are encouraged to always specify the user's geographical
612
+ # location. Providing the location is especially important if the client's IP
613
+ # address does not accurately reflect the user's physical location (for
614
+ # example, if the client uses VPN). For optimal results, you should include
615
+ # this header and the X-Search-ClientIP header, but at a minimum, you should
616
+ # include this header.
617
+ # @param action_type [ActionType] A string that's used by logging to determine
618
+ # whether the request is coming from an interactive session or a page load. The
619
+ # following are the possible values. 1) Edit—The request is from an interactive
620
+ # session 2) Load—The request is from a page load. Possible values include:
621
+ # 'Edit', 'Load'
622
+ # @param app_name [String] The unique name of your app. The name must be known
623
+ # by Bing. Do not include this parameter unless you have previously contacted
624
+ # Bing to get a unique app name. To get a unique name, contact your Bing
625
+ # Business Development manager.
626
+ # @param country_code [String] A 2-character country code of the country where
627
+ # the results come from. This API supports only the United States market. If
628
+ # you specify this query parameter, it must be set to us. If you set this
629
+ # parameter, you must also specify the Accept-Language header. Bing uses the
630
+ # first supported language it finds from the languages list, and combine that
631
+ # language with the country code that you specify to determine the market to
632
+ # return results for. If the languages list does not include a supported
633
+ # language, Bing finds the closest language and market that supports the
634
+ # request, or it may use an aggregated or default market for the results
635
+ # instead of a specified one. You should use this query parameter and the
636
+ # Accept-Language query parameter only if you specify multiple languages;
637
+ # otherwise, you should use the mkt and setLang query parameters. This
638
+ # parameter and the mkt query parameter are mutually exclusive—do not specify
639
+ # both.
640
+ # @param client_machine_name [String] A unique name of the device that the
641
+ # request is being made from. Generate a unique value for each device (the
642
+ # value is unimportant). The service uses the ID to help debug issues and
643
+ # improve the quality of corrections.
644
+ # @param doc_id [String] A unique ID that identifies the document that the text
645
+ # belongs to. Generate a unique value for each document (the value is
646
+ # unimportant). The service uses the ID to help debug issues and improve the
647
+ # quality of corrections.
648
+ # @param market [String] The market where the results come from. You are
649
+ # strongly encouraged to always specify the market, if known. Specifying the
650
+ # market helps Bing route the request and return an appropriate and optimal
651
+ # response. This parameter and the cc query parameter are mutually exclusive—do
652
+ # not specify both.
653
+ # @param session_id [String] A unique ID that identifies this user session.
654
+ # Generate a unique value for each user session (the value is unimportant). The
655
+ # service uses the ID to help debug issues and improve the quality of
656
+ # corrections
657
+ # @param set_lang [String] The language to use for user interface strings.
658
+ # Specify the language using the ISO 639-1 2-letter language code. For example,
659
+ # the language code for English is EN. The default is EN (English). Although
660
+ # optional, you should always specify the language. Typically, you set setLang
661
+ # to the same language specified by mkt unless the user wants the user
662
+ # interface strings displayed in a different language. This parameter and the
663
+ # Accept-Language header are mutually exclusive—do not specify both. A user
664
+ # interface string is a string that's used as a label in a user interface.
665
+ # There are few user interface strings in the JSON response objects. Also, any
666
+ # links to Bing.com properties in the response objects apply the specified
667
+ # language.
668
+ # @param user_id [String] A unique ID that identifies the user. Generate a
669
+ # unique value for each user (the value is unimportant). The service uses the
670
+ # ID to help debug issues and improve the quality of corrections.
671
+ # @param mode [Mode] The type of spelling and grammar checks to perform. The
672
+ # following are the possible values (the values are case insensitive). The
673
+ # default is Proof. 1) Proof—Finds most spelling and grammar mistakes. 2)
674
+ # Spell—Finds most spelling mistakes but does not find some of the grammar
675
+ # errors that Proof catches (for example, capitalization and repeated words).
676
+ # Possible values include: 'Proof', 'Spell'
677
+ # @param pre_context_text [String] A string that gives context to the text
678
+ # string. For example, the text string petal is valid. However, if you set
679
+ # preContextText to bike, the context changes and the text string becomes not
680
+ # valid. In this case, the API suggests that you change petal to pedal (as in
681
+ # bike pedal). This text is not checked for grammar or spelling errors. The
682
+ # combined length of the text string, preContextText string, and
683
+ # postContextText string may not exceed 10,000 characters. You may specify this
684
+ # parameter in the query string of a GET request or in the body of a POST
685
+ # request.
686
+ # @param post_context_text [String] A string that gives context to the text
687
+ # string. For example, the text string read is valid. However, if you set
688
+ # postContextText to carpet, the context changes and the text string becomes
689
+ # not valid. In this case, the API suggests that you change read to red (as in
690
+ # red carpet). This text is not checked for grammar or spelling errors. The
691
+ # combined length of the text string, preContextText string, and
692
+ # postContextText string may not exceed 10,000 characters. You may specify this
693
+ # parameter in the query string of a GET request or in the body of a POST
694
+ # request.
695
+ # @param [Hash{String => String}] A hash of custom headers that will be added
696
+ # to the HTTP request.
697
+ #
698
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
699
+ #
700
+ def spell_checker_async(text, accept_language:nil, pragma:nil, user_agent:nil, client_id:nil, client_ip:nil, location:nil, action_type:nil, app_name:nil, country_code:nil, client_machine_name:nil, doc_id:nil, market:nil, session_id:nil, set_lang:nil, user_id:nil, mode:nil, pre_context_text:nil, post_context_text:nil, custom_headers:nil)
701
+ x_bing_apis_sdk = 'true'
702
+ fail ArgumentError, 'text is nil' if text.nil?
703
+
704
+
705
+ request_headers = {}
706
+ request_headers['Content-Type'] = 'application/x-www-form-urlencoded'
707
+
708
+ # Set Headers
709
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
710
+ request_headers['X-BingApis-SDK'] = x_bing_apis_sdk unless x_bing_apis_sdk.nil?
711
+ request_headers['Accept-Language'] = accept_language unless accept_language.nil?
712
+ request_headers['Pragma'] = pragma unless pragma.nil?
713
+ request_headers['User-Agent'] = user_agent unless user_agent.nil?
714
+ request_headers['X-MSEdge-ClientID'] = client_id unless client_id.nil?
715
+ request_headers['X-MSEdge-ClientIP'] = client_ip unless client_ip.nil?
716
+ request_headers['X-Search-Location'] = location unless location.nil?
717
+
718
+ # Set Form Data
719
+ form_data = {}
720
+ form_data['Mode'] = mode.to_s unless mode.to_s.nil?
721
+ form_data['PreContextText'] = pre_context_text unless pre_context_text.nil?
722
+ form_data['PostContextText'] = post_context_text unless post_context_text.nil?
723
+ form_data['Text'] = text unless text.nil?
724
+
725
+ path_template = 'spellcheck'
726
+
727
+ request_url = @base_url || self.base_url
728
+
729
+ options = {
730
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
731
+ query_params: {'ActionType' => action_type,'AppName' => app_name,'cc' => country_code,'ClientMachineName' => client_machine_name,'DocId' => doc_id,'mkt' => market,'SessionId' => session_id,'SetLang' => set_lang,'UserId' => user_id},
732
+ headers: request_headers.merge(custom_headers || {}),
733
+ body: URI.encode_www_form(form_data),
734
+ base_url: request_url
735
+ }
736
+ promise = self.make_request_async(:post, path_template, options)
737
+
738
+ promise = promise.then do |result|
739
+ http_response = result.response
740
+ status_code = http_response.status
741
+ response_content = http_response.body
742
+ unless status_code == 200
743
+ error_model = JSON.load(response_content)
744
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
745
+ end
746
+
747
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
748
+ # Deserialize Response
749
+ if status_code == 200
750
+ begin
751
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
752
+ result_mapper = Azure::CognitiveServices::SpellCheck::V1_0::Models::SpellCheck.mapper()
753
+ result.body = self.deserialize(result_mapper, parsed_response)
754
+ rescue Exception => e
755
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
756
+ end
757
+ end
758
+
759
+ result
760
+ end
761
+
762
+ promise.execute
763
+ end
764
+
765
+
766
+ private
767
+ #
768
+ # Adds telemetry information.
769
+ #
770
+ def add_telemetry
771
+ sdk_information = 'azure_cognitiveservices_spellcheck'
772
+ sdk_information = "#{sdk_information}/0.16.0"
773
+ add_user_agent_information(sdk_information)
774
+ end
775
+ end
776
+ end