Share via


Microsoft.SignalRService signalR/sharedPrivateLinkResources

Bicep resource definition

The signalR/sharedPrivateLinkResources resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.SignalRService/signalR/sharedPrivateLinkResources resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.SignalRService/signalR/sharedPrivateLinkResources@2025-01-01-preview' = {
  parent: resourceSymbolicName
  name: 'string'
  properties: {
    fqdns: [
      'string'
    ]
    groupId: 'string'
    privateLinkResourceId: 'string'
    requestMessage: 'string'
  }
}

Property Values

Microsoft.SignalRService/signalR/sharedPrivateLinkResources

Name Description Value
name The resource name string

Constraints:
Min length = 3
Max length = 63
Pattern = ^[a-zA-Z][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]$ (required)
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: signalR
properties Describes the properties of an existing Shared Private Link Resource SharedPrivateLinkResourceProperties

SharedPrivateLinkResourceProperties

Name Description Value
fqdns A list of FQDNs for third party private link service string[]
groupId The group id from the provider of resource the shared private link resource is for string (required)
privateLinkResourceId The resource id of the resource the shared private link resource is for string (required)
requestMessage The request message for requesting approval of the shared private link resource string

Usage Examples

Bicep Samples

A basic example of deploying Shared Private Link Resource for a Signalr service.

param resourceName string = 'acctest0001'
param location string = 'westeurope'

resource signalR 'Microsoft.SignalRService/signalR@2023-02-01' = {
  name: resourceName
  location: location
  properties: {
    cors: {}
    disableAadAuth: false
    disableLocalAuth: false
    features: [
      {
        flag: 'ServiceMode'
        value: 'Default'
      }
      {
        flag: 'EnableConnectivityLogs'
        value: 'False'
      }
      {
        flag: 'EnableMessagingLogs'
        value: 'False'
      }
      {
        flag: 'EnableLiveTrace'
        value: 'False'
      }
    ]
    publicNetworkAccess: 'Enabled'
    resourceLogConfiguration: {
      categories: [
        {
          enabled: 'false'
          name: 'MessagingLogs'
        }
        {
          enabled: 'false'
          name: 'ConnectivityLogs'
        }
        {
          enabled: 'false'
          name: 'HttpRequestLogs'
        }
      ]
    }
    serverless: {
      connectionTimeoutInSeconds: 30
    }
    tls: {
      clientCertEnabled: false
    }
    upstream: {
      templates: []
    }
  }
  sku: {
    capacity: 1
    name: 'Standard_S1'
  }
}

resource vault 'Microsoft.KeyVault/vaults@2021-10-01' = {
  name: resourceName
  location: location
  properties: {
    accessPolicies: [
      {
        objectId: deployer().objectId
        permissions: {
          certificates: [
            'ManageContacts'
          ]
          keys: [
            'Create'
          ]
          secrets: [
            'Set'
          ]
          storage: []
        }
        tenantId: deployer().tenantId
      }
    ]
    createMode: 'default'
    enableRbacAuthorization: false
    enableSoftDelete: true
    enabledForDeployment: false
    enabledForDiskEncryption: false
    enabledForTemplateDeployment: false
    publicNetworkAccess: 'Enabled'
    sku: {
      family: 'A'
      name: 'standard'
    }
    softDeleteRetentionInDays: 7
    tenantId: deployer().tenantId
  }
}

resource sharedPrivateLinkResource 'Microsoft.SignalRService/signalR/sharedPrivateLinkResources@2023-02-01' = {
  parent: signalR
  name: resourceName
  properties: {
    groupId: 'vault'
    privateLinkResourceId: vault.id
    requestMessage: 'please approve'
  }
}

ARM template resource definition

The signalR/sharedPrivateLinkResources resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.SignalRService/signalR/sharedPrivateLinkResources resource, add the following JSON to your template.

{
  "type": "Microsoft.SignalRService/signalR/sharedPrivateLinkResources",
  "apiVersion": "2025-01-01-preview",
  "name": "string",
  "properties": {
    "fqdns": [ "string" ],
    "groupId": "string",
    "privateLinkResourceId": "string",
    "requestMessage": "string"
  }
}

Property Values

Microsoft.SignalRService/signalR/sharedPrivateLinkResources

Name Description Value
apiVersion The api version '2025-01-01-preview'
name The resource name string

Constraints:
Min length = 3
Max length = 63
Pattern = ^[a-zA-Z][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]$ (required)
properties Describes the properties of an existing Shared Private Link Resource SharedPrivateLinkResourceProperties
type The resource type 'Microsoft.SignalRService/signalR/sharedPrivateLinkResources'

SharedPrivateLinkResourceProperties

Name Description Value
fqdns A list of FQDNs for third party private link service string[]
groupId The group id from the provider of resource the shared private link resource is for string (required)
privateLinkResourceId The resource id of the resource the shared private link resource is for string (required)
requestMessage The request message for requesting approval of the shared private link resource string

Usage Examples

Terraform (AzAPI provider) resource definition

The signalR/sharedPrivateLinkResources resource type can be deployed with operations that target:

  • Resource groups

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.SignalRService/signalR/sharedPrivateLinkResources resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.SignalRService/signalR/sharedPrivateLinkResources@2025-01-01-preview"
  name = "string"
  parent_id = "string"
  body = {
    properties = {
      fqdns = [
        "string"
      ]
      groupId = "string"
      privateLinkResourceId = "string"
      requestMessage = "string"
    }
  }
}

Property Values

Microsoft.SignalRService/signalR/sharedPrivateLinkResources

Name Description Value
name The resource name string

Constraints:
Min length = 3
Max length = 63
Pattern = ^[a-zA-Z][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]$ (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: signalR
properties Describes the properties of an existing Shared Private Link Resource SharedPrivateLinkResourceProperties
type The resource type "Microsoft.SignalRService/signalR/sharedPrivateLinkResources@2025-01-01-preview"

SharedPrivateLinkResourceProperties

Name Description Value
fqdns A list of FQDNs for third party private link service string[]
groupId The group id from the provider of resource the shared private link resource is for string (required)
privateLinkResourceId The resource id of the resource the shared private link resource is for string (required)
requestMessage The request message for requesting approval of the shared private link resource string

Usage Examples

Terraform Samples

A basic example of deploying Shared Private Link Resource for a Signalr service.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
    azurerm = {
      source = "hashicorp/azurerm"
    }
  }
}

provider "azurerm" {
  features {
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westeurope"
}

data "azurerm_client_config" "current" {
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "signalR" {
  type      = "Microsoft.SignalRService/signalR@2023-02-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      cors = {
      }
      disableAadAuth   = false
      disableLocalAuth = false
      features = [
        {
          flag  = "ServiceMode"
          value = "Default"
        },
        {
          flag  = "EnableConnectivityLogs"
          value = "False"
        },
        {
          flag  = "EnableMessagingLogs"
          value = "False"
        },
        {
          flag  = "EnableLiveTrace"
          value = "False"
        },
      ]
      publicNetworkAccess = "Enabled"
      resourceLogConfiguration = {
        categories = [
          {
            enabled = "false"
            name    = "MessagingLogs"
          },
          {
            enabled = "false"
            name    = "ConnectivityLogs"
          },
          {
            enabled = "false"
            name    = "HttpRequestLogs"
          },
        ]
      }
      serverless = {
        connectionTimeoutInSeconds = 30
      }
      tls = {
        clientCertEnabled = false
      }
      upstream = {
        templates = [
        ]
      }
    }
    sku = {
      capacity = 1
      name     = "Standard_S1"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "vault" {
  type      = "Microsoft.KeyVault/vaults@2021-10-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      accessPolicies = [
        {
          objectId = data.azurerm_client_config.current.object_id
          permissions = {
            certificates = [
              "ManageContacts",
            ]
            keys = [
              "Create",
            ]
            secrets = [
              "Set",
            ]
            storage = [
            ]
          }
          tenantId = data.azurerm_client_config.current.tenant_id
        },
      ]
      createMode                   = "default"
      enableRbacAuthorization      = false
      enableSoftDelete             = true
      enabledForDeployment         = false
      enabledForDiskEncryption     = false
      enabledForTemplateDeployment = false
      publicNetworkAccess          = "Enabled"
      sku = {
        family = "A"
        name   = "standard"
      }
      softDeleteRetentionInDays = 7
      tenantId                  = data.azurerm_client_config.current.tenant_id
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "sharedPrivateLinkResource" {
  type      = "Microsoft.SignalRService/signalR/sharedPrivateLinkResources@2023-02-01"
  parent_id = azapi_resource.signalR.id
  name      = var.resource_name
  body = {
    properties = {
      groupId               = "vault"
      privateLinkResourceId = azapi_resource.vault.id
      requestMessage        = "please approve"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}