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' = {
  name: 'string'
  location: 'string'
  parent: resourceSymbolicName
  identity: {
    principalId: 'string'
    tenantId: 'string'
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  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:

  type: 'AzureFileVolume'
  shareName: 'string'

Property values

Spring/apps

Name Description Value
name The resource name

See how to set names and types for child resources in Bicep.
string (required)
location The GEO location of the application, always the same with its parent resource string
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
identity The Managed Identity type of the app resource ManagedIdentityProperties
properties Properties of the App resource AppResourceProperties

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

UserAssignedManagedIdentities

Name Description Value
{customized property} UserAssignedManagedIdentity

UserAssignedManagedIdentity

This object doesn't contain any properties to set during deployment. All properties are ReadOnly.

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
{customized property} For Bicep, you can use the any() function.

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)

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 the object type AzureFileVolume (required)

AzureFileVolume

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

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)

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

AppVNetAddons

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

Quickstart templates

The following 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.

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",
  "location": "string",
  "identity": {
    "principalId": "string",
    "tenantId": "string",
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {}
    }
  },
  "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:

  "type": "AzureFileVolume",
  "shareName": "string"

Property values

Spring/apps

Name Description Value
type The resource type 'Microsoft.AppPlatform/Spring/apps'
apiVersion The resource api version '2024-05-01-preview'
name The resource name

See how to set names and types for child resources in JSON ARM templates.
string (required)
location The GEO location of the application, always the same with its parent resource string
identity The Managed Identity type of the app resource ManagedIdentityProperties
properties Properties of the App resource AppResourceProperties

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

UserAssignedManagedIdentities

Name Description Value
{customized property} UserAssignedManagedIdentity

UserAssignedManagedIdentity

This object doesn't contain any properties to set during deployment. All properties are ReadOnly.

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
{customized property}

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)

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 the object type AzureFileVolume (required)

AzureFileVolume

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

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)

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

AppVNetAddons

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

Quickstart templates

The following 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"
  location = "string"
  parent_id = "string"
  identity {
    type = "string"
    identity_ids = []
  }
  body = jsonencode({
    properties = {
      addonConfigs = {}
      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:

  type = "AzureFileVolume"
  shareName = "string"

Property values

Spring/apps

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

ManagedIdentityProperties

Name Description Value
type Type of the managed identity "SystemAssigned"
"SystemAssigned,UserAssigned"
"UserAssigned"
identity_ids Properties of user-assigned managed identities Array of user identity IDs.

UserAssignedManagedIdentities

Name Description Value
{customized property} UserAssignedManagedIdentity

UserAssignedManagedIdentity

This object doesn't contain any properties to set during deployment. All properties are ReadOnly.

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
{customized property}

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)

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 the object type AzureFileVolume (required)

AzureFileVolume

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

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)

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

AppVNetAddons

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