/// <summary> /// The Custom Search API lets you send a search query to Bing and get back web /// pages found in your custom view of the web. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='customConfig'> /// The identifier for the custom search configuration /// </param> /// <param name='query'> /// The user's search query term. The term may not be empty. The term may /// contain Bing Advanced Operators. For example, to limit results to a /// specific domain, use the site: operator. /// </param> /// <param name='acceptLanguage'> /// A comma-delimited list of one or more languages to use for user interface /// strings. The list is in decreasing order of preference. For additional /// information, including expected format, see /// [RFC2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). This /// header and the setLang query parameter are mutually exclusive; do not /// specify both. If you set this header, you must also specify the cc query /// parameter. Bing will use the first supported language it finds from the /// list, and combine that language with the cc parameter value to determine /// the market to return results for. If the list does not include a supported /// language, Bing will find the closest language and market that supports the /// request, and may use an aggregated or default market for the results /// instead of a specified one. You should use this header and the cc query /// parameter only if you specify multiple languages; otherwise, you should use /// the mkt and setLang query parameters. A user interface string is a string /// that's used as a label in a user interface. There are very few user /// interface strings in the JSON response objects. Any links in the response /// objects to Bing.com properties will apply the specified language. /// </param> /// <param name='userAgent'> /// The user agent originating the request. Bing uses the user agent to provide /// mobile users with an optimized experience. Although optional, you are /// strongly encouraged to always specify this header. The user-agent should be /// the same string that any commonly used browser would send. For information /// about user agents, see [RFC /// 2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). /// </param> /// <param name='clientId'> /// Bing uses this header to provide users with consistent behavior across Bing /// API calls. Bing often flights new features and improvements, and it uses /// the client ID as a key for assigning traffic on different flights. If you /// do not use the same client ID for a user across multiple requests, then /// Bing may assign the user to multiple conflicting flights. Being assigned to /// multiple conflicting flights can lead to an inconsistent user experience. /// For example, if the second request has a different flight assignment than /// the first, the experience may be unexpected. Also, Bing can use the client /// ID to tailor web results to that client ID’s search history, providing a /// richer experience for the user. Bing also uses this header to help improve /// result rankings by analyzing the activity generated by a client ID. The /// relevance improvements help with better quality of results delivered by /// Bing APIs and in turn enables higher click-through rates for the API /// consumer. IMPORTANT: Although optional, you should consider this header /// required. Persisting the client ID across multiple requests for the same /// end user and device combination enables 1) the API consumer to receive a /// consistent user experience, and 2) higher click-through rates via better /// quality of results from the Bing APIs. Each user that uses your application /// on the device must have a unique, Bing generated client ID. If you do not /// include this header in the request, Bing generates an ID and returns it in /// the X-MSEdge-ClientID response header. The only time that you should NOT /// include this header in a request is the first time the user uses your app /// on that device. Use the client ID for each Bing API request that your app /// makes for this user on the device. Persist the client ID. To persist the ID /// in a browser app, use a persistent HTTP cookie to ensure the ID is used /// across all sessions. Do not use a session cookie. For other apps such as /// mobile apps, use the device's persistent storage to persist the ID. The /// next time the user uses your app on that device, get the client ID that you /// persisted. Bing responses may or may not include this header. If the /// response includes this header, capture the client ID and use it for all /// subsequent Bing requests for the user on that device. If you include the /// X-MSEdge-ClientID, you must not include cookies in the request. /// </param> /// <param name='clientIp'> /// The IPv4 or IPv6 address of the client device. The IP address is used to /// discover the user's location. Bing uses the location information to /// determine safe search behavior. Although optional, you are encouraged to /// always specify this header and the X-Search-Location header. Do not /// obfuscate the address (for example, by changing the last octet to 0). /// Obfuscating the address results in the location not being anywhere near the /// device's actual location, which may result in Bing serving erroneous /// results. /// </param> /// <param name='location'> /// A semicolon-delimited list of key/value pairs that describe the client's /// geographical location. Bing uses the location information to determine safe /// search behavior and to return relevant local content. Specify the key/value /// pair as <key>:<value>. The following are the keys that you use /// to specify the user's location. lat (required): The latitude of the /// client's location, in degrees. The latitude must be greater than or equal /// to -90.0 and less than or equal to +90.0. Negative values indicate southern /// latitudes and positive values indicate northern latitudes. long (required): /// The longitude of the client's location, in degrees. The longitude must be /// greater than or equal to -180.0 and less than or equal to +180.0. Negative /// values indicate western longitudes and positive values indicate eastern /// longitudes. re (required): The radius, in meters, which specifies the /// horizontal accuracy of the coordinates. Pass the value returned by the /// device's location service. Typical values might be 22m for GPS/Wi-Fi, 380m /// for cell tower triangulation, and 18,000m for reverse IP lookup. ts /// (optional): The UTC UNIX timestamp of when the client was at the location. /// (The UNIX timestamp is the number of seconds since January 1, 1970.) head /// (optional): The client's relative heading or direction of travel. Specify /// the direction of travel as degrees from 0 through 360, counting clockwise /// relative to true north. Specify this key only if the sp key is nonzero. sp /// (optional): The horizontal velocity (speed), in meters per second, that the /// client device is traveling. alt (optional): The altitude of the client /// device, in meters. are (optional): The radius, in meters, that specifies /// the vertical accuracy of the coordinates. Specify this key only if you /// specify the alt key. Although many of the keys are optional, the more /// information that you provide, the more accurate the location results are. /// Although optional, you are encouraged to always specify the user's /// geographical location. Providing the location is especially important if /// the client's IP address does not accurately reflect the user's physical /// location (for example, if the client uses VPN). For optimal results, you /// should include this header and the X-MSEdge-ClientIP header, but at a /// minimum, you should include this header. /// </param> /// <param name='countryCode'> /// A 2-character country code of the country where the results come from. This /// API supports only the United States market. If you specify this query /// parameter, it must be set to us. If you set this parameter, you must also /// specify the Accept-Language header. Bing uses the first supported language /// it finds from the languages list, and combine that language with the /// country code that you specify to determine the market to return results /// for. If the languages list does not include a supported language, Bing /// finds the closest language and market that supports the request, or it may /// use an aggregated or default market for the results instead of a specified /// one. You should use this query parameter and the Accept-Language query /// parameter only if you specify multiple languages; otherwise, you should use /// the mkt and setLang query parameters. This parameter and the mkt query /// parameter are mutually exclusive—do not specify both. /// </param> /// <param name='count'> /// The number of search results to return in the response. The default is 10 /// and the maximum value is 50. The actual number delivered may be less than /// requested.Use this parameter along with the offset parameter to page /// results.For example, if your user interface displays 10 search results per /// page, set count to 10 and offset to 0 to get the first page of results. For /// each subsequent page, increment offset by 10 (for example, 0, 10, 20). It /// is possible for multiple pages to include some overlap in results. /// </param> /// <param name='market'> /// The market where the results come from. Typically, mkt is the country where /// the user is making the request from. However, it could be a different /// country if the user is not located in a country where Bing delivers /// results. The market must be in the form <language code>-<country /// code>. For example, en-US. The string is case insensitive. If known, you /// are encouraged to always specify the market. Specifying the market helps /// Bing route the request and return an appropriate and optimal response. If /// you specify a market that is not listed in Market Codes, Bing uses a best /// fit market code based on an internal mapping that is subject to change. /// This parameter and the cc query parameter are mutually exclusive—do not /// specify both. /// </param> /// <param name='offset'> /// The zero-based offset that indicates the number of search results to skip /// before returning results. The default is 0. The offset should be less than /// (totalEstimatedMatches - count). Use this parameter along with the count /// parameter to page results. For example, if your user interface displays 10 /// search results per page, set count to 10 and offset to 0 to get the first /// page of results. For each subsequent page, increment offset by 10 (for /// example, 0, 10, 20). it is possible for multiple pages to include some /// overlap in results. /// </param> /// <param name='safeSearch'> /// A filter used to filter adult content. Off: Return webpages with adult /// text, images, or videos. Moderate: Return webpages with adult text, but not /// adult images or videos. Strict: Do not return webpages with adult text, /// images, or videos. The default is Moderate. If the request comes from a /// market that Bing's adult policy requires that safeSearch is set to Strict, /// Bing ignores the safeSearch value and uses Strict. If you use the site: /// query operator, there is the chance that the response may contain adult /// content regardless of what the safeSearch query parameter is set to. Use /// site: only if you are aware of the content on the site and your scenario /// supports the possibility of adult content. Possible values include: 'Off', /// 'Moderate', 'Strict' /// </param> /// <param name='setLang'> /// The language to use for user interface strings. Specify the language using /// the ISO 639-1 2-letter language code. For example, the language code for /// English is EN. The default is EN (English). Although optional, you should /// always specify the language. Typically, you set setLang to the same /// language specified by mkt unless the user wants the user interface strings /// displayed in a different language. This parameter and the Accept-Language /// header are mutually exclusive; do not specify both. A user interface string /// is a string that's used as a label in a user interface. There are few user /// interface strings in the JSON response objects. Also, any links to Bing.com /// properties in the response objects apply the specified language. /// </param> /// <param name='textDecorations'> /// A Boolean value that determines whether display strings should contain /// decoration markers such as hit highlighting characters. If true, the /// strings may include markers. The default is false. To specify whether to /// use Unicode characters or HTML tags as the markers, see the textFormat /// query parameter. /// </param> /// <param name='textFormat'> /// The type of markers to use for text decorations (see the textDecorations /// query parameter). Possible values are Raw—Use Unicode characters to mark /// content that needs special formatting. The Unicode characters are in the /// range E000 through E019. For example, Bing uses E000 and E001 to mark the /// beginning and end of query terms for hit highlighting. HTML—Use HTML tags /// to mark content that needs special formatting. For example, use <b> /// tags to highlight query terms in display strings. The default is Raw. For /// display strings that contain escapable HTML characters such as <, >, /// and &, if textFormat is set to HTML, Bing escapes the characters as /// appropriate (for example, < is escaped to &lt;). Possible values /// include: 'Raw', 'Html' /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <SearchResponse> SearchAsync(this ICustomInstance operations, string customConfig, string query, string acceptLanguage = default(string), string userAgent = default(string), string clientId = default(string), string clientIp = default(string), string location = default(string), string countryCode = default(string), int?count = default(int?), string market = "en-us", int?offset = default(int?), string safeSearch = default(string), string setLang = default(string), bool?textDecorations = default(bool?), string textFormat = default(string), CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.SearchWithHttpMessagesAsync(customConfig, query, acceptLanguage, userAgent, clientId, clientIp, location, countryCode, count, market, offset, safeSearch, setLang, textDecorations, textFormat, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// Initializes client properties. /// </summary> private void Initialize() { CustomInstance = new CustomInstance(this); BaseUri = "{Endpoint}/bingcustomsearch/v7.0"; Endpoint = "https://api.cognitive.microsoft.com"; SerializationSettings = new JsonSerializerSettings { Formatting = Newtonsoft.Json.Formatting.Indented, DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, ContractResolver = new ReadOnlyJsonContractResolver(), Converters = new List <JsonConverter> { new Iso8601TimeSpanConverter() } }; DeserializationSettings = new JsonSerializerSettings { DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, ContractResolver = new ReadOnlyJsonContractResolver(), Converters = new List <JsonConverter> { new Iso8601TimeSpanConverter() } }; SerializationSettings.Converters.Add(new PolymorphicSerializeJsonConverter <ResponseBase>("_type")); DeserializationSettings.Converters.Add(new PolymorphicDeserializeJsonConverter <ResponseBase>("_type")); CustomInitialize(); }
/// <summary> /// The Custom Image Search API lets you send an image search query to Bing and /// get image results found in your custom view of the web. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='customConfig'> /// The identifier for the custom search configuration /// </param> /// <param name='query'> /// The user's search query term. The term cannot be empty. The term may /// contain [Bing Advanced /// Operators](http://msdn.microsoft.com/library/ff795620.aspx). For example, /// to limit images to a specific domain, use the /// [site:](http://msdn.microsoft.com/library/ff795613.aspx) operator. To help /// improve relevance of an insights query (see /// [insightsToken](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#insightstoken)), /// you should always include the user's query term. Use this parameter only /// with the Image Search API.Do not specify this parameter when calling the /// Trending Images API. /// </param> /// <param name='acceptLanguage'> /// A comma-delimited list of one or more languages to use for user interface /// strings. The list is in decreasing order of preference. For additional /// information, including expected format, see /// [RFC2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). This /// header and the /// [setLang](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#setlang) /// query parameter are mutually exclusive; do not specify both. If you set /// this header, you must also specify the /// [cc](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#cc) /// query parameter. To determine the market to return results for, Bing uses /// the first supported language it finds from the list and combines it with /// the cc parameter value. If the list does not include a supported language, /// Bing finds the closest language and market that supports the request or it /// uses an aggregated or default market for the results. To determine the /// market that Bing used, see the BingAPIs-Market header. Use this header and /// the cc query parameter only if you specify multiple languages. Otherwise, /// use the /// [mkt](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#mkt) /// and /// [setLang](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#setlang) /// query parameters. A user interface string is a string that's used as a /// label in a user interface. There are few user interface strings in the JSON /// response objects. Any links to Bing.com properties in the response objects /// apply the specified language. /// </param> /// <param name='userAgent'> /// The user agent originating the request. Bing uses the user agent to provide /// mobile users with an optimized experience. Although optional, you are /// encouraged to always specify this header. The user-agent should be the same /// string that any commonly used browser sends. For information about user /// agents, see [RFC /// 2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). The /// following are examples of user-agent strings. Windows Phone: Mozilla/5.0 /// (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; /// Touch; NOKIA; Lumia 822). Android: Mozilla / 5.0 (Linux; U; Android 2.3.5; /// en - us; SCH - I500 Build / GINGERBREAD) AppleWebKit / 533.1 (KHTML; like /// Gecko) Version / 4.0 Mobile Safari / 533.1. iPhone: Mozilla / 5.0 (iPhone; /// CPU iPhone OS 6_1 like Mac OS X) AppleWebKit / 536.26 (KHTML; like Gecko) /// Mobile / 10B142 iPhone4; 1 BingWeb / 3.03.1428.20120423. PC: Mozilla / 5.0 /// (Windows NT 6.3; WOW64; Trident / 7.0; Touch; rv:11.0) like Gecko. iPad: /// Mozilla / 5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit / 537.51.1 /// (KHTML, like Gecko) Version / 7.0 Mobile / 11A465 Safari / 9537.53 /// </param> /// <param name='clientId'> /// Bing uses this header to provide users with consistent behavior across Bing /// API calls. Bing often flights new features and improvements, and it uses /// the client ID as a key for assigning traffic on different flights. If you /// do not use the same client ID for a user across multiple requests, then /// Bing may assign the user to multiple conflicting flights. Being assigned to /// multiple conflicting flights can lead to an inconsistent user experience. /// For example, if the second request has a different flight assignment than /// the first, the experience may be unexpected. Also, Bing can use the client /// ID to tailor web results to that client ID’s search history, providing a /// richer experience for the user. Bing also uses this header to help improve /// result rankings by analyzing the activity generated by a client ID. The /// relevance improvements help with better quality of results delivered by /// Bing APIs and in turn enables higher click-through rates for the API /// consumer. IMPORTANT: Although optional, you should consider this header /// required. Persisting the client ID across multiple requests for the same /// end user and device combination enables 1) the API consumer to receive a /// consistent user experience, and 2) higher click-through rates via better /// quality of results from the Bing APIs. Each user that uses your application /// on the device must have a unique, Bing generated client ID. If you do not /// include this header in the request, Bing generates an ID and returns it in /// the X-MSEdge-ClientID response header. The only time that you should NOT /// include this header in a request is the first time the user uses your app /// on that device. Use the client ID for each Bing API request that your app /// makes for this user on the device. Persist the client ID. To persist the ID /// in a browser app, use a persistent HTTP cookie to ensure the ID is used /// across all sessions. Do not use a session cookie. For other apps such as /// mobile apps, use the device's persistent storage to persist the ID. The /// next time the user uses your app on that device, get the client ID that you /// persisted. Bing responses may or may not include this header. If the /// response includes this header, capture the client ID and use it for all /// subsequent Bing requests for the user on that device. If you include the /// X-MSEdge-ClientID, you must not include cookies in the request. /// </param> /// <param name='clientIp'> /// The IPv4 or IPv6 address of the client device. The IP address is used to /// discover the user's location. Bing uses the location information to /// determine safe search behavior. Although optional, you are encouraged to /// always specify this header and the X-Search-Location header. Do not /// obfuscate the address (for example, by changing the last octet to 0). /// Obfuscating the address results in the location not being anywhere near the /// device's actual location, which may result in Bing serving erroneous /// results. /// </param> /// <param name='location'> /// A semicolon-delimited list of key/value pairs that describe the client's /// geographical location. Bing uses the location information to determine safe /// search behavior and to return relevant local content. Specify the key/value /// pair as <key>:<value>. The following are the keys that you use /// to specify the user's location. lat (required): The latitude of the /// client's location, in degrees. The latitude must be greater than or equal /// to -90.0 and less than or equal to +90.0. Negative values indicate southern /// latitudes and positive values indicate northern latitudes. long (required): /// The longitude of the client's location, in degrees. The longitude must be /// greater than or equal to -180.0 and less than or equal to +180.0. Negative /// values indicate western longitudes and positive values indicate eastern /// longitudes. re (required): The radius, in meters, which specifies the /// horizontal accuracy of the coordinates. Pass the value returned by the /// device's location service. Typical values might be 22m for GPS/Wi-Fi, 380m /// for cell tower triangulation, and 18,000m for reverse IP lookup. ts /// (optional): The UTC UNIX timestamp of when the client was at the location. /// (The UNIX timestamp is the number of seconds since January 1, 1970.) head /// (optional): The client's relative heading or direction of travel. Specify /// the direction of travel as degrees from 0 through 360, counting clockwise /// relative to true north. Specify this key only if the sp key is nonzero. sp /// (optional): The horizontal velocity (speed), in meters per second, that the /// client device is traveling. alt (optional): The altitude of the client /// device, in meters. are (optional): The radius, in meters, that specifies /// the vertical accuracy of the coordinates. Specify this key only if you /// specify the alt key. Although many of the keys are optional, the more /// information that you provide, the more accurate the location results are. /// Although optional, you are encouraged to always specify the user's /// geographical location. Providing the location is especially important if /// the client's IP address does not accurately reflect the user's physical /// location (for example, if the client uses VPN). For optimal results, you /// should include this header and the X-MSEdge-ClientIP header, but at a /// minimum, you should include this header. /// </param> /// <param name='aspect'> /// Filter images by the following aspect ratios. All: Do not filter by /// aspect.Specifying this value is the same as not specifying the aspect /// parameter. Square: Return images with standard aspect ratio. Wide: Return /// images with wide screen aspect ratio. Tall: Return images with tall aspect /// ratio. Possible values include: 'All', 'Square', 'Wide', 'Tall' /// </param> /// <param name='color'> /// Filter images by the following color options. ColorOnly: Return color /// images. Monochrome: Return black and white images. Return images with one /// of the following dominant colors: Black, Blue, Brown, Gray, Green, Orange, /// Pink, Purple, Red, Teal, White, Yellow. Possible values include: /// 'ColorOnly', 'Monochrome', 'Black', 'Blue', 'Brown', 'Gray', 'Green', /// 'Orange', 'Pink', 'Purple', 'Red', 'Teal', 'White', 'Yellow' /// </param> /// <param name='countryCode'> /// A 2-character country code of the country where the results come from. For /// a list of possible values, see [Market /// Codes](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#market-codes). /// If you set this parameter, you must also specify the /// [Accept-Language](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#acceptlanguage) /// header. Bing uses the first supported language it finds from the languages /// list, and combine that language with the country code that you specify to /// determine the market to return results for. If the languages list does not /// include a supported language, Bing finds the closest language and market /// that supports the request, or it may use an aggregated or default market /// for the results instead of a specified one. You should use this query /// parameter and the Accept-Language query parameter only if you specify /// multiple languages; otherwise, you should use the mkt and setLang query /// parameters. This parameter and the /// [mkt](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#mkt) /// query parameter are mutually exclusive—do not specify both. /// </param> /// <param name='count'> /// The number of images to return in the response. The actual number delivered /// may be less than requested. The default is 35. The maximum value is 150. /// You use this parameter along with the offset parameter to page results.For /// example, if your user interface displays 20 images per page, set count to /// 20 and offset to 0 to get the first page of results.For each subsequent /// page, increment offset by 20 (for example, 0, 20, 40). Use this parameter /// only with the Image Search API.Do not specify this parameter when calling /// the Insights, Trending Images, or Web Search APIs. /// </param> /// <param name='freshness'> /// Filter images by the following discovery options. Day: Return images /// discovered by Bing within the last 24 hours. Week: Return images discovered /// by Bing within the last 7 days. Month: Return images discovered by Bing /// within the last 30 days. Possible values include: 'Day', 'Week', 'Month' /// </param> /// <param name='height'> /// Filter images that have the specified height, in pixels. You may use this /// filter with the size filter to return small images that have a height of /// 150 pixels. /// </param> /// <param name='id'> /// An ID that uniquely identifies an image. Use this parameter to ensure that /// the specified image is the first image in the list of images that Bing /// returns. The /// [Image](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#image) /// object's imageId field contains the ID that you set this parameter to. /// </param> /// <param name='imageContent'> /// Filter images by the following content types. Face: Return images that show /// only a person's face. Portrait: Return images that show only a person's /// head and shoulders. Possible values include: 'Face', 'Portrait' /// </param> /// <param name='imageType'> /// Filter images by the following image types. AnimatedGif: Return only /// animated GIFs. Clipart: Return only clip art images. Line: Return only line /// drawings. Photo: Return only photographs(excluding line drawings, animated /// Gifs, and clip art). Shopping: Return only images that contain items where /// Bing knows of a merchant that is selling the items. This option is valid in /// the en - US market only.Transparent: Return only images with a transparent /// background. Possible values include: 'AnimatedGif', 'Clipart', 'Line', /// 'Photo', 'Shopping', 'Transparent' /// </param> /// <param name='license'> /// Filter images by the following license types. All: Do not filter by license /// type.Specifying this value is the same as not specifying the license /// parameter. Any: Return images that are under any license type. The response /// doesn't include images that do not specify a license or the license is /// unknown. Public: Return images where the creator has waived their exclusive /// rights, to the fullest extent allowed by law. Share: Return images that may /// be shared with others. Changing or editing the image might not be allowed. /// Also, modifying, sharing, and using the image for commercial purposes might /// not be allowed. Typically, this option returns the most images. /// ShareCommercially: Return images that may be shared with others for /// personal or commercial purposes. Changing or editing the image might not be /// allowed. Modify: Return images that may be modified, shared, and used. /// Changing or editing the image might not be allowed. Modifying, sharing, and /// using the image for commercial purposes might not be allowed. /// ModifyCommercially: Return images that may be modified, shared, and used /// for personal or commercial purposes. Typically, this option returns the /// fewest images. For more information about these license types, see [Filter /// Images By License Type](http://go.microsoft.com/fwlink/?LinkId=309768). /// Possible values include: 'All', 'Any', 'Public', 'Share', /// 'ShareCommercially', 'Modify', 'ModifyCommercially' /// </param> /// <param name='market'> /// The market where the results come from. Typically, mkt is the country where /// the user is making the request from. However, it could be a different /// country if the user is not located in a country where Bing delivers /// results. The market must be in the form <language code>-<country /// code>. For example, en-US. The string is case insensitive. For a list of /// possible market values, see [Market /// Codes](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#market-codes). /// NOTE: If known, you are encouraged to always specify the market. Specifying /// the market helps Bing route the request and return an appropriate and /// optimal response. If you specify a market that is not listed in [Market /// Codes](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#market-codes), /// Bing uses a best fit market code based on an internal mapping that is /// subject to change. This parameter and the /// [cc](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#cc) /// query parameter are mutually exclusive—do not specify both. /// </param> /// <param name='maxFileSize'> /// Filter images that are less than or equal to the specified file size. The /// maximum file size that you may specify is 520,192 bytes. If you specify a /// larger value, the API uses 520,192. It is possible that the response may /// include images that are slightly larger than the specified maximum. You may /// specify this filter and minFileSize to filter images within a range of file /// sizes. /// </param> /// <param name='maxHeight'> /// Filter images that have a height that is less than or equal to the /// specified height. Specify the height in pixels. You may specify this filter /// and minHeight to filter images within a range of heights. This filter and /// the height filter are mutually exclusive. /// </param> /// <param name='maxWidth'> /// Filter images that have a width that is less than or equal to the specified /// width. Specify the width in pixels. You may specify this filter and /// maxWidth to filter images within a range of widths. This filter and the /// width filter are mutually exclusive. /// </param> /// <param name='minFileSize'> /// Filter images that are greater than or equal to the specified file size. /// The maximum file size that you may specify is 520,192 bytes. If you specify /// a larger value, the API uses 520,192. It is possible that the response may /// include images that are slightly smaller than the specified minimum. You /// may specify this filter and maxFileSize to filter images within a range of /// file sizes. /// </param> /// <param name='minHeight'> /// Filter images that have a height that is greater than or equal to the /// specified height. Specify the height in pixels. You may specify this filter /// and maxHeight to filter images within a range of heights. This filter and /// the height filter are mutually exclusive. /// </param> /// <param name='minWidth'> /// Filter images that have a width that is greater than or equal to the /// specified width. Specify the width in pixels. You may specify this filter /// and maxWidth to filter images within a range of widths. This filter and the /// width filter are mutually exclusive. /// </param> /// <param name='offset'> /// The zero-based offset that indicates the number of images to skip before /// returning images. The default is 0. The offset should be less than /// ([totalEstimatedMatches](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#totalestimatedmatches) /// - count). Use this parameter along with the count parameter to page /// results. For example, if your user interface displays 20 images per page, /// set count to 20 and offset to 0 to get the first page of results. For each /// subsequent page, increment offset by 20 (for example, 0, 20, 40). It is /// possible for multiple pages to include some overlap in results. To prevent /// duplicates, see /// [nextOffset](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#nextoffset). /// Use this parameter only with the Image API. Do not specify this parameter /// when calling the Trending Images API or the Web Search API. /// </param> /// <param name='safeSearch'> /// Filter images for adult content. The following are the possible filter /// values. Off: May return images with adult content. If the request is /// through the Image Search API, the response includes thumbnail images that /// are clear (non-fuzzy). However, if the request is through the Web Search /// API, the response includes thumbnail images that are pixelated (fuzzy). /// Moderate: If the request is through the Image Search API, the response /// doesn't include images with adult content. If the request is through the /// Web Search API, the response may include images with adult content (the /// thumbnail images are pixelated (fuzzy)). Strict: Do not return images with /// adult content. The default is Moderate. If the request comes from a market /// that Bing's adult policy requires that safeSearch is set to Strict, Bing /// ignores the safeSearch value and uses Strict. If you use the site: query /// operator, there is the chance that the response may contain adult content /// regardless of what the safeSearch query parameter is set to. Use site: only /// if you are aware of the content on the site and your scenario supports the /// possibility of adult content. Possible values include: 'Off', 'Moderate', /// 'Strict' /// </param> /// <param name='size'> /// Filter images by the following sizes. All: Do not filter by size. /// Specifying this value is the same as not specifying the size parameter. /// Small: Return images that are less than 200x200 pixels. Medium: Return /// images that are greater than or equal to 200x200 pixels but less than /// 500x500 pixels. Large: Return images that are 500x500 pixels or larger. /// Wallpaper: Return wallpaper images. You may use this parameter along with /// the height or width parameters. For example, you may use height and size to /// request small images that are 150 pixels tall. Possible values include: /// 'All', 'Small', 'Medium', 'Large', 'Wallpaper' /// </param> /// <param name='setLang'> /// The language to use for user interface strings. Specify the language using /// the ISO 639-1 2-letter language code. For example, the language code for /// English is EN. The default is EN (English). Although optional, you should /// always specify the language. Typically, you set setLang to the same /// language specified by mkt unless the user wants the user interface strings /// displayed in a different language. This parameter and the /// [Accept-Language](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#acceptlanguage) /// header are mutually exclusive; do not specify both. A user interface string /// is a string that's used as a label in a user interface. There are few user /// interface strings in the JSON response objects. Also, any links to Bing.com /// properties in the response objects apply the specified language. /// </param> /// <param name='width'> /// Filter images that have the specified width, in pixels. You may use this /// filter with the size filter to return small images that have a width of 150 /// pixels. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <Images> ImageSearchAsync(this ICustomInstance operations, string customConfig, string query, string acceptLanguage = default(string), string userAgent = default(string), string clientId = default(string), string clientIp = default(string), string location = default(string), string aspect = default(string), string color = default(string), string countryCode = default(string), int?count = default(int?), string freshness = default(string), int?height = default(int?), string id = default(string), string imageContent = default(string), string imageType = default(string), string license = default(string), string market = default(string), long?maxFileSize = default(long?), long?maxHeight = default(long?), long?maxWidth = default(long?), long?minFileSize = default(long?), long?minHeight = default(long?), long?minWidth = default(long?), long?offset = default(long?), string safeSearch = default(string), string size = default(string), string setLang = default(string), int?width = default(int?), CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.ImageSearchWithHttpMessagesAsync(customConfig, query, acceptLanguage, userAgent, clientId, clientIp, location, aspect, color, countryCode, count, freshness, height, id, imageContent, imageType, license, market, maxFileSize, maxHeight, maxWidth, minFileSize, minHeight, minWidth, offset, safeSearch, size, setLang, width, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }