# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Microsoft Azure Webpubsub API version: 1.0.0 extends: openapi/microsoft-azure-web-pub-sub-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-10-01' generator: build-phrasing.py label: Generated by API Evangelist operations: 61 - target: $.paths['/api/hubs/{hub}/:generateToken'].post update: x-apievangelist-phrasing: intent: Generate a client access token for a hub effect: write questions: - How do I get a token so a browser client can connect to my Web PubSub hub? - Can I set how many minutes a generated client token stays valid? - What roles can I bake into a client connection token? instructions: - text: Generate a client connection token for hub {hub} for user {userId}. slots: hub: path.hub userId: query.userId - text: Create a token for hub {hub} that expires in {minutesToExpire} minutes with role {role}. slots: hub: path.hub minutesToExpire: query.minutesToExpire role: query.role method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/:send'].post update: x-apievangelist-phrasing: intent: Broadcast a message to every connection in a hub effect: write questions: - What's the way to broadcast one message to everyone connected to a hub? - Can I leave certain connection IDs out of a hub-wide broadcast? instructions: - text: Broadcast this message to all clients connected to hub {hub}. slots: hub: path.hub - text: Send this to everyone in hub {hub} except connections {excluded}. slots: hub: path.hub excluded: query.excluded method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/connections/{connectionId}'].delete update: x-apievangelist-phrasing: intent: Close a client connection effect: destructive questions: - Can I forcibly kick a single client off a hub? - Can I record a reason when I kick a client connection off? instructions: - text: Close connection {connectionId} in hub {hub}. slots: connectionId: path.connectionId hub: path.hub - text: Disconnect client {connectionId} from hub {hub} with reason {reason}. slots: connectionId: path.connectionId hub: path.hub reason: query.reason method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/connections/{connectionId}'].head update: x-apievangelist-phrasing: intent: Check whether a client connection is live effect: read questions: - Is a specific connection ID still connected to my hub? - How can I verify a client connection exists before messaging it? instructions: - text: Check if connection {connectionId} still exists in hub {hub}. slots: connectionId: path.connectionId hub: path.hub - text: Tell me whether client {connectionId} is still online in hub {hub}. slots: connectionId: path.connectionId hub: path.hub method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/connections/{connectionId}/:send'].post update: x-apievangelist-phrasing: intent: Send a message to one client connection effect: write questions: - Is there a call that pushes a message to one client connection only? - Can I target one connection ID rather than a user or group? instructions: - text: Send this message to connection {connectionId} in hub {hub}. slots: connectionId: path.connectionId hub: path.hub - text: Push this payload only to client connection {connectionId} on hub {hub}. slots: connectionId: path.connectionId hub: path.hub method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/groups/{group}'].head update: x-apievangelist-phrasing: intent: Check whether a group has any connections effect: read questions: - Does a group in my hub currently have anyone connected to it? - Can I find out whether a group is empty before I send to it? instructions: - text: Check whether group {group} in hub {hub} has any connections. slots: group: path.group hub: path.hub - text: Tell me if anyone is currently in group {group} on hub {hub}. slots: group: path.group hub: path.hub method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/groups/{group}/:send'].post update: x-apievangelist-phrasing: intent: Send a message to a group of connections effect: write questions: - How do I send a message to every connection in one group? - Can I exclude some connections when messaging a group? instructions: - text: Send this message to group {group} in hub {hub}. slots: group: path.group hub: path.hub - text: Message group {group} in hub {hub} but skip connections {excluded}. slots: group: path.group hub: path.hub excluded: query.excluded method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/groups/{group}/connections/{connectionId}'].put update: x-apievangelist-phrasing: intent: Add a connection to a group effect: write questions: - Which call puts a single client connection into a group? - Can I join one connection to a group without adding all of that user's connections? instructions: - text: Add connection {connectionId} to group {group} in hub {hub}. slots: connectionId: path.connectionId group: path.group hub: path.hub - text: Join just connection {connectionId} to group {group} on hub {hub}. slots: connectionId: path.connectionId group: path.group hub: path.hub method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/groups/{group}/connections/{connectionId}'].delete update: x-apievangelist-phrasing: intent: Remove a connection from a group effect: destructive questions: - Can I take one connection out of a group without closing it? - What removes a single connection's group membership but leaves it connected? instructions: - text: Remove connection {connectionId} from group {group} in hub {hub}. slots: connectionId: path.connectionId group: path.group hub: path.hub - text: Take connection {connectionId} out of group {group} on hub {hub} but keep it connected. slots: connectionId: path.connectionId group: path.group hub: path.hub method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/users/{userId}'].head update: x-apievangelist-phrasing: intent: Check whether a user has any live connections effect: read questions: - Is a given user connected to my hub right now? - How can I see if a user ID has at least one open connection? instructions: - text: Check whether user {userId} has any connections in hub {hub}. slots: userId: path.userId hub: path.hub - text: Tell me if user {userId} is online on hub {hub}. slots: userId: path.userId hub: path.hub method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/users/{userId}/:send'].post update: x-apievangelist-phrasing: intent: Send a message to all of a user's connections effect: write questions: - Can I reach a specific user on all their devices with one send? - Can I address a message by user ID instead of connection ID? instructions: - text: Send this message to user {userId} in hub {hub}. slots: userId: path.userId hub: path.hub - text: Deliver this payload to every device of user {userId} on hub {hub}. slots: userId: path.userId hub: path.hub method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/users/{userId}/groups/{group}'].put update: x-apievangelist-phrasing: intent: Add a user to a group effect: write questions: - How do I add a user and all their connections to a group? - Can I join a user to a group by user ID? instructions: - text: Add user {userId} to group {group} in hub {hub}. slots: userId: path.userId group: path.group hub: path.hub - text: Put user {userId} and all their connections into group {group} on hub {hub}. slots: userId: path.userId group: path.group hub: path.hub method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/users/{userId}/groups/{group}'].delete update: x-apievangelist-phrasing: intent: Remove a user from one group effect: destructive questions: - Is it possible to remove a user from just one group? - What takes a user out of a single group but keeps their other memberships? instructions: - text: Remove user {userId} from group {group} in hub {hub}. slots: userId: path.userId group: path.group hub: path.hub - text: Take user {userId} out of only group {group} on hub {hub}. slots: userId: path.userId group: path.group hub: path.hub method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/users/{userId}/groups'].delete update: x-apievangelist-phrasing: intent: Remove a user from every group effect: destructive questions: - What strips a user out of all their groups at once? - Can I clear every group membership for a user in one call? instructions: - text: Remove user {userId} from all groups in hub {hub}. slots: userId: path.userId hub: path.hub - text: Clear every group membership of user {userId} on hub {hub}. slots: userId: path.userId hub: path.hub method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/permissions/{permission}/connections/{connectionId}'].put update: x-apievangelist-phrasing: intent: Grant a permission to a connection effect: write questions: - How do I let a connection join or send to a specific group? - Can I scope a granted permission to one target group name? instructions: - text: Grant permission {permission} to connection {connectionId} in hub {hub}. slots: permission: path.permission connectionId: path.connectionId hub: path.hub - text: Give connection {connectionId} in hub {hub} the {permission} permission on group {targetName}. slots: connectionId: path.connectionId hub: path.hub permission: path.permission targetName: query.targetName method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/permissions/{permission}/connections/{connectionId}'].delete update: x-apievangelist-phrasing: intent: Revoke a permission from a connection effect: destructive questions: - Can I take away a connection's right to send to a group? - Can I revoke a permission for just one target group? instructions: - text: Revoke permission {permission} from connection {connectionId} in hub {hub}. slots: permission: path.permission connectionId: path.connectionId hub: path.hub - text: Remove the {permission} permission on group {targetName} from connection {connectionId} in hub {hub}. slots: permission: path.permission targetName: query.targetName connectionId: path.connectionId hub: path.hub method: generated generated: '2026-10-01' - target: $.paths['/api/hubs/{hub}/permissions/{permission}/connections/{connectionId}'].head update: x-apievangelist-phrasing: intent: Check whether a connection holds a permission effect: read questions: - Does this connection have permission to join a particular group? - How can I verify what a connection is allowed to do before it acts? instructions: - text: Check if connection {connectionId} in hub {hub} has permission {permission}. slots: connectionId: path.connectionId hub: path.hub permission: path.permission - text: Check whether connection {connectionId} in hub {hub} holds {permission} on group {targetName}. slots: connectionId: path.connectionId hub: path.hub permission: path.permission targetName: query.targetName method: generated generated: '2026-10-01' - target: $.paths['/providers/Microsoft.SignalRService/operations'].get update: x-apievangelist-phrasing: intent: List SignalR Service provider operations effect: read questions: - Which REST operations does the Microsoft.SignalRService provider expose? - Where can I see every management action available for SignalR Service resources? instructions: - text: List all available Microsoft.SignalRService REST operations. - text: Show the management actions available for SignalR Service and Web PubSub resources. method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/providers/Microsoft.SignalRService/locations/{location}/checkNameAvailability'].post update: x-apievangelist-phrasing: intent: Check if a Web PubSub name is available effect: read questions: - Is the Web PubSub resource name I want already taken in a region? - Will my chosen service name pass validation before I create it? instructions: - text: Check whether name {name} of type {type} is available in {location}. slots: name: requestBody.name type: requestBody.type location: path.location - text: Validate that {name} ({type}) is free to use as a service name in region {location}. slots: name: requestBody.name type: requestBody.type location: path.location method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/providers/Microsoft.SignalRService/locations/{location}/usages'].get update: x-apievangelist-phrasing: intent: List SignalR Service quota usage by region effect: read questions: - How close am I to my SignalR Service resource quota in a region? - What usage quotas apply to Web PubSub in a given location? instructions: - text: Show resource usage quotas for location {location}. slots: location: path.location - text: Tell me how close I am to my SignalR Service quotas in {location}. slots: location: path.location method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/providers/Microsoft.SignalRService/webPubSub'].get update: x-apievangelist-phrasing: intent: List Web PubSub services in a subscription effect: read questions: - What Web PubSub services exist across my whole subscription? - Can I see every Web PubSub instance regardless of resource group? instructions: - text: List all Web PubSub services in my subscription. - text: Show every Web PubSub instance across the subscription. method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub'].get update: x-apievangelist-phrasing: intent: List Web PubSub services in a resource group effect: read questions: - Which Web PubSub services live in a particular resource group? - Can I list just the Web PubSub resources in one resource group? instructions: - text: List the Web PubSub services in this resource group. - text: Show only the Web PubSub resources in this resource group. method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}'].get update: x-apievangelist-phrasing: intent: Get a Web PubSub service effect: read questions: - Where can I look up the properties of one Web PubSub service? - What SKU and settings is my Web PubSub resource running with? instructions: - text: Get Web PubSub service {resourceName}. slots: resourceName: path.resourceName - text: Show the SKU and settings of Web PubSub resource {resourceName}. slots: resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}'].put update: x-apievangelist-phrasing: intent: Create or replace a Web PubSub service effect: write questions: - How do I provision a new Web PubSub service? - Can I choose the SKU and managed identity when creating Web PubSub? instructions: - text: Create Web PubSub service {resourceName} with SKU {sku}. slots: resourceName: path.resourceName sku: requestBody.sku - text: Provision Web PubSub {resourceName} with identity {identity}. slots: resourceName: path.resourceName identity: requestBody.identity method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}'].delete update: x-apievangelist-phrasing: intent: Delete a Web PubSub service effect: destructive questions: - Can I tear down a Web PubSub service I no longer need? - What happens to hubs when I delete the whole Web PubSub resource? instructions: - text: Delete Web PubSub service {resourceName}. slots: resourceName: path.resourceName - text: Tear down the Web PubSub resource {resourceName} completely. slots: resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}'].patch update: x-apievangelist-phrasing: intent: Update an existing Web PubSub service effect: write questions: - How do I change the SKU of an existing Web PubSub service? - Can I patch properties on a Web PubSub resource without recreating it? instructions: - text: Change the SKU of existing Web PubSub {resourceName} to {sku}. slots: resourceName: path.resourceName sku: requestBody.sku - text: Patch the properties of Web PubSub {resourceName}. slots: resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/customCertificates'].get update: x-apievangelist-phrasing: intent: List custom certificates on Web PubSub effect: read questions: - Which custom TLS certificates are attached to my Web PubSub service? - What certificates have been uploaded for my custom domains? instructions: - text: List custom certificates for Web PubSub {resourceName}. slots: resourceName: path.resourceName - text: Show the TLS certificates uploaded to {resourceName} for custom domains. slots: resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/customCertificates/{certificateName}'].get update: x-apievangelist-phrasing: intent: Get a custom certificate effect: read questions: - Can I inspect a single custom certificate on Web PubSub? - Where is a named certificate sourced from in Key Vault? instructions: - text: Get certificate {certificateName} on Web PubSub {resourceName}. slots: certificateName: path.certificateName resourceName: path.resourceName - text: Show the Key Vault source of certificate {certificateName} on {resourceName}. slots: certificateName: path.certificateName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/customCertificates/{certificateName}'].put update: x-apievangelist-phrasing: intent: Add or replace a custom certificate effect: write questions: - How do I upload a custom certificate for my Web PubSub domain? - Can I point Web PubSub at a certificate stored in Key Vault? instructions: - text: Add certificate {certificateName} to Web PubSub {resourceName} with properties {properties}. slots: certificateName: path.certificateName resourceName: path.resourceName properties: requestBody.properties - text: Upload a Key Vault certificate as {certificateName} on {resourceName}. slots: certificateName: path.certificateName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/customCertificates/{certificateName}'].delete update: x-apievangelist-phrasing: intent: Delete a custom certificate effect: destructive questions: - Is there a way to remove a custom certificate from Web PubSub? - Can I delete a certificate I no longer use for a domain? instructions: - text: Delete certificate {certificateName} from Web PubSub {resourceName}. slots: certificateName: path.certificateName resourceName: path.resourceName - text: Remove the unused custom certificate {certificateName} from {resourceName}. slots: certificateName: path.certificateName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/customDomains'].get update: x-apievangelist-phrasing: intent: List custom domains on Web PubSub effect: read questions: - Which custom domains are mapped to my Web PubSub service? - What hostnames are configured for my Web PubSub service? instructions: - text: List custom domains for Web PubSub {resourceName}. slots: resourceName: path.resourceName - text: Show the hostnames mapped to Web PubSub {resourceName}. slots: resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/customDomains/{name}'].get update: x-apievangelist-phrasing: intent: Get a custom domain effect: read questions: - What are the settings of one custom domain on Web PubSub? - Which certificate is a specific custom domain using? instructions: - text: Get custom domain {name} on Web PubSub {resourceName}. slots: name: path.name resourceName: path.resourceName - text: Show which certificate custom domain {name} uses on {resourceName}. slots: name: path.name resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/customDomains/{name}'].put update: x-apievangelist-phrasing: intent: Add or update a custom domain effect: write questions: - How do I map my own hostname to a Web PubSub service? - Can I bind a custom domain to an uploaded certificate? instructions: - text: Add custom domain {name} to Web PubSub {resourceName} with properties {properties}. slots: name: path.name resourceName: path.resourceName properties: requestBody.properties - text: Map my hostname {name} onto Web PubSub {resourceName}. slots: name: path.name resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/customDomains/{name}'].delete update: x-apievangelist-phrasing: intent: Remove a custom domain effect: destructive questions: - Can I unmap a custom hostname from Web PubSub? - Can I delete one custom domain and keep the others? instructions: - text: Delete custom domain {name} from Web PubSub {resourceName}. slots: name: path.name resourceName: path.resourceName - text: Unmap hostname {name} from Web PubSub {resourceName}. slots: name: path.name resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/hubs'].get update: x-apievangelist-phrasing: intent: List hub settings on a Web PubSub service effect: read questions: - Which hubs are configured on my Web PubSub service? - Where can I review event handler settings for every hub? instructions: - text: List hub settings for Web PubSub {resourceName}. slots: resourceName: path.resourceName - text: Show the event handler setup of every hub on {resourceName}. slots: resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/hubs/{hubName}'].get update: x-apievangelist-phrasing: intent: Get one hub's settings effect: read questions: - What event handlers are configured for a single hub? - Does a particular hub allow anonymous connections? instructions: - text: Get the settings of hub {hubName} on Web PubSub {resourceName}. slots: hubName: path.hubName resourceName: path.resourceName - text: Show the event handlers and anonymous connect policy of hub {hubName} on {resourceName}. slots: hubName: path.hubName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/hubs/{hubName}'].put update: x-apievangelist-phrasing: intent: Create or update a hub's settings effect: write questions: - How do I configure event handlers for a new hub? - Can I change the upstream settings on an existing hub? instructions: - text: Configure hub {hubName} on Web PubSub {resourceName} with settings {properties}. slots: hubName: path.hubName resourceName: path.resourceName properties: requestBody.properties - text: Set up hub {hubName} on {resourceName} with its event handlers. slots: hubName: path.hubName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/hubs/{hubName}'].delete update: x-apievangelist-phrasing: intent: Delete a hub's settings effect: destructive questions: - Can I remove a hub's configuration from Web PubSub? - Can I delete the event handler setup for one hub? instructions: - text: Delete hub setting {hubName} from Web PubSub {resourceName}. slots: hubName: path.hubName resourceName: path.resourceName - text: Remove the configuration of hub {hubName} from {resourceName}. slots: hubName: path.hubName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/listKeys'].post update: x-apievangelist-phrasing: intent: Get Web PubSub access keys effect: read questions: - Where do I get the connection string and access keys for Web PubSub? - Can I read the primary and secondary keys of my service? instructions: - text: Get the access keys for Web PubSub {resourceName}. slots: resourceName: path.resourceName - text: Show the connection strings for Web PubSub {resourceName}. slots: resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/privateEndpointConnections'].get update: x-apievangelist-phrasing: intent: List private endpoint connections effect: read questions: - Which private endpoints are connected to my Web PubSub service? - Are there pending private endpoint requests waiting on my service? instructions: - text: List private endpoint connections for Web PubSub {resourceName}. slots: resourceName: path.resourceName - text: Show pending and approved private endpoints on {resourceName}. slots: resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}'].get update: x-apievangelist-phrasing: intent: Get a private endpoint connection effect: read questions: - What is the approval state of one private endpoint connection? - What details can I see for a single private endpoint linked to Web PubSub? instructions: - text: Get private endpoint connection {privateEndpointConnectionName} on Web PubSub {resourceName}. slots: privateEndpointConnectionName: path.privateEndpointConnectionName resourceName: path.resourceName - text: Show the approval state of the private endpoint linked to {resourceName}. slots: resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}'].put update: x-apievangelist-phrasing: intent: Approve or reject a private endpoint connection effect: write questions: - How do I approve a private endpoint request on Web PubSub? - Can I reject a private endpoint connection by updating its state? instructions: - text: Approve private endpoint connection {privateEndpointConnectionName} on Web PubSub {resourceName}. slots: privateEndpointConnectionName: path.privateEndpointConnectionName resourceName: path.resourceName - text: Set the state of Web PubSub connection {privateEndpointConnectionName} on {resourceName} to {properties}. slots: privateEndpointConnectionName: path.privateEndpointConnectionName resourceName: path.resourceName properties: requestBody.properties method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}'].delete update: x-apievangelist-phrasing: intent: Delete a private endpoint connection effect: destructive questions: - Is it possible to remove a private endpoint connection from Web PubSub? - Can I disconnect a private endpoint I no longer trust? instructions: - text: Delete private endpoint connection {privateEndpointConnectionName} from Web PubSub {resourceName}. slots: privateEndpointConnectionName: path.privateEndpointConnectionName resourceName: path.resourceName - text: Disconnect the untrusted private endpoint from {resourceName}. slots: resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/privateLinkResources'].get update: x-apievangelist-phrasing: intent: List private link resources to create effect: read questions: - Which private link group IDs do I need to set up a private endpoint for Web PubSub? - What private link resources does Web PubSub support? instructions: - text: List private link resources for Web PubSub {resourceName}. slots: resourceName: path.resourceName - text: Show the private link group IDs I need for a private endpoint to {resourceName}. slots: resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/regenerateKey'].post update: x-apievangelist-phrasing: intent: Regenerate a Web PubSub access key effect: destructive questions: - How do I rotate the primary key on Web PubSub? - Can I regenerate both primary and secondary keys at once? instructions: - text: Regenerate the {keyType} key for Web PubSub {resourceName}. slots: keyType: requestBody.keyType resourceName: path.resourceName - text: Rotate the access key on Web PubSub {resourceName}. slots: resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/replicas'].get update: x-apievangelist-phrasing: intent: List replicas of a Web PubSub service effect: read questions: - Which regional replicas does my Web PubSub service have? - Where are all the geo-replicas of my service? instructions: - text: List replicas of Web PubSub {resourceName}. slots: resourceName: path.resourceName - text: Show the geo-replicas of Web PubSub {resourceName}. slots: resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/replicas/{replicaName}'].get update: x-apievangelist-phrasing: intent: Get a Web PubSub replica effect: read questions: - What properties does one Web PubSub replica have? - What SKU is a specific replica running? instructions: - text: Get replica {replicaName} of Web PubSub {resourceName}. slots: replicaName: path.replicaName resourceName: path.resourceName - text: Show the SKU that replica {replicaName} of {resourceName} runs. slots: replicaName: path.replicaName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/replicas/{replicaName}'].put update: x-apievangelist-phrasing: intent: Create or replace a Web PubSub replica effect: write questions: - How do I add a replica of my Web PubSub service in another region? - Can I set the SKU when creating a replica? instructions: - text: Create replica {replicaName} for Web PubSub {resourceName} with SKU {sku}. slots: replicaName: path.replicaName resourceName: path.resourceName sku: requestBody.sku - text: Add a new regional replica {replicaName} to {resourceName}. slots: replicaName: path.replicaName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/replicas/{replicaName}'].delete update: x-apievangelist-phrasing: intent: Delete a Web PubSub replica effect: destructive questions: - Is it possible to remove a regional replica from Web PubSub? - Can I delete one replica and keep the primary service? instructions: - text: Delete replica {replicaName} of Web PubSub {resourceName}. slots: replicaName: path.replicaName resourceName: path.resourceName - text: Remove regional replica {replicaName} but keep {resourceName}. slots: replicaName: path.replicaName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/replicas/{replicaName}'].patch update: x-apievangelist-phrasing: intent: Update an existing Web PubSub replica effect: write questions: - How do I scale an existing replica to a different SKU? - Can I patch properties on a replica without recreating it? instructions: - text: Change existing replica {replicaName} of Web PubSub {resourceName} to SKU {sku}. slots: replicaName: path.replicaName resourceName: path.resourceName sku: requestBody.sku - text: Patch settings of replica {replicaName} of {resourceName} in place. slots: replicaName: path.replicaName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/replicas/{replicaName}/restart'].post update: x-apievangelist-phrasing: intent: Restart a Web PubSub replica effect: write questions: - Is there a way to restart just one replica of my service? - Can I bounce a replica without restarting the primary? instructions: - text: Restart replica {replicaName} of Web PubSub {resourceName}. slots: replicaName: path.replicaName resourceName: path.resourceName - text: Bounce only replica {replicaName} of {resourceName}. slots: replicaName: path.replicaName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/replicas/{replicaName}/sharedPrivateLinkResources'].get update: x-apievangelist-phrasing: intent: List a replica's shared private link resources effect: read questions: - Which shared private links has a specific replica established? - What outbound private links are configured on one replica? instructions: - text: List shared private link resources on replica {replicaName} of Web PubSub {resourceName}. slots: replicaName: path.replicaName resourceName: path.resourceName - text: Show outbound private links configured on replica {replicaName} of {resourceName}. slots: replicaName: path.replicaName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/replicas/{replicaName}/sharedPrivateLinkResources/{sharedPrivateLinkResourceName}'].get update: x-apievangelist-phrasing: intent: Get a replica's shared private link resource effect: read questions: - What is the status of a shared private link on one replica? - Can I inspect a single replica-level shared private link? instructions: - text: Get shared private link {sharedPrivateLinkResourceName} on replica {replicaName} of {resourceName}. slots: sharedPrivateLinkResourceName: path.sharedPrivateLinkResourceName replicaName: path.replicaName resourceName: path.resourceName - text: Show the approval status of replica link {sharedPrivateLinkResourceName} on {replicaName} of {resourceName}. slots: sharedPrivateLinkResourceName: path.sharedPrivateLinkResourceName replicaName: path.replicaName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/replicas/{replicaName}/sharedPrivateLinkResources/{sharedPrivateLinkResourceName}'].put update: x-apievangelist-phrasing: intent: Create a shared private link on a replica effect: write questions: - Can a replica reach my function app over a private link? - Can I configure a shared private link per replica? instructions: - text: Create shared private link {sharedPrivateLinkResourceName} on replica {replicaName} of {resourceName}. slots: sharedPrivateLinkResourceName: path.sharedPrivateLinkResourceName replicaName: path.replicaName resourceName: path.resourceName - text: Let replica {replicaName} of {resourceName} reach an upstream privately via link {sharedPrivateLinkResourceName}. slots: sharedPrivateLinkResourceName: path.sharedPrivateLinkResourceName replicaName: path.replicaName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/replicas/{replicaName}/skus'].get update: x-apievangelist-phrasing: intent: List available SKUs for a replica effect: read questions: - Which SKUs can a specific replica be scaled to? - What unit counts are available for a Web PubSub replica? instructions: - text: List available SKUs for replica {replicaName} of Web PubSub {resourceName}. slots: replicaName: path.replicaName resourceName: path.resourceName - text: Show the unit counts replica {replicaName} of {resourceName} can scale to. slots: replicaName: path.replicaName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/restart'].post update: x-apievangelist-phrasing: intent: Restart a Web PubSub service effect: write questions: - How do I restart my whole Web PubSub service? - Will restarting the service drop connected clients? instructions: - text: Restart Web PubSub service {resourceName}. slots: resourceName: path.resourceName - text: Bounce the whole Web PubSub service {resourceName}. slots: resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/sharedPrivateLinkResources'].get update: x-apievangelist-phrasing: intent: List shared private link resources effect: read questions: - Which outbound shared private links has my Web PubSub service set up? - Which shared private links exist on the primary service? instructions: - text: List the shared private links Web PubSub {resourceName} uses for outbound traffic. slots: resourceName: path.resourceName - text: Show every service-level outbound private link on {resourceName}. slots: resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/sharedPrivateLinkResources/{sharedPrivateLinkResourceName}'].get update: x-apievangelist-phrasing: intent: Get a shared private link resource effect: read questions: - Has my shared private link to an upstream been approved yet? - Can I view one service-level shared private link? instructions: - text: Get shared private link {sharedPrivateLinkResourceName} on Web PubSub {resourceName}. slots: sharedPrivateLinkResourceName: path.sharedPrivateLinkResourceName resourceName: path.resourceName - text: Show whether service link {sharedPrivateLinkResourceName} on {resourceName} is approved. slots: sharedPrivateLinkResourceName: path.sharedPrivateLinkResourceName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/sharedPrivateLinkResources/{sharedPrivateLinkResourceName}'].put update: x-apievangelist-phrasing: intent: Create or update a shared private link effect: write questions: - How do I route Web PubSub event handlers to an upstream over a private link? - Can I request a shared private link to a private resource? instructions: - text: Create shared private link {sharedPrivateLinkResourceName} on Web PubSub {resourceName}. slots: sharedPrivateLinkResourceName: path.sharedPrivateLinkResourceName resourceName: path.resourceName - text: Route event handlers of {resourceName} to an upstream privately via link {sharedPrivateLinkResourceName}. slots: sharedPrivateLinkResourceName: path.sharedPrivateLinkResourceName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/sharedPrivateLinkResources/{sharedPrivateLinkResourceName}'].delete update: x-apievangelist-phrasing: intent: Delete a shared private link effect: destructive questions: - Is there a way to remove a shared private link from Web PubSub? - Can I delete an outbound private link I set up for event handlers? instructions: - text: Delete shared private link {sharedPrivateLinkResourceName} from Web PubSub {resourceName}. slots: sharedPrivateLinkResourceName: path.sharedPrivateLinkResourceName resourceName: path.resourceName - text: Remove the event-handler private link {sharedPrivateLinkResourceName} from {resourceName}. slots: sharedPrivateLinkResourceName: path.sharedPrivateLinkResourceName resourceName: path.resourceName method: generated generated: '2026-10-01' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SignalRService/webPubSub/{resourceName}/skus'].get update: x-apievangelist-phrasing: intent: List available SKUs for a Web PubSub service effect: read questions: - Which pricing tiers can I move my Web PubSub service to? - What SKUs and capacities are available for my service? instructions: - text: List available SKUs for Web PubSub {resourceName}. slots: resourceName: path.resourceName - text: Show the pricing tiers Web PubSub {resourceName} can move to. slots: resourceName: path.resourceName method: generated generated: '2026-10-01'