From 64190953afeb29d3e53d068f5a1e15d26ef5a180 Mon Sep 17 00:00:00 2001 From: Azure SDK for Python bot Date: Tue, 8 May 2018 17:21:59 -0700 Subject: [PATCH 1/2] [AutoPR cognitiveservices/data-plane/CustomImageSearch] Adding custom image search swagger spec (#2825) * Generated from c9d4d41fb69f65f205c2ecbcdde8d1d1262ecbb7 Adding custom image search * Generated from 9f5bcc92bfd5f05be333758d433ffa36c96e40a2 Adding custom image search * Generated from e8d819e50515f9b0ba463341a2a38b3a9ebc6210 Adding custom image search * Generated from e8d819e50515f9b0ba463341a2a38b3a9ebc6210 Adding custom image search --- lib/services/customImageSearch/LICENSE.txt | 21 + .../lib/customImageSearchAPIClient.d.ts | 43 + .../lib/customImageSearchAPIClient.js | 63 + .../customImageSearch/lib/models/answer.js | 85 + .../lib/models/creativeWork.js | 180 +++ .../lib/models/errorModel.js | 107 ++ .../lib/models/errorResponse.js | 102 ++ .../lib/models/identifiable.js | 70 + .../lib/models/imageObject.js | 289 ++++ .../customImageSearch/lib/models/images.js | 125 ++ .../customImageSearch/lib/models/index.d.ts | 292 ++++ .../customImageSearch/lib/models/index.js | 44 + .../lib/models/mediaObject.js | 244 +++ .../customImageSearch/lib/models/query.js | 117 ++ .../customImageSearch/lib/models/response.js | 89 + .../lib/models/responseBase.js | 58 + .../lib/models/searchResultsAnswer.js | 96 ++ .../customImageSearch/lib/models/thing.js | 157 ++ .../customImageSearch/lib/models/webPage.js | 176 ++ .../lib/operations/custom.js | 1433 ++++++++++++++++ .../lib/operations/customInstance.js | 1436 +++++++++++++++++ .../lib/operations/index.d.ts | 743 +++++++++ .../customImageSearch/lib/operations/index.js | 17 + lib/services/customImageSearch/package.json | 24 + 24 files changed, 6011 insertions(+) create mode 100644 lib/services/customImageSearch/LICENSE.txt create mode 100644 lib/services/customImageSearch/lib/customImageSearchAPIClient.d.ts create mode 100644 lib/services/customImageSearch/lib/customImageSearchAPIClient.js create mode 100644 lib/services/customImageSearch/lib/models/answer.js create mode 100644 lib/services/customImageSearch/lib/models/creativeWork.js create mode 100644 lib/services/customImageSearch/lib/models/errorModel.js create mode 100644 lib/services/customImageSearch/lib/models/errorResponse.js create mode 100644 lib/services/customImageSearch/lib/models/identifiable.js create mode 100644 lib/services/customImageSearch/lib/models/imageObject.js create mode 100644 lib/services/customImageSearch/lib/models/images.js create mode 100644 lib/services/customImageSearch/lib/models/index.d.ts create mode 100644 lib/services/customImageSearch/lib/models/index.js create mode 100644 lib/services/customImageSearch/lib/models/mediaObject.js create mode 100644 lib/services/customImageSearch/lib/models/query.js create mode 100644 lib/services/customImageSearch/lib/models/response.js create mode 100644 lib/services/customImageSearch/lib/models/responseBase.js create mode 100644 lib/services/customImageSearch/lib/models/searchResultsAnswer.js create mode 100644 lib/services/customImageSearch/lib/models/thing.js create mode 100644 lib/services/customImageSearch/lib/models/webPage.js create mode 100644 lib/services/customImageSearch/lib/operations/custom.js create mode 100644 lib/services/customImageSearch/lib/operations/customInstance.js create mode 100644 lib/services/customImageSearch/lib/operations/index.d.ts create mode 100644 lib/services/customImageSearch/lib/operations/index.js create mode 100644 lib/services/customImageSearch/package.json diff --git a/lib/services/customImageSearch/LICENSE.txt b/lib/services/customImageSearch/LICENSE.txt new file mode 100644 index 0000000000..5431ba98b9 --- /dev/null +++ b/lib/services/customImageSearch/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Microsoft + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/lib/services/customImageSearch/lib/customImageSearchAPIClient.d.ts b/lib/services/customImageSearch/lib/customImageSearchAPIClient.d.ts new file mode 100644 index 0000000000..632ca24ed3 --- /dev/null +++ b/lib/services/customImageSearch/lib/customImageSearchAPIClient.d.ts @@ -0,0 +1,43 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +import { ServiceClient, ServiceClientOptions, ServiceClientCredentials } from 'ms-rest'; +import * as models from "./models"; +import * as operations from "./operations"; + +export default class CustomImageSearchAPIClient extends ServiceClient { + /** + * @class + * Initializes a new instance of the CustomImageSearchAPIClient class. + * @constructor + * + * @param {credentials} credentials - Subscription credentials which uniquely identify client subscription. + * + * @param {string} [baseUri] - The base URI of the service. + * + * @param {object} [options] - The parameter options + * + * @param {Array} [options.filters] - Filters to be added to the request pipeline + * + * @param {object} [options.requestOptions] - Options for the underlying request object + * {@link https://github.com/request/request#requestoptions-callback Options doc} + * + * @param {boolean} [options.noRetryPolicy] - If set to true, turn off default retry policy + * + */ + constructor(credentials: ServiceClientCredentials, baseUri?: string, options?: ServiceClientOptions); + + credentials: ServiceClientCredentials; + + // Operation groups + customInstance: operations.CustomInstance; +} + +export { CustomImageSearchAPIClient, models as CustomImageSearchAPIModels }; diff --git a/lib/services/customImageSearch/lib/customImageSearchAPIClient.js b/lib/services/customImageSearch/lib/customImageSearchAPIClient.js new file mode 100644 index 0000000000..68280fa7d2 --- /dev/null +++ b/lib/services/customImageSearch/lib/customImageSearchAPIClient.js @@ -0,0 +1,63 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +/* jshint latedef:false */ +/* jshint forin:false */ +/* jshint noempty:false */ + +'use strict'; + +const msRest = require('ms-rest'); +const ServiceClient = msRest.ServiceClient; + +const models = require('./models'); +const operations = require('./operations'); + + +/** Class representing a CustomImageSearchAPIClient. */ +class CustomImageSearchAPIClient extends ServiceClient { + /** + * Create a CustomImageSearchAPIClient. + * @param {credentials} credentials - Subscription credentials which uniquely identify client subscription. + * @param {string} [baseUri] - The base URI of the service. + * @param {object} [options] - The parameter options + * @param {Array} [options.filters] - Filters to be added to the request pipeline + * @param {object} [options.requestOptions] - Options for the underlying request object + * {@link https://github.com/request/request#requestoptions-callback Options doc} + * @param {boolean} [options.noRetryPolicy] - If set to true, turn off default retry policy + */ + constructor(credentials, baseUri, options) { + if (credentials === null || credentials === undefined) { + throw new Error('\'credentials\' cannot be null.'); + } + + if (!options) options = {}; + + super(credentials, options); + + this.baseUri = baseUri; + if (!this.baseUri) { + this.baseUri = 'https://api.cognitive.microsoft.com/bingcustomsearch/v7.0'; + } + this.credentials = credentials; + + let packageInfo = this.getPackageJsonInfo(__dirname); + this.addUserAgentInfo(`${packageInfo.name}/${packageInfo.version}`); + this.customInstance = new operations.CustomInstance(this); + this.models = models; + msRest.addSerializationMixin(this); + } + +} + +module.exports = CustomImageSearchAPIClient; +module.exports['default'] = CustomImageSearchAPIClient; +module.exports.CustomImageSearchAPIClient = CustomImageSearchAPIClient; +module.exports.CustomImageSearchAPIModels = models; diff --git a/lib/services/customImageSearch/lib/models/answer.js b/lib/services/customImageSearch/lib/models/answer.js new file mode 100644 index 0000000000..e818bf4242 --- /dev/null +++ b/lib/services/customImageSearch/lib/models/answer.js @@ -0,0 +1,85 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const models = require('./index'); + +/** + * Defines an answer. + * + * @extends models['Response'] + */ +class Answer extends models['Response'] { + /** + * Create a Answer. + */ + constructor() { + super(); + } + + /** + * Defines the metadata of Answer + * + * @returns {object} metadata of Answer + * + */ + mapper() { + return { + required: false, + serializedName: 'Answer', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'Answer', + modelProperties: { + _type: { + required: true, + serializedName: '_type', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + }, + id: { + required: false, + readOnly: true, + serializedName: 'id', + type: { + name: 'String' + } + }, + readLink: { + required: false, + readOnly: true, + serializedName: 'readLink', + type: { + name: 'String' + } + }, + webSearchUrl: { + required: false, + readOnly: true, + serializedName: 'webSearchUrl', + type: { + name: 'String' + } + } + } + } + }; + } +} + +module.exports = Answer; diff --git a/lib/services/customImageSearch/lib/models/creativeWork.js b/lib/services/customImageSearch/lib/models/creativeWork.js new file mode 100644 index 0000000000..1c771b7b75 --- /dev/null +++ b/lib/services/customImageSearch/lib/models/creativeWork.js @@ -0,0 +1,180 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const models = require('./index'); + +/** + * The most generic kind of creative work, including books, movies, + * photographs, software programs, etc. + * + * @extends models['Thing'] + */ +class CreativeWork extends models['Thing'] { + /** + * Create a CreativeWork. + * @member {string} [thumbnailUrl] The URL to a thumbnail of the item. + * @member {array} [provider] The source of the creative work. + * @member {string} [text] Text content of this creative work + */ + constructor() { + super(); + } + + /** + * Defines the metadata of CreativeWork + * + * @returns {object} metadata of CreativeWork + * + */ + mapper() { + return { + required: false, + serializedName: 'CreativeWork', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'CreativeWork', + modelProperties: { + _type: { + required: true, + serializedName: '_type', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + }, + id: { + required: false, + readOnly: true, + serializedName: 'id', + type: { + name: 'String' + } + }, + readLink: { + required: false, + readOnly: true, + serializedName: 'readLink', + type: { + name: 'String' + } + }, + webSearchUrl: { + required: false, + readOnly: true, + serializedName: 'webSearchUrl', + type: { + name: 'String' + } + }, + name: { + required: false, + readOnly: true, + serializedName: 'name', + type: { + name: 'String' + } + }, + url: { + required: false, + readOnly: true, + serializedName: 'url', + type: { + name: 'String' + } + }, + image: { + required: false, + readOnly: true, + serializedName: 'image', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'ImageObject' + } + }, + description: { + required: false, + readOnly: true, + serializedName: 'description', + type: { + name: 'String' + } + }, + alternateName: { + required: false, + readOnly: true, + serializedName: 'alternateName', + type: { + name: 'String' + } + }, + bingId: { + required: false, + readOnly: true, + serializedName: 'bingId', + type: { + name: 'String' + } + }, + thumbnailUrl: { + required: false, + readOnly: true, + serializedName: 'thumbnailUrl', + type: { + name: 'String' + } + }, + provider: { + required: false, + readOnly: true, + serializedName: 'provider', + type: { + name: 'Sequence', + element: { + required: false, + serializedName: 'ThingElementType', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'Thing' + } + } + } + }, + text: { + required: false, + readOnly: true, + serializedName: 'text', + type: { + name: 'String' + } + } + } + } + }; + } +} + +module.exports = CreativeWork; diff --git a/lib/services/customImageSearch/lib/models/errorModel.js b/lib/services/customImageSearch/lib/models/errorModel.js new file mode 100644 index 0000000000..29a10321dd --- /dev/null +++ b/lib/services/customImageSearch/lib/models/errorModel.js @@ -0,0 +1,107 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +/** + * Defines the error that occurred. + * + */ +class ErrorModel { + /** + * Create a ErrorModel. + * @member {string} code The error code that identifies the category of + * error. Possible values include: 'None', 'ServerError', 'InvalidRequest', + * 'RateLimitExceeded', 'InvalidAuthorization', 'InsufficientAuthorization'. + * Default value: 'None' . + * @member {string} [subCode] The error code that further helps to identify + * the error. Possible values include: 'UnexpectedError', 'ResourceError', + * 'NotImplemented', 'ParameterMissing', 'ParameterInvalidValue', + * 'HttpNotAllowed', 'Blocked', 'AuthorizationMissing', + * 'AuthorizationRedundancy', 'AuthorizationDisabled', 'AuthorizationExpired' + * @member {string} message A description of the error. + * @member {string} [moreDetails] A description that provides additional + * information about the error. + * @member {string} [parameter] The parameter in the request that caused the + * error. + * @member {string} [value] The parameter's value in the request that was not + * valid. + */ + constructor() { + } + + /** + * Defines the metadata of ErrorModel + * + * @returns {object} metadata of ErrorModel + * + */ + mapper() { + return { + required: false, + serializedName: 'Error', + type: { + name: 'Composite', + className: 'ErrorModel', + modelProperties: { + code: { + required: true, + serializedName: 'code', + defaultValue: 'None', + type: { + name: 'String' + } + }, + subCode: { + required: false, + readOnly: true, + serializedName: 'subCode', + type: { + name: 'String' + } + }, + message: { + required: true, + serializedName: 'message', + type: { + name: 'String' + } + }, + moreDetails: { + required: false, + readOnly: true, + serializedName: 'moreDetails', + type: { + name: 'String' + } + }, + parameter: { + required: false, + readOnly: true, + serializedName: 'parameter', + type: { + name: 'String' + } + }, + value: { + required: false, + readOnly: true, + serializedName: 'value', + type: { + name: 'String' + } + } + } + } + }; + } +} + +module.exports = ErrorModel; diff --git a/lib/services/customImageSearch/lib/models/errorResponse.js b/lib/services/customImageSearch/lib/models/errorResponse.js new file mode 100644 index 0000000000..f24c1e64b3 --- /dev/null +++ b/lib/services/customImageSearch/lib/models/errorResponse.js @@ -0,0 +1,102 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const models = require('./index'); + +/** + * The top-level response that represents a failed request. + * + * @extends models['Response'] + */ +class ErrorResponse extends models['Response'] { + /** + * Create a ErrorResponse. + * @member {array} errors A list of errors that describe the reasons why the + * request failed. + */ + constructor() { + super(); + } + + /** + * Defines the metadata of ErrorResponse + * + * @returns {object} metadata of ErrorResponse + * + */ + mapper() { + return { + required: false, + serializedName: 'ErrorResponse', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'ErrorResponse', + modelProperties: { + _type: { + required: true, + serializedName: '_type', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + }, + id: { + required: false, + readOnly: true, + serializedName: 'id', + type: { + name: 'String' + } + }, + readLink: { + required: false, + readOnly: true, + serializedName: 'readLink', + type: { + name: 'String' + } + }, + webSearchUrl: { + required: false, + readOnly: true, + serializedName: 'webSearchUrl', + type: { + name: 'String' + } + }, + errors: { + required: true, + serializedName: 'errors', + type: { + name: 'Sequence', + element: { + required: false, + serializedName: 'ErrorModelElementType', + type: { + name: 'Composite', + className: 'ErrorModel' + } + } + } + } + } + } + }; + } +} + +module.exports = ErrorResponse; diff --git a/lib/services/customImageSearch/lib/models/identifiable.js b/lib/services/customImageSearch/lib/models/identifiable.js new file mode 100644 index 0000000000..6cc9e3d679 --- /dev/null +++ b/lib/services/customImageSearch/lib/models/identifiable.js @@ -0,0 +1,70 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const models = require('./index'); + +/** + * Defines the identity of a resource. + * + * @extends models['ResponseBase'] + */ +class Identifiable extends models['ResponseBase'] { + /** + * Create a Identifiable. + * @member {string} [id] A String identifier. + */ + constructor() { + super(); + } + + /** + * Defines the metadata of Identifiable + * + * @returns {object} metadata of Identifiable + * + */ + mapper() { + return { + required: false, + serializedName: 'Identifiable', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'Identifiable', + modelProperties: { + _type: { + required: true, + serializedName: '_type', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + }, + id: { + required: false, + readOnly: true, + serializedName: 'id', + type: { + name: 'String' + } + } + } + } + }; + } +} + +module.exports = Identifiable; diff --git a/lib/services/customImageSearch/lib/models/imageObject.js b/lib/services/customImageSearch/lib/models/imageObject.js new file mode 100644 index 0000000000..99d40c4918 --- /dev/null +++ b/lib/services/customImageSearch/lib/models/imageObject.js @@ -0,0 +1,289 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const models = require('./index'); + +/** + * Defines an image + * + * @extends models['MediaObject'] + */ +class ImageObject extends models['MediaObject'] { + /** + * Create a ImageObject. + * @member {object} [thumbnail] The URL to a thumbnail of the image + * @member {string} [imageInsightsToken] The token that you use in a + * subsequent call to the Image Search API to get additional information + * about the image. For information about using this token, see the + * insightsToken query parameter. + * @member {string} [imageId] Unique Id for the image + * @member {string} [accentColor] A three-byte hexadecimal number that + * represents the color that dominates the image. Use the color as the + * temporary background in your client until the image is loaded. + * @member {string} [visualWords] Visual representation of the image. Used + * for getting more sizes + */ + constructor() { + super(); + } + + /** + * Defines the metadata of ImageObject + * + * @returns {object} metadata of ImageObject + * + */ + mapper() { + return { + required: false, + serializedName: 'ImageObject', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'ImageObject', + modelProperties: { + _type: { + required: true, + serializedName: '_type', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + }, + id: { + required: false, + readOnly: true, + serializedName: 'id', + type: { + name: 'String' + } + }, + readLink: { + required: false, + readOnly: true, + serializedName: 'readLink', + type: { + name: 'String' + } + }, + webSearchUrl: { + required: false, + readOnly: true, + serializedName: 'webSearchUrl', + type: { + name: 'String' + } + }, + name: { + required: false, + readOnly: true, + serializedName: 'name', + type: { + name: 'String' + } + }, + url: { + required: false, + readOnly: true, + serializedName: 'url', + type: { + name: 'String' + } + }, + image: { + required: false, + readOnly: true, + serializedName: 'image', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'ImageObject' + } + }, + description: { + required: false, + readOnly: true, + serializedName: 'description', + type: { + name: 'String' + } + }, + alternateName: { + required: false, + readOnly: true, + serializedName: 'alternateName', + type: { + name: 'String' + } + }, + bingId: { + required: false, + readOnly: true, + serializedName: 'bingId', + type: { + name: 'String' + } + }, + thumbnailUrl: { + required: false, + readOnly: true, + serializedName: 'thumbnailUrl', + type: { + name: 'String' + } + }, + provider: { + required: false, + readOnly: true, + serializedName: 'provider', + type: { + name: 'Sequence', + element: { + required: false, + serializedName: 'ThingElementType', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'Thing' + } + } + } + }, + text: { + required: false, + readOnly: true, + serializedName: 'text', + type: { + name: 'String' + } + }, + contentUrl: { + required: false, + readOnly: true, + serializedName: 'contentUrl', + type: { + name: 'String' + } + }, + hostPageUrl: { + required: false, + readOnly: true, + serializedName: 'hostPageUrl', + type: { + name: 'String' + } + }, + contentSize: { + required: false, + readOnly: true, + serializedName: 'contentSize', + type: { + name: 'String' + } + }, + encodingFormat: { + required: false, + readOnly: true, + serializedName: 'encodingFormat', + type: { + name: 'String' + } + }, + hostPageDisplayUrl: { + required: false, + readOnly: true, + serializedName: 'hostPageDisplayUrl', + type: { + name: 'String' + } + }, + width: { + required: false, + readOnly: true, + serializedName: 'width', + type: { + name: 'Number' + } + }, + height: { + required: false, + readOnly: true, + serializedName: 'height', + type: { + name: 'Number' + } + }, + thumbnail: { + required: false, + readOnly: true, + serializedName: 'thumbnail', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'ImageObject' + } + }, + imageInsightsToken: { + required: false, + readOnly: true, + serializedName: 'imageInsightsToken', + type: { + name: 'String' + } + }, + imageId: { + required: false, + readOnly: true, + serializedName: 'imageId', + type: { + name: 'String' + } + }, + accentColor: { + required: false, + readOnly: true, + serializedName: 'accentColor', + type: { + name: 'String' + } + }, + visualWords: { + required: false, + readOnly: true, + serializedName: 'visualWords', + type: { + name: 'String' + } + } + } + } + }; + } +} + +module.exports = ImageObject; diff --git a/lib/services/customImageSearch/lib/models/images.js b/lib/services/customImageSearch/lib/models/images.js new file mode 100644 index 0000000000..74797fb607 --- /dev/null +++ b/lib/services/customImageSearch/lib/models/images.js @@ -0,0 +1,125 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const models = require('./index'); + +/** + * Defines an image answer + * + * @extends models['SearchResultsAnswer'] + */ +class Images extends models['SearchResultsAnswer'] { + /** + * Create a Images. + * @member {number} [nextOffset] Used as part of deduping. Tells client the + * next offset that client should use in the next pagination request + * @member {array} value A list of image objects that are relevant to the + * query. If there are no results, the List is empty. + */ + constructor() { + super(); + } + + /** + * Defines the metadata of Images + * + * @returns {object} metadata of Images + * + */ + mapper() { + return { + required: false, + serializedName: 'Images', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'Images', + modelProperties: { + _type: { + required: true, + serializedName: '_type', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + }, + id: { + required: false, + readOnly: true, + serializedName: 'id', + type: { + name: 'String' + } + }, + readLink: { + required: false, + readOnly: true, + serializedName: 'readLink', + type: { + name: 'String' + } + }, + webSearchUrl: { + required: false, + readOnly: true, + serializedName: 'webSearchUrl', + type: { + name: 'String' + } + }, + totalEstimatedMatches: { + required: false, + readOnly: true, + serializedName: 'totalEstimatedMatches', + type: { + name: 'Number' + } + }, + nextOffset: { + required: false, + readOnly: true, + serializedName: 'nextOffset', + type: { + name: 'Number' + } + }, + value: { + required: true, + serializedName: 'value', + type: { + name: 'Sequence', + element: { + required: false, + serializedName: 'ImageObjectElementType', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'ImageObject' + } + } + } + } + } + } + }; + } +} + +module.exports = Images; diff --git a/lib/services/customImageSearch/lib/models/index.d.ts b/lib/services/customImageSearch/lib/models/index.d.ts new file mode 100644 index 0000000000..6c50a1060a --- /dev/null +++ b/lib/services/customImageSearch/lib/models/index.d.ts @@ -0,0 +1,292 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +import * as moment from "moment"; + + +/** + * @class + * Initializes a new instance of the ResponseBase class. + * @constructor + * Response base + * + * @member {string} _type Polymorphic Discriminator + */ +export interface ResponseBase { + _type: string; +} + +/** + * @class + * Initializes a new instance of the Identifiable class. + * @constructor + * Defines the identity of a resource. + * + * @member {string} [id] A String identifier. + */ +export interface Identifiable extends ResponseBase { + readonly id?: string; +} + +/** + * @class + * Initializes a new instance of the Response class. + * @constructor + * Defines a response. All schemas that could be returned at the root of a + * response should inherit from this + * + * @member {string} [readLink] The URL that returns this resource. + * @member {string} [webSearchUrl] The URL To Bing's search result for this + * item. + */ +export interface Response extends Identifiable { + readonly readLink?: string; + readonly webSearchUrl?: string; +} + +/** + * @class + * Initializes a new instance of the Thing class. + * @constructor + * Defines a thing. + * + * @member {string} [name] The name of the thing represented by this object. + * @member {string} [url] The URL to get more information about the thing + * represented by this object. + * @member {object} [image] An image of the item. + * @member {object} [image.thumbnail] The URL to a thumbnail of the image + * @member {string} [image.imageInsightsToken] The token that you use in a + * subsequent call to the Image Search API to get additional information about + * the image. For information about using this token, see the insightsToken + * query parameter. + * @member {string} [image.imageId] Unique Id for the image + * @member {string} [image.accentColor] A three-byte hexadecimal number that + * represents the color that dominates the image. Use the color as the + * temporary background in your client until the image is loaded. + * @member {string} [image.visualWords] Visual representation of the image. + * Used for getting more sizes + * @member {string} [description] A short description of the item. + * @member {string} [alternateName] An alias for the item + * @member {string} [bingId] An ID that uniquely identifies this item. + */ +export interface Thing extends Response { + readonly name?: string; + readonly url?: string; + readonly image?: ImageObject; + readonly description?: string; + readonly alternateName?: string; + readonly bingId?: string; +} + +/** + * @class + * Initializes a new instance of the CreativeWork class. + * @constructor + * The most generic kind of creative work, including books, movies, + * photographs, software programs, etc. + * + * @member {string} [thumbnailUrl] The URL to a thumbnail of the item. + * @member {array} [provider] The source of the creative work. + * @member {string} [text] Text content of this creative work + */ +export interface CreativeWork extends Thing { + readonly thumbnailUrl?: string; + readonly provider?: Thing[]; + readonly text?: string; +} + +/** + * @class + * Initializes a new instance of the MediaObject class. + * @constructor + * Defines a media object. + * + * @member {string} [contentUrl] Original URL to retrieve the source (file) for + * the media object (e.g the source URL for the image). + * @member {string} [hostPageUrl] URL of the page that hosts the media object. + * @member {string} [contentSize] Size of the media object content (use format + * "value unit" e.g "1024 B"). + * @member {string} [encodingFormat] Encoding format (e.g mp3, mp4, jpeg, etc). + * @member {string} [hostPageDisplayUrl] Display URL of the page that hosts the + * media object. + * @member {number} [width] The width of the media object, in pixels. + * @member {number} [height] The height of the media object, in pixels. + */ +export interface MediaObject extends CreativeWork { + readonly contentUrl?: string; + readonly hostPageUrl?: string; + readonly contentSize?: string; + readonly encodingFormat?: string; + readonly hostPageDisplayUrl?: string; + readonly width?: number; + readonly height?: number; +} + +/** + * @class + * Initializes a new instance of the ImageObject class. + * @constructor + * Defines an image + * + * @member {object} [thumbnail] The URL to a thumbnail of the image + * @member {string} [imageInsightsToken] The token that you use in a subsequent + * call to the Image Search API to get additional information about the image. + * For information about using this token, see the insightsToken query + * parameter. + * @member {string} [imageId] Unique Id for the image + * @member {string} [accentColor] A three-byte hexadecimal number that + * represents the color that dominates the image. Use the color as the + * temporary background in your client until the image is loaded. + * @member {string} [visualWords] Visual representation of the image. Used for + * getting more sizes + */ +export interface ImageObject extends MediaObject { + readonly thumbnail?: ImageObject; + readonly imageInsightsToken?: string; + readonly imageId?: string; + readonly accentColor?: string; + readonly visualWords?: string; +} + +/** + * @class + * Initializes a new instance of the Answer class. + * @constructor + * Defines an answer. + * + */ +export interface Answer extends Response { +} + +/** + * @class + * Initializes a new instance of the SearchResultsAnswer class. + * @constructor + * Defines a search result answer. + * + * @member {number} [totalEstimatedMatches] The estimated number of webpages + * that are relevant to the query. Use this number along with the count and + * offset query parameters to page the results. + */ +export interface SearchResultsAnswer extends Answer { + readonly totalEstimatedMatches?: number; +} + +/** + * @class + * Initializes a new instance of the Images class. + * @constructor + * Defines an image answer + * + * @member {number} [nextOffset] Used as part of deduping. Tells client the + * next offset that client should use in the next pagination request + * @member {array} value A list of image objects that are relevant to the + * query. If there are no results, the List is empty. + */ +export interface Images extends SearchResultsAnswer { + readonly nextOffset?: number; + value: ImageObject[]; +} + +/** + * @class + * Initializes a new instance of the Query class. + * @constructor + * Defines a search query. + * + * @member {string} text The query string. Use this string as the query term in + * a new search request. + * @member {string} [displayText] The display version of the query term. This + * version of the query term may contain special characters that highlight the + * search term found in the query string. The string contains the highlighting + * characters only if the query enabled hit highlighting + * @member {string} [webSearchUrl] The URL that takes the user to the Bing + * search results page for the query.Only related search results include this + * field. + * @member {string} [searchLink] The URL that you use to get the results of the + * related search. Before using the URL, you must append query parameters as + * appropriate and include the Ocp-Apim-Subscription-Key header. Use this URL + * if you're displaying the results in your own user interface. Otherwise, use + * the webSearchUrl URL. + * @member {object} [thumbnail] The URL to a thumbnail of a related image. + * @member {object} [thumbnail.thumbnail] The URL to a thumbnail of the image + * @member {string} [thumbnail.imageInsightsToken] The token that you use in a + * subsequent call to the Image Search API to get additional information about + * the image. For information about using this token, see the insightsToken + * query parameter. + * @member {string} [thumbnail.imageId] Unique Id for the image + * @member {string} [thumbnail.accentColor] A three-byte hexadecimal number + * that represents the color that dominates the image. Use the color as the + * temporary background in your client until the image is loaded. + * @member {string} [thumbnail.visualWords] Visual representation of the image. + * Used for getting more sizes + */ +export interface Query { + text: string; + readonly displayText?: string; + readonly webSearchUrl?: string; + readonly searchLink?: string; + readonly thumbnail?: ImageObject; +} + +/** + * @class + * Initializes a new instance of the ErrorModel class. + * @constructor + * Defines the error that occurred. + * + * @member {string} code The error code that identifies the category of error. + * Possible values include: 'None', 'ServerError', 'InvalidRequest', + * 'RateLimitExceeded', 'InvalidAuthorization', 'InsufficientAuthorization'. + * Default value: 'None' . + * @member {string} [subCode] The error code that further helps to identify the + * error. Possible values include: 'UnexpectedError', 'ResourceError', + * 'NotImplemented', 'ParameterMissing', 'ParameterInvalidValue', + * 'HttpNotAllowed', 'Blocked', 'AuthorizationMissing', + * 'AuthorizationRedundancy', 'AuthorizationDisabled', 'AuthorizationExpired' + * @member {string} message A description of the error. + * @member {string} [moreDetails] A description that provides additional + * information about the error. + * @member {string} [parameter] The parameter in the request that caused the + * error. + * @member {string} [value] The parameter's value in the request that was not + * valid. + */ +export interface ErrorModel { + code: string; + readonly subCode?: string; + message: string; + readonly moreDetails?: string; + readonly parameter?: string; + readonly value?: string; +} + +/** + * @class + * Initializes a new instance of the ErrorResponse class. + * @constructor + * The top-level response that represents a failed request. + * + * @member {array} errors A list of errors that describe the reasons why the + * request failed. + */ +export interface ErrorResponse extends Response { + errors: ErrorModel[]; +} + +/** + * @class + * Initializes a new instance of the WebPage class. + * @constructor + * Defines a webpage that is relevant to the query. + * + */ +export interface WebPage extends CreativeWork { +} diff --git a/lib/services/customImageSearch/lib/models/index.js b/lib/services/customImageSearch/lib/models/index.js new file mode 100644 index 0000000000..880b842072 --- /dev/null +++ b/lib/services/customImageSearch/lib/models/index.js @@ -0,0 +1,44 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +/* jshint latedef:false */ +/* jshint forin:false */ +/* jshint noempty:false */ + +'use strict'; + +exports.ResponseBase = require('./responseBase'); +exports.Identifiable = require('./identifiable'); +exports.Response = require('./response'); +exports.Thing = require('./thing'); +exports.CreativeWork = require('./creativeWork'); +exports.MediaObject = require('./mediaObject'); +exports.ImageObject = require('./imageObject'); +exports.Answer = require('./answer'); +exports.SearchResultsAnswer = require('./searchResultsAnswer'); +exports.Images = require('./images'); +exports.Query = require('./query'); +exports.ErrorModel = require('./errorModel'); +exports.ErrorResponse = require('./errorResponse'); +exports.WebPage = require('./webPage'); +exports.discriminators = { + 'ResponseBase.ImageObject' : exports.ImageObject, + 'ResponseBase.Images' : exports.Images, + 'ResponseBase.SearchResultsAnswer' : exports.SearchResultsAnswer, + 'ResponseBase.Answer' : exports.Answer, + 'ResponseBase.MediaObject' : exports.MediaObject, + 'ResponseBase.Response' : exports.Response, + 'ResponseBase.Thing' : exports.Thing, + 'ResponseBase.CreativeWork' : exports.CreativeWork, + 'ResponseBase.Identifiable' : exports.Identifiable, + 'ResponseBase.ErrorResponse' : exports.ErrorResponse, + 'ResponseBase.WebPage' : exports.WebPage, + 'ResponseBase' : exports.ResponseBase +}; diff --git a/lib/services/customImageSearch/lib/models/mediaObject.js b/lib/services/customImageSearch/lib/models/mediaObject.js new file mode 100644 index 0000000000..793752ab3c --- /dev/null +++ b/lib/services/customImageSearch/lib/models/mediaObject.js @@ -0,0 +1,244 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const models = require('./index'); + +/** + * Defines a media object. + * + * @extends models['CreativeWork'] + */ +class MediaObject extends models['CreativeWork'] { + /** + * Create a MediaObject. + * @member {string} [contentUrl] Original URL to retrieve the source (file) + * for the media object (e.g the source URL for the image). + * @member {string} [hostPageUrl] URL of the page that hosts the media + * object. + * @member {string} [contentSize] Size of the media object content (use + * format "value unit" e.g "1024 B"). + * @member {string} [encodingFormat] Encoding format (e.g mp3, mp4, jpeg, + * etc). + * @member {string} [hostPageDisplayUrl] Display URL of the page that hosts + * the media object. + * @member {number} [width] The width of the media object, in pixels. + * @member {number} [height] The height of the media object, in pixels. + */ + constructor() { + super(); + } + + /** + * Defines the metadata of MediaObject + * + * @returns {object} metadata of MediaObject + * + */ + mapper() { + return { + required: false, + serializedName: 'MediaObject', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'MediaObject', + modelProperties: { + _type: { + required: true, + serializedName: '_type', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + }, + id: { + required: false, + readOnly: true, + serializedName: 'id', + type: { + name: 'String' + } + }, + readLink: { + required: false, + readOnly: true, + serializedName: 'readLink', + type: { + name: 'String' + } + }, + webSearchUrl: { + required: false, + readOnly: true, + serializedName: 'webSearchUrl', + type: { + name: 'String' + } + }, + name: { + required: false, + readOnly: true, + serializedName: 'name', + type: { + name: 'String' + } + }, + url: { + required: false, + readOnly: true, + serializedName: 'url', + type: { + name: 'String' + } + }, + image: { + required: false, + readOnly: true, + serializedName: 'image', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'ImageObject' + } + }, + description: { + required: false, + readOnly: true, + serializedName: 'description', + type: { + name: 'String' + } + }, + alternateName: { + required: false, + readOnly: true, + serializedName: 'alternateName', + type: { + name: 'String' + } + }, + bingId: { + required: false, + readOnly: true, + serializedName: 'bingId', + type: { + name: 'String' + } + }, + thumbnailUrl: { + required: false, + readOnly: true, + serializedName: 'thumbnailUrl', + type: { + name: 'String' + } + }, + provider: { + required: false, + readOnly: true, + serializedName: 'provider', + type: { + name: 'Sequence', + element: { + required: false, + serializedName: 'ThingElementType', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'Thing' + } + } + } + }, + text: { + required: false, + readOnly: true, + serializedName: 'text', + type: { + name: 'String' + } + }, + contentUrl: { + required: false, + readOnly: true, + serializedName: 'contentUrl', + type: { + name: 'String' + } + }, + hostPageUrl: { + required: false, + readOnly: true, + serializedName: 'hostPageUrl', + type: { + name: 'String' + } + }, + contentSize: { + required: false, + readOnly: true, + serializedName: 'contentSize', + type: { + name: 'String' + } + }, + encodingFormat: { + required: false, + readOnly: true, + serializedName: 'encodingFormat', + type: { + name: 'String' + } + }, + hostPageDisplayUrl: { + required: false, + readOnly: true, + serializedName: 'hostPageDisplayUrl', + type: { + name: 'String' + } + }, + width: { + required: false, + readOnly: true, + serializedName: 'width', + type: { + name: 'Number' + } + }, + height: { + required: false, + readOnly: true, + serializedName: 'height', + type: { + name: 'Number' + } + } + } + } + }; + } +} + +module.exports = MediaObject; diff --git a/lib/services/customImageSearch/lib/models/query.js b/lib/services/customImageSearch/lib/models/query.js new file mode 100644 index 0000000000..751422daad --- /dev/null +++ b/lib/services/customImageSearch/lib/models/query.js @@ -0,0 +1,117 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const models = require('./index'); + +/** + * Defines a search query. + * + */ +class Query { + /** + * Create a Query. + * @member {string} text The query string. Use this string as the query term + * in a new search request. + * @member {string} [displayText] The display version of the query term. This + * version of the query term may contain special characters that highlight + * the search term found in the query string. The string contains the + * highlighting characters only if the query enabled hit highlighting + * @member {string} [webSearchUrl] The URL that takes the user to the Bing + * search results page for the query.Only related search results include this + * field. + * @member {string} [searchLink] The URL that you use to get the results of + * the related search. Before using the URL, you must append query parameters + * as appropriate and include the Ocp-Apim-Subscription-Key header. Use this + * URL if you're displaying the results in your own user interface. + * Otherwise, use the webSearchUrl URL. + * @member {object} [thumbnail] The URL to a thumbnail of a related image. + * @member {object} [thumbnail.thumbnail] The URL to a thumbnail of the image + * @member {string} [thumbnail.imageInsightsToken] The token that you use in + * a subsequent call to the Image Search API to get additional information + * about the image. For information about using this token, see the + * insightsToken query parameter. + * @member {string} [thumbnail.imageId] Unique Id for the image + * @member {string} [thumbnail.accentColor] A three-byte hexadecimal number + * that represents the color that dominates the image. Use the color as the + * temporary background in your client until the image is loaded. + * @member {string} [thumbnail.visualWords] Visual representation of the + * image. Used for getting more sizes + */ + constructor() { + } + + /** + * Defines the metadata of Query + * + * @returns {object} metadata of Query + * + */ + mapper() { + return { + required: false, + serializedName: 'Query', + type: { + name: 'Composite', + className: 'Query', + modelProperties: { + text: { + required: true, + serializedName: 'text', + type: { + name: 'String' + } + }, + displayText: { + required: false, + readOnly: true, + serializedName: 'displayText', + type: { + name: 'String' + } + }, + webSearchUrl: { + required: false, + readOnly: true, + serializedName: 'webSearchUrl', + type: { + name: 'String' + } + }, + searchLink: { + required: false, + readOnly: true, + serializedName: 'searchLink', + type: { + name: 'String' + } + }, + thumbnail: { + required: false, + readOnly: true, + serializedName: 'thumbnail', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'ImageObject' + } + } + } + } + }; + } +} + +module.exports = Query; diff --git a/lib/services/customImageSearch/lib/models/response.js b/lib/services/customImageSearch/lib/models/response.js new file mode 100644 index 0000000000..5f42c01a24 --- /dev/null +++ b/lib/services/customImageSearch/lib/models/response.js @@ -0,0 +1,89 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const models = require('./index'); + +/** + * Defines a response. All schemas that could be returned at the root of a + * response should inherit from this + * + * @extends models['Identifiable'] + */ +class Response extends models['Identifiable'] { + /** + * Create a Response. + * @member {string} [readLink] The URL that returns this resource. + * @member {string} [webSearchUrl] The URL To Bing's search result for this + * item. + */ + constructor() { + super(); + } + + /** + * Defines the metadata of Response + * + * @returns {object} metadata of Response + * + */ + mapper() { + return { + required: false, + serializedName: 'Response', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'Response', + modelProperties: { + _type: { + required: true, + serializedName: '_type', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + }, + id: { + required: false, + readOnly: true, + serializedName: 'id', + type: { + name: 'String' + } + }, + readLink: { + required: false, + readOnly: true, + serializedName: 'readLink', + type: { + name: 'String' + } + }, + webSearchUrl: { + required: false, + readOnly: true, + serializedName: 'webSearchUrl', + type: { + name: 'String' + } + } + } + } + }; + } +} + +module.exports = Response; diff --git a/lib/services/customImageSearch/lib/models/responseBase.js b/lib/services/customImageSearch/lib/models/responseBase.js new file mode 100644 index 0000000000..28a5d0d020 --- /dev/null +++ b/lib/services/customImageSearch/lib/models/responseBase.js @@ -0,0 +1,58 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +/** + * Response base + * + */ +class ResponseBase { + /** + * Create a ResponseBase. + * @member {string} _type Polymorphic Discriminator + */ + constructor() { + } + + /** + * Defines the metadata of ResponseBase + * + * @returns {object} metadata of ResponseBase + * + */ + mapper() { + return { + required: false, + serializedName: 'ResponseBase', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'ResponseBase', + modelProperties: { + _type: { + required: true, + serializedName: '_type', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + } + } + } + }; + } +} + +module.exports = ResponseBase; diff --git a/lib/services/customImageSearch/lib/models/searchResultsAnswer.js b/lib/services/customImageSearch/lib/models/searchResultsAnswer.js new file mode 100644 index 0000000000..34d1203a51 --- /dev/null +++ b/lib/services/customImageSearch/lib/models/searchResultsAnswer.js @@ -0,0 +1,96 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const models = require('./index'); + +/** + * Defines a search result answer. + * + * @extends models['Answer'] + */ +class SearchResultsAnswer extends models['Answer'] { + /** + * Create a SearchResultsAnswer. + * @member {number} [totalEstimatedMatches] The estimated number of webpages + * that are relevant to the query. Use this number along with the count and + * offset query parameters to page the results. + */ + constructor() { + super(); + } + + /** + * Defines the metadata of SearchResultsAnswer + * + * @returns {object} metadata of SearchResultsAnswer + * + */ + mapper() { + return { + required: false, + serializedName: 'SearchResultsAnswer', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'SearchResultsAnswer', + modelProperties: { + _type: { + required: true, + serializedName: '_type', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + }, + id: { + required: false, + readOnly: true, + serializedName: 'id', + type: { + name: 'String' + } + }, + readLink: { + required: false, + readOnly: true, + serializedName: 'readLink', + type: { + name: 'String' + } + }, + webSearchUrl: { + required: false, + readOnly: true, + serializedName: 'webSearchUrl', + type: { + name: 'String' + } + }, + totalEstimatedMatches: { + required: false, + readOnly: true, + serializedName: 'totalEstimatedMatches', + type: { + name: 'Number' + } + } + } + } + }; + } +} + +module.exports = SearchResultsAnswer; diff --git a/lib/services/customImageSearch/lib/models/thing.js b/lib/services/customImageSearch/lib/models/thing.js new file mode 100644 index 0000000000..6fded1aaad --- /dev/null +++ b/lib/services/customImageSearch/lib/models/thing.js @@ -0,0 +1,157 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const models = require('./index'); + +/** + * Defines a thing. + * + * @extends models['Response'] + */ +class Thing extends models['Response'] { + /** + * Create a Thing. + * @member {string} [name] The name of the thing represented by this object. + * @member {string} [url] The URL to get more information about the thing + * represented by this object. + * @member {object} [image] An image of the item. + * @member {object} [image.thumbnail] The URL to a thumbnail of the image + * @member {string} [image.imageInsightsToken] The token that you use in a + * subsequent call to the Image Search API to get additional information + * about the image. For information about using this token, see the + * insightsToken query parameter. + * @member {string} [image.imageId] Unique Id for the image + * @member {string} [image.accentColor] A three-byte hexadecimal number that + * represents the color that dominates the image. Use the color as the + * temporary background in your client until the image is loaded. + * @member {string} [image.visualWords] Visual representation of the image. + * Used for getting more sizes + * @member {string} [description] A short description of the item. + * @member {string} [alternateName] An alias for the item + * @member {string} [bingId] An ID that uniquely identifies this item. + */ + constructor() { + super(); + } + + /** + * Defines the metadata of Thing + * + * @returns {object} metadata of Thing + * + */ + mapper() { + return { + required: false, + serializedName: 'Thing', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'Thing', + modelProperties: { + _type: { + required: true, + serializedName: '_type', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + }, + id: { + required: false, + readOnly: true, + serializedName: 'id', + type: { + name: 'String' + } + }, + readLink: { + required: false, + readOnly: true, + serializedName: 'readLink', + type: { + name: 'String' + } + }, + webSearchUrl: { + required: false, + readOnly: true, + serializedName: 'webSearchUrl', + type: { + name: 'String' + } + }, + name: { + required: false, + readOnly: true, + serializedName: 'name', + type: { + name: 'String' + } + }, + url: { + required: false, + readOnly: true, + serializedName: 'url', + type: { + name: 'String' + } + }, + image: { + required: false, + readOnly: true, + serializedName: 'image', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'ImageObject' + } + }, + description: { + required: false, + readOnly: true, + serializedName: 'description', + type: { + name: 'String' + } + }, + alternateName: { + required: false, + readOnly: true, + serializedName: 'alternateName', + type: { + name: 'String' + } + }, + bingId: { + required: false, + readOnly: true, + serializedName: 'bingId', + type: { + name: 'String' + } + } + } + } + }; + } +} + +module.exports = Thing; diff --git a/lib/services/customImageSearch/lib/models/webPage.js b/lib/services/customImageSearch/lib/models/webPage.js new file mode 100644 index 0000000000..1f120616b3 --- /dev/null +++ b/lib/services/customImageSearch/lib/models/webPage.js @@ -0,0 +1,176 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const models = require('./index'); + +/** + * Defines a webpage that is relevant to the query. + * + * @extends models['CreativeWork'] + */ +class WebPage extends models['CreativeWork'] { + /** + * Create a WebPage. + */ + constructor() { + super(); + } + + /** + * Defines the metadata of WebPage + * + * @returns {object} metadata of WebPage + * + */ + mapper() { + return { + required: false, + serializedName: 'WebPage', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'WebPage', + modelProperties: { + _type: { + required: true, + serializedName: '_type', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + }, + id: { + required: false, + readOnly: true, + serializedName: 'id', + type: { + name: 'String' + } + }, + readLink: { + required: false, + readOnly: true, + serializedName: 'readLink', + type: { + name: 'String' + } + }, + webSearchUrl: { + required: false, + readOnly: true, + serializedName: 'webSearchUrl', + type: { + name: 'String' + } + }, + name: { + required: false, + readOnly: true, + serializedName: 'name', + type: { + name: 'String' + } + }, + url: { + required: false, + readOnly: true, + serializedName: 'url', + type: { + name: 'String' + } + }, + image: { + required: false, + readOnly: true, + serializedName: 'image', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'ImageObject' + } + }, + description: { + required: false, + readOnly: true, + serializedName: 'description', + type: { + name: 'String' + } + }, + alternateName: { + required: false, + readOnly: true, + serializedName: 'alternateName', + type: { + name: 'String' + } + }, + bingId: { + required: false, + readOnly: true, + serializedName: 'bingId', + type: { + name: 'String' + } + }, + thumbnailUrl: { + required: false, + readOnly: true, + serializedName: 'thumbnailUrl', + type: { + name: 'String' + } + }, + provider: { + required: false, + readOnly: true, + serializedName: 'provider', + type: { + name: 'Sequence', + element: { + required: false, + serializedName: 'ThingElementType', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: '_type', + clientName: '_type' + }, + uberParent: 'ResponseBase', + className: 'Thing' + } + } + } + }, + text: { + required: false, + readOnly: true, + serializedName: 'text', + type: { + name: 'String' + } + } + } + } + }; + } +} + +module.exports = WebPage; diff --git a/lib/services/customImageSearch/lib/operations/custom.js b/lib/services/customImageSearch/lib/operations/custom.js new file mode 100644 index 0000000000..5c53eb7665 --- /dev/null +++ b/lib/services/customImageSearch/lib/operations/custom.js @@ -0,0 +1,1433 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const msRest = require('ms-rest'); +const WebResource = msRest.WebResource; + +/** + * @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. + * + * @param {string} 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 {object} [options] Optional Parameters. + * + * @param {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 :. 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 {number} [options.customConfig] The identifier for the custom search + * configuration + * + * @param {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 + * -. 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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {object} [options.customHeaders] Headers that will be added to the + * request + * + * @param {function} callback - The callback. + * + * @returns {function} callback(err, result, request, response) + * + * {Error} err - The Error object if an error occurred, null otherwise. + * + * {object} [result] - The deserialized result object if an error did not occur. + * See {@link Images} for more information. + * + * {object} [request] - The HTTP Request object if an error did not occur. + * + * {stream} [response] - The HTTP Response stream if an error did not occur. + */ +function _search(query, options, callback) { + /* jshint validthis: true */ + let client = this.client; + if(!callback && typeof options === 'function') { + callback = options; + options = null; + } + if (!callback) { + throw new Error('callback cannot be null.'); + } + let acceptLanguage = (options && options.acceptLanguage !== undefined) ? options.acceptLanguage : undefined; + let userAgent = (options && options.userAgent !== undefined) ? options.userAgent : undefined; + let clientId = (options && options.clientId !== undefined) ? options.clientId : undefined; + let clientIp = (options && options.clientIp !== undefined) ? options.clientIp : undefined; + let location = (options && options.location !== undefined) ? options.location : undefined; + let customConfig = (options && options.customConfig !== undefined) ? options.customConfig : undefined; + let aspect = (options && options.aspect !== undefined) ? options.aspect : undefined; + let color = (options && options.color !== undefined) ? options.color : undefined; + let countryCode = (options && options.countryCode !== undefined) ? options.countryCode : undefined; + let count = (options && options.count !== undefined) ? options.count : undefined; + let freshness = (options && options.freshness !== undefined) ? options.freshness : undefined; + let height = (options && options.height !== undefined) ? options.height : undefined; + let id = (options && options.id !== undefined) ? options.id : undefined; + let imageContent = (options && options.imageContent !== undefined) ? options.imageContent : undefined; + let imageType = (options && options.imageType !== undefined) ? options.imageType : undefined; + let license = (options && options.license !== undefined) ? options.license : undefined; + let market = (options && options.market !== undefined) ? options.market : undefined; + let maxFileSize = (options && options.maxFileSize !== undefined) ? options.maxFileSize : undefined; + let maxHeight = (options && options.maxHeight !== undefined) ? options.maxHeight : undefined; + let maxWidth = (options && options.maxWidth !== undefined) ? options.maxWidth : undefined; + let minFileSize = (options && options.minFileSize !== undefined) ? options.minFileSize : undefined; + let minHeight = (options && options.minHeight !== undefined) ? options.minHeight : undefined; + let minWidth = (options && options.minWidth !== undefined) ? options.minWidth : undefined; + let offset = (options && options.offset !== undefined) ? options.offset : undefined; + let safeSearch = (options && options.safeSearch !== undefined) ? options.safeSearch : undefined; + let size = (options && options.size !== undefined) ? options.size : undefined; + let setLang = (options && options.setLang !== undefined) ? options.setLang : undefined; + let width = (options && options.width !== undefined) ? options.width : undefined; + let xBingApisSDK = 'true'; + // Validate + try { + if (acceptLanguage !== null && acceptLanguage !== undefined && typeof acceptLanguage.valueOf() !== 'string') { + throw new Error('acceptLanguage must be of type string.'); + } + if (userAgent !== null && userAgent !== undefined && typeof userAgent.valueOf() !== 'string') { + throw new Error('userAgent must be of type string.'); + } + if (clientId !== null && clientId !== undefined && typeof clientId.valueOf() !== 'string') { + throw new Error('clientId must be of type string.'); + } + if (clientIp !== null && clientIp !== undefined && typeof clientIp.valueOf() !== 'string') { + throw new Error('clientIp must be of type string.'); + } + if (location !== null && location !== undefined && typeof location.valueOf() !== 'string') { + throw new Error('location must be of type string.'); + } + if (customConfig !== null && customConfig !== undefined && typeof customConfig !== 'number') { + throw new Error('customConfig must be of type number.'); + } + if (aspect !== null && aspect !== undefined && typeof aspect.valueOf() !== 'string') { + throw new Error('aspect must be of type string.'); + } + if (color !== null && color !== undefined && typeof color.valueOf() !== 'string') { + throw new Error('color must be of type string.'); + } + if (countryCode !== null && countryCode !== undefined && typeof countryCode.valueOf() !== 'string') { + throw new Error('countryCode must be of type string.'); + } + if (count !== null && count !== undefined && typeof count !== 'number') { + throw new Error('count must be of type number.'); + } + if (freshness !== null && freshness !== undefined && typeof freshness.valueOf() !== 'string') { + throw new Error('freshness must be of type string.'); + } + if (height !== null && height !== undefined && typeof height !== 'number') { + throw new Error('height must be of type number.'); + } + if (id !== null && id !== undefined && typeof id.valueOf() !== 'string') { + throw new Error('id must be of type string.'); + } + if (imageContent !== null && imageContent !== undefined && typeof imageContent.valueOf() !== 'string') { + throw new Error('imageContent must be of type string.'); + } + if (imageType !== null && imageType !== undefined && typeof imageType.valueOf() !== 'string') { + throw new Error('imageType must be of type string.'); + } + if (license !== null && license !== undefined && typeof license.valueOf() !== 'string') { + throw new Error('license must be of type string.'); + } + if (market !== null && market !== undefined && typeof market.valueOf() !== 'string') { + throw new Error('market must be of type string.'); + } + if (maxFileSize !== null && maxFileSize !== undefined && typeof maxFileSize !== 'number') { + throw new Error('maxFileSize must be of type number.'); + } + if (maxHeight !== null && maxHeight !== undefined && typeof maxHeight !== 'number') { + throw new Error('maxHeight must be of type number.'); + } + if (maxWidth !== null && maxWidth !== undefined && typeof maxWidth !== 'number') { + throw new Error('maxWidth must be of type number.'); + } + if (minFileSize !== null && minFileSize !== undefined && typeof minFileSize !== 'number') { + throw new Error('minFileSize must be of type number.'); + } + if (minHeight !== null && minHeight !== undefined && typeof minHeight !== 'number') { + throw new Error('minHeight must be of type number.'); + } + if (minWidth !== null && minWidth !== undefined && typeof minWidth !== 'number') { + throw new Error('minWidth must be of type number.'); + } + if (offset !== null && offset !== undefined && typeof offset !== 'number') { + throw new Error('offset must be of type number.'); + } + if (query === null || query === undefined || typeof query.valueOf() !== 'string') { + throw new Error('query cannot be null or undefined and it must be of type string.'); + } + if (safeSearch !== null && safeSearch !== undefined && typeof safeSearch.valueOf() !== 'string') { + throw new Error('safeSearch must be of type string.'); + } + if (size !== null && size !== undefined && typeof size.valueOf() !== 'string') { + throw new Error('size must be of type string.'); + } + if (setLang !== null && setLang !== undefined && typeof setLang.valueOf() !== 'string') { + throw new Error('setLang must be of type string.'); + } + if (width !== null && width !== undefined && typeof width !== 'number') { + throw new Error('width must be of type number.'); + } + } catch (error) { + return callback(error); + } + + // Construct URL + let baseUrl = this.client.baseUri; + let requestUrl = baseUrl + (baseUrl.endsWith('/') ? '' : '/') + 'images/search'; + let queryParameters = []; + if (customConfig !== null && customConfig !== undefined) { + queryParameters.push('customConfig=' + encodeURIComponent(customConfig.toString())); + } + if (aspect !== null && aspect !== undefined) { + queryParameters.push('aspect=' + encodeURIComponent(aspect)); + } + if (color !== null && color !== undefined) { + queryParameters.push('color=' + encodeURIComponent(color)); + } + if (countryCode !== null && countryCode !== undefined) { + queryParameters.push('cc=' + encodeURIComponent(countryCode)); + } + if (count !== null && count !== undefined) { + queryParameters.push('count=' + encodeURIComponent(count.toString())); + } + if (freshness !== null && freshness !== undefined) { + queryParameters.push('freshness=' + encodeURIComponent(freshness)); + } + if (height !== null && height !== undefined) { + queryParameters.push('height=' + encodeURIComponent(height.toString())); + } + if (id !== null && id !== undefined) { + queryParameters.push('id=' + encodeURIComponent(id)); + } + if (imageContent !== null && imageContent !== undefined) { + queryParameters.push('imageContent=' + encodeURIComponent(imageContent)); + } + if (imageType !== null && imageType !== undefined) { + queryParameters.push('imageType=' + encodeURIComponent(imageType)); + } + if (license !== null && license !== undefined) { + queryParameters.push('license=' + encodeURIComponent(license)); + } + if (market !== null && market !== undefined) { + queryParameters.push('mkt=' + encodeURIComponent(market)); + } + if (maxFileSize !== null && maxFileSize !== undefined) { + queryParameters.push('maxFileSize=' + encodeURIComponent(maxFileSize.toString())); + } + if (maxHeight !== null && maxHeight !== undefined) { + queryParameters.push('maxHeight=' + encodeURIComponent(maxHeight.toString())); + } + if (maxWidth !== null && maxWidth !== undefined) { + queryParameters.push('maxWidth=' + encodeURIComponent(maxWidth.toString())); + } + if (minFileSize !== null && minFileSize !== undefined) { + queryParameters.push('minFileSize=' + encodeURIComponent(minFileSize.toString())); + } + if (minHeight !== null && minHeight !== undefined) { + queryParameters.push('minHeight=' + encodeURIComponent(minHeight.toString())); + } + if (minWidth !== null && minWidth !== undefined) { + queryParameters.push('minWidth=' + encodeURIComponent(minWidth.toString())); + } + if (offset !== null && offset !== undefined) { + queryParameters.push('offset=' + encodeURIComponent(offset.toString())); + } + queryParameters.push('q=' + encodeURIComponent(query)); + if (safeSearch !== null && safeSearch !== undefined) { + queryParameters.push('safeSearch=' + encodeURIComponent(safeSearch)); + } + if (size !== null && size !== undefined) { + queryParameters.push('size=' + encodeURIComponent(size)); + } + if (setLang !== null && setLang !== undefined) { + queryParameters.push('setLang=' + encodeURIComponent(setLang)); + } + if (width !== null && width !== undefined) { + queryParameters.push('width=' + encodeURIComponent(width.toString())); + } + if (queryParameters.length > 0) { + requestUrl += '?' + queryParameters.join('&'); + } + + // Create HTTP transport objects + let httpRequest = new WebResource(); + httpRequest.method = 'GET'; + httpRequest.url = requestUrl; + httpRequest.headers = {}; + // Set Headers + httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8'; + if (xBingApisSDK !== undefined && xBingApisSDK !== null) { + httpRequest.headers['X-BingApis-SDK'] = xBingApisSDK; + } + if (acceptLanguage !== undefined && acceptLanguage !== null) { + httpRequest.headers['Accept-Language'] = acceptLanguage; + } + if (userAgent !== undefined && userAgent !== null) { + httpRequest.headers['User-Agent'] = userAgent; + } + if (clientId !== undefined && clientId !== null) { + httpRequest.headers['X-MSEdge-ClientID'] = clientId; + } + if (clientIp !== undefined && clientIp !== null) { + httpRequest.headers['X-MSEdge-ClientIP'] = clientIp; + } + if (location !== undefined && location !== null) { + httpRequest.headers['X-Search-Location'] = location; + } + if(options) { + for(let headerName in options['customHeaders']) { + if (options['customHeaders'].hasOwnProperty(headerName)) { + httpRequest.headers[headerName] = options['customHeaders'][headerName]; + } + } + } + httpRequest.body = null; + // Send Request + return client.pipeline(httpRequest, (err, response, responseBody) => { + if (err) { + return callback(err); + } + let statusCode = response.statusCode; + if (statusCode !== 200) { + let error = new Error(responseBody); + error.statusCode = response.statusCode; + error.request = msRest.stripRequest(httpRequest); + error.response = msRest.stripResponse(response); + if (responseBody === '') responseBody = null; + let parsedErrorResponse; + try { + parsedErrorResponse = JSON.parse(responseBody); + if (parsedErrorResponse) { + let internalError = null; + if (parsedErrorResponse.error) internalError = parsedErrorResponse.error; + error.code = internalError ? internalError.code : parsedErrorResponse.code; + error.message = internalError ? internalError.message : parsedErrorResponse.message; + } + if (parsedErrorResponse !== null && parsedErrorResponse !== undefined) { + let resultMapper = new client.models['ErrorResponse']().mapper(); + error.body = client.deserialize(resultMapper, parsedErrorResponse, 'error.body'); + } + } catch (defaultError) { + error.message = `Error "${defaultError.message}" occurred in deserializing the responseBody ` + + `- "${responseBody}" for the default response.`; + return callback(error); + } + return callback(error); + } + // Create Result + let result = null; + if (responseBody === '') responseBody = null; + // Deserialize Response + if (statusCode === 200) { + let parsedResponse = null; + try { + parsedResponse = JSON.parse(responseBody); + result = JSON.parse(responseBody); + if (parsedResponse !== null && parsedResponse !== undefined) { + let resultMapper = new client.models['Images']().mapper(); + result = client.deserialize(resultMapper, parsedResponse, 'result'); + } + } catch (error) { + let deserializationError = new Error(`Error ${error} occurred in deserializing the responseBody - ${responseBody}`); + deserializationError.request = msRest.stripRequest(httpRequest); + deserializationError.response = msRest.stripResponse(response); + return callback(deserializationError); + } + } + + return callback(null, result, httpRequest, response); + }); +} + +/** Class representing a Custom. */ +class Custom { + /** + * Create a Custom. + * @param {CustomImageSearchAPIClient} client Reference to the service client. + */ + constructor(client) { + this.client = client; + this._search = _search; + } + + /** + * @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. + * + * @param {string} 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 {object} [options] Optional Parameters. + * + * @param {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 :. 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 {number} [options.customConfig] The identifier for the custom search + * configuration + * + * @param {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 + * -. 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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {object} [options.customHeaders] Headers that will be added to the + * request + * + * @returns {Promise} A promise is returned + * + * @resolve {HttpOperationResponse} - The deserialized result object. + * + * @reject {Error} - The error object. + */ + searchWithHttpOperationResponse(query, options) { + let client = this.client; + let self = this; + return new Promise((resolve, reject) => { + self._search(query, options, (err, result, request, response) => { + let httpOperationResponse = new msRest.HttpOperationResponse(request, response); + httpOperationResponse.body = result; + if (err) { reject(err); } + else { resolve(httpOperationResponse); } + return; + }); + }); + } + + /** + * @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. + * + * @param {string} 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 {object} [options] Optional Parameters. + * + * @param {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 :. 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 {number} [options.customConfig] The identifier for the custom search + * configuration + * + * @param {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 + * -. 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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {object} [options.customHeaders] Headers that will be added to the + * request + * + * @param {function} [optionalCallback] - The optional callback. + * + * @returns {function|Promise} If a callback was passed as the last parameter + * then it returns the callback else returns a Promise. + * + * {Promise} A promise is returned + * + * @resolve {Images} - The deserialized result object. + * + * @reject {Error} - The error object. + * + * {function} optionalCallback(err, result, request, response) + * + * {Error} err - The Error object if an error occurred, null otherwise. + * + * {object} [result] - The deserialized result object if an error did not occur. + * See {@link Images} for more information. + * + * {object} [request] - The HTTP Request object if an error did not occur. + * + * {stream} [response] - The HTTP Response stream if an error did not occur. + */ + search(query, options, optionalCallback) { + let client = this.client; + let self = this; + if (!optionalCallback && typeof options === 'function') { + optionalCallback = options; + options = null; + } + if (!optionalCallback) { + return new Promise((resolve, reject) => { + self._search(query, options, (err, result, request, response) => { + if (err) { reject(err); } + else { resolve(result); } + return; + }); + }); + } else { + return self._search(query, options, optionalCallback); + } + } + +} + +module.exports = Custom; diff --git a/lib/services/customImageSearch/lib/operations/customInstance.js b/lib/services/customImageSearch/lib/operations/customInstance.js new file mode 100644 index 0000000000..b129ca1fe5 --- /dev/null +++ b/lib/services/customImageSearch/lib/operations/customInstance.js @@ -0,0 +1,1436 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const msRest = require('ms-rest'); +const WebResource = msRest.WebResource; + +/** + * @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. + * + * @param {number} customConfig The identifier for the custom search + * configuration + * + * @param {string} 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 {object} [options] Optional Parameters. + * + * @param {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 :. 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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 + * -. 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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {object} [options.customHeaders] Headers that will be added to the + * request + * + * @param {function} callback - The callback. + * + * @returns {function} callback(err, result, request, response) + * + * {Error} err - The Error object if an error occurred, null otherwise. + * + * {object} [result] - The deserialized result object if an error did not occur. + * See {@link Images} for more information. + * + * {object} [request] - The HTTP Request object if an error did not occur. + * + * {stream} [response] - The HTTP Response stream if an error did not occur. + */ +function _imageSearch(customConfig, query, options, callback) { + /* jshint validthis: true */ + let client = this.client; + if(!callback && typeof options === 'function') { + callback = options; + options = null; + } + if (!callback) { + throw new Error('callback cannot be null.'); + } + let acceptLanguage = (options && options.acceptLanguage !== undefined) ? options.acceptLanguage : undefined; + let userAgent = (options && options.userAgent !== undefined) ? options.userAgent : undefined; + let clientId = (options && options.clientId !== undefined) ? options.clientId : undefined; + let clientIp = (options && options.clientIp !== undefined) ? options.clientIp : undefined; + let location = (options && options.location !== undefined) ? options.location : undefined; + let aspect = (options && options.aspect !== undefined) ? options.aspect : undefined; + let color = (options && options.color !== undefined) ? options.color : undefined; + let countryCode = (options && options.countryCode !== undefined) ? options.countryCode : undefined; + let count = (options && options.count !== undefined) ? options.count : undefined; + let freshness = (options && options.freshness !== undefined) ? options.freshness : undefined; + let height = (options && options.height !== undefined) ? options.height : undefined; + let id = (options && options.id !== undefined) ? options.id : undefined; + let imageContent = (options && options.imageContent !== undefined) ? options.imageContent : undefined; + let imageType = (options && options.imageType !== undefined) ? options.imageType : undefined; + let license = (options && options.license !== undefined) ? options.license : undefined; + let market = (options && options.market !== undefined) ? options.market : undefined; + let maxFileSize = (options && options.maxFileSize !== undefined) ? options.maxFileSize : undefined; + let maxHeight = (options && options.maxHeight !== undefined) ? options.maxHeight : undefined; + let maxWidth = (options && options.maxWidth !== undefined) ? options.maxWidth : undefined; + let minFileSize = (options && options.minFileSize !== undefined) ? options.minFileSize : undefined; + let minHeight = (options && options.minHeight !== undefined) ? options.minHeight : undefined; + let minWidth = (options && options.minWidth !== undefined) ? options.minWidth : undefined; + let offset = (options && options.offset !== undefined) ? options.offset : undefined; + let safeSearch = (options && options.safeSearch !== undefined) ? options.safeSearch : undefined; + let size = (options && options.size !== undefined) ? options.size : undefined; + let setLang = (options && options.setLang !== undefined) ? options.setLang : undefined; + let width = (options && options.width !== undefined) ? options.width : undefined; + let xBingApisSDK = 'true'; + // Validate + try { + if (acceptLanguage !== null && acceptLanguage !== undefined && typeof acceptLanguage.valueOf() !== 'string') { + throw new Error('acceptLanguage must be of type string.'); + } + if (userAgent !== null && userAgent !== undefined && typeof userAgent.valueOf() !== 'string') { + throw new Error('userAgent must be of type string.'); + } + if (clientId !== null && clientId !== undefined && typeof clientId.valueOf() !== 'string') { + throw new Error('clientId must be of type string.'); + } + if (clientIp !== null && clientIp !== undefined && typeof clientIp.valueOf() !== 'string') { + throw new Error('clientIp must be of type string.'); + } + if (location !== null && location !== undefined && typeof location.valueOf() !== 'string') { + throw new Error('location must be of type string.'); + } + if (customConfig === null || customConfig === undefined || typeof customConfig !== 'number') { + throw new Error('customConfig cannot be null or undefined and it must be of type number.'); + } + if (customConfig !== null && customConfig !== undefined) { + if (customConfig < 0) + { + throw new Error('"customConfig" should satisfy the constraint - "InclusiveMinimum": 0'); + } + } + if (aspect !== null && aspect !== undefined && typeof aspect.valueOf() !== 'string') { + throw new Error('aspect must be of type string.'); + } + if (color !== null && color !== undefined && typeof color.valueOf() !== 'string') { + throw new Error('color must be of type string.'); + } + if (countryCode !== null && countryCode !== undefined && typeof countryCode.valueOf() !== 'string') { + throw new Error('countryCode must be of type string.'); + } + if (count !== null && count !== undefined && typeof count !== 'number') { + throw new Error('count must be of type number.'); + } + if (freshness !== null && freshness !== undefined && typeof freshness.valueOf() !== 'string') { + throw new Error('freshness must be of type string.'); + } + if (height !== null && height !== undefined && typeof height !== 'number') { + throw new Error('height must be of type number.'); + } + if (id !== null && id !== undefined && typeof id.valueOf() !== 'string') { + throw new Error('id must be of type string.'); + } + if (imageContent !== null && imageContent !== undefined && typeof imageContent.valueOf() !== 'string') { + throw new Error('imageContent must be of type string.'); + } + if (imageType !== null && imageType !== undefined && typeof imageType.valueOf() !== 'string') { + throw new Error('imageType must be of type string.'); + } + if (license !== null && license !== undefined && typeof license.valueOf() !== 'string') { + throw new Error('license must be of type string.'); + } + if (market !== null && market !== undefined && typeof market.valueOf() !== 'string') { + throw new Error('market must be of type string.'); + } + if (maxFileSize !== null && maxFileSize !== undefined && typeof maxFileSize !== 'number') { + throw new Error('maxFileSize must be of type number.'); + } + if (maxHeight !== null && maxHeight !== undefined && typeof maxHeight !== 'number') { + throw new Error('maxHeight must be of type number.'); + } + if (maxWidth !== null && maxWidth !== undefined && typeof maxWidth !== 'number') { + throw new Error('maxWidth must be of type number.'); + } + if (minFileSize !== null && minFileSize !== undefined && typeof minFileSize !== 'number') { + throw new Error('minFileSize must be of type number.'); + } + if (minHeight !== null && minHeight !== undefined && typeof minHeight !== 'number') { + throw new Error('minHeight must be of type number.'); + } + if (minWidth !== null && minWidth !== undefined && typeof minWidth !== 'number') { + throw new Error('minWidth must be of type number.'); + } + if (offset !== null && offset !== undefined && typeof offset !== 'number') { + throw new Error('offset must be of type number.'); + } + if (query === null || query === undefined || typeof query.valueOf() !== 'string') { + throw new Error('query cannot be null or undefined and it must be of type string.'); + } + if (safeSearch !== null && safeSearch !== undefined && typeof safeSearch.valueOf() !== 'string') { + throw new Error('safeSearch must be of type string.'); + } + if (size !== null && size !== undefined && typeof size.valueOf() !== 'string') { + throw new Error('size must be of type string.'); + } + if (setLang !== null && setLang !== undefined && typeof setLang.valueOf() !== 'string') { + throw new Error('setLang must be of type string.'); + } + if (width !== null && width !== undefined && typeof width !== 'number') { + throw new Error('width must be of type number.'); + } + } catch (error) { + return callback(error); + } + + // Construct URL + let baseUrl = this.client.baseUri; + let requestUrl = baseUrl + (baseUrl.endsWith('/') ? '' : '/') + 'images/search'; + let queryParameters = []; + queryParameters.push('customConfig=' + encodeURIComponent(customConfig.toString())); + if (aspect !== null && aspect !== undefined) { + queryParameters.push('aspect=' + encodeURIComponent(aspect)); + } + if (color !== null && color !== undefined) { + queryParameters.push('color=' + encodeURIComponent(color)); + } + if (countryCode !== null && countryCode !== undefined) { + queryParameters.push('cc=' + encodeURIComponent(countryCode)); + } + if (count !== null && count !== undefined) { + queryParameters.push('count=' + encodeURIComponent(count.toString())); + } + if (freshness !== null && freshness !== undefined) { + queryParameters.push('freshness=' + encodeURIComponent(freshness)); + } + if (height !== null && height !== undefined) { + queryParameters.push('height=' + encodeURIComponent(height.toString())); + } + if (id !== null && id !== undefined) { + queryParameters.push('id=' + encodeURIComponent(id)); + } + if (imageContent !== null && imageContent !== undefined) { + queryParameters.push('imageContent=' + encodeURIComponent(imageContent)); + } + if (imageType !== null && imageType !== undefined) { + queryParameters.push('imageType=' + encodeURIComponent(imageType)); + } + if (license !== null && license !== undefined) { + queryParameters.push('license=' + encodeURIComponent(license)); + } + if (market !== null && market !== undefined) { + queryParameters.push('mkt=' + encodeURIComponent(market)); + } + if (maxFileSize !== null && maxFileSize !== undefined) { + queryParameters.push('maxFileSize=' + encodeURIComponent(maxFileSize.toString())); + } + if (maxHeight !== null && maxHeight !== undefined) { + queryParameters.push('maxHeight=' + encodeURIComponent(maxHeight.toString())); + } + if (maxWidth !== null && maxWidth !== undefined) { + queryParameters.push('maxWidth=' + encodeURIComponent(maxWidth.toString())); + } + if (minFileSize !== null && minFileSize !== undefined) { + queryParameters.push('minFileSize=' + encodeURIComponent(minFileSize.toString())); + } + if (minHeight !== null && minHeight !== undefined) { + queryParameters.push('minHeight=' + encodeURIComponent(minHeight.toString())); + } + if (minWidth !== null && minWidth !== undefined) { + queryParameters.push('minWidth=' + encodeURIComponent(minWidth.toString())); + } + if (offset !== null && offset !== undefined) { + queryParameters.push('offset=' + encodeURIComponent(offset.toString())); + } + queryParameters.push('q=' + encodeURIComponent(query)); + if (safeSearch !== null && safeSearch !== undefined) { + queryParameters.push('safeSearch=' + encodeURIComponent(safeSearch)); + } + if (size !== null && size !== undefined) { + queryParameters.push('size=' + encodeURIComponent(size)); + } + if (setLang !== null && setLang !== undefined) { + queryParameters.push('setLang=' + encodeURIComponent(setLang)); + } + if (width !== null && width !== undefined) { + queryParameters.push('width=' + encodeURIComponent(width.toString())); + } + if (queryParameters.length > 0) { + requestUrl += '?' + queryParameters.join('&'); + } + + // Create HTTP transport objects + let httpRequest = new WebResource(); + httpRequest.method = 'GET'; + httpRequest.url = requestUrl; + httpRequest.headers = {}; + // Set Headers + httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8'; + if (xBingApisSDK !== undefined && xBingApisSDK !== null) { + httpRequest.headers['X-BingApis-SDK'] = xBingApisSDK; + } + if (acceptLanguage !== undefined && acceptLanguage !== null) { + httpRequest.headers['Accept-Language'] = acceptLanguage; + } + if (userAgent !== undefined && userAgent !== null) { + httpRequest.headers['User-Agent'] = userAgent; + } + if (clientId !== undefined && clientId !== null) { + httpRequest.headers['X-MSEdge-ClientID'] = clientId; + } + if (clientIp !== undefined && clientIp !== null) { + httpRequest.headers['X-MSEdge-ClientIP'] = clientIp; + } + if (location !== undefined && location !== null) { + httpRequest.headers['X-Search-Location'] = location; + } + if(options) { + for(let headerName in options['customHeaders']) { + if (options['customHeaders'].hasOwnProperty(headerName)) { + httpRequest.headers[headerName] = options['customHeaders'][headerName]; + } + } + } + httpRequest.body = null; + // Send Request + return client.pipeline(httpRequest, (err, response, responseBody) => { + if (err) { + return callback(err); + } + let statusCode = response.statusCode; + if (statusCode !== 200) { + let error = new Error(responseBody); + error.statusCode = response.statusCode; + error.request = msRest.stripRequest(httpRequest); + error.response = msRest.stripResponse(response); + if (responseBody === '') responseBody = null; + let parsedErrorResponse; + try { + parsedErrorResponse = JSON.parse(responseBody); + if (parsedErrorResponse) { + let internalError = null; + if (parsedErrorResponse.error) internalError = parsedErrorResponse.error; + error.code = internalError ? internalError.code : parsedErrorResponse.code; + error.message = internalError ? internalError.message : parsedErrorResponse.message; + } + if (parsedErrorResponse !== null && parsedErrorResponse !== undefined) { + let resultMapper = new client.models['ErrorResponse']().mapper(); + error.body = client.deserialize(resultMapper, parsedErrorResponse, 'error.body'); + } + } catch (defaultError) { + error.message = `Error "${defaultError.message}" occurred in deserializing the responseBody ` + + `- "${responseBody}" for the default response.`; + return callback(error); + } + return callback(error); + } + // Create Result + let result = null; + if (responseBody === '') responseBody = null; + // Deserialize Response + if (statusCode === 200) { + let parsedResponse = null; + try { + parsedResponse = JSON.parse(responseBody); + result = JSON.parse(responseBody); + if (parsedResponse !== null && parsedResponse !== undefined) { + let resultMapper = new client.models['Images']().mapper(); + result = client.deserialize(resultMapper, parsedResponse, 'result'); + } + } catch (error) { + let deserializationError = new Error(`Error ${error} occurred in deserializing the responseBody - ${responseBody}`); + deserializationError.request = msRest.stripRequest(httpRequest); + deserializationError.response = msRest.stripResponse(response); + return callback(deserializationError); + } + } + + return callback(null, result, httpRequest, response); + }); +} + +/** Class representing a CustomInstance. */ +class CustomInstance { + /** + * Create a CustomInstance. + * @param {CustomImageSearchAPIClient} client Reference to the service client. + */ + constructor(client) { + this.client = client; + this._imageSearch = _imageSearch; + } + + /** + * @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. + * + * @param {number} customConfig The identifier for the custom search + * configuration + * + * @param {string} 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 {object} [options] Optional Parameters. + * + * @param {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 :. 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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 + * -. 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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {object} [options.customHeaders] Headers that will be added to the + * request + * + * @returns {Promise} A promise is returned + * + * @resolve {HttpOperationResponse} - The deserialized result object. + * + * @reject {Error} - The error object. + */ + imageSearchWithHttpOperationResponse(customConfig, query, options) { + let client = this.client; + let self = this; + return new Promise((resolve, reject) => { + self._imageSearch(customConfig, query, options, (err, result, request, response) => { + let httpOperationResponse = new msRest.HttpOperationResponse(request, response); + httpOperationResponse.body = result; + if (err) { reject(err); } + else { resolve(httpOperationResponse); } + return; + }); + }); + } + + /** + * @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. + * + * @param {number} customConfig The identifier for the custom search + * configuration + * + * @param {string} 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 {object} [options] Optional Parameters. + * + * @param {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 :. 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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 + * -. 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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {object} [options.customHeaders] Headers that will be added to the + * request + * + * @param {function} [optionalCallback] - The optional callback. + * + * @returns {function|Promise} If a callback was passed as the last parameter + * then it returns the callback else returns a Promise. + * + * {Promise} A promise is returned + * + * @resolve {Images} - The deserialized result object. + * + * @reject {Error} - The error object. + * + * {function} optionalCallback(err, result, request, response) + * + * {Error} err - The Error object if an error occurred, null otherwise. + * + * {object} [result] - The deserialized result object if an error did not occur. + * See {@link Images} for more information. + * + * {object} [request] - The HTTP Request object if an error did not occur. + * + * {stream} [response] - The HTTP Response stream if an error did not occur. + */ + imageSearch(customConfig, query, options, optionalCallback) { + let client = this.client; + let self = this; + if (!optionalCallback && typeof options === 'function') { + optionalCallback = options; + options = null; + } + if (!optionalCallback) { + return new Promise((resolve, reject) => { + self._imageSearch(customConfig, query, options, (err, result, request, response) => { + if (err) { reject(err); } + else { resolve(result); } + return; + }); + }); + } else { + return self._imageSearch(customConfig, query, options, optionalCallback); + } + } + +} + +module.exports = CustomInstance; diff --git a/lib/services/customImageSearch/lib/operations/index.d.ts b/lib/services/customImageSearch/lib/operations/index.d.ts new file mode 100644 index 0000000000..98697e10fe --- /dev/null +++ b/lib/services/customImageSearch/lib/operations/index.d.ts @@ -0,0 +1,743 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. +*/ + +import { ServiceClientOptions, RequestOptions, ServiceCallback, HttpOperationResponse } from 'ms-rest'; +import * as models from '../models'; + + +/** + * @class + * CustomInstance + * __NOTE__: An instance of this class is automatically created for an + * instance of the CustomImageSearchAPIClient. + */ +export interface CustomInstance { + + + /** + * @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. + * + * @param {number} customConfig The identifier for the custom search + * configuration + * + * @param {string} 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 {object} [options] Optional Parameters. + * + * @param {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 :. 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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 + * -. 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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {object} [options.customHeaders] Headers that will be added to the + * request + * + * @returns {Promise} A promise is returned + * + * @resolve {HttpOperationResponse} - The deserialized result object. + * + * @reject {Error|ServiceError} - The error object. + */ + imageSearchWithHttpOperationResponse(customConfig: number, query: string, options?: { acceptLanguage? : string, userAgent? : string, clientId? : string, clientIp? : string, location? : string, aspect? : string, color? : string, countryCode? : string, count? : number, freshness? : string, height? : number, id? : string, imageContent? : string, imageType? : string, license? : string, market? : string, maxFileSize? : number, maxHeight? : number, maxWidth? : number, minFileSize? : number, minHeight? : number, minWidth? : number, offset? : number, safeSearch? : string, size? : string, setLang? : string, width? : number, customHeaders? : { [headerName: string]: string; } }): Promise>; + + /** + * @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. + * + * @param {number} customConfig The identifier for the custom search + * configuration + * + * @param {string} 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 {object} [options] Optional Parameters. + * + * @param {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 :. 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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 + * -. 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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {object} [options.customHeaders] Headers that will be added to the + * request + * + * @param {ServiceCallback} [optionalCallback] - The optional callback. + * + * @returns {ServiceCallback|Promise} If a callback was passed as the last + * parameter then it returns the callback else returns a Promise. + * + * {Promise} A promise is returned. + * + * @resolve {Images} - The deserialized result object. + * + * @reject {Error|ServiceError} - The error object. + * + * {ServiceCallback} optionalCallback(err, result, request, response) + * + * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. + * + * {Images} [result] - The deserialized result object if an error did not occur. + * See {@link Images} for more information. + * + * {WebResource} [request] - The HTTP Request object if an error did not occur. + * + * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. + */ + imageSearch(customConfig: number, query: string, options?: { acceptLanguage? : string, userAgent? : string, clientId? : string, clientIp? : string, location? : string, aspect? : string, color? : string, countryCode? : string, count? : number, freshness? : string, height? : number, id? : string, imageContent? : string, imageType? : string, license? : string, market? : string, maxFileSize? : number, maxHeight? : number, maxWidth? : number, minFileSize? : number, minHeight? : number, minWidth? : number, offset? : number, safeSearch? : string, size? : string, setLang? : string, width? : number, customHeaders? : { [headerName: string]: string; } }): Promise; + imageSearch(customConfig: number, query: string, callback: ServiceCallback): void; + imageSearch(customConfig: number, query: string, options: { acceptLanguage? : string, userAgent? : string, clientId? : string, clientIp? : string, location? : string, aspect? : string, color? : string, countryCode? : string, count? : number, freshness? : string, height? : number, id? : string, imageContent? : string, imageType? : string, license? : string, market? : string, maxFileSize? : number, maxHeight? : number, maxWidth? : number, minFileSize? : number, minHeight? : number, minWidth? : number, offset? : number, safeSearch? : string, size? : string, setLang? : string, width? : number, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; +} diff --git a/lib/services/customImageSearch/lib/operations/index.js b/lib/services/customImageSearch/lib/operations/index.js new file mode 100644 index 0000000000..f5e498a3c3 --- /dev/null +++ b/lib/services/customImageSearch/lib/operations/index.js @@ -0,0 +1,17 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +/* jshint latedef:false */ +/* jshint forin:false */ +/* jshint noempty:false */ + +'use strict'; + +exports.CustomInstance = require('./customInstance'); diff --git a/lib/services/customImageSearch/package.json b/lib/services/customImageSearch/package.json new file mode 100644 index 0000000000..86b1993bd1 --- /dev/null +++ b/lib/services/customImageSearch/package.json @@ -0,0 +1,24 @@ +{ + "name": "azure-cognitiveservices-customimagesearch", + "author": "Microsoft Corporation", + "description": "CustomImageSearchAPIClient Library with typescript type definitions for node", + "version": "1.0.0-preview", + "dependencies": { + "ms-rest": "^2.3.3" + }, + "keywords": [ + "node", + "azure" + ], + "license": "MIT", + "main": "./lib/customImageSearchAPIClient.js", + "types": "./lib/customImageSearchAPIClient.d.ts", + "homepage": "http://github.com/azure/azure-sdk-for-node", + "repository": { + "type": "git", + "url": "https://github.com/azure/azure-sdk-for-node.git" + }, + "bugs": { + "url": "http://github.com/Azure/azure-sdk-for-node/issues" + } +} From 4d57a9a1c51db53d52464bbba062cd00dfc33dc2 Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Fri, 20 Jul 2018 15:26:05 -0700 Subject: [PATCH 2/2] Regenerate customImageSearch package --- .../LICENSE.txt | 42 +- .../README.md | 69 + .../lib/customImageSearchAPIClient.d.ts | 0 .../lib/customImageSearchAPIClient.js | 0 .../lib/models/answer.js | 0 .../lib/models/creativeWork.js | 0 .../lib/models/errorModel.js | 0 .../lib/models/errorResponse.js | 0 .../lib/models/identifiable.js | 0 .../lib/models/imageObject.js | 0 .../lib/models/images.js | 0 .../lib/models/index.d.ts | 0 .../lib/models/index.js | 0 .../lib/models/mediaObject.js | 0 .../lib/models/query.js | 0 .../lib/models/response.js | 0 .../lib/models/responseBase.js | 0 .../lib/models/searchResultsAnswer.js | 0 .../lib/models/thing.js | 0 .../lib/models/webPage.js | 0 .../lib/operations/customInstance.js | 0 .../lib/operations/index.d.ts | 0 .../lib/operations/index.js | 0 .../package-lock.json | 375 +++++ .../package.json | 6 +- .../lib/operations/custom.js | 1433 ----------------- 26 files changed, 468 insertions(+), 1457 deletions(-) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/LICENSE.txt (98%) create mode 100644 lib/services/cognitiveServicesCustomImageSearch/README.md rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/customImageSearchAPIClient.d.ts (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/customImageSearchAPIClient.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/answer.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/creativeWork.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/errorModel.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/errorResponse.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/identifiable.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/imageObject.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/images.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/index.d.ts (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/index.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/mediaObject.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/query.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/response.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/responseBase.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/searchResultsAnswer.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/thing.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/models/webPage.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/operations/customInstance.js (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/operations/index.d.ts (100%) rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/lib/operations/index.js (100%) create mode 100644 lib/services/cognitiveServicesCustomImageSearch/package-lock.json rename lib/services/{customImageSearch => cognitiveServicesCustomImageSearch}/package.json (72%) delete mode 100644 lib/services/customImageSearch/lib/operations/custom.js diff --git a/lib/services/customImageSearch/LICENSE.txt b/lib/services/cognitiveServicesCustomImageSearch/LICENSE.txt similarity index 98% rename from lib/services/customImageSearch/LICENSE.txt rename to lib/services/cognitiveServicesCustomImageSearch/LICENSE.txt index 5431ba98b9..a70e8cf660 100644 --- a/lib/services/customImageSearch/LICENSE.txt +++ b/lib/services/cognitiveServicesCustomImageSearch/LICENSE.txt @@ -1,21 +1,21 @@ -The MIT License (MIT) - -Copyright (c) 2018 Microsoft - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +The MIT License (MIT) + +Copyright (c) 2018 Microsoft + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/lib/services/cognitiveServicesCustomImageSearch/README.md b/lib/services/cognitiveServicesCustomImageSearch/README.md new file mode 100644 index 0000000000..9331a160eb --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/README.md @@ -0,0 +1,69 @@ +--- +uid: azure-cognitiveservices-customimagesearch +summary: *content + +--- +# Microsoft Azure SDK for Node.js - CustomImageSearchAPIClient +This project provides a Node.js package for accessing Azure. Right now it supports: +- **Node.js version 6.x.x or higher** + +## Features + + +## How to Install + +```bash +npm install azure-cognitiveservices-customimagesearch +``` + +## How to use + +### Authentication, client creation and imageSearch customInstance as an example. + +```javascript +const msRest = require("ms-rest"); +const CustomImageSearchAPIClient = require("azure-cognitiveservices-customimagesearch"); +const token = ""; +const creds = new msRest.TokenCredentials(token); +const subscriptionId = ""; +const client = new CustomImageSearchAPIClient(creds, subscriptionId); +const customConfig = 1; +const query = "testquery"; +const acceptLanguage = "testacceptLanguage"; +const userAgent = "testuserAgent"; +const clientId = "testclientId"; +const clientIp = "testclientIp"; +const location = "westus"; +const aspect = "All"; +const color = "ColorOnly"; +const countryCode = "testcountryCode"; +const count = 1; +const freshness = "Day"; +const height = 1; +const id = "testid"; +const imageContent = "Face"; +const imageType = "AnimatedGif"; +const license = "All"; +const market = "testmarket"; +const maxFileSize = 1; +const maxHeight = 1; +const maxWidth = 1; +const minFileSize = 1; +const minHeight = 1; +const minWidth = 1; +const offset = 1; +const safeSearch = "Off"; +const size = "All"; +const setLang = "testsetLang"; +const width = 1; +client.customInstance.imageSearch(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).then((result) => { + console.log("The result is:"); + console.log(result); +}).catch((err) => { + console.log('An error occurred:'); + console.dir(err, {depth: null, colors: true}); +}); + +## Related projects + +- [Microsoft Azure SDK for Node.js](https://github.com/Azure/azure-sdk-for-node) diff --git a/lib/services/customImageSearch/lib/customImageSearchAPIClient.d.ts b/lib/services/cognitiveServicesCustomImageSearch/lib/customImageSearchAPIClient.d.ts similarity index 100% rename from lib/services/customImageSearch/lib/customImageSearchAPIClient.d.ts rename to lib/services/cognitiveServicesCustomImageSearch/lib/customImageSearchAPIClient.d.ts diff --git a/lib/services/customImageSearch/lib/customImageSearchAPIClient.js b/lib/services/cognitiveServicesCustomImageSearch/lib/customImageSearchAPIClient.js similarity index 100% rename from lib/services/customImageSearch/lib/customImageSearchAPIClient.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/customImageSearchAPIClient.js diff --git a/lib/services/customImageSearch/lib/models/answer.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/answer.js similarity index 100% rename from lib/services/customImageSearch/lib/models/answer.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/answer.js diff --git a/lib/services/customImageSearch/lib/models/creativeWork.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/creativeWork.js similarity index 100% rename from lib/services/customImageSearch/lib/models/creativeWork.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/creativeWork.js diff --git a/lib/services/customImageSearch/lib/models/errorModel.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/errorModel.js similarity index 100% rename from lib/services/customImageSearch/lib/models/errorModel.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/errorModel.js diff --git a/lib/services/customImageSearch/lib/models/errorResponse.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/errorResponse.js similarity index 100% rename from lib/services/customImageSearch/lib/models/errorResponse.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/errorResponse.js diff --git a/lib/services/customImageSearch/lib/models/identifiable.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/identifiable.js similarity index 100% rename from lib/services/customImageSearch/lib/models/identifiable.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/identifiable.js diff --git a/lib/services/customImageSearch/lib/models/imageObject.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/imageObject.js similarity index 100% rename from lib/services/customImageSearch/lib/models/imageObject.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/imageObject.js diff --git a/lib/services/customImageSearch/lib/models/images.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/images.js similarity index 100% rename from lib/services/customImageSearch/lib/models/images.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/images.js diff --git a/lib/services/customImageSearch/lib/models/index.d.ts b/lib/services/cognitiveServicesCustomImageSearch/lib/models/index.d.ts similarity index 100% rename from lib/services/customImageSearch/lib/models/index.d.ts rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/index.d.ts diff --git a/lib/services/customImageSearch/lib/models/index.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/index.js similarity index 100% rename from lib/services/customImageSearch/lib/models/index.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/index.js diff --git a/lib/services/customImageSearch/lib/models/mediaObject.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/mediaObject.js similarity index 100% rename from lib/services/customImageSearch/lib/models/mediaObject.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/mediaObject.js diff --git a/lib/services/customImageSearch/lib/models/query.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/query.js similarity index 100% rename from lib/services/customImageSearch/lib/models/query.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/query.js diff --git a/lib/services/customImageSearch/lib/models/response.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/response.js similarity index 100% rename from lib/services/customImageSearch/lib/models/response.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/response.js diff --git a/lib/services/customImageSearch/lib/models/responseBase.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/responseBase.js similarity index 100% rename from lib/services/customImageSearch/lib/models/responseBase.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/responseBase.js diff --git a/lib/services/customImageSearch/lib/models/searchResultsAnswer.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/searchResultsAnswer.js similarity index 100% rename from lib/services/customImageSearch/lib/models/searchResultsAnswer.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/searchResultsAnswer.js diff --git a/lib/services/customImageSearch/lib/models/thing.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/thing.js similarity index 100% rename from lib/services/customImageSearch/lib/models/thing.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/thing.js diff --git a/lib/services/customImageSearch/lib/models/webPage.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/webPage.js similarity index 100% rename from lib/services/customImageSearch/lib/models/webPage.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/models/webPage.js diff --git a/lib/services/customImageSearch/lib/operations/customInstance.js b/lib/services/cognitiveServicesCustomImageSearch/lib/operations/customInstance.js similarity index 100% rename from lib/services/customImageSearch/lib/operations/customInstance.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/operations/customInstance.js diff --git a/lib/services/customImageSearch/lib/operations/index.d.ts b/lib/services/cognitiveServicesCustomImageSearch/lib/operations/index.d.ts similarity index 100% rename from lib/services/customImageSearch/lib/operations/index.d.ts rename to lib/services/cognitiveServicesCustomImageSearch/lib/operations/index.d.ts diff --git a/lib/services/customImageSearch/lib/operations/index.js b/lib/services/cognitiveServicesCustomImageSearch/lib/operations/index.js similarity index 100% rename from lib/services/customImageSearch/lib/operations/index.js rename to lib/services/cognitiveServicesCustomImageSearch/lib/operations/index.js diff --git a/lib/services/cognitiveServicesCustomImageSearch/package-lock.json b/lib/services/cognitiveServicesCustomImageSearch/package-lock.json new file mode 100644 index 0000000000..7240e02c0a --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/package-lock.json @@ -0,0 +1,375 @@ +{ + "name": "azure-cognitiveservices-customimagesearch", + "version": "0.1.0-preview", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "requires": { + "ajv": "^5.1.0", + "har-schema": "^2.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "mime-db": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", + "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==" + }, + "mime-types": { + "version": "2.1.19", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", + "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", + "requires": { + "mime-db": "~1.35.0" + } + }, + "moment": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", + "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" + }, + "ms-rest": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/ms-rest/-/ms-rest-2.3.6.tgz", + "integrity": "sha512-M+Lx9P7Wy4TeAk7jqPLwGS1QS1gvxF6Xo+OHv5j1g3Kcb44T/GTUuSjxTKarF6aKyeacZH1ZD++Nt7pcql7dDA==", + "requires": { + "duplexer": "^0.1.1", + "is-buffer": "^1.1.6", + "is-stream": "^1.1.0", + "moment": "^2.21.0", + "request": "^2.87.0", + "through": "^2.3.8", + "tunnel": "0.0.5", + "uuid": "^3.2.1" + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "request": { + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "requires": { + "punycode": "^1.4.1" + } + }, + "tunnel": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.5.tgz", + "integrity": "sha512-gj5sdqherx4VZKMcBA4vewER7zdK25Td+z1npBqpbDys4eJrLx+SlYjJvq1bDXs2irkuJM5pf8ktaEQVipkrbA==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + } + } +} diff --git a/lib/services/customImageSearch/package.json b/lib/services/cognitiveServicesCustomImageSearch/package.json similarity index 72% rename from lib/services/customImageSearch/package.json rename to lib/services/cognitiveServicesCustomImageSearch/package.json index 86b1993bd1..e4f9e0f69d 100644 --- a/lib/services/customImageSearch/package.json +++ b/lib/services/cognitiveServicesCustomImageSearch/package.json @@ -2,7 +2,7 @@ "name": "azure-cognitiveservices-customimagesearch", "author": "Microsoft Corporation", "description": "CustomImageSearchAPIClient Library with typescript type definitions for node", - "version": "1.0.0-preview", + "version": "0.1.0-preview", "dependencies": { "ms-rest": "^2.3.3" }, @@ -13,12 +13,12 @@ "license": "MIT", "main": "./lib/customImageSearchAPIClient.js", "types": "./lib/customImageSearchAPIClient.d.ts", - "homepage": "http://github.com/azure/azure-sdk-for-node", + "homepage": "https://github.com/azure/azure-sdk-for-node/lib/services/cognitiveServicesCustomImageSearch", "repository": { "type": "git", "url": "https://github.com/azure/azure-sdk-for-node.git" }, "bugs": { - "url": "http://github.com/Azure/azure-sdk-for-node/issues" + "url": "https://github.com/azure/azure-sdk-for-node/issues" } } diff --git a/lib/services/customImageSearch/lib/operations/custom.js b/lib/services/customImageSearch/lib/operations/custom.js deleted file mode 100644 index 5c53eb7665..0000000000 --- a/lib/services/customImageSearch/lib/operations/custom.js +++ /dev/null @@ -1,1433 +0,0 @@ -/* - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for - * license information. - * - * Code generated by Microsoft (R) AutoRest Code Generator. - * Changes may cause incorrect behavior and will be lost if the code is - * regenerated. - */ - -'use strict'; - -const msRest = require('ms-rest'); -const WebResource = msRest.WebResource; - -/** - * @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. - * - * @param {string} 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 {object} [options] Optional Parameters. - * - * @param {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 :. 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 {number} [options.customConfig] The identifier for the custom search - * configuration - * - * @param {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 - * -. 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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {object} [options.customHeaders] Headers that will be added to the - * request - * - * @param {function} callback - The callback. - * - * @returns {function} callback(err, result, request, response) - * - * {Error} err - The Error object if an error occurred, null otherwise. - * - * {object} [result] - The deserialized result object if an error did not occur. - * See {@link Images} for more information. - * - * {object} [request] - The HTTP Request object if an error did not occur. - * - * {stream} [response] - The HTTP Response stream if an error did not occur. - */ -function _search(query, options, callback) { - /* jshint validthis: true */ - let client = this.client; - if(!callback && typeof options === 'function') { - callback = options; - options = null; - } - if (!callback) { - throw new Error('callback cannot be null.'); - } - let acceptLanguage = (options && options.acceptLanguage !== undefined) ? options.acceptLanguage : undefined; - let userAgent = (options && options.userAgent !== undefined) ? options.userAgent : undefined; - let clientId = (options && options.clientId !== undefined) ? options.clientId : undefined; - let clientIp = (options && options.clientIp !== undefined) ? options.clientIp : undefined; - let location = (options && options.location !== undefined) ? options.location : undefined; - let customConfig = (options && options.customConfig !== undefined) ? options.customConfig : undefined; - let aspect = (options && options.aspect !== undefined) ? options.aspect : undefined; - let color = (options && options.color !== undefined) ? options.color : undefined; - let countryCode = (options && options.countryCode !== undefined) ? options.countryCode : undefined; - let count = (options && options.count !== undefined) ? options.count : undefined; - let freshness = (options && options.freshness !== undefined) ? options.freshness : undefined; - let height = (options && options.height !== undefined) ? options.height : undefined; - let id = (options && options.id !== undefined) ? options.id : undefined; - let imageContent = (options && options.imageContent !== undefined) ? options.imageContent : undefined; - let imageType = (options && options.imageType !== undefined) ? options.imageType : undefined; - let license = (options && options.license !== undefined) ? options.license : undefined; - let market = (options && options.market !== undefined) ? options.market : undefined; - let maxFileSize = (options && options.maxFileSize !== undefined) ? options.maxFileSize : undefined; - let maxHeight = (options && options.maxHeight !== undefined) ? options.maxHeight : undefined; - let maxWidth = (options && options.maxWidth !== undefined) ? options.maxWidth : undefined; - let minFileSize = (options && options.minFileSize !== undefined) ? options.minFileSize : undefined; - let minHeight = (options && options.minHeight !== undefined) ? options.minHeight : undefined; - let minWidth = (options && options.minWidth !== undefined) ? options.minWidth : undefined; - let offset = (options && options.offset !== undefined) ? options.offset : undefined; - let safeSearch = (options && options.safeSearch !== undefined) ? options.safeSearch : undefined; - let size = (options && options.size !== undefined) ? options.size : undefined; - let setLang = (options && options.setLang !== undefined) ? options.setLang : undefined; - let width = (options && options.width !== undefined) ? options.width : undefined; - let xBingApisSDK = 'true'; - // Validate - try { - if (acceptLanguage !== null && acceptLanguage !== undefined && typeof acceptLanguage.valueOf() !== 'string') { - throw new Error('acceptLanguage must be of type string.'); - } - if (userAgent !== null && userAgent !== undefined && typeof userAgent.valueOf() !== 'string') { - throw new Error('userAgent must be of type string.'); - } - if (clientId !== null && clientId !== undefined && typeof clientId.valueOf() !== 'string') { - throw new Error('clientId must be of type string.'); - } - if (clientIp !== null && clientIp !== undefined && typeof clientIp.valueOf() !== 'string') { - throw new Error('clientIp must be of type string.'); - } - if (location !== null && location !== undefined && typeof location.valueOf() !== 'string') { - throw new Error('location must be of type string.'); - } - if (customConfig !== null && customConfig !== undefined && typeof customConfig !== 'number') { - throw new Error('customConfig must be of type number.'); - } - if (aspect !== null && aspect !== undefined && typeof aspect.valueOf() !== 'string') { - throw new Error('aspect must be of type string.'); - } - if (color !== null && color !== undefined && typeof color.valueOf() !== 'string') { - throw new Error('color must be of type string.'); - } - if (countryCode !== null && countryCode !== undefined && typeof countryCode.valueOf() !== 'string') { - throw new Error('countryCode must be of type string.'); - } - if (count !== null && count !== undefined && typeof count !== 'number') { - throw new Error('count must be of type number.'); - } - if (freshness !== null && freshness !== undefined && typeof freshness.valueOf() !== 'string') { - throw new Error('freshness must be of type string.'); - } - if (height !== null && height !== undefined && typeof height !== 'number') { - throw new Error('height must be of type number.'); - } - if (id !== null && id !== undefined && typeof id.valueOf() !== 'string') { - throw new Error('id must be of type string.'); - } - if (imageContent !== null && imageContent !== undefined && typeof imageContent.valueOf() !== 'string') { - throw new Error('imageContent must be of type string.'); - } - if (imageType !== null && imageType !== undefined && typeof imageType.valueOf() !== 'string') { - throw new Error('imageType must be of type string.'); - } - if (license !== null && license !== undefined && typeof license.valueOf() !== 'string') { - throw new Error('license must be of type string.'); - } - if (market !== null && market !== undefined && typeof market.valueOf() !== 'string') { - throw new Error('market must be of type string.'); - } - if (maxFileSize !== null && maxFileSize !== undefined && typeof maxFileSize !== 'number') { - throw new Error('maxFileSize must be of type number.'); - } - if (maxHeight !== null && maxHeight !== undefined && typeof maxHeight !== 'number') { - throw new Error('maxHeight must be of type number.'); - } - if (maxWidth !== null && maxWidth !== undefined && typeof maxWidth !== 'number') { - throw new Error('maxWidth must be of type number.'); - } - if (minFileSize !== null && minFileSize !== undefined && typeof minFileSize !== 'number') { - throw new Error('minFileSize must be of type number.'); - } - if (minHeight !== null && minHeight !== undefined && typeof minHeight !== 'number') { - throw new Error('minHeight must be of type number.'); - } - if (minWidth !== null && minWidth !== undefined && typeof minWidth !== 'number') { - throw new Error('minWidth must be of type number.'); - } - if (offset !== null && offset !== undefined && typeof offset !== 'number') { - throw new Error('offset must be of type number.'); - } - if (query === null || query === undefined || typeof query.valueOf() !== 'string') { - throw new Error('query cannot be null or undefined and it must be of type string.'); - } - if (safeSearch !== null && safeSearch !== undefined && typeof safeSearch.valueOf() !== 'string') { - throw new Error('safeSearch must be of type string.'); - } - if (size !== null && size !== undefined && typeof size.valueOf() !== 'string') { - throw new Error('size must be of type string.'); - } - if (setLang !== null && setLang !== undefined && typeof setLang.valueOf() !== 'string') { - throw new Error('setLang must be of type string.'); - } - if (width !== null && width !== undefined && typeof width !== 'number') { - throw new Error('width must be of type number.'); - } - } catch (error) { - return callback(error); - } - - // Construct URL - let baseUrl = this.client.baseUri; - let requestUrl = baseUrl + (baseUrl.endsWith('/') ? '' : '/') + 'images/search'; - let queryParameters = []; - if (customConfig !== null && customConfig !== undefined) { - queryParameters.push('customConfig=' + encodeURIComponent(customConfig.toString())); - } - if (aspect !== null && aspect !== undefined) { - queryParameters.push('aspect=' + encodeURIComponent(aspect)); - } - if (color !== null && color !== undefined) { - queryParameters.push('color=' + encodeURIComponent(color)); - } - if (countryCode !== null && countryCode !== undefined) { - queryParameters.push('cc=' + encodeURIComponent(countryCode)); - } - if (count !== null && count !== undefined) { - queryParameters.push('count=' + encodeURIComponent(count.toString())); - } - if (freshness !== null && freshness !== undefined) { - queryParameters.push('freshness=' + encodeURIComponent(freshness)); - } - if (height !== null && height !== undefined) { - queryParameters.push('height=' + encodeURIComponent(height.toString())); - } - if (id !== null && id !== undefined) { - queryParameters.push('id=' + encodeURIComponent(id)); - } - if (imageContent !== null && imageContent !== undefined) { - queryParameters.push('imageContent=' + encodeURIComponent(imageContent)); - } - if (imageType !== null && imageType !== undefined) { - queryParameters.push('imageType=' + encodeURIComponent(imageType)); - } - if (license !== null && license !== undefined) { - queryParameters.push('license=' + encodeURIComponent(license)); - } - if (market !== null && market !== undefined) { - queryParameters.push('mkt=' + encodeURIComponent(market)); - } - if (maxFileSize !== null && maxFileSize !== undefined) { - queryParameters.push('maxFileSize=' + encodeURIComponent(maxFileSize.toString())); - } - if (maxHeight !== null && maxHeight !== undefined) { - queryParameters.push('maxHeight=' + encodeURIComponent(maxHeight.toString())); - } - if (maxWidth !== null && maxWidth !== undefined) { - queryParameters.push('maxWidth=' + encodeURIComponent(maxWidth.toString())); - } - if (minFileSize !== null && minFileSize !== undefined) { - queryParameters.push('minFileSize=' + encodeURIComponent(minFileSize.toString())); - } - if (minHeight !== null && minHeight !== undefined) { - queryParameters.push('minHeight=' + encodeURIComponent(minHeight.toString())); - } - if (minWidth !== null && minWidth !== undefined) { - queryParameters.push('minWidth=' + encodeURIComponent(minWidth.toString())); - } - if (offset !== null && offset !== undefined) { - queryParameters.push('offset=' + encodeURIComponent(offset.toString())); - } - queryParameters.push('q=' + encodeURIComponent(query)); - if (safeSearch !== null && safeSearch !== undefined) { - queryParameters.push('safeSearch=' + encodeURIComponent(safeSearch)); - } - if (size !== null && size !== undefined) { - queryParameters.push('size=' + encodeURIComponent(size)); - } - if (setLang !== null && setLang !== undefined) { - queryParameters.push('setLang=' + encodeURIComponent(setLang)); - } - if (width !== null && width !== undefined) { - queryParameters.push('width=' + encodeURIComponent(width.toString())); - } - if (queryParameters.length > 0) { - requestUrl += '?' + queryParameters.join('&'); - } - - // Create HTTP transport objects - let httpRequest = new WebResource(); - httpRequest.method = 'GET'; - httpRequest.url = requestUrl; - httpRequest.headers = {}; - // Set Headers - httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8'; - if (xBingApisSDK !== undefined && xBingApisSDK !== null) { - httpRequest.headers['X-BingApis-SDK'] = xBingApisSDK; - } - if (acceptLanguage !== undefined && acceptLanguage !== null) { - httpRequest.headers['Accept-Language'] = acceptLanguage; - } - if (userAgent !== undefined && userAgent !== null) { - httpRequest.headers['User-Agent'] = userAgent; - } - if (clientId !== undefined && clientId !== null) { - httpRequest.headers['X-MSEdge-ClientID'] = clientId; - } - if (clientIp !== undefined && clientIp !== null) { - httpRequest.headers['X-MSEdge-ClientIP'] = clientIp; - } - if (location !== undefined && location !== null) { - httpRequest.headers['X-Search-Location'] = location; - } - if(options) { - for(let headerName in options['customHeaders']) { - if (options['customHeaders'].hasOwnProperty(headerName)) { - httpRequest.headers[headerName] = options['customHeaders'][headerName]; - } - } - } - httpRequest.body = null; - // Send Request - return client.pipeline(httpRequest, (err, response, responseBody) => { - if (err) { - return callback(err); - } - let statusCode = response.statusCode; - if (statusCode !== 200) { - let error = new Error(responseBody); - error.statusCode = response.statusCode; - error.request = msRest.stripRequest(httpRequest); - error.response = msRest.stripResponse(response); - if (responseBody === '') responseBody = null; - let parsedErrorResponse; - try { - parsedErrorResponse = JSON.parse(responseBody); - if (parsedErrorResponse) { - let internalError = null; - if (parsedErrorResponse.error) internalError = parsedErrorResponse.error; - error.code = internalError ? internalError.code : parsedErrorResponse.code; - error.message = internalError ? internalError.message : parsedErrorResponse.message; - } - if (parsedErrorResponse !== null && parsedErrorResponse !== undefined) { - let resultMapper = new client.models['ErrorResponse']().mapper(); - error.body = client.deserialize(resultMapper, parsedErrorResponse, 'error.body'); - } - } catch (defaultError) { - error.message = `Error "${defaultError.message}" occurred in deserializing the responseBody ` + - `- "${responseBody}" for the default response.`; - return callback(error); - } - return callback(error); - } - // Create Result - let result = null; - if (responseBody === '') responseBody = null; - // Deserialize Response - if (statusCode === 200) { - let parsedResponse = null; - try { - parsedResponse = JSON.parse(responseBody); - result = JSON.parse(responseBody); - if (parsedResponse !== null && parsedResponse !== undefined) { - let resultMapper = new client.models['Images']().mapper(); - result = client.deserialize(resultMapper, parsedResponse, 'result'); - } - } catch (error) { - let deserializationError = new Error(`Error ${error} occurred in deserializing the responseBody - ${responseBody}`); - deserializationError.request = msRest.stripRequest(httpRequest); - deserializationError.response = msRest.stripResponse(response); - return callback(deserializationError); - } - } - - return callback(null, result, httpRequest, response); - }); -} - -/** Class representing a Custom. */ -class Custom { - /** - * Create a Custom. - * @param {CustomImageSearchAPIClient} client Reference to the service client. - */ - constructor(client) { - this.client = client; - this._search = _search; - } - - /** - * @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. - * - * @param {string} 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 {object} [options] Optional Parameters. - * - * @param {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 :. 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 {number} [options.customConfig] The identifier for the custom search - * configuration - * - * @param {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 - * -. 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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {object} [options.customHeaders] Headers that will be added to the - * request - * - * @returns {Promise} A promise is returned - * - * @resolve {HttpOperationResponse} - The deserialized result object. - * - * @reject {Error} - The error object. - */ - searchWithHttpOperationResponse(query, options) { - let client = this.client; - let self = this; - return new Promise((resolve, reject) => { - self._search(query, options, (err, result, request, response) => { - let httpOperationResponse = new msRest.HttpOperationResponse(request, response); - httpOperationResponse.body = result; - if (err) { reject(err); } - else { resolve(httpOperationResponse); } - return; - }); - }); - } - - /** - * @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. - * - * @param {string} 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 {object} [options] Optional Parameters. - * - * @param {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 :. 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 {number} [options.customConfig] The identifier for the custom search - * configuration - * - * @param {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 - * -. 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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {number} [options.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 {string} [options.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 {string} [options.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 {string} [options.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 {number} [options.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 {object} [options.customHeaders] Headers that will be added to the - * request - * - * @param {function} [optionalCallback] - The optional callback. - * - * @returns {function|Promise} If a callback was passed as the last parameter - * then it returns the callback else returns a Promise. - * - * {Promise} A promise is returned - * - * @resolve {Images} - The deserialized result object. - * - * @reject {Error} - The error object. - * - * {function} optionalCallback(err, result, request, response) - * - * {Error} err - The Error object if an error occurred, null otherwise. - * - * {object} [result] - The deserialized result object if an error did not occur. - * See {@link Images} for more information. - * - * {object} [request] - The HTTP Request object if an error did not occur. - * - * {stream} [response] - The HTTP Response stream if an error did not occur. - */ - search(query, options, optionalCallback) { - let client = this.client; - let self = this; - if (!optionalCallback && typeof options === 'function') { - optionalCallback = options; - options = null; - } - if (!optionalCallback) { - return new Promise((resolve, reject) => { - self._search(query, options, (err, result, request, response) => { - if (err) { reject(err); } - else { resolve(result); } - return; - }); - }); - } else { - return self._search(query, options, optionalCallback); - } - } - -} - -module.exports = Custom;