diff --git a/lib/services/cognitiveServicesCustomImageSearch/LICENSE.txt b/lib/services/cognitiveServicesCustomImageSearch/LICENSE.txt new file mode 100644 index 0000000000..5431ba98b9 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/customImageSearchAPIClient.d.ts b/lib/services/cognitiveServicesCustomImageSearch/lib/customImageSearchAPIClient.d.ts new file mode 100644 index 0000000000..632ca24ed3 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/customImageSearchAPIClient.js b/lib/services/cognitiveServicesCustomImageSearch/lib/customImageSearchAPIClient.js new file mode 100644 index 0000000000..68280fa7d2 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/answer.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/answer.js new file mode 100644 index 0000000000..e818bf4242 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/creativeWork.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/creativeWork.js new file mode 100644 index 0000000000..1c771b7b75 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/errorModel.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/errorModel.js new file mode 100644 index 0000000000..29a10321dd --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/errorResponse.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/errorResponse.js new file mode 100644 index 0000000000..f24c1e64b3 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/identifiable.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/identifiable.js new file mode 100644 index 0000000000..6cc9e3d679 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/imageObject.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/imageObject.js new file mode 100644 index 0000000000..99d40c4918 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/images.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/images.js new file mode 100644 index 0000000000..74797fb607 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/index.d.ts b/lib/services/cognitiveServicesCustomImageSearch/lib/models/index.d.ts new file mode 100644 index 0000000000..6c50a1060a --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/index.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/index.js new file mode 100644 index 0000000000..880b842072 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/mediaObject.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/mediaObject.js new file mode 100644 index 0000000000..793752ab3c --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/query.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/query.js new file mode 100644 index 0000000000..751422daad --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/response.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/response.js new file mode 100644 index 0000000000..5f42c01a24 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/responseBase.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/responseBase.js new file mode 100644 index 0000000000..28a5d0d020 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/searchResultsAnswer.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/searchResultsAnswer.js new file mode 100644 index 0000000000..34d1203a51 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/thing.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/thing.js new file mode 100644 index 0000000000..6fded1aaad --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/models/webPage.js b/lib/services/cognitiveServicesCustomImageSearch/lib/models/webPage.js new file mode 100644 index 0000000000..1f120616b3 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/operations/customInstance.js b/lib/services/cognitiveServicesCustomImageSearch/lib/operations/customInstance.js new file mode 100644 index 0000000000..b129ca1fe5 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/operations/index.d.ts b/lib/services/cognitiveServicesCustomImageSearch/lib/operations/index.d.ts new file mode 100644 index 0000000000..98697e10fe --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/lib/operations/index.js b/lib/services/cognitiveServicesCustomImageSearch/lib/operations/index.js new file mode 100644 index 0000000000..f5e498a3c3 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/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/cognitiveServicesCustomImageSearch/package.json b/lib/services/cognitiveServicesCustomImageSearch/package.json new file mode 100644 index 0000000000..637279d889 --- /dev/null +++ b/lib/services/cognitiveServicesCustomImageSearch/package.json @@ -0,0 +1,24 @@ +{ + "name": "azure-cognitiveservices-customimagesearch", + "author": "Microsoft Corporation", + "description": "CustomImageSearchAPIClient Library with typescript type definitions for node", + "version": "0.1.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" + } +}