@azure/web-pubsub 1.0.1-alpha.20220330.1 → 1.1.0-alpha.20220414.1

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/generated/models/mappers.ts","../src/generated/models/parameters.ts","../src/generated/operations/healthApi.ts","../src/generated/operations/webPubSub.ts","../src/generated/generatedClientContext.ts","../src/generated/generatedClient.ts","../src/tracing.ts","../src/utils.ts","../src/groupClient.ts","../src/webPubSubCredentialPolicy.ts","../src/logger.ts","../src/parseConnectionString.ts","../src/reverseProxyPolicy.ts","../src/hubClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\nexport const ClientTokenResponse: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ClientTokenResponse\",\n modelProperties: {\n token: {\n serializedName: \"token\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ErrorDetail: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ErrorDetail\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n type: {\n name: \"String\"\n }\n },\n message: {\n serializedName: \"message\",\n type: {\n name: \"String\"\n }\n },\n target: {\n serializedName: \"target\",\n type: {\n name: \"String\"\n }\n },\n details: {\n serializedName: \"details\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ErrorDetail\"\n }\n }\n }\n },\n inner: {\n serializedName: \"inner\",\n type: {\n name: \"Composite\",\n className: \"InnerError\"\n }\n }\n }\n }\n};\n\nexport const InnerError: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"InnerError\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n type: {\n name: \"String\"\n }\n },\n inner: {\n serializedName: \"inner\",\n type: {\n name: \"Composite\",\n className: \"InnerError\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubGenerateClientTokenExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubGenerateClientTokenExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubCloseAllConnectionsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseAllConnectionsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubSendToAllExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToAllExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubConnectionExistsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubConnectionExistsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubCloseConnectionExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseConnectionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubSendToConnectionExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToConnectionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubGroupExistsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubGroupExistsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubCloseGroupConnectionsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseGroupConnectionsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubSendToGroupExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubAddConnectionToGroupExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubAddConnectionToGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubRemoveConnectionFromGroupExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveConnectionFromGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubUserExistsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubUserExistsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubCloseUserConnectionsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseUserConnectionsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubSendToUserExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToUserExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubAddUserToGroupExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubAddUserToGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubRemoveUserFromGroupExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveUserFromGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubRemoveUserFromAllGroupsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveUserFromAllGroupsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubGrantPermissionExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubGrantPermissionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubRevokePermissionExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRevokePermissionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubCheckPermissionExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCheckPermissionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport {\n OperationURLParameter,\n OperationQueryParameter,\n OperationParameter\n} from \"@azure/core-client\";\n\nexport const endpoint: OperationURLParameter = {\n parameterPath: \"endpoint\",\n mapper: {\n serializedName: \"Endpoint\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n skipEncoding: true\n};\n\nexport const apiVersion: OperationQueryParameter = {\n parameterPath: \"apiVersion\",\n mapper: {\n defaultValue: \"2021-10-01\",\n isConstant: true,\n serializedName: \"api-version\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const accept: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json, text/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const hub: OperationURLParameter = {\n parameterPath: \"hub\",\n mapper: {\n constraints: {\n Pattern: new RegExp(\"^[A-Za-z][A-Za-z0-9_`,.[\\\\]]{0,127}$\")\n },\n serializedName: \"hub\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const userId: OperationQueryParameter = {\n parameterPath: [\"options\", \"userId\"],\n mapper: {\n serializedName: \"userId\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const roles: OperationQueryParameter = {\n parameterPath: [\"options\", \"roles\"],\n mapper: {\n serializedName: \"role\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n collectionFormat: \"Multi\"\n};\n\nexport const expirationTimeInMinutes: OperationQueryParameter = {\n parameterPath: [\"options\", \"expirationTimeInMinutes\"],\n mapper: {\n defaultValue: 60,\n serializedName: \"minutesToExpire\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const excluded: OperationQueryParameter = {\n parameterPath: [\"options\", \"excluded\"],\n mapper: {\n serializedName: \"excluded\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n collectionFormat: \"Multi\"\n};\n\nexport const reason: OperationQueryParameter = {\n parameterPath: [\"options\", \"reason\"],\n mapper: {\n serializedName: \"reason\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentType: OperationParameter = {\n parameterPath: \"contentType\",\n mapper: {\n serializedName: \"Content-Type\",\n required: true,\n type: {\n name: \"Enum\",\n allowedValues: [\"application/json\", \"application/octet-stream\"]\n }\n }\n};\n\nexport const message: OperationParameter = {\n parameterPath: \"message\",\n mapper: {\n serializedName: \"message\",\n required: true,\n type: {\n name: \"Stream\"\n }\n }\n};\n\nexport const accept1: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json, text/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentType1: OperationParameter = {\n parameterPath: \"contentType\",\n mapper: {\n defaultValue: \"text/plain\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const message1: OperationParameter = {\n parameterPath: \"message\",\n mapper: {\n serializedName: \"message\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const accept2: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json, text/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const excludedConnections: OperationQueryParameter = {\n parameterPath: [\"options\", \"excludedConnections\"],\n mapper: {\n serializedName: \"excluded\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n collectionFormat: \"Multi\"\n};\n\nexport const connectionId: OperationURLParameter = {\n parameterPath: \"connectionId\",\n mapper: {\n constraints: {\n MinLength: 1\n },\n serializedName: \"connectionId\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const group: OperationURLParameter = {\n parameterPath: \"group\",\n mapper: {\n constraints: {\n MaxLength: 1024,\n MinLength: 1\n },\n serializedName: \"group\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const userId1: OperationURLParameter = {\n parameterPath: \"userId\",\n mapper: {\n constraints: {\n MinLength: 1\n },\n serializedName: \"userId\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const permission: OperationURLParameter = {\n parameterPath: \"permission\",\n mapper: {\n serializedName: \"permission\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const targetName: OperationQueryParameter = {\n parameterPath: [\"options\", \"targetName\"],\n mapper: {\n serializedName: \"targetName\",\n type: {\n name: \"String\"\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { HealthApi } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { GeneratedClientContext } from \"../generatedClientContext\";\nimport { HealthApiGetServiceStatusOptionalParams } from \"../models\";\n\n/** Class containing HealthApi operations. */\nexport class HealthApiImpl implements HealthApi {\n private readonly client: GeneratedClientContext;\n\n /**\n * Initialize a new instance of the class HealthApi class.\n * @param client Reference to the service client\n */\n constructor(client: GeneratedClientContext) {\n this.client = client;\n }\n\n /**\n * Get service health status.\n * @param options The options parameters.\n */\n getServiceStatus(\n options?: HealthApiGetServiceStatusOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { options },\n getServiceStatusOperationSpec\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst getServiceStatusOperationSpec: coreClient.OperationSpec = {\n path: \"/api/health\",\n httpMethod: \"HEAD\",\n responses: { 200: {}, default: {} },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n serializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { WebPubSub } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as coreRestPipeline from \"@azure/core-rest-pipeline\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { GeneratedClientContext } from \"../generatedClientContext\";\nimport {\n WebPubSubGenerateClientTokenOptionalParams,\n WebPubSubGenerateClientTokenResponse,\n WebPubSubCloseAllConnectionsOptionalParams,\n ContentType,\n WebPubSubSendToAll$binaryOptionalParams,\n WebPubSubSendToAll$textOptionalParams,\n WebPubSubConnectionExistsOptionalParams,\n WebPubSubCloseConnectionOptionalParams,\n WebPubSubSendToConnection$binaryOptionalParams,\n WebPubSubSendToConnection$textOptionalParams,\n WebPubSubGroupExistsOptionalParams,\n WebPubSubCloseGroupConnectionsOptionalParams,\n WebPubSubSendToGroup$binaryOptionalParams,\n WebPubSubSendToGroup$textOptionalParams,\n WebPubSubAddConnectionToGroupOptionalParams,\n WebPubSubRemoveConnectionFromGroupOptionalParams,\n WebPubSubUserExistsOptionalParams,\n WebPubSubCloseUserConnectionsOptionalParams,\n WebPubSubSendToUser$binaryOptionalParams,\n WebPubSubSendToUser$textOptionalParams,\n WebPubSubAddUserToGroupOptionalParams,\n WebPubSubRemoveUserFromGroupOptionalParams,\n WebPubSubRemoveUserFromAllGroupsOptionalParams,\n WebPubSubPermission,\n WebPubSubGrantPermissionOptionalParams,\n WebPubSubRevokePermissionOptionalParams,\n WebPubSubCheckPermissionOptionalParams\n} from \"../models\";\n\n/** Class containing WebPubSub operations. */\nexport class WebPubSubImpl implements WebPubSub {\n private readonly client: GeneratedClientContext;\n\n /**\n * Initialize a new instance of the class WebPubSub class.\n * @param client Reference to the service client\n */\n constructor(client: GeneratedClientContext) {\n this.client = client;\n }\n\n /**\n * Generate token for the client to connect Azure Web PubSub service.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param options The options parameters.\n */\n generateClientToken(\n hub: string,\n options?: WebPubSubGenerateClientTokenOptionalParams\n ): Promise<WebPubSubGenerateClientTokenResponse> {\n return this.client.sendOperationRequest(\n { hub, options },\n generateClientTokenOperationSpec\n );\n }\n\n /**\n * Close the connections in the hub.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param options The options parameters.\n */\n closeAllConnections(\n hub: string,\n options?: WebPubSubCloseAllConnectionsOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, options },\n closeAllConnectionsOperationSpec\n );\n }\n\n /**\n * Broadcast content inside request body to all the connected client connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToAll(\n hub: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToAll$binaryOptionalParams\n ): Promise<void>;\n /**\n * Broadcast content inside request body to all the connected client connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToAll(\n hub: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToAll$textOptionalParams\n ): Promise<void>;\n /**\n * Broadcast content inside request body to all the connected client connections.\n * @param args Includes all the parameters for this operation.\n */\n sendToAll(\n ...args:\n | [\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToAll$binaryOptionalParams?\n ]\n | [string, \"text/plain\", string, WebPubSubSendToAll$textOptionalParams?]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[1] === \"application/json\" ||\n args[1] === \"application/octet-stream\"\n ) {\n operationSpec = sendToAll$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n contentType: args[1],\n message: args[2],\n options: args[3]\n };\n options = args[3];\n } else if (args[1] === \"text/plain\") {\n operationSpec = sendToAll$textOperationSpec;\n operationArguments = {\n hub: args[0],\n contentType: args[1],\n message: args[2],\n options: args[3]\n };\n options = args[3];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[1]}\".`\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Check if the connection with the given connectionId exists.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId The connection Id.\n * @param options The options parameters.\n */\n connectionExists(\n hub: string,\n connectionId: string,\n options?: WebPubSubConnectionExistsOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, connectionId, options },\n connectionExistsOperationSpec\n );\n }\n\n /**\n * Close the client connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n closeConnection(\n hub: string,\n connectionId: string,\n options?: WebPubSubCloseConnectionOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, connectionId, options },\n closeConnectionOperationSpec\n );\n }\n\n /**\n * Send content inside request body to the specific connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId The connection Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToConnection(\n hub: string,\n connectionId: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToConnection$binaryOptionalParams\n ): Promise<void>;\n /**\n * Send content inside request body to the specific connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId The connection Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToConnection(\n hub: string,\n connectionId: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToConnection$textOptionalParams\n ): Promise<void>;\n /**\n * Send content inside request body to the specific connection.\n * @param args Includes all the parameters for this operation.\n */\n sendToConnection(\n ...args:\n | [\n string,\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToConnection$binaryOptionalParams?\n ]\n | [\n string,\n string,\n \"text/plain\",\n string,\n WebPubSubSendToConnection$textOptionalParams?\n ]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[2] === \"application/json\" ||\n args[2] === \"application/octet-stream\"\n ) {\n operationSpec = sendToConnection$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n connectionId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4]\n };\n options = args[4];\n } else if (args[2] === \"text/plain\") {\n operationSpec = sendToConnection$textOperationSpec;\n operationArguments = {\n hub: args[0],\n connectionId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4]\n };\n options = args[4];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[2]}\".`\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Check if there are any client connections inside the given group\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param options The options parameters.\n */\n groupExists(\n hub: string,\n group: string,\n options?: WebPubSubGroupExistsOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, options },\n groupExistsOperationSpec\n );\n }\n\n /**\n * Close connections in the specific group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param options The options parameters.\n */\n closeGroupConnections(\n hub: string,\n group: string,\n options?: WebPubSubCloseGroupConnectionsOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, options },\n closeGroupConnectionsOperationSpec\n );\n }\n\n /**\n * Send content inside request body to a group of connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToGroup(\n hub: string,\n group: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToGroup$binaryOptionalParams\n ): Promise<void>;\n /**\n * Send content inside request body to a group of connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToGroup(\n hub: string,\n group: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToGroup$textOptionalParams\n ): Promise<void>;\n /**\n * Send content inside request body to a group of connections.\n * @param args Includes all the parameters for this operation.\n */\n sendToGroup(\n ...args:\n | [\n string,\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToGroup$binaryOptionalParams?\n ]\n | [\n string,\n string,\n \"text/plain\",\n string,\n WebPubSubSendToGroup$textOptionalParams?\n ]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[2] === \"application/json\" ||\n args[2] === \"application/octet-stream\"\n ) {\n operationSpec = sendToGroup$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n group: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4]\n };\n options = args[4];\n } else if (args[2] === \"text/plain\") {\n operationSpec = sendToGroup$textOperationSpec;\n operationArguments = {\n hub: args[0],\n group: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4]\n };\n options = args[4];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[2]}\".`\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Add a connection to the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param connectionId Target connection Id\n * @param options The options parameters.\n */\n addConnectionToGroup(\n hub: string,\n group: string,\n connectionId: string,\n options?: WebPubSubAddConnectionToGroupOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, connectionId, options },\n addConnectionToGroupOperationSpec\n );\n }\n\n /**\n * Remove a connection from the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n removeConnectionFromGroup(\n hub: string,\n group: string,\n connectionId: string,\n options?: WebPubSubRemoveConnectionFromGroupOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, connectionId, options },\n removeConnectionFromGroupOperationSpec\n );\n }\n\n /**\n * Check if there are any client connections connected for the given user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n userExists(\n hub: string,\n userId: string,\n options?: WebPubSubUserExistsOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, userId, options },\n userExistsOperationSpec\n );\n }\n\n /**\n * Close connections for the specific user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId The user Id.\n * @param options The options parameters.\n */\n closeUserConnections(\n hub: string,\n userId: string,\n options?: WebPubSubCloseUserConnectionsOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, userId, options },\n closeUserConnectionsOperationSpec\n );\n }\n\n /**\n * Send content inside request body to the specific user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId The user Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToUser(\n hub: string,\n userId: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToUser$binaryOptionalParams\n ): Promise<void>;\n /**\n * Send content inside request body to the specific user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId The user Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToUser(\n hub: string,\n userId: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToUser$textOptionalParams\n ): Promise<void>;\n /**\n * Send content inside request body to the specific user.\n * @param args Includes all the parameters for this operation.\n */\n sendToUser(\n ...args:\n | [\n string,\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToUser$binaryOptionalParams?\n ]\n | [\n string,\n string,\n \"text/plain\",\n string,\n WebPubSubSendToUser$textOptionalParams?\n ]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[2] === \"application/json\" ||\n args[2] === \"application/octet-stream\"\n ) {\n operationSpec = sendToUser$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n userId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4]\n };\n options = args[4];\n } else if (args[2] === \"text/plain\") {\n operationSpec = sendToUser$textOperationSpec;\n operationArguments = {\n hub: args[0],\n userId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4]\n };\n options = args[4];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[2]}\".`\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Add a user to the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n addUserToGroup(\n hub: string,\n group: string,\n userId: string,\n options?: WebPubSubAddUserToGroupOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, userId, options },\n addUserToGroupOperationSpec\n );\n }\n\n /**\n * Remove a user from the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n removeUserFromGroup(\n hub: string,\n group: string,\n userId: string,\n options?: WebPubSubRemoveUserFromGroupOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, userId, options },\n removeUserFromGroupOperationSpec\n );\n }\n\n /**\n * Remove a user from all groups.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n removeUserFromAllGroups(\n hub: string,\n userId: string,\n options?: WebPubSubRemoveUserFromAllGroupsOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, userId, options },\n removeUserFromAllGroupsOperationSpec\n );\n }\n\n /**\n * Grant permission to the connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param permission The permission: current supported actions are joinLeaveGroup and sendToGroup.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n grantPermission(\n hub: string,\n permission: WebPubSubPermission,\n connectionId: string,\n options?: WebPubSubGrantPermissionOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, permission, connectionId, options },\n grantPermissionOperationSpec\n );\n }\n\n /**\n * Revoke permission for the connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param permission The permission: current supported actions are joinLeaveGroup and sendToGroup.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n revokePermission(\n hub: string,\n permission: WebPubSubPermission,\n connectionId: string,\n options?: WebPubSubRevokePermissionOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, permission, connectionId, options },\n revokePermissionOperationSpec\n );\n }\n\n /**\n * Check if a connection has permission to the specified action.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param permission The permission: current supported actions are joinLeaveGroup and sendToGroup.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n checkPermission(\n hub: string,\n permission: WebPubSubPermission,\n connectionId: string,\n options?: WebPubSubCheckPermissionOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, permission, connectionId, options },\n checkPermissionOperationSpec\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst generateClientTokenOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:generateToken\",\n httpMethod: \"POST\",\n responses: {\n 200: {\n bodyMapper: Mappers.ClientTokenResponse\n },\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubGenerateClientTokenExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.userId,\n Parameters.roles,\n Parameters.expirationTimeInMinutes\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst closeAllConnectionsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:closeConnections\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseAllConnectionsExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excluded,\n Parameters.reason\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst sendToAll$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToAllExceptionHeaders\n }\n },\n requestBody: Parameters.message,\n queryParameters: [Parameters.apiVersion, Parameters.excludedConnections],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.contentType, Parameters.accept1],\n mediaType: \"binary\",\n serializer\n};\nconst sendToAll$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToAllExceptionHeaders\n }\n },\n requestBody: Parameters.message1,\n queryParameters: [Parameters.apiVersion, Parameters.excludedConnections],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"text\",\n serializer\n};\nconst connectionExistsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubConnectionExistsExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst closeConnectionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseConnectionExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.reason],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst sendToConnection$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToConnectionExceptionHeaders\n }\n },\n requestBody: Parameters.message,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.contentType, Parameters.accept1],\n mediaType: \"binary\",\n serializer\n};\nconst sendToConnection$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToConnectionExceptionHeaders\n }\n },\n requestBody: Parameters.message1,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"text\",\n serializer\n};\nconst groupExistsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubGroupExistsExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst closeGroupConnectionsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/:closeConnections\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseGroupConnectionsExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excluded,\n Parameters.reason\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst sendToGroup$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToGroupExceptionHeaders\n }\n },\n requestBody: Parameters.message,\n queryParameters: [Parameters.apiVersion, Parameters.excludedConnections],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n headerParameters: [Parameters.contentType, Parameters.accept1],\n mediaType: \"binary\",\n serializer\n};\nconst sendToGroup$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToGroupExceptionHeaders\n }\n },\n requestBody: Parameters.message1,\n queryParameters: [Parameters.apiVersion, Parameters.excludedConnections],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"text\",\n serializer\n};\nconst addConnectionToGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/connections/{connectionId}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubAddConnectionToGroupExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.group\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst removeConnectionFromGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/connections/{connectionId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRemoveConnectionFromGroupExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.group\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst userExistsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubUserExistsExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst closeUserConnectionsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/:closeConnections\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseUserConnectionsExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excluded,\n Parameters.reason\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst sendToUser$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToUserExceptionHeaders\n }\n },\n requestBody: Parameters.message,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.contentType, Parameters.accept1],\n mediaType: \"binary\",\n serializer\n};\nconst sendToUser$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToUserExceptionHeaders\n }\n },\n requestBody: Parameters.message1,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"text\",\n serializer\n};\nconst addUserToGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/groups/{group}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubAddUserToGroupExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.group,\n Parameters.userId1\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst removeUserFromGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/groups/{group}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRemoveUserFromGroupExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.group,\n Parameters.userId1\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst removeUserFromAllGroupsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/groups\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRemoveUserFromAllGroupsExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst grantPermissionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/permissions/{permission}/connections/{connectionId}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubGrantPermissionExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.targetName],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.permission\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst revokePermissionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/permissions/{permission}/connections/{connectionId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRevokePermissionExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.targetName],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.permission\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst checkPermissionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/permissions/{permission}/connections/{connectionId}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCheckPermissionExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.targetName],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.permission\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport { GeneratedClientOptionalParams } from \"./models\";\n\n/** @internal */\nexport class GeneratedClientContext extends coreClient.ServiceClient {\n endpoint: string;\n apiVersion: string;\n\n /**\n * Initializes a new instance of the GeneratedClientContext class.\n * @param endpoint HTTP or HTTPS endpoint for the Web PubSub service instance.\n * @param options The parameter options\n */\n constructor(endpoint: string, options?: GeneratedClientOptionalParams) {\n if (endpoint === undefined) {\n throw new Error(\"'endpoint' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: GeneratedClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\"\n };\n\n const packageDetails = `azsdk-js-web-pubsub/1.0.1`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix\n },\n baseUri: options.endpoint || \"{Endpoint}\"\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.endpoint = endpoint;\n\n // Assigning values to Constant parameters\n this.apiVersion = options.apiVersion || \"2021-10-01\";\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { HealthApiImpl, WebPubSubImpl } from \"./operations\";\nimport { HealthApi, WebPubSub } from \"./operationsInterfaces\";\nimport { GeneratedClientContext } from \"./generatedClientContext\";\nimport { GeneratedClientOptionalParams } from \"./models\";\n\n/** @internal */\nexport class GeneratedClient extends GeneratedClientContext {\n /**\n * Initializes a new instance of the GeneratedClient class.\n * @param endpoint HTTP or HTTPS endpoint for the Web PubSub service instance.\n * @param options The parameter options\n */\n constructor(endpoint: string, options?: GeneratedClientOptionalParams) {\n super(endpoint, options);\n this.healthApi = new HealthApiImpl(this);\n this.webPubSub = new WebPubSubImpl(this);\n }\n\n healthApi: HealthApi;\n webPubSub: WebPubSub;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { createSpanFunction } from \"@azure/core-tracing\";\n\n/** @internal */\nexport const createSpan = createSpanFunction({\n namespace: \"Microsoft.WebPubSub\",\n packagePrefix: \"Azure.Messaging.WebPubSub\",\n});\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RequestBodyType } from \"@azure/core-rest-pipeline\";\n\nfunction isRequestBody(obj: unknown): obj is RequestBodyType {\n return (\n typeof obj === \"function\" ||\n (typeof obj === \"object\" &&\n obj != null &&\n (obj.constructor.name === \"ArrayBuffer\" ||\n obj.constructor.name === \"Blob\" ||\n ArrayBuffer.isView(obj)))\n );\n}\n\nexport interface TextPlainPayload {\n contentType: \"text/plain\";\n payload: string;\n}\n\nexport interface JsonPayload {\n contentType: \"application/json\";\n payload: string;\n}\n\nexport interface BinaryPayload {\n contentType: \"application/octet-stream\";\n payload: RequestBodyType;\n}\n\nexport type Payload = TextPlainPayload | JsonPayload | BinaryPayload;\n\nexport function getPayloadForMessage(message: unknown, options: Record<string, any>): Payload {\n if (options?.contentType === \"text/plain\") {\n if (typeof message !== \"string\") {\n throw new TypeError(\"Message must be a string.\");\n }\n return { contentType: \"text/plain\", payload: message };\n } else if (isRequestBody(message)) {\n return { contentType: \"application/octet-stream\", payload: message };\n } else {\n return { contentType: \"application/json\", payload: JSON.stringify(message) };\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CommonClientOptions, FullOperationResponse, OperationOptions } from \"@azure/core-client\";\nimport { RestError, RequestBodyType } from \"@azure/core-rest-pipeline\";\nimport { GeneratedClient } from \"./generated/generatedClient\";\nimport { createSpan } from \"./tracing\";\nimport { getPayloadForMessage } from \"./utils\";\nimport { JSONTypes } from \"./hubClient\";\n\n/**\n * Options for constructing a GroupAdmin client.\n */\nexport interface GroupAdminClientOptions extends CommonClientOptions {}\n\n/**\n * Options for adding a connection to a group.\n */\nexport interface GroupAddConnectionOptions extends OperationOptions {}\n\n/**\n * Options for adding a user to a group.\n */\nexport interface GroupAddUserOptions extends OperationOptions {}\n\n/**\n * Options for checking if a user is in a group\n */\nexport interface GroupHasUserOptions extends OperationOptions {}\n\n/**\n * Options for removing a user from a group\n */\nexport interface GroupRemoveUserOptions extends OperationOptions {}\n\n/**\n * Options for removing a connection from a group\n */\nexport interface GroupRemoveConnectionOptions extends OperationOptions {}\n\n/**\n * Options for sending messages to a group.\n */\nexport interface GroupSendToAllOptions extends OperationOptions {\n /**\n * Connection ids to exclude from receiving this message.\n */\n excludedConnections?: string[];\n}\n\n/**\n * Options for sending text messages to a group..\n */\nexport interface GroupSendTextToAllOptions extends OperationOptions {\n /**\n * Connection ids to exclude from receiving this message.\n */\n excludedConnections?: string[];\n contentType: \"text/plain\";\n}\n\n/**\n * Options for closing all connections to a group.\n */\nexport interface GroupCloseAllConnectionsOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\nexport interface WebPubSubGroup {\n /**\n * The name of this group\n */\n readonly groupName: string;\n\n /**\n * The name of the hub this group belongs to\n */\n readonly hubName: string;\n\n /**\n * The Web PubSub API version being used by this client\n */\n readonly apiVersion: string;\n\n /**\n * The Web PubSub endpoint this client is connected to\n */\n readonly endpoint: string;\n\n /**\n * Add a specific connection to this group\n *\n * @param connectionId - The connection id to add to this group\n * @param options - Additional options\n */\n addConnection(connectionId: string, options?: GroupAddConnectionOptions): Promise<void>;\n\n /**\n * Remove a specific connection from this group\n *\n * @param connectionId - The connection id to remove from this group\n * @param options - Additional options\n */\n removeConnection(connectionId: string, options?: GroupRemoveConnectionOptions): Promise<void>;\n\n /**\n * Close all connections to the group\n *\n * @param options - Additional options\n */\n closeAllConnections(options?: GroupCloseAllConnectionsOptions): Promise<void>;\n\n /**\n * Add a user to this group\n *\n * @param username - The user name to add\n * @param options - Additional options\n */\n addUser(username: string, options?: GroupAddUserOptions): Promise<void>;\n\n /**\n * Remove a user from this group\n *\n * @param username - The user name to remove\n * @param options - Additional options\n */\n removeUser(username: string, options?: GroupRemoveUserOptions): Promise<void>;\n\n /**\n * Send a text message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n sendToAll(message: string, options: GroupSendTextToAllOptions): Promise<void>;\n /**\n * Send a json message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n sendToAll(message: JSONTypes, options?: GroupSendToAllOptions): Promise<void>;\n /**\n * Send a binary message to every connection in this group\n *\n * @param message - The binary message to send\n * @param options - Additional options\n */\n sendToAll(message: RequestBodyType, options?: GroupSendToAllOptions): Promise<void>;\n}\n\n/**\n * @hidden\n */\nexport class WebPubSubGroupImpl implements WebPubSubGroup {\n private client!: GeneratedClient;\n\n /**\n * The name of this group\n */\n public readonly groupName: string;\n\n /**\n * The name of the hub this group belongs to\n */\n public readonly hubName: string;\n\n /**\n * The Web PubSub API version being used by this client\n */\n public readonly apiVersion: string = \"2020-10-01\";\n\n /**\n * The Web PubSub endpoint this client is connected to\n */\n public endpoint!: string;\n\n /**\n * @internal\n */\n constructor(client: GeneratedClient, hubName: string, groupName: string) {\n this.client = client;\n this.groupName = groupName;\n this.hubName = hubName;\n }\n /**\n * Add a specific connection to this group\n *\n * @param connectionId - The connection id to add to this group\n * @param options - Additional options\n */\n public async addConnection(\n connectionId: string,\n options: GroupAddConnectionOptions = {}\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"WebPubSubServiceClient-group-addConnection\",\n options\n );\n\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (updatedOptions.onResponse) {\n updatedOptions.onResponse(rawResponse, flatResponse);\n }\n }\n\n try {\n await this.client.webPubSub.addConnectionToGroup(this.hubName, this.groupName, connectionId, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 404) {\n throw new RestError(`Connection id '${connectionId}' doesn't exist`, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n } finally {\n span.end();\n }\n }\n\n /**\n * Remove a specific connection from this group\n *\n * @param connectionId - The connection id to remove from this group\n * @param options - Additional options\n */\n public async removeConnection(\n connectionId: string,\n options: GroupRemoveConnectionOptions = {}\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"WebPubSubServiceClient-group-removeConnection\",\n options\n );\n\n try {\n await this.client.webPubSub.removeConnectionFromGroup(\n this.hubName,\n this.groupName,\n connectionId,\n updatedOptions\n );\n } finally {\n span.end();\n }\n }\n\n /**\n * Close all connections to this group\n *\n * @param options - Additional options\n */\n public async closeAllConnections(options: GroupCloseAllConnectionsOptions = {}): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"WebPubSubServiceClient-group-closeAllConnections\",\n options\n );\n\n try {\n return await this.client.webPubSub.closeGroupConnections(\n this.hubName,\n this.groupName,\n updatedOptions\n );\n } finally {\n span.end();\n }\n }\n /**\n * Add a user to this group\n *\n * @param username - The user name to add\n * @param options - Additional options\n */\n public async addUser(username: string, options: GroupAddUserOptions = {}): Promise<void> {\n const { span, updatedOptions } = createSpan(\"WebPubSubServiceClient-group-addUser\", options);\n\n try {\n await this.client.webPubSub.addUserToGroup(\n this.hubName,\n this.groupName,\n username,\n updatedOptions\n );\n } finally {\n span.end();\n }\n }\n\n /**\n * Remove a user from this group\n *\n * @param username - The user name to remove\n * @param options - Additional options\n */\n public async removeUser(username: string, options: GroupRemoveUserOptions = {}): Promise<void> {\n const { span, updatedOptions } = createSpan(\"WebPubSubServiceClient-group-removeUser\", options);\n\n try {\n await this.client.webPubSub.removeUserFromGroup(\n this.hubName,\n this.groupName,\n username,\n updatedOptions\n );\n } finally {\n span.end();\n }\n }\n\n /**\n * Send a text message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n public async sendToAll(message: string, options: GroupSendTextToAllOptions): Promise<void>;\n /**\n * Send a json message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n public async sendToAll(message: JSONTypes, options?: GroupSendToAllOptions): Promise<void>;\n /**\n * Send a binary message to every connection in this group\n *\n * @param message - The binary message to send\n * @param options - Additional options\n */\n public async sendToAll(message: RequestBodyType, options?: GroupSendToAllOptions): Promise<void>;\n\n public async sendToAll(\n message: JSONTypes | RequestBodyType,\n options: GroupSendToAllOptions | GroupSendTextToAllOptions = {}\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\"WebPubSubServiceClient-group-sendToAll\", options);\n\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n\n try {\n await this.client.webPubSub.sendToGroup(\n this.hubName,\n this.groupName,\n contentType,\n payload as any,\n updatedOptions\n );\n } finally {\n span.end();\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { KeyCredential } from \"@azure/core-auth\";\nimport {\n PipelineResponse,\n PipelineRequest,\n SendRequest,\n PipelinePolicy,\n} from \"@azure/core-rest-pipeline\";\n\nimport jwt from \"jsonwebtoken\";\n\n/**\n * The programmatic identifier of the webPubSubKeyCredentialPolicy.\n */\nexport const webPubSubKeyCredentialPolicyName = \"webPubSubKeyCredentialPolicy\";\n\n/**\n * Create an HTTP pipeline policy to authenticate a request\n * using an `AzureKeyCredential` for Text Analytics\n * @internal\n */\nexport function webPubSubKeyCredentialPolicy(credential: KeyCredential): PipelinePolicy {\n return {\n name: webPubSubKeyCredentialPolicyName,\n sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n const bearerToken = jwt.sign({}, credential.key, {\n audience: request.url,\n expiresIn: \"1h\",\n algorithm: \"HS256\",\n });\n request.headers.set(\"Authorization\", `Bearer ${bearerToken}`);\n return next(request);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { createClientLogger } from \"@azure/logger\";\n\n/**\n * The `@azure/logger` configuration for this package.\n */\nexport const logger = createClientLogger(\"web-pubsub\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AzureKeyCredential } from \"@azure/core-auth\";\nimport { URL } from \"./util/url\";\n\ninterface ParsedConnectionString {\n credential: AzureKeyCredential;\n endpoint: string;\n}\n\nexport function parseConnectionString(conn: string): ParsedConnectionString {\n const parsed: { [id: string]: string } = {};\n\n conn.split(\";\").forEach((i) => {\n const assignmentPos = i.indexOf(\"=\");\n if (assignmentPos === -1) return;\n const key = i.substring(0, assignmentPos).toLowerCase();\n const value = i.substring(assignmentPos + 1);\n parsed[key] = value;\n });\n\n let endpointPart = parsed[\"endpoint\"];\n if (!endpointPart) throw new TypeError(\"connection string missing endpoint\");\n if (!endpointPart.startsWith(\"http\")) {\n endpointPart = `https://${endpointPart}`;\n }\n const key = parsed[\"accesskey\"];\n if (!key) throw new TypeError(\"connection string missing access key\");\n const credential = new AzureKeyCredential(key);\n const port = parsed[\"port\"];\n const url = new URL(endpointPart);\n url.port = port;\n const endpoint = url.toString();\n url.port = \"\";\n\n return { credential, endpoint };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n PipelineResponse,\n PipelineRequest,\n SendRequest,\n PipelinePolicy,\n} from \"@azure/core-rest-pipeline\";\n\nexport const webPubSubReverseProxyPolicyName = \"webPubSubReverseProxyPolicy\";\n\n/**\n * Create an HTTP pipeline policy to use a reverse proxy.\n * This is generally going to be an Azure APIM endpoint.\n * @internal\n */\nexport function webPubSubReverseProxyPolicy(endpoint: string): PipelinePolicy {\n const rpEndpointUrl = new URL(endpoint);\n return {\n name: webPubSubReverseProxyPolicyName,\n sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n const parsedUrl = new URL(request.url);\n parsedUrl.host = rpEndpointUrl.host;\n request.url = parsedUrl.toString();\n return next(request);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CommonClientOptions, FullOperationResponse, OperationOptions } from \"@azure/core-client\";\nimport { RestError, RequestBodyType } from \"@azure/core-rest-pipeline\";\nimport { GeneratedClient } from \"./generated/generatedClient\";\nimport { WebPubSubGroup, WebPubSubGroupImpl } from \"./groupClient\";\nimport { AzureKeyCredential, TokenCredential, isTokenCredential } from \"@azure/core-auth\";\nimport { webPubSubKeyCredentialPolicy } from \"./webPubSubCredentialPolicy\";\nimport { createSpan } from \"./tracing\";\nimport { logger } from \"./logger\";\nimport { parseConnectionString } from \"./parseConnectionString\";\nimport jwt from \"jsonwebtoken\";\nimport { getPayloadForMessage } from \"./utils\";\nimport { GeneratedClientOptionalParams } from \"./generated\";\nimport { webPubSubReverseProxyPolicy } from \"./reverseProxyPolicy\";\n\n/**\n * Options for closing a connection to a hub.\n */\nexport interface HubCloseConnectionOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\n/**\n * Options for closing all connections to a hub.\n */\nexport interface HubCloseAllConnectionsOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\n/**\n * Options for closing all of a user's connections to a hub.\n */\nexport interface HubCloseUserConnectionsOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\n/**\n * Options for sending messages to hubs.\n */\nexport interface HubSendToAllOptions extends OperationOptions {\n /**\n * Connection ids to exclude from receiving this message.\n */\n excludedConnections?: string[];\n}\n\n/**\n * Options for sending text messages to hubs.\n */\nexport interface HubSendTextToAllOptions extends HubSendToAllOptions {\n contentType: \"text/plain\";\n}\n\n/**\n * Types which can be serialized and sent as JSON.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type JSONTypes = string | number | boolean | object;\n\n/**\n * Options for constructing a HubAdmin client.\n */\nexport interface WebPubSubServiceClientOptions extends CommonClientOptions {\n /**\n * Reverse proxy endpoint (for example, your Azure API management endpoint)\n */\n reverseProxyEndpoint?: string;\n}\n\n/**\n * Options for checking if a connection exists.\n */\nexport interface HasConnectionOptions extends OperationOptions {}\n\n/**\n * Options for checking if a group exists.\n */\nexport interface HubHasGroupOptions extends OperationOptions {}\n\n/**\n * Options for checking if a user exists.\n */\nexport interface HubHasUserOptions extends OperationOptions {}\n\n/**\n * Options for removing a user from all groups.\n */\nexport interface HubRemoveUserFromAllGroupsOptions extends HubCloseConnectionOptions {}\n\n/**\n * Options for sending a message to a specific connection.\n */\nexport interface HubSendToConnectionOptions extends OperationOptions {}\n\n/**\n * Options for sending a text message to a connection.\n */\nexport interface HubSendTextToConnectionOptions extends HubSendToConnectionOptions {\n contentType: \"text/plain\";\n}\n\n/**\n * Options for sending a message to a user.\n */\nexport interface HubSendToUserOptions extends OperationOptions {}\n\n/**\n * Options for sending a text message to a user.\n */\nexport interface HubSendTextToUserOptions extends HubSendToUserOptions {\n contentType: \"text/plain\";\n}\n\nexport type Permission = \"joinLeaveGroup\" | \"sendToGroup\";\n\n/**\n * Options for grant permissions to a connection\n */\nexport interface HubGrantPermissionOptions extends OperationOptions {\n /**\n * The meaning of the target depends on the specific permission.\n * For joinLeaveGroup and sendToGroup, targetName is a required parameter standing for the group name.\n */\n targetName?: string;\n}\n\n/**\n * Options for revoke permissions from a connection\n */\nexport interface HubRevokePermissionOptions extends OperationOptions {\n /**\n * The meaning of the target depends on the specific permission.\n * For joinLeaveGroup and sendToGroup, targetName is a required parameter standing for the group name.\n */\n targetName?: string;\n}\n\n/**\n * Options for checking if a connection has the specified permission\n */\nexport interface HubHasPermissionOptions extends OperationOptions {\n /**\n * The meaning of the target depends on the specific permission.\n * For joinLeaveGroup and sendToGroup, targetName is a required parameter standing for the group name.\n */\n targetName?: string;\n}\n\n/**\n * Options for generating a token to connect a client to the Azure Web Pubsub service.\n */\nexport interface GenerateClientTokenOptions extends OperationOptions {\n /**\n * The userId for the client.\n */\n userId?: string;\n\n /**\n * The roles that the connection with the generated token will have.\n * Roles give the client initial permissions to leave, join, or publish to groups when using PubSub subprotocol\n * * `webpubsub.joinLeaveGroup`: the client can join or leave any group\n * * `webpubsub.sendToGroup`: the client can send messages to any group\n * * `webpubsub.joinLeaveGroup.<group>`: the client can join or leave group `<group>`\n * * `webpubsub.sendToGroup.<group>`: the client can send messages to group `<group>`\n *\n * {@link https://azure.github.io/azure-webpubsub/references/pubsub-websocket-subprotocol#permissions}\n */\n roles?: string[];\n\n /**\n * Minutes until the token expires.\n */\n expirationTimeInMinutes?: number;\n}\n\n/**\n * A response containing the client token.\n */\nexport interface ClientTokenResponse {\n /**\n * The client token.\n */\n token: string;\n /**\n * The URL client connects to\n */\n baseUrl: string;\n /**\n * The URL client connects to with access_token query string\n */\n url: string;\n}\n\n/**\n * Client for connecting to a Web PubSub hub\n */\nexport class WebPubSubServiceClient {\n private readonly client: GeneratedClient;\n private credential!: AzureKeyCredential | TokenCredential;\n private readonly clientOptions?: WebPubSubServiceClientOptions;\n\n /**\n * The name of the hub this client is connected to\n */\n public readonly hubName: string;\n /**\n * The Web PubSub API version being used by this client\n */\n public readonly apiVersion: string = \"2021-10-01\";\n\n /**\n * The Web PubSub endpoint this client is connected to\n */\n public endpoint!: string;\n\n /**\n * Creates an instance of a WebPubSubServiceClient for sending messages and managing groups, connections, and users.\n *\n * Example usage:\n * ```ts\n * import { WebPubSubServiceClient } from \"@azure/web-pubsub\";\n * const connectionString = process.env['WEB_PUBSUB_CONNECTION_STRING'];\n * const client = new WebPubSubServiceClient(connectionString, 'chat');\n * ```\n *\n * @param connectionString - The connection string\n * @param hubName - The name of the hub to connect to. If omitted, '_default' is used.\n * @param options - Options to configure the http pipeline\n */\n constructor(connectionString: string, hubName: string, options?: WebPubSubServiceClientOptions);\n\n /**\n * Creates an instance of a WebPubSubServiceClient for sending messages and managing groups, connections, and users.\n *\n * Example usage:\n * ```ts\n * import { WebPubSubServiceClient, AzureKeyCredential } from \"@azure/web-pubsub\";\n * const cred = new AzureKeyCredential(\"<your web pubsub api key>\");\n * const endpoint = \"https://xxxx.webpubsubdev.azure.com\"\n * const client = new WebPubSubServiceClient(endpoint, cred, 'chat');\n * ```\n *\n * @param endpoint - The endpoint to connect to\n * @param credential - An AzureKeyCredential holding your service key\n * @param hubName - The name of the hub to connect to.\n * @param options - Options to configure the http pipeline\n */\n constructor(\n endpoint: string,\n credential: AzureKeyCredential | TokenCredential,\n hubName: string,\n options?: WebPubSubServiceClientOptions\n );\n constructor(\n endpointOrConnectionString: string,\n credsOrHubName?: AzureKeyCredential | TokenCredential | string,\n hubNameOrOpts?: string | WebPubSubServiceClientOptions,\n opts?: WebPubSubServiceClientOptions\n ) {\n // unpack constructor arguments\n if (typeof credsOrHubName === \"object\") {\n this.endpoint = endpointOrConnectionString;\n this.hubName = hubNameOrOpts as string;\n this.clientOptions = opts;\n this.credential = credsOrHubName;\n } else {\n const parsedCs = parseConnectionString(endpointOrConnectionString);\n this.endpoint = parsedCs.endpoint;\n this.credential = parsedCs.credential;\n this.hubName = credsOrHubName as string;\n this.clientOptions = hubNameOrOpts as WebPubSubServiceClientOptions;\n }\n\n const internalPipelineOptions: GeneratedClientOptionalParams = {\n ...this.clientOptions,\n ...{\n apiVersion: this.apiVersion,\n loggingOptions: {\n logger: logger.info,\n },\n },\n ...(isTokenCredential(this.credential)\n ? {\n credential: this.credential,\n credentialScopes: [\"https://webpubsub.azure.com/.default\"],\n }\n : {}),\n };\n\n this.client = new GeneratedClient(this.endpoint, internalPipelineOptions);\n\n if (!isTokenCredential(this.credential)) {\n this.client.pipeline.addPolicy(webPubSubKeyCredentialPolicy(this.credential));\n }\n\n if (this.clientOptions?.reverseProxyEndpoint) {\n this.client.pipeline.addPolicy(\n webPubSubReverseProxyPolicy(this.clientOptions?.reverseProxyEndpoint)\n );\n }\n }\n\n /**\n * Get a client for a group\n * @param groupName - The name of the group to connect to.\n */\n public group(groupName: string): WebPubSubGroup {\n return new WebPubSubGroupImpl(this.client, this.hubName, groupName);\n }\n\n /**\n * Broadcast a text message to all connections on this hub.\n *\n * @param message - The text message to send\n * @param options - Additional options\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public async sendToAll(message: string, options: HubSendTextToAllOptions): Promise<void>;\n /**\n * Broadcast a JSON message to all connections on this hub.\n *\n * @param message - The JSON message to send\n * @param options - Additional options\n */\n public async sendToAll(message: JSONTypes, options?: HubSendToAllOptions): Promise<void>;\n /**\n * Broadcast a binary message to all connections on this hub.\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n public async sendToAll(message: RequestBodyType, options?: HubSendToAllOptions): Promise<void>;\n\n public async sendToAll(\n message: RequestBodyType | JSONTypes,\n options: HubSendToAllOptions | HubSendTextToAllOptions = {}\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\"WebPubSubServiceClient-hub-sendToAll\", options);\n\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n\n try {\n return await this.client.webPubSub.sendToAll(\n this.hubName,\n contentType,\n payload as any,\n updatedOptions\n );\n } finally {\n span.end();\n }\n }\n\n /**\n * Send a text message to a specific user\n *\n * @param username - User name to send to\n * @param message - The text message to send\n * @param options - Additional options\n */\n public async sendToUser(\n username: string,\n message: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: HubSendTextToUserOptions\n ): Promise<void>;\n\n /**\n * Send a JSON message to a specific user\n *\n * @param username - User name to send to\n * @param message - The josn message to send\n * @param options - Additional options\n */\n public async sendToUser(\n username: string,\n message: JSONTypes,\n options?: HubSendToUserOptions\n ): Promise<void>;\n\n /**\n * Send a binary message to a specific user\n *\n * @param username - The user name to send to\n * @param message - The binary message to send\n * @param options - Additional options\n */\n public async sendToUser(\n username: string,\n message: RequestBodyType,\n options?: HubSendToUserOptions | HubSendTextToUserOptions\n ): Promise<void>;\n public async sendToUser(\n username: string,\n message: RequestBodyType | JSONTypes,\n options: HubSendToUserOptions = {}\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\"WebPubSubServiceClient-hub-sendToUser\", options);\n\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n try {\n return await this.client.webPubSub.sendToUser(\n this.hubName,\n username,\n contentType,\n payload as any,\n updatedOptions\n );\n } finally {\n span.end();\n }\n }\n\n /**\n * Send a text message to a specific connection\n *\n * @param connectionId - Connection id to send to\n * @param message - The text message\n * @param options - Additional options\n */\n public async sendToConnection(\n connectionId: string,\n message: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: HubSendTextToConnectionOptions\n ): Promise<void>;\n\n /**\n * Send a binary message to a specific connection\n *\n * @param connectionId - Connection id to send to\n * @param message - The JSON message\n * @param options - Additional options\n */\n public async sendToConnection(\n connectionId: string,\n message: JSONTypes,\n options?: HubSendToConnectionOptions\n ): Promise<void>;\n\n /**\n * Send a binary message to a specific connection\n *\n * @param connectionId - Connection id to send to\n * @param message - The binary message\n * @param options - Additional options\n */\n public async sendToConnection(\n connectionId: string,\n message: RequestBodyType,\n options?: HubSendToConnectionOptions | HubSendTextToConnectionOptions\n ): Promise<void>;\n public async sendToConnection(\n connectionId: string,\n message: RequestBodyType | JSONTypes,\n options: HubSendToConnectionOptions = {}\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"WebPubSubServiceClient-hub-sendToConnection\",\n options\n );\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n\n try {\n return await this.client.webPubSub.sendToConnection(\n this.hubName,\n connectionId,\n contentType,\n payload as any,\n updatedOptions\n );\n } finally {\n span.end();\n }\n }\n\n /**\n * Check if a specific connection is connected to this hub\n *\n * @param connectionId - Connection id to check\n * @param options - Additional options\n */\n public async connectionExists(\n connectionId: string,\n options: HasConnectionOptions = {}\n ): Promise<boolean> {\n const { span, updatedOptions } = createSpan(\n \"WebPubSubServiceClient-hub-hasConnection\",\n options\n );\n\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (updatedOptions.onResponse) {\n updatedOptions.onResponse(rawResponse, flatResponse);\n }\n }\n\n try {\n await this.client.webPubSub.connectionExists(this.hubName, connectionId, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n // this is sad - wish this was handled by autorest.\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n } finally {\n span.end();\n }\n }\n\n /**\n * Close a specific connection to this hub\n *\n * @param connectionId - Connection id to close\n * @param options - Additional options\n */\n public async closeConnection(\n connectionId: string,\n options: HubCloseConnectionOptions = {}\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"WebPubSubServiceClient-hub-closeConnection\",\n options\n );\n\n try {\n return await this.client.webPubSub.closeConnection(\n this.hubName,\n connectionId,\n updatedOptions\n );\n } finally {\n span.end();\n }\n }\n\n /**\n * Close all connections to this hub\n *\n * @param options - Additional options\n */\n public async closeAllConnections(options: HubCloseAllConnectionsOptions = {}): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"WebPubSubServiceClient-hub-closeAllConnections\",\n options\n );\n\n try {\n return await this.client.webPubSub.closeAllConnections(this.hubName, updatedOptions);\n } finally {\n span.end();\n }\n }\n\n /**\n * Close all connections with the given user id\n *\n * @param user - User id to close\n * @param options - Additional options\n */\n public async closeUserConnections(\n userId: string,\n options: HubCloseUserConnectionsOptions = {}\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"WebPubSubServiceClient-hub-closeUserConnections\",\n options\n );\n\n try {\n return await this.client.webPubSub.closeUserConnections(this.hubName, userId, updatedOptions);\n } finally {\n span.end();\n }\n }\n\n /**\n * Remove a specific user from all groups they are joined to\n * @param userId - The user id to remove from all groups\n * @param options - Additional options\n */\n public async removeUserFromAllGroups(\n userId: string,\n options: HubCloseConnectionOptions = {}\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"WebPubSubServiceClient-hub-removeUserFromAllGroups\",\n options\n );\n\n try {\n await this.client.webPubSub.removeUserFromAllGroups(this.hubName, userId, updatedOptions);\n } finally {\n span.end();\n }\n }\n\n /**\n * Check if a particular group exists (i.e. has active connections).\n *\n * @param groupName - The group name to check for\n * @param options - Additional options\n */\n public async groupExists(groupName: string, options: HubHasGroupOptions = {}): Promise<boolean> {\n const { span, updatedOptions } = createSpan(\"WebPubSubServiceClient-hub-hasGroup\", options);\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (updatedOptions.onResponse) {\n updatedOptions.onResponse(rawResponse, flatResponse);\n }\n }\n\n try {\n await this.client.webPubSub.groupExists(this.hubName, groupName, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n } finally {\n span.end();\n }\n }\n\n /**\n * Check if a particular user is connected to this hub.\n *\n * @param username - The user name to check for\n * @param options - Additional options\n */\n public async userExists(username: string, options: HubHasUserOptions = {}): Promise<boolean> {\n const { span, updatedOptions } = createSpan(\"WebPubSubServiceClient-hub-hasUser\", options);\n\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (updatedOptions.onResponse) {\n updatedOptions.onResponse(rawResponse, flatResponse);\n }\n }\n\n try {\n await this.client.webPubSub.userExists(this.hubName, username, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n // this is sad - wish this was handled by autorest.\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n } finally {\n span.end();\n }\n }\n\n /**\n * Grant permissions to a connection\n *\n * @param connectionId - The connection id to grant permissions to\n * @param Permission - The permission to grant\n * @param options - Additional options\n */\n public async grantPermission(\n connectionId: string,\n permission: Permission,\n options: HubGrantPermissionOptions = {}\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"WebPubSubServiceClient-hub-grantPermission\",\n options\n );\n\n try {\n return await this.client.webPubSub.grantPermission(\n this.hubName,\n permission,\n connectionId,\n updatedOptions\n );\n } finally {\n span.end();\n }\n }\n\n /**\n * Revoke permissions from a connection\n *\n * @param connectionId - The connection id to revoke permissions from\n * @param Permission - The permission to revoke\n * @param options - Additional options\n */\n public async revokePermission(\n connectionId: string,\n permission: Permission,\n options: HubRevokePermissionOptions = {}\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"WebPubSubServiceClient-hub-revokePermission\",\n options\n );\n\n try {\n return await this.client.webPubSub.revokePermission(\n this.hubName,\n permission,\n connectionId,\n updatedOptions\n );\n } finally {\n span.end();\n }\n }\n\n /**\n * Check if the connection has the specified permission\n *\n * @param connectionId - The connection id to check permission\n * @param Permission - The permission to check\n * @param options - Additional options\n */\n public async hasPermission(\n connectionId: string,\n permission: Permission,\n options: HubHasPermissionOptions = {}\n ): Promise<boolean> {\n const { span, updatedOptions } = createSpan(\n \"WebPubSubServiceClient-hub-hasPermission\",\n options\n );\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (updatedOptions.onResponse) {\n updatedOptions.onResponse(rawResponse, flatResponse);\n }\n }\n\n try {\n await this.client.webPubSub.checkPermission(this.hubName, permission, connectionId, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n // this is sad - wish this was handled by autorest.\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n } finally {\n span.end();\n }\n }\n\n /**\n * Generate a token for a client to connect to the Azure Web PubSub service.\n *\n * @param options - Additional options\n */\n public async getClientAccessToken(\n options: GenerateClientTokenOptions = {}\n ): Promise<ClientTokenResponse> {\n const { span, updatedOptions } = createSpan(\n \"WebPubSubServiceClient-hub-generateClientToken\",\n options\n );\n\n try {\n const endpoint = this.endpoint.endsWith(\"/\") ? this.endpoint : this.endpoint + \"/\";\n const clientEndpoint = endpoint.replace(/(http)(s?:\\/\\/)/gi, \"ws$2\");\n const baseUrl = `${clientEndpoint}client/hubs/${this.hubName}`;\n\n let token: string;\n if (isTokenCredential(this.credential)) {\n const response = await this.client.webPubSub.generateClientToken(\n this.hubName,\n updatedOptions\n );\n token = response.token!;\n } else {\n const key = this.credential.key;\n const audience = `${endpoint}client/hubs/${this.hubName}`;\n const payload = { role: options?.roles };\n const signOptions: jwt.SignOptions = {\n audience: audience,\n expiresIn:\n options?.expirationTimeInMinutes === undefined\n ? \"1h\"\n : `${options.expirationTimeInMinutes}m`,\n algorithm: \"HS256\",\n };\n if (options?.userId) {\n signOptions.subject = options?.userId;\n }\n token = jwt.sign(payload, key, signOptions);\n }\n\n return {\n token,\n baseUrl,\n url: `${baseUrl}?access_token=${token}`,\n };\n } finally {\n span.end();\n }\n }\n}\n"],"names":["serializer","coreClient","Parameters.apiVersion","Parameters.endpoint","Mappers.ClientTokenResponse","Mappers.ErrorDetail","Mappers.WebPubSubGenerateClientTokenExceptionHeaders","Parameters.userId","Parameters.roles","Parameters.expirationTimeInMinutes","Parameters.hub","Parameters.accept","Mappers.WebPubSubCloseAllConnectionsExceptionHeaders","Parameters.excluded","Parameters.reason","Mappers.WebPubSubSendToAllExceptionHeaders","Parameters.message","Parameters.excludedConnections","Parameters.contentType","Parameters.accept1","Parameters.message1","Parameters.contentType1","Parameters.accept2","Mappers.WebPubSubConnectionExistsExceptionHeaders","Parameters.connectionId","Mappers.WebPubSubCloseConnectionExceptionHeaders","Mappers.WebPubSubSendToConnectionExceptionHeaders","Mappers.WebPubSubGroupExistsExceptionHeaders","Parameters.group","Mappers.WebPubSubCloseGroupConnectionsExceptionHeaders","Mappers.WebPubSubSendToGroupExceptionHeaders","Mappers.WebPubSubAddConnectionToGroupExceptionHeaders","Mappers.WebPubSubRemoveConnectionFromGroupExceptionHeaders","Mappers.WebPubSubUserExistsExceptionHeaders","Parameters.userId1","Mappers.WebPubSubCloseUserConnectionsExceptionHeaders","Mappers.WebPubSubSendToUserExceptionHeaders","Mappers.WebPubSubAddUserToGroupExceptionHeaders","Mappers.WebPubSubRemoveUserFromGroupExceptionHeaders","Mappers.WebPubSubRemoveUserFromAllGroupsExceptionHeaders","Mappers.WebPubSubGrantPermissionExceptionHeaders","Parameters.targetName","Parameters.permission","Mappers.WebPubSubRevokePermissionExceptionHeaders","Mappers.WebPubSubCheckPermissionExceptionHeaders","createSpanFunction","RestError","jwt","createClientLogger","AzureKeyCredential","url","URL","isTokenCredential"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/generated/models/mappers.ts","../src/generated/models/parameters.ts","../src/generated/operations/healthApi.ts","../src/generated/operations/webPubSub.ts","../src/generated/generatedClientContext.ts","../src/generated/generatedClient.ts","../src/tracing.ts","../src/utils.ts","../src/groupClient.ts","../src/webPubSubCredentialPolicy.ts","../src/logger.ts","../src/parseConnectionString.ts","../src/reverseProxyPolicy.ts","../src/hubClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\nexport const ClientTokenResponse: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ClientTokenResponse\",\n modelProperties: {\n token: {\n serializedName: \"token\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ErrorDetail: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ErrorDetail\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n type: {\n name: \"String\"\n }\n },\n message: {\n serializedName: \"message\",\n type: {\n name: \"String\"\n }\n },\n target: {\n serializedName: \"target\",\n type: {\n name: \"String\"\n }\n },\n details: {\n serializedName: \"details\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ErrorDetail\"\n }\n }\n }\n },\n inner: {\n serializedName: \"inner\",\n type: {\n name: \"Composite\",\n className: \"InnerError\"\n }\n }\n }\n }\n};\n\nexport const InnerError: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"InnerError\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n type: {\n name: \"String\"\n }\n },\n inner: {\n serializedName: \"inner\",\n type: {\n name: \"Composite\",\n className: \"InnerError\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubGenerateClientTokenExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubGenerateClientTokenExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubCloseAllConnectionsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseAllConnectionsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubSendToAllExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToAllExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubConnectionExistsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubConnectionExistsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubCloseConnectionExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseConnectionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubSendToConnectionExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToConnectionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubGroupExistsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubGroupExistsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubCloseGroupConnectionsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseGroupConnectionsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubSendToGroupExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubAddConnectionToGroupExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubAddConnectionToGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubRemoveConnectionFromGroupExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveConnectionFromGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubUserExistsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubUserExistsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubCloseUserConnectionsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCloseUserConnectionsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubSendToUserExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubSendToUserExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubAddUserToGroupExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubAddUserToGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubRemoveUserFromGroupExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveUserFromGroupExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubRemoveUserFromAllGroupsExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRemoveUserFromAllGroupsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubGrantPermissionExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubGrantPermissionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubRevokePermissionExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubRevokePermissionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const WebPubSubCheckPermissionExceptionHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"WebPubSubCheckPermissionExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport {\n OperationURLParameter,\n OperationQueryParameter,\n OperationParameter\n} from \"@azure/core-client\";\n\nexport const endpoint: OperationURLParameter = {\n parameterPath: \"endpoint\",\n mapper: {\n serializedName: \"Endpoint\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n skipEncoding: true\n};\n\nexport const apiVersion: OperationQueryParameter = {\n parameterPath: \"apiVersion\",\n mapper: {\n defaultValue: \"2021-10-01\",\n isConstant: true,\n serializedName: \"api-version\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const accept: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json, text/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const hub: OperationURLParameter = {\n parameterPath: \"hub\",\n mapper: {\n constraints: {\n Pattern: new RegExp(\"^[A-Za-z][A-Za-z0-9_`,.[\\\\]]{0,127}$\")\n },\n serializedName: \"hub\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const userId: OperationQueryParameter = {\n parameterPath: [\"options\", \"userId\"],\n mapper: {\n serializedName: \"userId\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const roles: OperationQueryParameter = {\n parameterPath: [\"options\", \"roles\"],\n mapper: {\n serializedName: \"role\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n collectionFormat: \"Multi\"\n};\n\nexport const expirationTimeInMinutes: OperationQueryParameter = {\n parameterPath: [\"options\", \"expirationTimeInMinutes\"],\n mapper: {\n defaultValue: 60,\n serializedName: \"minutesToExpire\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const excluded: OperationQueryParameter = {\n parameterPath: [\"options\", \"excluded\"],\n mapper: {\n serializedName: \"excluded\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n collectionFormat: \"Multi\"\n};\n\nexport const reason: OperationQueryParameter = {\n parameterPath: [\"options\", \"reason\"],\n mapper: {\n serializedName: \"reason\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentType: OperationParameter = {\n parameterPath: \"contentType\",\n mapper: {\n serializedName: \"Content-Type\",\n required: true,\n type: {\n name: \"Enum\",\n allowedValues: [\"application/json\", \"application/octet-stream\"]\n }\n }\n};\n\nexport const message: OperationParameter = {\n parameterPath: \"message\",\n mapper: {\n serializedName: \"message\",\n required: true,\n type: {\n name: \"Stream\"\n }\n }\n};\n\nexport const accept1: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json, text/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentType1: OperationParameter = {\n parameterPath: \"contentType\",\n mapper: {\n defaultValue: \"text/plain\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const message1: OperationParameter = {\n parameterPath: \"message\",\n mapper: {\n serializedName: \"message\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const accept2: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json, text/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const excludedConnections: OperationQueryParameter = {\n parameterPath: [\"options\", \"excludedConnections\"],\n mapper: {\n serializedName: \"excluded\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n collectionFormat: \"Multi\"\n};\n\nexport const connectionId: OperationURLParameter = {\n parameterPath: \"connectionId\",\n mapper: {\n constraints: {\n MinLength: 1\n },\n serializedName: \"connectionId\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const group: OperationURLParameter = {\n parameterPath: \"group\",\n mapper: {\n constraints: {\n MaxLength: 1024,\n MinLength: 1\n },\n serializedName: \"group\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const userId1: OperationURLParameter = {\n parameterPath: \"userId\",\n mapper: {\n constraints: {\n MinLength: 1\n },\n serializedName: \"userId\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const permission: OperationURLParameter = {\n parameterPath: \"permission\",\n mapper: {\n serializedName: \"permission\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const targetName: OperationQueryParameter = {\n parameterPath: [\"options\", \"targetName\"],\n mapper: {\n serializedName: \"targetName\",\n type: {\n name: \"String\"\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { HealthApi } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { GeneratedClientContext } from \"../generatedClientContext\";\nimport { HealthApiGetServiceStatusOptionalParams } from \"../models\";\n\n/** Class containing HealthApi operations. */\nexport class HealthApiImpl implements HealthApi {\n private readonly client: GeneratedClientContext;\n\n /**\n * Initialize a new instance of the class HealthApi class.\n * @param client Reference to the service client\n */\n constructor(client: GeneratedClientContext) {\n this.client = client;\n }\n\n /**\n * Get service health status.\n * @param options The options parameters.\n */\n getServiceStatus(\n options?: HealthApiGetServiceStatusOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { options },\n getServiceStatusOperationSpec\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst getServiceStatusOperationSpec: coreClient.OperationSpec = {\n path: \"/api/health\",\n httpMethod: \"HEAD\",\n responses: { 200: {}, default: {} },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n serializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { WebPubSub } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as coreRestPipeline from \"@azure/core-rest-pipeline\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { GeneratedClientContext } from \"../generatedClientContext\";\nimport {\n WebPubSubGenerateClientTokenOptionalParams,\n WebPubSubGenerateClientTokenResponse,\n WebPubSubCloseAllConnectionsOptionalParams,\n ContentType,\n WebPubSubSendToAll$binaryOptionalParams,\n WebPubSubSendToAll$textOptionalParams,\n WebPubSubConnectionExistsOptionalParams,\n WebPubSubCloseConnectionOptionalParams,\n WebPubSubSendToConnection$binaryOptionalParams,\n WebPubSubSendToConnection$textOptionalParams,\n WebPubSubGroupExistsOptionalParams,\n WebPubSubCloseGroupConnectionsOptionalParams,\n WebPubSubSendToGroup$binaryOptionalParams,\n WebPubSubSendToGroup$textOptionalParams,\n WebPubSubAddConnectionToGroupOptionalParams,\n WebPubSubRemoveConnectionFromGroupOptionalParams,\n WebPubSubUserExistsOptionalParams,\n WebPubSubCloseUserConnectionsOptionalParams,\n WebPubSubSendToUser$binaryOptionalParams,\n WebPubSubSendToUser$textOptionalParams,\n WebPubSubAddUserToGroupOptionalParams,\n WebPubSubRemoveUserFromGroupOptionalParams,\n WebPubSubRemoveUserFromAllGroupsOptionalParams,\n WebPubSubPermission,\n WebPubSubGrantPermissionOptionalParams,\n WebPubSubRevokePermissionOptionalParams,\n WebPubSubCheckPermissionOptionalParams\n} from \"../models\";\n\n/** Class containing WebPubSub operations. */\nexport class WebPubSubImpl implements WebPubSub {\n private readonly client: GeneratedClientContext;\n\n /**\n * Initialize a new instance of the class WebPubSub class.\n * @param client Reference to the service client\n */\n constructor(client: GeneratedClientContext) {\n this.client = client;\n }\n\n /**\n * Generate token for the client to connect Azure Web PubSub service.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param options The options parameters.\n */\n generateClientToken(\n hub: string,\n options?: WebPubSubGenerateClientTokenOptionalParams\n ): Promise<WebPubSubGenerateClientTokenResponse> {\n return this.client.sendOperationRequest(\n { hub, options },\n generateClientTokenOperationSpec\n );\n }\n\n /**\n * Close the connections in the hub.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param options The options parameters.\n */\n closeAllConnections(\n hub: string,\n options?: WebPubSubCloseAllConnectionsOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, options },\n closeAllConnectionsOperationSpec\n );\n }\n\n /**\n * Broadcast content inside request body to all the connected client connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToAll(\n hub: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToAll$binaryOptionalParams\n ): Promise<void>;\n /**\n * Broadcast content inside request body to all the connected client connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToAll(\n hub: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToAll$textOptionalParams\n ): Promise<void>;\n /**\n * Broadcast content inside request body to all the connected client connections.\n * @param args Includes all the parameters for this operation.\n */\n sendToAll(\n ...args:\n | [\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToAll$binaryOptionalParams?\n ]\n | [string, \"text/plain\", string, WebPubSubSendToAll$textOptionalParams?]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[1] === \"application/json\" ||\n args[1] === \"application/octet-stream\"\n ) {\n operationSpec = sendToAll$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n contentType: args[1],\n message: args[2],\n options: args[3]\n };\n options = args[3];\n } else if (args[1] === \"text/plain\") {\n operationSpec = sendToAll$textOperationSpec;\n operationArguments = {\n hub: args[0],\n contentType: args[1],\n message: args[2],\n options: args[3]\n };\n options = args[3];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[1]}\".`\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Check if the connection with the given connectionId exists.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId The connection Id.\n * @param options The options parameters.\n */\n connectionExists(\n hub: string,\n connectionId: string,\n options?: WebPubSubConnectionExistsOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, connectionId, options },\n connectionExistsOperationSpec\n );\n }\n\n /**\n * Close the client connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n closeConnection(\n hub: string,\n connectionId: string,\n options?: WebPubSubCloseConnectionOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, connectionId, options },\n closeConnectionOperationSpec\n );\n }\n\n /**\n * Send content inside request body to the specific connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId The connection Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToConnection(\n hub: string,\n connectionId: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToConnection$binaryOptionalParams\n ): Promise<void>;\n /**\n * Send content inside request body to the specific connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param connectionId The connection Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToConnection(\n hub: string,\n connectionId: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToConnection$textOptionalParams\n ): Promise<void>;\n /**\n * Send content inside request body to the specific connection.\n * @param args Includes all the parameters for this operation.\n */\n sendToConnection(\n ...args:\n | [\n string,\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToConnection$binaryOptionalParams?\n ]\n | [\n string,\n string,\n \"text/plain\",\n string,\n WebPubSubSendToConnection$textOptionalParams?\n ]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[2] === \"application/json\" ||\n args[2] === \"application/octet-stream\"\n ) {\n operationSpec = sendToConnection$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n connectionId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4]\n };\n options = args[4];\n } else if (args[2] === \"text/plain\") {\n operationSpec = sendToConnection$textOperationSpec;\n operationArguments = {\n hub: args[0],\n connectionId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4]\n };\n options = args[4];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[2]}\".`\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Check if there are any client connections inside the given group\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param options The options parameters.\n */\n groupExists(\n hub: string,\n group: string,\n options?: WebPubSubGroupExistsOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, options },\n groupExistsOperationSpec\n );\n }\n\n /**\n * Close connections in the specific group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param options The options parameters.\n */\n closeGroupConnections(\n hub: string,\n group: string,\n options?: WebPubSubCloseGroupConnectionsOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, options },\n closeGroupConnectionsOperationSpec\n );\n }\n\n /**\n * Send content inside request body to a group of connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToGroup(\n hub: string,\n group: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToGroup$binaryOptionalParams\n ): Promise<void>;\n /**\n * Send content inside request body to a group of connections.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToGroup(\n hub: string,\n group: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToGroup$textOptionalParams\n ): Promise<void>;\n /**\n * Send content inside request body to a group of connections.\n * @param args Includes all the parameters for this operation.\n */\n sendToGroup(\n ...args:\n | [\n string,\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToGroup$binaryOptionalParams?\n ]\n | [\n string,\n string,\n \"text/plain\",\n string,\n WebPubSubSendToGroup$textOptionalParams?\n ]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[2] === \"application/json\" ||\n args[2] === \"application/octet-stream\"\n ) {\n operationSpec = sendToGroup$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n group: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4]\n };\n options = args[4];\n } else if (args[2] === \"text/plain\") {\n operationSpec = sendToGroup$textOperationSpec;\n operationArguments = {\n hub: args[0],\n group: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4]\n };\n options = args[4];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[2]}\".`\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Add a connection to the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param connectionId Target connection Id\n * @param options The options parameters.\n */\n addConnectionToGroup(\n hub: string,\n group: string,\n connectionId: string,\n options?: WebPubSubAddConnectionToGroupOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, connectionId, options },\n addConnectionToGroupOperationSpec\n );\n }\n\n /**\n * Remove a connection from the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n removeConnectionFromGroup(\n hub: string,\n group: string,\n connectionId: string,\n options?: WebPubSubRemoveConnectionFromGroupOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, connectionId, options },\n removeConnectionFromGroupOperationSpec\n );\n }\n\n /**\n * Check if there are any client connections connected for the given user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n userExists(\n hub: string,\n userId: string,\n options?: WebPubSubUserExistsOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, userId, options },\n userExistsOperationSpec\n );\n }\n\n /**\n * Close connections for the specific user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId The user Id.\n * @param options The options parameters.\n */\n closeUserConnections(\n hub: string,\n userId: string,\n options?: WebPubSubCloseUserConnectionsOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, userId, options },\n closeUserConnectionsOperationSpec\n );\n }\n\n /**\n * Send content inside request body to the specific user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId The user Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToUser(\n hub: string,\n userId: string,\n contentType: ContentType,\n message: coreRestPipeline.RequestBodyType,\n options?: WebPubSubSendToUser$binaryOptionalParams\n ): Promise<void>;\n /**\n * Send content inside request body to the specific user.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId The user Id.\n * @param contentType Upload file type\n * @param message The payload body.\n * @param options The options parameters.\n */\n sendToUser(\n hub: string,\n userId: string,\n contentType: \"text/plain\",\n message: string,\n options?: WebPubSubSendToUser$textOptionalParams\n ): Promise<void>;\n /**\n * Send content inside request body to the specific user.\n * @param args Includes all the parameters for this operation.\n */\n sendToUser(\n ...args:\n | [\n string,\n string,\n ContentType,\n coreRestPipeline.RequestBodyType,\n WebPubSubSendToUser$binaryOptionalParams?\n ]\n | [\n string,\n string,\n \"text/plain\",\n string,\n WebPubSubSendToUser$textOptionalParams?\n ]\n ): Promise<void> {\n let operationSpec: coreClient.OperationSpec;\n let operationArguments: coreClient.OperationArguments;\n let options;\n if (\n args[2] === \"application/json\" ||\n args[2] === \"application/octet-stream\"\n ) {\n operationSpec = sendToUser$binaryOperationSpec;\n operationArguments = {\n hub: args[0],\n userId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4]\n };\n options = args[4];\n } else if (args[2] === \"text/plain\") {\n operationSpec = sendToUser$textOperationSpec;\n operationArguments = {\n hub: args[0],\n userId: args[1],\n contentType: args[2],\n message: args[3],\n options: args[4]\n };\n options = args[4];\n } else {\n throw new TypeError(\n `\"contentType\" must be a valid value but instead was \"${args[2]}\".`\n );\n }\n operationArguments.options = options || {};\n return this.client.sendOperationRequest(operationArguments, operationSpec);\n }\n\n /**\n * Add a user to the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n addUserToGroup(\n hub: string,\n group: string,\n userId: string,\n options?: WebPubSubAddUserToGroupOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, userId, options },\n addUserToGroupOperationSpec\n );\n }\n\n /**\n * Remove a user from the target group.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param group Target group name, which length should be greater than 0 and less than 1025.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n removeUserFromGroup(\n hub: string,\n group: string,\n userId: string,\n options?: WebPubSubRemoveUserFromGroupOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, group, userId, options },\n removeUserFromGroupOperationSpec\n );\n }\n\n /**\n * Remove a user from all groups.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param userId Target user Id.\n * @param options The options parameters.\n */\n removeUserFromAllGroups(\n hub: string,\n userId: string,\n options?: WebPubSubRemoveUserFromAllGroupsOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, userId, options },\n removeUserFromAllGroupsOperationSpec\n );\n }\n\n /**\n * Grant permission to the connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param permission The permission: current supported actions are joinLeaveGroup and sendToGroup.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n grantPermission(\n hub: string,\n permission: WebPubSubPermission,\n connectionId: string,\n options?: WebPubSubGrantPermissionOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, permission, connectionId, options },\n grantPermissionOperationSpec\n );\n }\n\n /**\n * Revoke permission for the connection.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param permission The permission: current supported actions are joinLeaveGroup and sendToGroup.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n revokePermission(\n hub: string,\n permission: WebPubSubPermission,\n connectionId: string,\n options?: WebPubSubRevokePermissionOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, permission, connectionId, options },\n revokePermissionOperationSpec\n );\n }\n\n /**\n * Check if a connection has permission to the specified action.\n * @param hub Target hub name, which should start with alphabetic characters and only contain\n * alpha-numeric characters or underscore.\n * @param permission The permission: current supported actions are joinLeaveGroup and sendToGroup.\n * @param connectionId Target connection Id.\n * @param options The options parameters.\n */\n checkPermission(\n hub: string,\n permission: WebPubSubPermission,\n connectionId: string,\n options?: WebPubSubCheckPermissionOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { hub, permission, connectionId, options },\n checkPermissionOperationSpec\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst generateClientTokenOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:generateToken\",\n httpMethod: \"POST\",\n responses: {\n 200: {\n bodyMapper: Mappers.ClientTokenResponse\n },\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubGenerateClientTokenExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.userId,\n Parameters.roles,\n Parameters.expirationTimeInMinutes\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst closeAllConnectionsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:closeConnections\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseAllConnectionsExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excluded,\n Parameters.reason\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst sendToAll$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToAllExceptionHeaders\n }\n },\n requestBody: Parameters.message,\n queryParameters: [Parameters.apiVersion, Parameters.excludedConnections],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.contentType, Parameters.accept1],\n mediaType: \"binary\",\n serializer\n};\nconst sendToAll$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToAllExceptionHeaders\n }\n },\n requestBody: Parameters.message1,\n queryParameters: [Parameters.apiVersion, Parameters.excludedConnections],\n urlParameters: [Parameters.endpoint, Parameters.hub],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"text\",\n serializer\n};\nconst connectionExistsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubConnectionExistsExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst closeConnectionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseConnectionExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.reason],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst sendToConnection$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToConnectionExceptionHeaders\n }\n },\n requestBody: Parameters.message,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.contentType, Parameters.accept1],\n mediaType: \"binary\",\n serializer\n};\nconst sendToConnection$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/connections/{connectionId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToConnectionExceptionHeaders\n }\n },\n requestBody: Parameters.message1,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.connectionId],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"text\",\n serializer\n};\nconst groupExistsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubGroupExistsExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst closeGroupConnectionsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/:closeConnections\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseGroupConnectionsExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excluded,\n Parameters.reason\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst sendToGroup$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToGroupExceptionHeaders\n }\n },\n requestBody: Parameters.message,\n queryParameters: [Parameters.apiVersion, Parameters.excludedConnections],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n headerParameters: [Parameters.contentType, Parameters.accept1],\n mediaType: \"binary\",\n serializer\n};\nconst sendToGroup$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToGroupExceptionHeaders\n }\n },\n requestBody: Parameters.message1,\n queryParameters: [Parameters.apiVersion, Parameters.excludedConnections],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.group],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"text\",\n serializer\n};\nconst addConnectionToGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/connections/{connectionId}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubAddConnectionToGroupExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.group\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst removeConnectionFromGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/groups/{group}/connections/{connectionId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRemoveConnectionFromGroupExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.group\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst userExistsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubUserExistsExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst closeUserConnectionsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/:closeConnections\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCloseUserConnectionsExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.apiVersion,\n Parameters.excluded,\n Parameters.reason\n ],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst sendToUser$binaryOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToUserExceptionHeaders\n }\n },\n requestBody: Parameters.message,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.contentType, Parameters.accept1],\n mediaType: \"binary\",\n serializer\n};\nconst sendToUser$textOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/:send\",\n httpMethod: \"POST\",\n responses: {\n 202: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubSendToUserExceptionHeaders\n }\n },\n requestBody: Parameters.message1,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.contentType1, Parameters.accept2],\n mediaType: \"text\",\n serializer\n};\nconst addUserToGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/groups/{group}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubAddUserToGroupExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.group,\n Parameters.userId1\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst removeUserFromGroupOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/groups/{group}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRemoveUserFromGroupExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.group,\n Parameters.userId1\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst removeUserFromAllGroupsOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/users/{userId}/groups\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRemoveUserFromAllGroupsExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.hub, Parameters.userId1],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst grantPermissionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/permissions/{permission}/connections/{connectionId}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubGrantPermissionExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.targetName],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.permission\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst revokePermissionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/permissions/{permission}/connections/{connectionId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubRevokePermissionExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.targetName],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.permission\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst checkPermissionOperationSpec: coreClient.OperationSpec = {\n path: \"/api/hubs/{hub}/permissions/{permission}/connections/{connectionId}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.ErrorDetail,\n headersMapper: Mappers.WebPubSubCheckPermissionExceptionHeaders\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.targetName],\n urlParameters: [\n Parameters.endpoint,\n Parameters.hub,\n Parameters.connectionId,\n Parameters.permission\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport { GeneratedClientOptionalParams } from \"./models\";\n\n/** @internal */\nexport class GeneratedClientContext extends coreClient.ServiceClient {\n endpoint: string;\n apiVersion: string;\n\n /**\n * Initializes a new instance of the GeneratedClientContext class.\n * @param endpoint HTTP or HTTPS endpoint for the Web PubSub service instance.\n * @param options The parameter options\n */\n constructor(endpoint: string, options?: GeneratedClientOptionalParams) {\n if (endpoint === undefined) {\n throw new Error(\"'endpoint' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: GeneratedClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\"\n };\n\n const packageDetails = `azsdk-js-web-pubsub/1.1.0`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix\n },\n baseUri: options.endpoint || \"{Endpoint}\"\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.endpoint = endpoint;\n\n // Assigning values to Constant parameters\n this.apiVersion = options.apiVersion || \"2021-10-01\";\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { HealthApiImpl, WebPubSubImpl } from \"./operations\";\nimport { HealthApi, WebPubSub } from \"./operationsInterfaces\";\nimport { GeneratedClientContext } from \"./generatedClientContext\";\nimport { GeneratedClientOptionalParams } from \"./models\";\n\n/** @internal */\nexport class GeneratedClient extends GeneratedClientContext {\n /**\n * Initializes a new instance of the GeneratedClient class.\n * @param endpoint HTTP or HTTPS endpoint for the Web PubSub service instance.\n * @param options The parameter options\n */\n constructor(endpoint: string, options?: GeneratedClientOptionalParams) {\n super(endpoint, options);\n this.healthApi = new HealthApiImpl(this);\n this.webPubSub = new WebPubSubImpl(this);\n }\n\n healthApi: HealthApi;\n webPubSub: WebPubSub;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { createTracingClient } from \"@azure/core-tracing\";\n\n/** @internal */\nexport const tracingClient = createTracingClient({\n namespace: \"Microsoft.WebPubSub\",\n packageName: \"@azure/web-pubsub\",\n});\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RequestBodyType } from \"@azure/core-rest-pipeline\";\n\nfunction isRequestBody(obj: unknown): obj is RequestBodyType {\n return (\n typeof obj === \"function\" ||\n (typeof obj === \"object\" &&\n obj != null &&\n (obj.constructor.name === \"ArrayBuffer\" ||\n obj.constructor.name === \"Blob\" ||\n ArrayBuffer.isView(obj)))\n );\n}\n\nexport interface TextPlainPayload {\n contentType: \"text/plain\";\n payload: string;\n}\n\nexport interface JsonPayload {\n contentType: \"application/json\";\n payload: string;\n}\n\nexport interface BinaryPayload {\n contentType: \"application/octet-stream\";\n payload: RequestBodyType;\n}\n\nexport type Payload = TextPlainPayload | JsonPayload | BinaryPayload;\n\nexport function getPayloadForMessage(message: unknown, options: Record<string, any>): Payload {\n if (options?.contentType === \"text/plain\") {\n if (typeof message !== \"string\") {\n throw new TypeError(\"Message must be a string.\");\n }\n return { contentType: \"text/plain\", payload: message };\n } else if (isRequestBody(message)) {\n return { contentType: \"application/octet-stream\", payload: message };\n } else {\n return { contentType: \"application/json\", payload: JSON.stringify(message) };\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CommonClientOptions, FullOperationResponse, OperationOptions } from \"@azure/core-client\";\nimport { RestError, RequestBodyType } from \"@azure/core-rest-pipeline\";\nimport { GeneratedClient } from \"./generated/generatedClient\";\nimport { tracingClient } from \"./tracing\";\nimport { getPayloadForMessage } from \"./utils\";\nimport { JSONTypes } from \"./hubClient\";\n\n/**\n * Options for constructing a GroupAdmin client.\n */\nexport interface GroupAdminClientOptions extends CommonClientOptions {}\n\n/**\n * Options for adding a connection to a group.\n */\nexport interface GroupAddConnectionOptions extends OperationOptions {}\n\n/**\n * Options for adding a user to a group.\n */\nexport interface GroupAddUserOptions extends OperationOptions {}\n\n/**\n * Options for checking if a user is in a group\n */\nexport interface GroupHasUserOptions extends OperationOptions {}\n\n/**\n * Options for removing a user from a group\n */\nexport interface GroupRemoveUserOptions extends OperationOptions {}\n\n/**\n * Options for removing a connection from a group\n */\nexport interface GroupRemoveConnectionOptions extends OperationOptions {}\n\n/**\n * Options for sending messages to a group.\n */\nexport interface GroupSendToAllOptions extends OperationOptions {\n /**\n * Connection ids to exclude from receiving this message.\n */\n excludedConnections?: string[];\n}\n\n/**\n * Options for sending text messages to a group..\n */\nexport interface GroupSendTextToAllOptions extends OperationOptions {\n /**\n * Connection ids to exclude from receiving this message.\n */\n excludedConnections?: string[];\n contentType: \"text/plain\";\n}\n\n/**\n * Options for closing all connections to a group.\n */\nexport interface GroupCloseAllConnectionsOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\nexport interface WebPubSubGroup {\n /**\n * The name of this group\n */\n readonly groupName: string;\n\n /**\n * The name of the hub this group belongs to\n */\n readonly hubName: string;\n\n /**\n * The Web PubSub API version being used by this client\n */\n readonly apiVersion: string;\n\n /**\n * The Web PubSub endpoint this client is connected to\n */\n readonly endpoint: string;\n\n /**\n * Add a specific connection to this group\n *\n * @param connectionId - The connection id to add to this group\n * @param options - Additional options\n */\n addConnection(connectionId: string, options?: GroupAddConnectionOptions): Promise<void>;\n\n /**\n * Remove a specific connection from this group\n *\n * @param connectionId - The connection id to remove from this group\n * @param options - Additional options\n */\n removeConnection(connectionId: string, options?: GroupRemoveConnectionOptions): Promise<void>;\n\n /**\n * Close all connections to the group\n *\n * @param options - Additional options\n */\n closeAllConnections(options?: GroupCloseAllConnectionsOptions): Promise<void>;\n\n /**\n * Add a user to this group\n *\n * @param username - The user name to add\n * @param options - Additional options\n */\n addUser(username: string, options?: GroupAddUserOptions): Promise<void>;\n\n /**\n * Remove a user from this group\n *\n * @param username - The user name to remove\n * @param options - Additional options\n */\n removeUser(username: string, options?: GroupRemoveUserOptions): Promise<void>;\n\n /**\n * Send a text message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n sendToAll(message: string, options: GroupSendTextToAllOptions): Promise<void>;\n /**\n * Send a json message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n sendToAll(message: JSONTypes, options?: GroupSendToAllOptions): Promise<void>;\n /**\n * Send a binary message to every connection in this group\n *\n * @param message - The binary message to send\n * @param options - Additional options\n */\n sendToAll(message: RequestBodyType, options?: GroupSendToAllOptions): Promise<void>;\n}\n\n/**\n * @hidden\n */\nexport class WebPubSubGroupImpl implements WebPubSubGroup {\n private client!: GeneratedClient;\n\n /**\n * The name of this group\n */\n public readonly groupName: string;\n\n /**\n * The name of the hub this group belongs to\n */\n public readonly hubName: string;\n\n /**\n * The Web PubSub API version being used by this client\n */\n public readonly apiVersion: string = \"2020-10-01\";\n\n /**\n * The Web PubSub endpoint this client is connected to\n */\n public endpoint!: string;\n\n /**\n * @internal\n */\n constructor(client: GeneratedClient, hubName: string, groupName: string) {\n this.client = client;\n this.groupName = groupName;\n this.hubName = hubName;\n }\n /**\n * Add a specific connection to this group\n *\n * @param connectionId - The connection id to add to this group\n * @param options - Additional options\n */\n public async addConnection(\n connectionId: string,\n options: GroupAddConnectionOptions = {}\n ): Promise<void> {\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n\n return tracingClient.withSpan(\n \"WebPubSubGroupClient.addConnection\",\n options,\n async (updatedOptions) => {\n await this.client.webPubSub.addConnectionToGroup(\n this.hubName,\n this.groupName,\n connectionId,\n {\n ...updatedOptions,\n onResponse,\n }\n );\n\n if (response!.status === 404) {\n throw new RestError(`Connection id '${connectionId}' doesn't exist`, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n }\n );\n }\n\n /**\n * Remove a specific connection from this group\n *\n * @param connectionId - The connection id to remove from this group\n * @param options - Additional options\n */\n public async removeConnection(\n connectionId: string,\n options: GroupRemoveConnectionOptions = {}\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubGroupClient.removeConnection\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.removeConnectionFromGroup(\n this.hubName,\n this.groupName,\n connectionId,\n updatedOptions\n );\n }\n );\n }\n\n /**\n * Close all connections to this group\n *\n * @param options - Additional options\n */\n public async closeAllConnections(options: GroupCloseAllConnectionsOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubGroupClient.closeAllConnections\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.closeGroupConnections(\n this.hubName,\n this.groupName,\n updatedOptions\n );\n }\n );\n }\n /**\n * Add a user to this group\n *\n * @param username - The user name to add\n * @param options - Additional options\n */\n public async addUser(username: string, options: GroupAddUserOptions = {}): Promise<void> {\n return tracingClient.withSpan(\"WebPubSubGroupClient.addUser\", options, (updatedOptions) => {\n return this.client.webPubSub.addUserToGroup(\n this.hubName,\n this.groupName,\n username,\n updatedOptions\n );\n });\n }\n\n /**\n * Remove a user from this group\n *\n * @param username - The user name to remove\n * @param options - Additional options\n */\n public async removeUser(username: string, options: GroupRemoveUserOptions = {}): Promise<void> {\n return tracingClient.withSpan(\"WebPubSubGroupClient.removeUser\", options, (updatedOptions) => {\n return this.client.webPubSub.removeUserFromGroup(\n this.hubName,\n this.groupName,\n username,\n updatedOptions\n );\n });\n }\n\n /**\n * Send a text message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n public async sendToAll(message: string, options: GroupSendTextToAllOptions): Promise<void>;\n /**\n * Send a json message to every connection in this group\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n public async sendToAll(message: JSONTypes, options?: GroupSendToAllOptions): Promise<void>;\n /**\n * Send a binary message to every connection in this group\n *\n * @param message - The binary message to send\n * @param options - Additional options\n */\n public async sendToAll(message: RequestBodyType, options?: GroupSendToAllOptions): Promise<void>;\n\n public async sendToAll(\n message: JSONTypes | RequestBodyType,\n options: GroupSendToAllOptions | GroupSendTextToAllOptions = {}\n ): Promise<void> {\n return tracingClient.withSpan(\"WebPubSubGroupClient.sendToAll\", options, (updatedOptions) => {\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n return this.client.webPubSub.sendToGroup(\n this.hubName,\n this.groupName,\n contentType,\n payload as any,\n updatedOptions\n );\n });\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { KeyCredential } from \"@azure/core-auth\";\nimport {\n PipelineResponse,\n PipelineRequest,\n SendRequest,\n PipelinePolicy,\n} from \"@azure/core-rest-pipeline\";\n\nimport jwt from \"jsonwebtoken\";\n\n/**\n * The programmatic identifier of the webPubSubKeyCredentialPolicy.\n */\nexport const webPubSubKeyCredentialPolicyName = \"webPubSubKeyCredentialPolicy\";\n\n/**\n * Create an HTTP pipeline policy to authenticate a request\n * using an `AzureKeyCredential` for Text Analytics\n * @internal\n */\nexport function webPubSubKeyCredentialPolicy(credential: KeyCredential): PipelinePolicy {\n return {\n name: webPubSubKeyCredentialPolicyName,\n sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n const bearerToken = jwt.sign({}, credential.key, {\n audience: request.url,\n expiresIn: \"1h\",\n algorithm: \"HS256\",\n });\n request.headers.set(\"Authorization\", `Bearer ${bearerToken}`);\n return next(request);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { createClientLogger } from \"@azure/logger\";\n\n/**\n * The `@azure/logger` configuration for this package.\n */\nexport const logger = createClientLogger(\"web-pubsub\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AzureKeyCredential } from \"@azure/core-auth\";\nimport { URL } from \"./util/url\";\n\ninterface ParsedConnectionString {\n credential: AzureKeyCredential;\n endpoint: string;\n}\n\nexport function parseConnectionString(conn: string): ParsedConnectionString {\n const parsed: { [id: string]: string } = {};\n\n conn.split(\";\").forEach((i) => {\n const assignmentPos = i.indexOf(\"=\");\n if (assignmentPos === -1) return;\n const key = i.substring(0, assignmentPos).toLowerCase();\n const value = i.substring(assignmentPos + 1);\n parsed[key] = value;\n });\n\n let endpointPart = parsed[\"endpoint\"];\n if (!endpointPart) throw new TypeError(\"connection string missing endpoint\");\n if (!endpointPart.startsWith(\"http\")) {\n endpointPart = `https://${endpointPart}`;\n }\n const key = parsed[\"accesskey\"];\n if (!key) throw new TypeError(\"connection string missing access key\");\n const credential = new AzureKeyCredential(key);\n const port = parsed[\"port\"];\n const url = new URL(endpointPart);\n url.port = port;\n const endpoint = url.toString();\n url.port = \"\";\n\n return { credential, endpoint };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n PipelineResponse,\n PipelineRequest,\n SendRequest,\n PipelinePolicy,\n} from \"@azure/core-rest-pipeline\";\n\nexport const webPubSubReverseProxyPolicyName = \"webPubSubReverseProxyPolicy\";\n\n/**\n * Create an HTTP pipeline policy to use a reverse proxy.\n * This is generally going to be an Azure APIM endpoint.\n * @internal\n */\nexport function webPubSubReverseProxyPolicy(endpoint: string): PipelinePolicy {\n const rpEndpointUrl = new URL(endpoint);\n return {\n name: webPubSubReverseProxyPolicyName,\n sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n const parsedUrl = new URL(request.url);\n parsedUrl.host = rpEndpointUrl.host;\n request.url = parsedUrl.toString();\n return next(request);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CommonClientOptions, FullOperationResponse, OperationOptions } from \"@azure/core-client\";\nimport { RestError, RequestBodyType } from \"@azure/core-rest-pipeline\";\nimport { GeneratedClient } from \"./generated/generatedClient\";\nimport { WebPubSubGroup, WebPubSubGroupImpl } from \"./groupClient\";\nimport { AzureKeyCredential, TokenCredential, isTokenCredential } from \"@azure/core-auth\";\nimport { webPubSubKeyCredentialPolicy } from \"./webPubSubCredentialPolicy\";\nimport { tracingClient } from \"./tracing\";\nimport { logger } from \"./logger\";\nimport { parseConnectionString } from \"./parseConnectionString\";\nimport jwt from \"jsonwebtoken\";\nimport { getPayloadForMessage } from \"./utils\";\nimport { GeneratedClientOptionalParams } from \"./generated\";\nimport { webPubSubReverseProxyPolicy } from \"./reverseProxyPolicy\";\n\n/**\n * Options for closing a connection to a hub.\n */\nexport interface HubCloseConnectionOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\n/**\n * Options for closing all connections to a hub.\n */\nexport interface HubCloseAllConnectionsOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\n/**\n * Options for closing all of a user's connections to a hub.\n */\nexport interface HubCloseUserConnectionsOptions extends OperationOptions {\n /**\n * Reason the connection is being closed.\n */\n reason?: string;\n}\n\n/**\n * Options for sending messages to hubs.\n */\nexport interface HubSendToAllOptions extends OperationOptions {\n /**\n * Connection ids to exclude from receiving this message.\n */\n excludedConnections?: string[];\n}\n\n/**\n * Options for sending text messages to hubs.\n */\nexport interface HubSendTextToAllOptions extends HubSendToAllOptions {\n contentType: \"text/plain\";\n}\n\n/**\n * Types which can be serialized and sent as JSON.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type JSONTypes = string | number | boolean | object;\n\n/**\n * Options for constructing a HubAdmin client.\n */\nexport interface WebPubSubServiceClientOptions extends CommonClientOptions {\n /**\n * Reverse proxy endpoint (for example, your Azure API management endpoint)\n */\n reverseProxyEndpoint?: string;\n}\n\n/**\n * Options for checking if a connection exists.\n */\nexport interface HasConnectionOptions extends OperationOptions {}\n\n/**\n * Options for checking if a group exists.\n */\nexport interface HubHasGroupOptions extends OperationOptions {}\n\n/**\n * Options for checking if a user exists.\n */\nexport interface HubHasUserOptions extends OperationOptions {}\n\n/**\n * Options for removing a user from all groups.\n */\nexport interface HubRemoveUserFromAllGroupsOptions extends HubCloseConnectionOptions {}\n\n/**\n * Options for sending a message to a specific connection.\n */\nexport interface HubSendToConnectionOptions extends OperationOptions {}\n\n/**\n * Options for sending a text message to a connection.\n */\nexport interface HubSendTextToConnectionOptions extends HubSendToConnectionOptions {\n contentType: \"text/plain\";\n}\n\n/**\n * Options for sending a message to a user.\n */\nexport interface HubSendToUserOptions extends OperationOptions {}\n\n/**\n * Options for sending a text message to a user.\n */\nexport interface HubSendTextToUserOptions extends HubSendToUserOptions {\n contentType: \"text/plain\";\n}\n\nexport type Permission = \"joinLeaveGroup\" | \"sendToGroup\";\n\n/**\n * Options for grant permissions to a connection\n */\nexport interface HubGrantPermissionOptions extends OperationOptions {\n /**\n * The meaning of the target depends on the specific permission.\n * For joinLeaveGroup and sendToGroup, targetName is a required parameter standing for the group name.\n */\n targetName?: string;\n}\n\n/**\n * Options for revoke permissions from a connection\n */\nexport interface HubRevokePermissionOptions extends OperationOptions {\n /**\n * The meaning of the target depends on the specific permission.\n * For joinLeaveGroup and sendToGroup, targetName is a required parameter standing for the group name.\n */\n targetName?: string;\n}\n\n/**\n * Options for checking if a connection has the specified permission\n */\nexport interface HubHasPermissionOptions extends OperationOptions {\n /**\n * The meaning of the target depends on the specific permission.\n * For joinLeaveGroup and sendToGroup, targetName is a required parameter standing for the group name.\n */\n targetName?: string;\n}\n\n/**\n * Options for generating a token to connect a client to the Azure Web Pubsub service.\n */\nexport interface GenerateClientTokenOptions extends OperationOptions {\n /**\n * The userId for the client.\n */\n userId?: string;\n\n /**\n * The roles that the connection with the generated token will have.\n * Roles give the client initial permissions to leave, join, or publish to groups when using PubSub subprotocol\n * * `webpubsub.joinLeaveGroup`: the client can join or leave any group\n * * `webpubsub.sendToGroup`: the client can send messages to any group\n * * `webpubsub.joinLeaveGroup.<group>`: the client can join or leave group `<group>`\n * * `webpubsub.sendToGroup.<group>`: the client can send messages to group `<group>`\n *\n * {@link https://azure.github.io/azure-webpubsub/references/pubsub-websocket-subprotocol#permissions}\n */\n roles?: string[];\n\n /**\n * Minutes until the token expires.\n */\n expirationTimeInMinutes?: number;\n}\n\n/**\n * A response containing the client token.\n */\nexport interface ClientTokenResponse {\n /**\n * The client token.\n */\n token: string;\n /**\n * The URL client connects to\n */\n baseUrl: string;\n /**\n * The URL client connects to with access_token query string\n */\n url: string;\n}\n\n/**\n * Client for connecting to a Web PubSub hub\n */\nexport class WebPubSubServiceClient {\n private readonly client: GeneratedClient;\n private credential!: AzureKeyCredential | TokenCredential;\n private readonly clientOptions?: WebPubSubServiceClientOptions;\n\n /**\n * The name of the hub this client is connected to\n */\n public readonly hubName: string;\n /**\n * The Web PubSub API version being used by this client\n */\n public readonly apiVersion: string = \"2021-10-01\";\n\n /**\n * The Web PubSub endpoint this client is connected to\n */\n public endpoint!: string;\n\n /**\n * Creates an instance of a WebPubSubServiceClient for sending messages and managing groups, connections, and users.\n *\n * Example usage:\n * ```ts\n * import { WebPubSubServiceClient } from \"@azure/web-pubsub\";\n * const connectionString = process.env['WEB_PUBSUB_CONNECTION_STRING'];\n * const client = new WebPubSubServiceClient(connectionString, 'chat');\n * ```\n *\n * @param connectionString - The connection string\n * @param hubName - The name of the hub to connect to. If omitted, '_default' is used.\n * @param options - Options to configure the http pipeline\n */\n constructor(connectionString: string, hubName: string, options?: WebPubSubServiceClientOptions);\n\n /**\n * Creates an instance of a WebPubSubServiceClient for sending messages and managing groups, connections, and users.\n *\n * Example usage:\n * ```ts\n * import { WebPubSubServiceClient, AzureKeyCredential } from \"@azure/web-pubsub\";\n * const cred = new AzureKeyCredential(\"<your web pubsub api key>\");\n * const endpoint = \"https://xxxx.webpubsubdev.azure.com\"\n * const client = new WebPubSubServiceClient(endpoint, cred, 'chat');\n * ```\n *\n * @param endpoint - The endpoint to connect to\n * @param credential - An AzureKeyCredential holding your service key\n * @param hubName - The name of the hub to connect to.\n * @param options - Options to configure the http pipeline\n */\n constructor(\n endpoint: string,\n credential: AzureKeyCredential | TokenCredential,\n hubName: string,\n options?: WebPubSubServiceClientOptions\n );\n constructor(\n endpointOrConnectionString: string,\n credsOrHubName?: AzureKeyCredential | TokenCredential | string,\n hubNameOrOpts?: string | WebPubSubServiceClientOptions,\n opts?: WebPubSubServiceClientOptions\n ) {\n // unpack constructor arguments\n if (typeof credsOrHubName === \"object\") {\n this.endpoint = endpointOrConnectionString;\n this.hubName = hubNameOrOpts as string;\n this.clientOptions = opts;\n this.credential = credsOrHubName;\n } else {\n const parsedCs = parseConnectionString(endpointOrConnectionString);\n this.endpoint = parsedCs.endpoint;\n this.credential = parsedCs.credential;\n this.hubName = credsOrHubName as string;\n this.clientOptions = hubNameOrOpts as WebPubSubServiceClientOptions;\n }\n\n const internalPipelineOptions: GeneratedClientOptionalParams = {\n ...this.clientOptions,\n ...{\n apiVersion: this.apiVersion,\n loggingOptions: {\n logger: logger.info,\n },\n },\n ...(isTokenCredential(this.credential)\n ? {\n credential: this.credential,\n credentialScopes: [\"https://webpubsub.azure.com/.default\"],\n }\n : {}),\n };\n\n this.client = new GeneratedClient(this.endpoint, internalPipelineOptions);\n\n if (!isTokenCredential(this.credential)) {\n this.client.pipeline.addPolicy(webPubSubKeyCredentialPolicy(this.credential));\n }\n\n if (this.clientOptions?.reverseProxyEndpoint) {\n this.client.pipeline.addPolicy(\n webPubSubReverseProxyPolicy(this.clientOptions?.reverseProxyEndpoint)\n );\n }\n }\n\n /**\n * Get a client for a group\n * @param groupName - The name of the group to connect to.\n */\n public group(groupName: string): WebPubSubGroup {\n return new WebPubSubGroupImpl(this.client, this.hubName, groupName);\n }\n\n /**\n * Broadcast a text message to all connections on this hub.\n *\n * @param message - The text message to send\n * @param options - Additional options\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public async sendToAll(message: string, options: HubSendTextToAllOptions): Promise<void>;\n /**\n * Broadcast a JSON message to all connections on this hub.\n *\n * @param message - The JSON message to send\n * @param options - Additional options\n */\n public async sendToAll(message: JSONTypes, options?: HubSendToAllOptions): Promise<void>;\n /**\n * Broadcast a binary message to all connections on this hub.\n *\n * @param message - The message to send\n * @param options - Additional options\n */\n public async sendToAll(message: RequestBodyType, options?: HubSendToAllOptions): Promise<void>;\n\n public async sendToAll(\n message: RequestBodyType | JSONTypes,\n options: HubSendToAllOptions | HubSendTextToAllOptions = {}\n ): Promise<void> {\n return tracingClient.withSpan(\"WebPubSubServiceClient.sendToAll\", options, (updatedOptions) => {\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n return this.client.webPubSub.sendToAll(\n this.hubName,\n contentType,\n payload as any,\n updatedOptions\n );\n });\n }\n\n /**\n * Send a text message to a specific user\n *\n * @param username - User name to send to\n * @param message - The text message to send\n * @param options - Additional options\n */\n public async sendToUser(\n username: string,\n message: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: HubSendTextToUserOptions\n ): Promise<void>;\n\n /**\n * Send a JSON message to a specific user\n *\n * @param username - User name to send to\n * @param message - The josn message to send\n * @param options - Additional options\n */\n public async sendToUser(\n username: string,\n message: JSONTypes,\n options?: HubSendToUserOptions\n ): Promise<void>;\n\n /**\n * Send a binary message to a specific user\n *\n * @param username - The user name to send to\n * @param message - The binary message to send\n * @param options - Additional options\n */\n public async sendToUser(\n username: string,\n message: RequestBodyType,\n options?: HubSendToUserOptions | HubSendTextToUserOptions\n ): Promise<void>;\n public async sendToUser(\n username: string,\n message: RequestBodyType | JSONTypes,\n options: HubSendToUserOptions = {}\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.sendToUser\",\n options,\n (updatedOptions) => {\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n return this.client.webPubSub.sendToUser(\n this.hubName,\n username,\n contentType,\n payload as any,\n updatedOptions\n );\n }\n );\n }\n\n /**\n * Send a text message to a specific connection\n *\n * @param connectionId - Connection id to send to\n * @param message - The text message\n * @param options - Additional options\n */\n public async sendToConnection(\n connectionId: string,\n message: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: HubSendTextToConnectionOptions\n ): Promise<void>;\n\n /**\n * Send a binary message to a specific connection\n *\n * @param connectionId - Connection id to send to\n * @param message - The JSON message\n * @param options - Additional options\n */\n public async sendToConnection(\n connectionId: string,\n message: JSONTypes,\n options?: HubSendToConnectionOptions\n ): Promise<void>;\n\n /**\n * Send a binary message to a specific connection\n *\n * @param connectionId - Connection id to send to\n * @param message - The binary message\n * @param options - Additional options\n */\n public async sendToConnection(\n connectionId: string,\n message: RequestBodyType,\n options?: HubSendToConnectionOptions | HubSendTextToConnectionOptions\n ): Promise<void>;\n public async sendToConnection(\n connectionId: string,\n message: RequestBodyType | JSONTypes,\n options: HubSendToConnectionOptions = {}\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.sendToConnection\",\n options,\n (updatedOptions) => {\n const { contentType, payload } = getPayloadForMessage(message, updatedOptions);\n\n return this.client.webPubSub.sendToConnection(\n this.hubName,\n connectionId,\n contentType,\n payload as any,\n updatedOptions\n );\n }\n );\n }\n\n /**\n * Check if a specific connection is connected to this hub\n *\n * @param connectionId - Connection id to check\n * @param options - Additional options\n */\n public async connectionExists(\n connectionId: string,\n options: HasConnectionOptions = {}\n ): Promise<boolean> {\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.connectionExists\",\n options,\n async (updatedOptions) => {\n await this.client.webPubSub.connectionExists(this.hubName, connectionId, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n // this is sad - wish this was handled by autorest.\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n }\n );\n }\n\n /**\n * Close a specific connection to this hub\n *\n * @param connectionId - Connection id to close\n * @param options - Additional options\n */\n public async closeConnection(\n connectionId: string,\n options: HubCloseConnectionOptions = {}\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.closeConnection\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.closeConnection(this.hubName, connectionId, updatedOptions);\n }\n );\n }\n\n /**\n * Close all connections to this hub\n *\n * @param options - Additional options\n */\n public async closeAllConnections(options: HubCloseAllConnectionsOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.closeAllConnections\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.closeAllConnections(this.hubName, updatedOptions);\n }\n );\n }\n\n /**\n * Close all connections with the given user id\n *\n * @param user - User id to close\n * @param options - Additional options\n */\n public async closeUserConnections(\n userId: string,\n options: HubCloseUserConnectionsOptions = {}\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.closeUserConnections\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.closeUserConnections(this.hubName, userId, updatedOptions);\n }\n );\n }\n\n /**\n * Remove a specific user from all groups they are joined to\n * @param userId - The user id to remove from all groups\n * @param options - Additional options\n */\n public async removeUserFromAllGroups(\n userId: string,\n options: HubCloseConnectionOptions = {}\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.removeUserFromAllGroups\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.removeUserFromAllGroups(this.hubName, userId, updatedOptions);\n }\n );\n }\n\n /**\n * Check if a particular group exists (i.e. has active connections).\n *\n * @param groupName - The group name to check for\n * @param options - Additional options\n */\n public async groupExists(groupName: string, options: HubHasGroupOptions = {}): Promise<boolean> {\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.groupExists\",\n options,\n async (updatedOptions) => {\n await this.client.webPubSub.groupExists(this.hubName, groupName, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n }\n );\n }\n\n /**\n * Check if a particular user is connected to this hub.\n *\n * @param username - The user name to check for\n * @param options - Additional options\n */\n public async userExists(username: string, options: HubHasUserOptions = {}): Promise<boolean> {\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.userExists\",\n options,\n async (updatedOptions) => {\n await this.client.webPubSub.userExists(this.hubName, username, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n // this is sad - wish this was handled by autorest.\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n }\n );\n }\n\n /**\n * Grant permissions to a connection\n *\n * @param connectionId - The connection id to grant permissions to\n * @param Permission - The permission to grant\n * @param options - Additional options\n */\n public async grantPermission(\n connectionId: string,\n permission: Permission,\n options: HubGrantPermissionOptions = {}\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.grantPermission\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.grantPermission(\n this.hubName,\n permission,\n connectionId,\n updatedOptions\n );\n }\n );\n }\n\n /**\n * Revoke permissions from a connection\n *\n * @param connectionId - The connection id to revoke permissions from\n * @param Permission - The permission to revoke\n * @param options - Additional options\n */\n public async revokePermission(\n connectionId: string,\n permission: Permission,\n options: HubRevokePermissionOptions = {}\n ): Promise<void> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.revokePermission\",\n options,\n (updatedOptions) => {\n return this.client.webPubSub.revokePermission(\n this.hubName,\n permission,\n connectionId,\n updatedOptions\n );\n }\n );\n }\n\n /**\n * Check if the connection has the specified permission\n *\n * @param connectionId - The connection id to check permission\n * @param Permission - The permission to check\n * @param options - Additional options\n */\n public async hasPermission(\n connectionId: string,\n permission: Permission,\n options: HubHasPermissionOptions = {}\n ): Promise<boolean> {\n let response: FullOperationResponse | undefined;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n response = rawResponse;\n if (options.onResponse) {\n options.onResponse(rawResponse, flatResponse);\n }\n }\n\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.hasPermission\",\n options,\n async (updatedOptions) => {\n await this.client.webPubSub.checkPermission(this.hubName, permission, connectionId, {\n ...updatedOptions,\n onResponse,\n });\n\n if (response!.status === 200) {\n return true;\n } else if (response!.status === 404) {\n return false;\n } else {\n // this is sad - wish this was handled by autorest.\n throw new RestError(response!.bodyAsText!, {\n statusCode: response?.status,\n request: response?.request,\n response: response,\n });\n }\n }\n );\n }\n\n /**\n * Generate a token for a client to connect to the Azure Web PubSub service.\n *\n * @param options - Additional options\n */\n public async getClientAccessToken(\n options: GenerateClientTokenOptions = {}\n ): Promise<ClientTokenResponse> {\n return tracingClient.withSpan(\n \"WebPubSubServiceClient.getClientAccessToken\",\n options,\n async (updatedOptions) => {\n const endpoint = this.endpoint.endsWith(\"/\") ? this.endpoint : this.endpoint + \"/\";\n const clientEndpoint = endpoint.replace(/(http)(s?:\\/\\/)/gi, \"ws$2\");\n const baseUrl = `${clientEndpoint}client/hubs/${this.hubName}`;\n\n let token: string;\n if (isTokenCredential(this.credential)) {\n const response = await this.client.webPubSub.generateClientToken(\n this.hubName,\n updatedOptions\n );\n token = response.token!;\n } else {\n const key = this.credential.key;\n const audience = `${endpoint}client/hubs/${this.hubName}`;\n const payload = { role: options?.roles };\n const signOptions: jwt.SignOptions = {\n audience: audience,\n expiresIn:\n options?.expirationTimeInMinutes === undefined\n ? \"1h\"\n : `${options.expirationTimeInMinutes}m`,\n algorithm: \"HS256\",\n };\n if (options?.userId) {\n signOptions.subject = options?.userId;\n }\n token = jwt.sign(payload, key, signOptions);\n }\n\n return {\n token,\n baseUrl,\n url: `${baseUrl}?access_token=${token}`,\n };\n }\n );\n }\n}\n"],"names":["serializer","coreClient","Parameters.apiVersion","Parameters.endpoint","Mappers.ClientTokenResponse","Mappers.ErrorDetail","Mappers.WebPubSubGenerateClientTokenExceptionHeaders","Parameters.userId","Parameters.roles","Parameters.expirationTimeInMinutes","Parameters.hub","Parameters.accept","Mappers.WebPubSubCloseAllConnectionsExceptionHeaders","Parameters.excluded","Parameters.reason","Mappers.WebPubSubSendToAllExceptionHeaders","Parameters.message","Parameters.excludedConnections","Parameters.contentType","Parameters.accept1","Parameters.message1","Parameters.contentType1","Parameters.accept2","Mappers.WebPubSubConnectionExistsExceptionHeaders","Parameters.connectionId","Mappers.WebPubSubCloseConnectionExceptionHeaders","Mappers.WebPubSubSendToConnectionExceptionHeaders","Mappers.WebPubSubGroupExistsExceptionHeaders","Parameters.group","Mappers.WebPubSubCloseGroupConnectionsExceptionHeaders","Mappers.WebPubSubSendToGroupExceptionHeaders","Mappers.WebPubSubAddConnectionToGroupExceptionHeaders","Mappers.WebPubSubRemoveConnectionFromGroupExceptionHeaders","Mappers.WebPubSubUserExistsExceptionHeaders","Parameters.userId1","Mappers.WebPubSubCloseUserConnectionsExceptionHeaders","Mappers.WebPubSubSendToUserExceptionHeaders","Mappers.WebPubSubAddUserToGroupExceptionHeaders","Mappers.WebPubSubRemoveUserFromGroupExceptionHeaders","Mappers.WebPubSubRemoveUserFromAllGroupsExceptionHeaders","Mappers.WebPubSubGrantPermissionExceptionHeaders","Parameters.targetName","Parameters.permission","Mappers.WebPubSubRevokePermissionExceptionHeaders","Mappers.WebPubSubCheckPermissionExceptionHeaders","createTracingClient","RestError","jwt","createClientLogger","AzureKeyCredential","url","URL","isTokenCredential"],"mappings":"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"}