Microsoft.AppPlatform Spring/apps

Bicep resource definition

The Spring/apps 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.AppPlatform/Spring/apps resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.AppPlatform/Spring/apps@2024-05-01-preview' = {
  parent: resourceSymbolicName
  identity: {
    principalId: 'string'
    tenantId: 'string'
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  location: 'string'
  name: 'string'
  properties: {
    addonConfigs: {
      {customized property}: any(...)
    }
    customPersistentDisks: [
      {
        customPersistentDiskProperties: {
          enableSubPath: bool
          mountOptions: [
            'string'
          ]
          mountPath: 'string'
          readOnly: bool
          type: 'string'
          // For remaining properties, see CustomPersistentDiskProperties objects
        }
        storageId: 'string'
      }
    ]
    enableEndToEndTLS: bool
    httpsOnly: bool
    ingressSettings: {
      backendProtocol: 'string'
      clientAuth: {
        certificates: [
          'string'
        ]
      }
      readTimeoutInSeconds: int
      sendTimeoutInSeconds: int
      sessionAffinity: 'string'
      sessionCookieMaxAge: int
    }
    loadedCertificates: [
      {
        loadTrustStore: bool
        resourceId: 'string'
      }
    ]
    persistentDisk: {
      mountPath: 'string'
      sizeInGB: int
    }
    public: bool
    secrets: [
      {
        name: 'string'
        value: 'string'
      }
    ]
    temporaryDisk: {
      mountPath: 'string'
      sizeInGB: int
    }
    testEndpointAuthState: 'string'
    vnetAddons: {
      publicEndpoint: bool
    }
    workloadProfileName: 'string'
  }
}

CustomPersistentDiskProperties objects

Set the type property to specify the type of object.

For AzureFileVolume, use:

{
  shareName: 'string'
  type: 'AzureFileVolume'
}

Property Values

AppResourceProperties

Name Description Value
addonConfigs Collection of addons AppResourcePropertiesAddonConfigs
customPersistentDisks List of custom persistent disks CustomPersistentDiskResource[]
enableEndToEndTLS Indicate if end to end TLS is enabled. bool
httpsOnly Indicate if only https is allowed. bool
ingressSettings App ingress settings payload. IngressSettings
loadedCertificates Collection of loaded certificates LoadedCertificate[]
persistentDisk Persistent disk settings PersistentDisk
public Indicates whether the App exposes public endpoint bool
secrets Collection of auth secrets Secret[]
temporaryDisk Temporary disk settings TemporaryDisk
testEndpointAuthState State of test endpoint auth. 'Disabled'
'Enabled'
vnetAddons Additional App settings in vnet injection instance AppVNetAddons
workloadProfileName The workload profile used for this app. Supported for Consumption + Dedicated plan. string

AppResourcePropertiesAddonConfigs

Name Description Value

AppVNetAddons

Name Description Value
publicEndpoint Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. bool

AzureFileVolume

Name Description Value
shareName The share name of the Azure File share. string
type The type of the underlying resource to mount as a persistent disk. 'AzureFileVolume' (required)

CustomPersistentDiskProperties

Name Description Value
enableSubPath If set to true, it will create and mount a dedicated directory for every individual app instance. bool
mountOptions These are the mount options for a persistent disk. string[]
mountPath The mount path of the persistent disk. string (required)
readOnly Indicates whether the persistent disk is a readOnly one. bool
type Set to 'AzureFileVolume' for type AzureFileVolume. 'AzureFileVolume' (required)

CustomPersistentDiskResource

Name Description Value
customPersistentDiskProperties Properties of the custom persistent disk resource payload. CustomPersistentDiskProperties
storageId The resource id of Azure Spring Apps Storage resource. string (required)

IngressSettings

Name Description Value
backendProtocol How ingress should communicate with this app backend service. 'Default'
'GRPC'
clientAuth Client-Certification Authentication. IngressSettingsClientAuth
readTimeoutInSeconds Ingress read time out in seconds. int
sendTimeoutInSeconds Ingress send time out in seconds. int
sessionAffinity Type of the affinity, set this to Cookie to enable session affinity. 'Cookie'
'None'
sessionCookieMaxAge Time in seconds until the cookie expires. int

IngressSettingsClientAuth

Name Description Value
certificates Collection of certificate resource id. string[]

LoadedCertificate

Name Description Value
loadTrustStore Indicate whether the certificate will be loaded into default trust store, only work for Java runtime. bool
resourceId Resource Id of loaded certificate string (required)

ManagedIdentityProperties

Name Description Value
principalId Principal Id of system-assigned managed identity. string
tenantId Tenant Id of system-assigned managed identity. string
type Type of the managed identity 'None'
'SystemAssigned'
'SystemAssigned,UserAssigned'
'UserAssigned'
userAssignedIdentities Properties of user-assigned managed identities UserAssignedManagedIdentities

Microsoft.AppPlatform/Spring/apps

Name Description Value
identity The Managed Identity type of the app resource ManagedIdentityProperties
location The GEO location of the application, always the same with its parent resource string
name The resource name string (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: Spring
properties Properties of the App resource AppResourceProperties

PersistentDisk

Name Description Value
mountPath Mount path of the persistent disk string
sizeInGB Size of the persistent disk in GB int

Constraints:
Min value = 0
Max value = 50

Secret

Name Description Value
name Secret Name. string
value Secret Value. string

Constraints:
Sensitive value. Pass in as a secure parameter.

TemporaryDisk

Name Description Value
mountPath Mount path of the temporary disk string
sizeInGB Size of the temporary disk in GB int

Constraints:
Min value = 0
Max value = 5

UserAssignedManagedIdentities

Name Description Value

UserAssignedManagedIdentity

Name Description Value

Usage Examples

Azure Quickstart Samples

The following Azure Quickstart templates contain Bicep samples for deploying this resource type.

Bicep File Description
Deploy a simple Azure Spring Apps microservice application This template deploys a simple Azure Spring Apps microservice application to run on Azure.

ARM template resource definition

The Spring/apps 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.AppPlatform/Spring/apps resource, add the following JSON to your template.

{
  "type": "Microsoft.AppPlatform/Spring/apps",
  "apiVersion": "2024-05-01-preview",
  "name": "string",
  "identity": {
    "principalId": "string",
    "tenantId": "string",
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {
      }
    }
  },
  "location": "string",
  "properties": {
    "addonConfigs": {
      "{customized property}": {}
    },
    "customPersistentDisks": [
      {
        "customPersistentDiskProperties": {
          "enableSubPath": "bool",
          "mountOptions": [ "string" ],
          "mountPath": "string",
          "readOnly": "bool",
          "type": "string"
          // For remaining properties, see CustomPersistentDiskProperties objects
        },
        "storageId": "string"
      }
    ],
    "enableEndToEndTLS": "bool",
    "httpsOnly": "bool",
    "ingressSettings": {
      "backendProtocol": "string",
      "clientAuth": {
        "certificates": [ "string" ]
      },
      "readTimeoutInSeconds": "int",
      "sendTimeoutInSeconds": "int",
      "sessionAffinity": "string",
      "sessionCookieMaxAge": "int"
    },
    "loadedCertificates": [
      {
        "loadTrustStore": "bool",
        "resourceId": "string"
      }
    ],
    "persistentDisk": {
      "mountPath": "string",
      "sizeInGB": "int"
    },
    "public": "bool",
    "secrets": [
      {
        "name": "string",
        "value": "string"
      }
    ],
    "temporaryDisk": {
      "mountPath": "string",
      "sizeInGB": "int"
    },
    "testEndpointAuthState": "string",
    "vnetAddons": {
      "publicEndpoint": "bool"
    },
    "workloadProfileName": "string"
  }
}

CustomPersistentDiskProperties objects

Set the type property to specify the type of object.

For AzureFileVolume, use:

{
  "shareName": "string",
  "type": "AzureFileVolume"
}

Property Values

AppResourceProperties

Name Description Value
addonConfigs Collection of addons AppResourcePropertiesAddonConfigs
customPersistentDisks List of custom persistent disks CustomPersistentDiskResource[]
enableEndToEndTLS Indicate if end to end TLS is enabled. bool
httpsOnly Indicate if only https is allowed. bool
ingressSettings App ingress settings payload. IngressSettings
loadedCertificates Collection of loaded certificates LoadedCertificate[]
persistentDisk Persistent disk settings PersistentDisk
public Indicates whether the App exposes public endpoint bool
secrets Collection of auth secrets Secret[]
temporaryDisk Temporary disk settings TemporaryDisk
testEndpointAuthState State of test endpoint auth. 'Disabled'
'Enabled'
vnetAddons Additional App settings in vnet injection instance AppVNetAddons
workloadProfileName The workload profile used for this app. Supported for Consumption + Dedicated plan. string

AppResourcePropertiesAddonConfigs

Name Description Value

AppVNetAddons

Name Description Value
publicEndpoint Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. bool

AzureFileVolume

Name Description Value
shareName The share name of the Azure File share. string
type The type of the underlying resource to mount as a persistent disk. 'AzureFileVolume' (required)

CustomPersistentDiskProperties

Name Description Value
enableSubPath If set to true, it will create and mount a dedicated directory for every individual app instance. bool
mountOptions These are the mount options for a persistent disk. string[]
mountPath The mount path of the persistent disk. string (required)
readOnly Indicates whether the persistent disk is a readOnly one. bool
type Set to 'AzureFileVolume' for type AzureFileVolume. 'AzureFileVolume' (required)

CustomPersistentDiskResource

Name Description Value
customPersistentDiskProperties Properties of the custom persistent disk resource payload. CustomPersistentDiskProperties
storageId The resource id of Azure Spring Apps Storage resource. string (required)

IngressSettings

Name Description Value
backendProtocol How ingress should communicate with this app backend service. 'Default'
'GRPC'
clientAuth Client-Certification Authentication. IngressSettingsClientAuth
readTimeoutInSeconds Ingress read time out in seconds. int
sendTimeoutInSeconds Ingress send time out in seconds. int
sessionAffinity Type of the affinity, set this to Cookie to enable session affinity. 'Cookie'
'None'
sessionCookieMaxAge Time in seconds until the cookie expires. int

IngressSettingsClientAuth

Name Description Value
certificates Collection of certificate resource id. string[]

LoadedCertificate

Name Description Value
loadTrustStore Indicate whether the certificate will be loaded into default trust store, only work for Java runtime. bool
resourceId Resource Id of loaded certificate string (required)

ManagedIdentityProperties

Name Description Value
principalId Principal Id of system-assigned managed identity. string
tenantId Tenant Id of system-assigned managed identity. string
type Type of the managed identity 'None'
'SystemAssigned'
'SystemAssigned,UserAssigned'
'UserAssigned'
userAssignedIdentities Properties of user-assigned managed identities UserAssignedManagedIdentities

Microsoft.AppPlatform/Spring/apps

Name Description Value
apiVersion The api version '2024-05-01-preview'
identity The Managed Identity type of the app resource ManagedIdentityProperties
location The GEO location of the application, always the same with its parent resource string
name The resource name string (required)
properties Properties of the App resource AppResourceProperties
type The resource type 'Microsoft.AppPlatform/Spring/apps'

PersistentDisk

Name Description Value
mountPath Mount path of the persistent disk string
sizeInGB Size of the persistent disk in GB int

Constraints:
Min value = 0
Max value = 50

Secret

Name Description Value
name Secret Name. string
value Secret Value. string

Constraints:
Sensitive value. Pass in as a secure parameter.

TemporaryDisk

Name Description Value
mountPath Mount path of the temporary disk string
sizeInGB Size of the temporary disk in GB int

Constraints:
Min value = 0
Max value = 5

UserAssignedManagedIdentities

Name Description Value

UserAssignedManagedIdentity

Name Description Value

Usage Examples

Azure Quickstart Templates

The following Azure Quickstart templates deploy this resource type.

Template Description
Deploy a simple Azure Spring Apps microservice application

Deploy to Azure
This template deploys a simple Azure Spring Apps microservice application to run on Azure.

Terraform (AzAPI provider) resource definition

The Spring/apps 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.AppPlatform/Spring/apps resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.AppPlatform/Spring/apps@2024-05-01-preview"
  name = "string"
  identity = {
    principalId = "string"
    tenantId = "string"
    type = "string"
    userAssignedIdentities = {
      {customized property} = {
      }
    }
  }
  location = "string"
  body = jsonencode({
    properties = {
      addonConfigs = {
        {customized property} = ?
      }
      customPersistentDisks = [
        {
          customPersistentDiskProperties = {
            enableSubPath = bool
            mountOptions = [
              "string"
            ]
            mountPath = "string"
            readOnly = bool
            type = "string"
            // For remaining properties, see CustomPersistentDiskProperties objects
          }
          storageId = "string"
        }
      ]
      enableEndToEndTLS = bool
      httpsOnly = bool
      ingressSettings = {
        backendProtocol = "string"
        clientAuth = {
          certificates = [
            "string"
          ]
        }
        readTimeoutInSeconds = int
        sendTimeoutInSeconds = int
        sessionAffinity = "string"
        sessionCookieMaxAge = int
      }
      loadedCertificates = [
        {
          loadTrustStore = bool
          resourceId = "string"
        }
      ]
      persistentDisk = {
        mountPath = "string"
        sizeInGB = int
      }
      public = bool
      secrets = [
        {
          name = "string"
          value = "string"
        }
      ]
      temporaryDisk = {
        mountPath = "string"
        sizeInGB = int
      }
      testEndpointAuthState = "string"
      vnetAddons = {
        publicEndpoint = bool
      }
      workloadProfileName = "string"
    }
  })
}

CustomPersistentDiskProperties objects

Set the type property to specify the type of object.

For AzureFileVolume, use:

{
  shareName = "string"
  type = "AzureFileVolume"
}

Property Values

AppResourceProperties

Name Description Value
addonConfigs Collection of addons AppResourcePropertiesAddonConfigs
customPersistentDisks List of custom persistent disks CustomPersistentDiskResource[]
enableEndToEndTLS Indicate if end to end TLS is enabled. bool
httpsOnly Indicate if only https is allowed. bool
ingressSettings App ingress settings payload. IngressSettings
loadedCertificates Collection of loaded certificates LoadedCertificate[]
persistentDisk Persistent disk settings PersistentDisk
public Indicates whether the App exposes public endpoint bool
secrets Collection of auth secrets Secret[]
temporaryDisk Temporary disk settings TemporaryDisk
testEndpointAuthState State of test endpoint auth. 'Disabled'
'Enabled'
vnetAddons Additional App settings in vnet injection instance AppVNetAddons
workloadProfileName The workload profile used for this app. Supported for Consumption + Dedicated plan. string

AppResourcePropertiesAddonConfigs

Name Description Value

AppVNetAddons

Name Description Value
publicEndpoint Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. bool

AzureFileVolume

Name Description Value
shareName The share name of the Azure File share. string
type The type of the underlying resource to mount as a persistent disk. 'AzureFileVolume' (required)

CustomPersistentDiskProperties

Name Description Value
enableSubPath If set to true, it will create and mount a dedicated directory for every individual app instance. bool
mountOptions These are the mount options for a persistent disk. string[]
mountPath The mount path of the persistent disk. string (required)
readOnly Indicates whether the persistent disk is a readOnly one. bool
type Set to 'AzureFileVolume' for type AzureFileVolume. 'AzureFileVolume' (required)

CustomPersistentDiskResource

Name Description Value
customPersistentDiskProperties Properties of the custom persistent disk resource payload. CustomPersistentDiskProperties
storageId The resource id of Azure Spring Apps Storage resource. string (required)

IngressSettings

Name Description Value
backendProtocol How ingress should communicate with this app backend service. 'Default'
'GRPC'
clientAuth Client-Certification Authentication. IngressSettingsClientAuth
readTimeoutInSeconds Ingress read time out in seconds. int
sendTimeoutInSeconds Ingress send time out in seconds. int
sessionAffinity Type of the affinity, set this to Cookie to enable session affinity. 'Cookie'
'None'
sessionCookieMaxAge Time in seconds until the cookie expires. int

IngressSettingsClientAuth

Name Description Value
certificates Collection of certificate resource id. string[]

LoadedCertificate

Name Description Value
loadTrustStore Indicate whether the certificate will be loaded into default trust store, only work for Java runtime. bool
resourceId Resource Id of loaded certificate string (required)

ManagedIdentityProperties

Name Description Value
principalId Principal Id of system-assigned managed identity. string
tenantId Tenant Id of system-assigned managed identity. string
type Type of the managed identity 'None'
'SystemAssigned'
'SystemAssigned,UserAssigned'
'UserAssigned'
userAssignedIdentities Properties of user-assigned managed identities UserAssignedManagedIdentities

Microsoft.AppPlatform/Spring/apps

Name Description Value
identity The Managed Identity type of the app resource ManagedIdentityProperties
location The GEO location of the application, always the same with its parent resource string
name The resource name string (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: Spring
properties Properties of the App resource AppResourceProperties
type The resource type "Microsoft.AppPlatform/Spring/apps@2024-05-01-preview"

PersistentDisk

Name Description Value
mountPath Mount path of the persistent disk string
sizeInGB Size of the persistent disk in GB int

Constraints:
Min value = 0
Max value = 50

Secret

Name Description Value
name Secret Name. string
value Secret Value. string

Constraints:
Sensitive value. Pass in as a secure parameter.

TemporaryDisk

Name Description Value
mountPath Mount path of the temporary disk string
sizeInGB Size of the temporary disk in GB int

Constraints:
Min value = 0
Max value = 5

UserAssignedManagedIdentities

Name Description Value

UserAssignedManagedIdentity

Name Description Value