/** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ import * as msRest from '@azure/ms-rest-js'; import * as Models from '../models'; import * as Mappers from '../models/userTokenMappers'; import * as Parameters from '../models/parameters'; import { TokenApiClientContext } from '../tokenApiClientContext'; import { TokenExchangeRequest, TokenResponse, TokenStatus } from 'botframework-schema'; /** Class representing a UserToken. */ export class UserToken { private readonly client: TokenApiClientContext; /** * Create a UserToken. * * @param {TokenApiClientContext} client Reference to the service client. */ constructor(client: TokenApiClientContext) { this.client = client; } /** * @param userId * @param connectionName * @param [options] The optional parameters * @returns Promise */ getToken( userId: string, connectionName: string, options?: Models.UserTokenGetTokenOptionalParams ): Promise; /** * @param userId * @param connectionName * @param callback The callback */ getToken(userId: string, connectionName: string, callback: msRest.ServiceCallback): void; /** * @param userId * @param connectionName * @param options The optional parameters * @param callback The callback */ getToken( userId: string, connectionName: string, options: Models.UserTokenGetTokenOptionalParams, callback: msRest.ServiceCallback ): void; getToken( userId: string, connectionName: string, options?: Models.UserTokenGetTokenOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback ): Promise { return this.client.sendOperationRequest( { userId, connectionName, options, }, getTokenOperationSpec, callback ) as Promise; } /** * @param userId * @param connectionName * @param aadResourceUrls * @param [options] The optional parameters * @returns Promise */ getAadTokens( userId: string, connectionName: string, aadResourceUrls: Models.AadResourceUrls, options?: Models.UserTokenGetAadTokensOptionalParams ): Promise; /** * @param userId * @param connectionName * @param aadResourceUrls * @param callback The callback */ getAadTokens( userId: string, connectionName: string, aadResourceUrls: Models.AadResourceUrls, callback: msRest.ServiceCallback<{ [propertyName: string]: TokenResponse }> ): void; /** * @param userId * @param connectionName * @param aadResourceUrls * @param options The optional parameters * @param callback The callback */ getAadTokens( userId: string, connectionName: string, aadResourceUrls: Models.AadResourceUrls, options: Models.UserTokenGetAadTokensOptionalParams, callback: msRest.ServiceCallback<{ [propertyName: string]: TokenResponse }> ): void; getAadTokens( userId: string, connectionName: string, aadResourceUrls: Models.AadResourceUrls, options?: | Models.UserTokenGetAadTokensOptionalParams | msRest.ServiceCallback<{ [propertyName: string]: TokenResponse }>, callback?: msRest.ServiceCallback<{ [propertyName: string]: TokenResponse }> ): Promise { return this.client.sendOperationRequest( { userId, connectionName, aadResourceUrls, options, }, getAadTokensOperationSpec, callback ) as Promise; } /** * @param userId * @param [options] The optional parameters * @returns Promise */ signOut(userId: string, options?: Models.UserTokenSignOutOptionalParams): Promise; /** * @param userId * @param callback The callback */ signOut(userId: string, callback: msRest.ServiceCallback): void; /** * @param userId * @param options The optional parameters * @param callback The callback */ signOut( userId: string, options: Models.UserTokenSignOutOptionalParams, callback: msRest.ServiceCallback ): void; signOut( userId: string, options?: Models.UserTokenSignOutOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback ): Promise { return this.client.sendOperationRequest( { userId, options, }, signOutOperationSpec, callback ) as Promise; } /** * @param userId * @param [options] The optional parameters * @returns Promise */ getTokenStatus( userId: string, options?: Models.UserTokenGetTokenStatusOptionalParams ): Promise; /** * @param userId * @param callback The callback */ getTokenStatus(userId: string, callback: msRest.ServiceCallback): void; /** * @param userId * @param options The optional parameters * @param callback The callback */ getTokenStatus( userId: string, options: Models.UserTokenGetTokenStatusOptionalParams, callback: msRest.ServiceCallback ): void; getTokenStatus( userId: string, options?: Models.UserTokenGetTokenStatusOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback ): Promise { return this.client.sendOperationRequest( { userId, options, }, getTokenStatusOperationSpec, callback ) as Promise; } /** * @param userId * @param connectionName * @param channelId * @param exchangeRequest * @param [options] The optional parameters * @returns Promise */ exchangeAsync( userId: string, connectionName: string, channelId: string, exchangeRequest: TokenExchangeRequest, options?: msRest.RequestOptionsBase ): Promise; /** * @param userId * @param connectionName * @param channelId * @param exchangeRequest * @param callback The callback */ exchangeAsync( userId: string, connectionName: string, channelId: string, exchangeRequest: TokenExchangeRequest, callback: msRest.ServiceCallback ): void; /** * @param userId * @param connectionName * @param channelId * @param exchangeRequest * @param options The optional parameters * @param callback The callback */ exchangeAsync( userId: string, connectionName: string, channelId: string, exchangeRequest: TokenExchangeRequest, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback ): void; exchangeAsync( userId: string, connectionName: string, channelId: string, exchangeRequest: TokenExchangeRequest, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback ): Promise { return this.client.sendOperationRequest( { userId, connectionName, channelId, exchangeRequest, options, }, exchangeAsyncOperationSpec, callback ) as Promise; } } // Operation Specifications const serializer = new msRest.Serializer(Mappers); const getTokenOperationSpec: msRest.OperationSpec = { httpMethod: 'GET', path: 'api/usertoken/GetToken', queryParameters: [Parameters.userId, Parameters.connectionName0, Parameters.channelId0, Parameters.code], responses: { 200: { bodyMapper: Mappers.TokenResponse, }, 404: { bodyMapper: Mappers.TokenResponse, }, default: { bodyMapper: Mappers.ErrorResponse, }, }, serializer, }; const getAadTokensOperationSpec: msRest.OperationSpec = { httpMethod: 'POST', path: 'api/usertoken/GetAadTokens', queryParameters: [Parameters.userId, Parameters.connectionName0, Parameters.channelId0], requestBody: { parameterPath: 'aadResourceUrls', mapper: { ...Mappers.AadResourceUrls, required: true, }, }, responses: { 200: { bodyMapper: { serializedName: 'parsedResponse', type: { name: 'Dictionary', value: { type: { name: 'Composite', className: 'TokenResponse', }, }, }, }, }, default: { bodyMapper: Mappers.ErrorResponse, }, }, serializer, }; const signOutOperationSpec: msRest.OperationSpec = { httpMethod: 'DELETE', path: 'api/usertoken/SignOut', queryParameters: [Parameters.userId, Parameters.connectionName1, Parameters.channelId0], responses: { 200: { bodyMapper: { serializedName: 'parsedResponse', type: { name: 'Object', }, }, }, 204: {}, default: { bodyMapper: Mappers.ErrorResponse, }, }, serializer, }; const getTokenStatusOperationSpec: msRest.OperationSpec = { httpMethod: 'GET', path: 'api/usertoken/GetTokenStatus', queryParameters: [Parameters.userId, Parameters.channelId0, Parameters.include], responses: { 200: { bodyMapper: { serializedName: 'parsedResponse', type: { name: 'Sequence', element: { type: { name: 'Composite', className: 'TokenStatus', }, }, }, }, }, default: { bodyMapper: Mappers.ErrorResponse, }, }, serializer, }; const exchangeAsyncOperationSpec: msRest.OperationSpec = { httpMethod: 'POST', path: 'api/usertoken/exchange', queryParameters: [Parameters.userId, Parameters.connectionName0, Parameters.channelId1], requestBody: { parameterPath: 'exchangeRequest', mapper: { ...Mappers.TokenExchangeRequest, required: true, }, }, responses: { 200: { bodyMapper: Mappers.TokenResponse, }, 400: { bodyMapper: Mappers.ErrorResponse, }, 404: { bodyMapper: Mappers.TokenResponse, }, default: { bodyMapper: Mappers.ErrorResponse, }, }, serializer, };