Share via


Microsoft.Workloads sapVirtualInstances 2023-04-01

Bicep resource definition

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

resource symbolicname 'Microsoft.Workloads/sapVirtualInstances@2023-04-01' = {
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  location: 'string'
  name: 'string'
  properties: {
    configuration: {
      configurationType: 'string'
      // For remaining properties, see SAPConfiguration objects
    }
    environment: 'string'
    managedResourceGroupConfiguration: {
      name: 'string'
    }
    sapProduct: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

ThreeTierCustomResourceNames objects

Set the namingPatternType property to specify the type of object.

For FullResourceName, use:

{
  applicationServer: {
    availabilitySetName: 'string'
    virtualMachines: [
      {
        dataDiskNames: {
          {customized property}: [
            'string'
          ]
        }
        hostName: 'string'
        networkInterfaces: [
          {
            networkInterfaceName: 'string'
          }
        ]
        osDiskName: 'string'
        vmName: 'string'
      }
    ]
  }
  centralServer: {
    availabilitySetName: 'string'
    loadBalancer: {
      backendPoolNames: [
        'string'
      ]
      frontendIpConfigurationNames: [
        'string'
      ]
      healthProbeNames: [
        'string'
      ]
      loadBalancerName: 'string'
    }
    virtualMachines: [
      {
        dataDiskNames: {
          {customized property}: [
            'string'
          ]
        }
        hostName: 'string'
        networkInterfaces: [
          {
            networkInterfaceName: 'string'
          }
        ]
        osDiskName: 'string'
        vmName: 'string'
      }
    ]
  }
  databaseServer: {
    availabilitySetName: 'string'
    loadBalancer: {
      backendPoolNames: [
        'string'
      ]
      frontendIpConfigurationNames: [
        'string'
      ]
      healthProbeNames: [
        'string'
      ]
      loadBalancerName: 'string'
    }
    virtualMachines: [
      {
        dataDiskNames: {
          {customized property}: [
            'string'
          ]
        }
        hostName: 'string'
        networkInterfaces: [
          {
            networkInterfaceName: 'string'
          }
        ]
        osDiskName: 'string'
        vmName: 'string'
      }
    ]
  }
  namingPatternType: 'FullResourceName'
  sharedStorage: {
    sharedStorageAccountName: 'string'
    sharedStorageAccountPrivateEndPointName: 'string'
  }
}

SingleServerCustomResourceNames objects

Set the namingPatternType property to specify the type of object.

For FullResourceName, use:

{
  namingPatternType: 'FullResourceName'
  virtualMachine: {
    dataDiskNames: {
      {customized property}: [
        'string'
      ]
    }
    hostName: 'string'
    networkInterfaces: [
      {
        networkInterfaceName: 'string'
      }
    ]
    osDiskName: 'string'
    vmName: 'string'
  }
}

SAPConfiguration objects

Set the configurationType property to specify the type of object.

For Deployment, use:

{
  appLocation: 'string'
  configurationType: 'Deployment'
  infrastructureConfiguration: {
    appResourceGroup: 'string'
    deploymentType: 'string'
    // For remaining properties, see InfrastructureConfiguration objects
  }
  softwareConfiguration: {
    softwareInstallationType: 'string'
    // For remaining properties, see SoftwareConfiguration objects
  }
}

For DeploymentWithOSConfig, use:

{
  appLocation: 'string'
  configurationType: 'DeploymentWithOSConfig'
  infrastructureConfiguration: {
    appResourceGroup: 'string'
    deploymentType: 'string'
    // For remaining properties, see InfrastructureConfiguration objects
  }
  osSapConfiguration: {
    deployerVmPackages: {
      storageAccountId: 'string'
      url: 'string'
    }
    sapFqdn: 'string'
  }
  softwareConfiguration: {
    softwareInstallationType: 'string'
    // For remaining properties, see SoftwareConfiguration objects
  }
}

For Discovery, use:

{
  centralServerVmId: 'string'
  configurationType: 'Discovery'
  managedRgStorageAccountName: 'string'
}

SoftwareConfiguration objects

Set the softwareInstallationType property to specify the type of object.

For External, use:

{
  centralServerVmId: 'string'
  softwareInstallationType: 'External'
}

For SAPInstallWithoutOSConfig, use:

{
  bomUrl: 'string'
  highAvailabilitySoftwareConfiguration: {
    fencingClientId: 'string'
    fencingClientPassword: 'string'
  }
  sapBitsStorageAccountId: 'string'
  softwareInstallationType: 'SAPInstallWithoutOSConfig'
  softwareVersion: 'string'
}

For ServiceInitiated, use:

{
  bomUrl: 'string'
  highAvailabilitySoftwareConfiguration: {
    fencingClientId: 'string'
    fencingClientPassword: 'string'
  }
  sapBitsStorageAccountId: 'string'
  sapFqdn: 'string'
  softwareInstallationType: 'ServiceInitiated'
  softwareVersion: 'string'
  sshPrivateKey: 'string'
}

OSConfiguration objects

Set the osType property to specify the type of object.

For Linux, use:

{
  disablePasswordAuthentication: bool
  osType: 'Linux'
  ssh: {
    publicKeys: [
      {
        keyData: 'string'
      }
    ]
  }
  sshKeyPair: {
    privateKey: 'string'
    publicKey: 'string'
  }
}

For Windows, use:

{
  osType: 'Windows'
}

InfrastructureConfiguration objects

Set the deploymentType property to specify the type of object.

For SingleServer, use:

{
  customResourceNames: {
    namingPatternType: 'string'
    // For remaining properties, see SingleServerCustomResourceNames objects
  }
  databaseType: 'string'
  dbDiskConfiguration: {
    diskVolumeConfigurations: {
      {customized property}: {
        count: int
        sizeGB: int
        sku: {
          name: 'string'
        }
      }
    }
  }
  deploymentType: 'SingleServer'
  networkConfiguration: {
    isSecondaryIpEnabled: bool
  }
  subnetId: 'string'
  virtualMachineConfiguration: {
    imageReference: {
      offer: 'string'
      publisher: 'string'
      sku: 'string'
      version: 'string'
    }
    osProfile: {
      adminPassword: 'string'
      adminUsername: 'string'
      osConfiguration: {
        osType: 'string'
        // For remaining properties, see OSConfiguration objects
      }
    }
    vmSize: 'string'
  }
}

For ThreeTier, use:

{
  applicationServer: {
    instanceCount: int
    subnetId: 'string'
    virtualMachineConfiguration: {
      imageReference: {
        offer: 'string'
        publisher: 'string'
        sku: 'string'
        version: 'string'
      }
      osProfile: {
        adminPassword: 'string'
        adminUsername: 'string'
        osConfiguration: {
          osType: 'string'
          // For remaining properties, see OSConfiguration objects
        }
      }
      vmSize: 'string'
    }
  }
  centralServer: {
    instanceCount: int
    subnetId: 'string'
    virtualMachineConfiguration: {
      imageReference: {
        offer: 'string'
        publisher: 'string'
        sku: 'string'
        version: 'string'
      }
      osProfile: {
        adminPassword: 'string'
        adminUsername: 'string'
        osConfiguration: {
          osType: 'string'
          // For remaining properties, see OSConfiguration objects
        }
      }
      vmSize: 'string'
    }
  }
  customResourceNames: {
    namingPatternType: 'string'
    // For remaining properties, see ThreeTierCustomResourceNames objects
  }
  databaseServer: {
    databaseType: 'string'
    diskConfiguration: {
      diskVolumeConfigurations: {
        {customized property}: {
          count: int
          sizeGB: int
          sku: {
            name: 'string'
          }
        }
      }
    }
    instanceCount: int
    subnetId: 'string'
    virtualMachineConfiguration: {
      imageReference: {
        offer: 'string'
        publisher: 'string'
        sku: 'string'
        version: 'string'
      }
      osProfile: {
        adminPassword: 'string'
        adminUsername: 'string'
        osConfiguration: {
          osType: 'string'
          // For remaining properties, see OSConfiguration objects
        }
      }
      vmSize: 'string'
    }
  }
  deploymentType: 'ThreeTier'
  highAvailabilityConfig: {
    highAvailabilityType: 'string'
  }
  networkConfiguration: {
    isSecondaryIpEnabled: bool
  }
  storageConfiguration: {
    transportFileShareConfiguration: {
      configurationType: 'string'
      // For remaining properties, see FileShareConfiguration objects
    }
  }
}

FileShareConfiguration objects

Set the configurationType property to specify the type of object.

For CreateAndMount, use:

{
  configurationType: 'CreateAndMount'
  resourceGroup: 'string'
  storageAccountName: 'string'
}

For Mount, use:

{
  configurationType: 'Mount'
  id: 'string'
  privateEndpointId: 'string'
}

For Skip, use:

{
  configurationType: 'Skip'
}

Property Values

Microsoft.Workloads/sapVirtualInstances

Name Description Value
identity A pre-created user assigned identity with appropriate roles assigned. To learn more on identity and roles required, visit the ACSS how-to-guide. UserAssignedServiceIdentity
location The geo-location where the resource lives string (required)
name The resource name string (required)
properties Defines the Virtual Instance for SAP solutions resource properties. SAPVirtualInstanceProperties (required)
tags Resource tags Dictionary of tag names and values. See Tags in templates

ApplicationServerConfiguration

Name Description Value
instanceCount The number of app server instances. int (required)
subnetId The subnet id. string (required)
virtualMachineConfiguration Gets or sets the virtual machine configuration. VirtualMachineConfiguration (required)

ApplicationServerFullResourceNames

Name Description Value
availabilitySetName The full name for availability set. In case name is not provided, it will be defaulted to {SID}-App-AvSet. string
virtualMachines The list of virtual machine naming details. VirtualMachineResourceNames[]

CentralServerConfiguration

Name Description Value
instanceCount The number of central server VMs. int (required)
subnetId The subnet id. string (required)
virtualMachineConfiguration Gets or sets the virtual machine configuration. VirtualMachineConfiguration (required)

CentralServerFullResourceNames

Name Description Value
availabilitySetName The full name for availability set. In case name is not provided, it will be defaulted to {SID}-ASCS-AvSet. string
loadBalancer The resource names object for load balancer and related resources. LoadBalancerResourceNames
virtualMachines The list of names for all ASCS virtual machines to be deployed. The number of entries in this list should be equal to the number VMs to be created for ASCS layer. At maximum, there can be two virtual machines at this layer: ASCS and ERS. VirtualMachineResourceNames[]

CreateAndMountFileShareConfiguration

Name Description Value
configurationType The type of file share config. 'CreateAndMount' (required)
resourceGroup The name of transport file share resource group. This should be pre created by the customer. The app rg is used in case of missing input. string
storageAccountName The name of file share storage account name . A custom name is used in case of missing input. string

DatabaseConfiguration

Name Description Value
databaseType The database type. 'DB2'
'HANA'
diskConfiguration Gets or sets the disk configuration. DiskConfiguration
instanceCount The number of database VMs. int (required)
subnetId The subnet id. string (required)
virtualMachineConfiguration Gets or sets the virtual machine configuration. VirtualMachineConfiguration (required)

DatabaseServerFullResourceNames

Name Description Value
availabilitySetName The full name for availability set. In case name is not provided, it will be defaulted to {SID}-DB-AvSet. string
loadBalancer The resource names object for load balancer and related resources. LoadBalancerResourceNames
virtualMachines The list of virtual machine naming details. VirtualMachineResourceNames[]

DeployerVmPackages

Name Description Value
storageAccountId The deployer VM packages storage account id string
url The URL to the deployer VM packages file. string

DeploymentConfiguration

Name Description Value
appLocation The geo-location where the SAP system is to be created. string
configurationType The configuration Type. 'Deployment' (required)
infrastructureConfiguration The infrastructure configuration. InfrastructureConfiguration
softwareConfiguration The software configuration. SoftwareConfiguration

DeploymentWithOSConfiguration

Name Description Value
appLocation The geo-location where the SAP system is to be created. string
configurationType The configuration Type. 'DeploymentWithOSConfig' (required)
infrastructureConfiguration The infrastructure configuration. InfrastructureConfiguration
osSapConfiguration The OS and SAP configuration. OsSapConfiguration
softwareConfiguration The software configuration. SoftwareConfiguration

DiscoveryConfiguration

Name Description Value
centralServerVmId The virtual machine ID of the Central Server. string
configurationType The configuration Type. 'Discovery' (required)
managedRgStorageAccountName The custom storage account name for the storage account created by the service in the managed resource group created as part of VIS deployment.

Refer to the storage account naming rules here.

If not provided, the service will create the storage account with a random name.
string

Constraints:
Min length = 3
Max length = 24

DiskConfiguration

Name Description Value
diskVolumeConfigurations The disk configuration for the db volume. For HANA, Required volumes are: ['hana/data', 'hana/log', hana/shared', 'usr/sap', 'os'], Optional volume : ['backup']. DiskConfigurationDiskVolumeConfigurations

DiskConfigurationDiskVolumeConfigurations

Name Description Value

DiskSku

Name Description Value
name Defines the disk sku name. 'PremiumV2_LRS'
'Premium_LRS'
'Premium_ZRS'
'StandardSSD_LRS'
'StandardSSD_ZRS'
'Standard_LRS'
'UltraSSD_LRS'

DiskVolumeConfiguration

Name Description Value
count The total number of disks required for the concerned volume. int
sizeGB The disk size in GB. int
sku The disk SKU details. DiskSku

ExternalInstallationSoftwareConfiguration

Name Description Value
centralServerVmId The resource ID of the virtual machine containing the central server instance. string
softwareInstallationType The SAP software installation Type. 'External' (required)

FileShareConfiguration

Name Description Value
configurationType Set to 'CreateAndMount' for type CreateAndMountFileShareConfiguration. Set to 'Mount' for type MountFileShareConfiguration. Set to 'Skip' for type SkipFileShareConfiguration. 'CreateAndMount'
'Mount'
'Skip' (required)

HighAvailabilityConfiguration

Name Description Value
highAvailabilityType The high availability type. 'AvailabilitySet'
'AvailabilityZone' (required)

HighAvailabilitySoftwareConfiguration

Name Description Value
fencingClientId The fencing client id. string (required)
fencingClientPassword The fencing client id secret/password. The secret should never expire. This will be used pacemaker to start/stop the cluster VMs. string

Constraints:
Sensitive value. Pass in as a secure parameter. (required)

ImageReference

Name Description Value
offer Specifies the offer of the platform image or marketplace image used to create the virtual machine. string
publisher The image publisher. string
sku The image SKU. string
version Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. string

InfrastructureConfiguration

Name Description Value
appResourceGroup The application resource group where SAP system resources will be deployed. string (required)
deploymentType Set to 'SingleServer' for type SingleServerConfiguration. Set to 'ThreeTier' for type ThreeTierConfiguration. 'SingleServer'
'ThreeTier' (required)

LinuxConfiguration

Name Description Value
disablePasswordAuthentication Specifies whether password authentication should be disabled. bool
osType The OS Type 'Linux' (required)
ssh Specifies the ssh key configuration for a Linux OS. (This property is deprecated, please use 'sshKeyPair' instead) SshConfiguration
sshKeyPair The SSH Key-pair used to authenticate with the VM's. SshKeyPair

LoadBalancerResourceNames

Name Description Value
backendPoolNames The list of backend pool names. Currently, ACSS deploys only one backend pool and hence, size of this list should be 1 string[]
frontendIpConfigurationNames The list of frontend IP configuration names. If provided as input, size of this list should be 2 for cs layer and should be 1 for database layer. string[]
healthProbeNames The list of health probe names. If provided as input, size of this list should be 2 for cs layer and should be 1 for database layer. string[]
loadBalancerName The full resource name for load balancer. If this value is not provided, load balancer will be name as {ASCS/DB}-loadBalancer. string

ManagedRGConfiguration

Name Description Value
name Managed resource group name string

MountFileShareConfiguration

Name Description Value
configurationType The type of file share config. 'Mount' (required)
id The fileshare resource ID string (required)
privateEndpointId The private endpoint resource ID string (required)

NetworkConfiguration

Name Description Value
isSecondaryIpEnabled Specifies whether a secondary IP address should be added to the network interface on all VMs of the SAP system being deployed bool

NetworkInterfaceResourceNames

Name Description Value
networkInterfaceName The full name for network interface. If name is not provided, service uses a default name based on the deployment type. For SingleServer, default name is {SID}-Nic. In case of HA-AvZone systems, default name will be {SID}-{App/ASCS/DB}-Zone{A/B}-Nic with an incrementor at the end in case of more than 1 instance per layer. For distributed and HA-AvSet systems, default name will be {SID}-{App/ASCS/DB}-Nic with an incrementor at the end in case of more than 1 instance per layer. string

OSConfiguration

Name Description Value
osType Set to 'Linux' for type LinuxConfiguration. Set to 'Windows' for type WindowsConfiguration. 'Linux'
'Windows' (required)

OSProfile

Name Description Value
adminPassword Specifies the password of the administrator account.

Minimum-length (Windows): 8 characters

Minimum-length (Linux): 6 characters

Max-length (Windows): 123 characters

Max-length (Linux): 72 characters

Complexity requirements: 3 out of 4 conditions below need to be fulfilled
Has lower characters
Has upper characters
Has a digit
Has a special character (Regex match [\W_])

Disallowed values: "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!"

For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM

For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
string

Constraints:
Sensitive value. Pass in as a secure parameter.
adminUsername Specifies the name of the administrator account.

This property cannot be updated after the VM is created.

Windows-only restriction: Cannot end in "."

Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5".

Minimum-length (Linux): 1 character

Max-length (Linux): 64 characters

Max-length (Windows): 20 characters.
string
osConfiguration Specifies Windows operating system settings on the virtual machine. OSConfiguration

OsSapConfiguration

Name Description Value
deployerVmPackages The url and storage account ID where deployer VM packages are uploaded DeployerVmPackages
sapFqdn The FQDN to set for the SAP system string

SAPConfiguration

Name Description Value
configurationType Set to 'Deployment' for type DeploymentConfiguration. Set to 'DeploymentWithOSConfig' for type DeploymentWithOSConfiguration. Set to 'Discovery' for type DiscoveryConfiguration. 'Deployment'
'DeploymentWithOSConfig'
'Discovery' (required)

SAPInstallWithoutOSConfigSoftwareConfiguration

Name Description Value
bomUrl The URL to the SAP Build of Materials(BOM) file. string (required)
highAvailabilitySoftwareConfiguration Gets or sets the HA software configuration. HighAvailabilitySoftwareConfiguration
sapBitsStorageAccountId The SAP bits storage account id. string (required)
softwareInstallationType The SAP software installation Type. 'SAPInstallWithoutOSConfig' (required)
softwareVersion The software version to install. string (required)

SAPVirtualInstanceProperties

Name Description Value
configuration Defines if the SAP system is being created using Azure Center for SAP solutions (ACSS) or if an existing SAP system is being registered with ACSS SAPConfiguration (required)
environment Defines the environment type - Production/Non Production. 'NonProd'
'Prod' (required)
managedResourceGroupConfiguration Managed resource group configuration ManagedRGConfiguration
sapProduct Defines the SAP Product type. 'ECC'
'Other'
'S4HANA' (required)

ServiceInitiatedSoftwareConfiguration

Name Description Value
bomUrl The URL to the SAP Build of Materials(BOM) file. string (required)
highAvailabilitySoftwareConfiguration Gets or sets the HA software configuration. HighAvailabilitySoftwareConfiguration
sapBitsStorageAccountId The SAP bits storage account id. string (required)
sapFqdn The FQDN to set for the SAP system during install. string (required)
softwareInstallationType The SAP software installation Type. 'ServiceInitiated' (required)
softwareVersion The software version to install. string (required)
sshPrivateKey The SSH private key. string

Constraints:
Sensitive value. Pass in as a secure parameter. (required)

SharedStorageResourceNames

Name Description Value
sharedStorageAccountName The full name of the shared storage account. If it is not provided, it will be defaulted to {SID}nfs{guid of 15 chars}. string
sharedStorageAccountPrivateEndPointName The full name of private end point for the shared storage account. If it is not provided, it will be defaulted to {storageAccountName}_pe string

SingleServerConfiguration

Name Description Value
customResourceNames The set of custom names to be used for underlying azure resources that are part of the SAP system. SingleServerCustomResourceNames
databaseType The database type. 'DB2'
'HANA'
dbDiskConfiguration Gets or sets the disk configuration. DiskConfiguration
deploymentType The type of SAP deployment, single server or Three tier. 'SingleServer' (required)
networkConfiguration Network configuration for the server NetworkConfiguration
subnetId The subnet id. string (required)
virtualMachineConfiguration Gets or sets the virtual machine configuration. VirtualMachineConfiguration (required)

SingleServerCustomResourceNames

Name Description Value
namingPatternType Set to 'FullResourceName' for type SingleServerFullResourceNames. 'FullResourceName' (required)

SingleServerFullResourceNames

Name Description Value
namingPatternType The pattern type to be used for resource naming. 'FullResourceName' (required)
virtualMachine The resource names object for virtual machine and related resources. VirtualMachineResourceNames

SkipFileShareConfiguration

Name Description Value
configurationType The type of file share config. 'Skip' (required)

SoftwareConfiguration

Name Description Value
softwareInstallationType Set to 'External' for type ExternalInstallationSoftwareConfiguration. Set to 'SAPInstallWithoutOSConfig' for type SAPInstallWithoutOSConfigSoftwareConfiguration. Set to 'ServiceInitiated' for type ServiceInitiatedSoftwareConfiguration. 'External'
'SAPInstallWithoutOSConfig'
'ServiceInitiated' (required)

SshConfiguration

Name Description Value
publicKeys The list of SSH public keys used to authenticate with linux based VMs. SshPublicKey[]

SshKeyPair

Name Description Value
privateKey SSH private key. string

Constraints:
Sensitive value. Pass in as a secure parameter.
publicKey SSH public key string

SshPublicKey

Name Description Value
keyData SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format.

For creating ssh keys, see Create SSH keys on Linux and Mac for Linux VMs in Azure.
string

StorageConfiguration

Name Description Value
transportFileShareConfiguration The properties of the transport directory attached to the VIS. The default for transportFileShareConfiguration is the createAndMount flow if storage configuration is missing. FileShareConfiguration

ThreeTierConfiguration

Name Description Value
applicationServer The application server configuration. ApplicationServerConfiguration (required)
centralServer The central server configuration. CentralServerConfiguration (required)
customResourceNames The set of custom names to be used for underlying azure resources that are part of the SAP system. ThreeTierCustomResourceNames
databaseServer The database configuration. DatabaseConfiguration (required)
deploymentType The type of SAP deployment, single server or Three tier. 'ThreeTier' (required)
highAvailabilityConfig The high availability configuration. HighAvailabilityConfiguration
networkConfiguration Network configuration common to all servers NetworkConfiguration
storageConfiguration The storage configuration. StorageConfiguration

ThreeTierCustomResourceNames

Name Description Value
namingPatternType Set to 'FullResourceName' for type ThreeTierFullResourceNames. 'FullResourceName' (required)

ThreeTierFullResourceNames

Name Description Value
applicationServer The full resource names object for application layer resources. The number of entries in this list should be equal to the number VMs to be created for application layer. ApplicationServerFullResourceNames
centralServer The full resource names object for central server layer resources. CentralServerFullResourceNames
databaseServer The full resource names object for database layer resources. The number of entries in this list should be equal to the number VMs to be created for database layer. DatabaseServerFullResourceNames
namingPatternType The pattern type to be used for resource naming. 'FullResourceName' (required)
sharedStorage The resource names object for shared storage. SharedStorageResourceNames

TrackedResourceTags

Name Description Value

UserAssignedIdentities

Name Description Value

UserAssignedIdentity

Name Description Value

UserAssignedServiceIdentity

Name Description Value
type Type of manage identity 'None'
'UserAssigned' (required)
userAssignedIdentities User assigned identities dictionary UserAssignedIdentities

VirtualMachineConfiguration

Name Description Value
imageReference The image reference. ImageReference (required)
osProfile The OS profile. OSProfile (required)
vmSize The virtual machine size. string (required)

VirtualMachineResourceNames

Name Description Value
dataDiskNames The full resource names for virtual machine data disks. This is a dictionary containing list of names of data disks per volume. Currently supported volumes for database layer are ['hana/data', 'hana/log', hana/shared', 'usr/sap', 'os', 'backup']. For application and cs layers, only 'default' volume is supported VirtualMachineResourceNamesDataDiskNames
hostName The full name for virtual-machine's host (computer name). Currently, ACSS only supports host names which are less than or equal to 13 characters long. If this value is not provided, vmName will be used as host name. string
networkInterfaces The list of network interface name objects for the selected virtual machine. Currently, only one network interface is supported per virtual machine. NetworkInterfaceResourceNames[]
osDiskName The full name for OS disk attached to the VM. If this value is not provided, it will be named by ARM as per its default naming standards (prefixed with vm name). There is only one OS disk attached per Virtual Machine. string
vmName The full name for virtual machine. The length of this field can be upto 64 characters. If name is not provided, service uses a default name based on the deployment type. For SingleServer, default name is {SID}vm. In case of HA-AvZone systems, default name will be {SID}{app/ascs/db}z{a/b}vm with an incrementor at the end in case of more than 1 vm per layer. For distributed and HA-AvSet systems, default name will be {SID}{app/ascs/db}vm with an incrementor at the end in case of more than 1 vm per layer. string

VirtualMachineResourceNamesDataDiskNames

Name Description Value

WindowsConfiguration

Name Description Value
osType The OS Type 'Windows' (required)

ARM template resource definition

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

{
  "type": "Microsoft.Workloads/sapVirtualInstances",
  "apiVersion": "2023-04-01",
  "name": "string",
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {
      }
    }
  },
  "location": "string",
  "properties": {
    "configuration": {
      "configurationType": "string"
      // For remaining properties, see SAPConfiguration objects
    },
    "environment": "string",
    "managedResourceGroupConfiguration": {
      "name": "string"
    },
    "sapProduct": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

ThreeTierCustomResourceNames objects

Set the namingPatternType property to specify the type of object.

For FullResourceName, use:

{
  "applicationServer": {
    "availabilitySetName": "string",
    "virtualMachines": [
      {
        "dataDiskNames": {
          "{customized property}": [ "string" ]
        },
        "hostName": "string",
        "networkInterfaces": [
          {
            "networkInterfaceName": "string"
          }
        ],
        "osDiskName": "string",
        "vmName": "string"
      }
    ]
  },
  "centralServer": {
    "availabilitySetName": "string",
    "loadBalancer": {
      "backendPoolNames": [ "string" ],
      "frontendIpConfigurationNames": [ "string" ],
      "healthProbeNames": [ "string" ],
      "loadBalancerName": "string"
    },
    "virtualMachines": [
      {
        "dataDiskNames": {
          "{customized property}": [ "string" ]
        },
        "hostName": "string",
        "networkInterfaces": [
          {
            "networkInterfaceName": "string"
          }
        ],
        "osDiskName": "string",
        "vmName": "string"
      }
    ]
  },
  "databaseServer": {
    "availabilitySetName": "string",
    "loadBalancer": {
      "backendPoolNames": [ "string" ],
      "frontendIpConfigurationNames": [ "string" ],
      "healthProbeNames": [ "string" ],
      "loadBalancerName": "string"
    },
    "virtualMachines": [
      {
        "dataDiskNames": {
          "{customized property}": [ "string" ]
        },
        "hostName": "string",
        "networkInterfaces": [
          {
            "networkInterfaceName": "string"
          }
        ],
        "osDiskName": "string",
        "vmName": "string"
      }
    ]
  },
  "namingPatternType": "FullResourceName",
  "sharedStorage": {
    "sharedStorageAccountName": "string",
    "sharedStorageAccountPrivateEndPointName": "string"
  }
}

SingleServerCustomResourceNames objects

Set the namingPatternType property to specify the type of object.

For FullResourceName, use:

{
  "namingPatternType": "FullResourceName",
  "virtualMachine": {
    "dataDiskNames": {
      "{customized property}": [ "string" ]
    },
    "hostName": "string",
    "networkInterfaces": [
      {
        "networkInterfaceName": "string"
      }
    ],
    "osDiskName": "string",
    "vmName": "string"
  }
}

SAPConfiguration objects

Set the configurationType property to specify the type of object.

For Deployment, use:

{
  "appLocation": "string",
  "configurationType": "Deployment",
  "infrastructureConfiguration": {
    "appResourceGroup": "string",
    "deploymentType": "string"
    // For remaining properties, see InfrastructureConfiguration objects
  },
  "softwareConfiguration": {
    "softwareInstallationType": "string"
    // For remaining properties, see SoftwareConfiguration objects
  }
}

For DeploymentWithOSConfig, use:

{
  "appLocation": "string",
  "configurationType": "DeploymentWithOSConfig",
  "infrastructureConfiguration": {
    "appResourceGroup": "string",
    "deploymentType": "string"
    // For remaining properties, see InfrastructureConfiguration objects
  },
  "osSapConfiguration": {
    "deployerVmPackages": {
      "storageAccountId": "string",
      "url": "string"
    },
    "sapFqdn": "string"
  },
  "softwareConfiguration": {
    "softwareInstallationType": "string"
    // For remaining properties, see SoftwareConfiguration objects
  }
}

For Discovery, use:

{
  "centralServerVmId": "string",
  "configurationType": "Discovery",
  "managedRgStorageAccountName": "string"
}

SoftwareConfiguration objects

Set the softwareInstallationType property to specify the type of object.

For External, use:

{
  "centralServerVmId": "string",
  "softwareInstallationType": "External"
}

For SAPInstallWithoutOSConfig, use:

{
  "bomUrl": "string",
  "highAvailabilitySoftwareConfiguration": {
    "fencingClientId": "string",
    "fencingClientPassword": "string"
  },
  "sapBitsStorageAccountId": "string",
  "softwareInstallationType": "SAPInstallWithoutOSConfig",
  "softwareVersion": "string"
}

For ServiceInitiated, use:

{
  "bomUrl": "string",
  "highAvailabilitySoftwareConfiguration": {
    "fencingClientId": "string",
    "fencingClientPassword": "string"
  },
  "sapBitsStorageAccountId": "string",
  "sapFqdn": "string",
  "softwareInstallationType": "ServiceInitiated",
  "softwareVersion": "string",
  "sshPrivateKey": "string"
}

OSConfiguration objects

Set the osType property to specify the type of object.

For Linux, use:

{
  "disablePasswordAuthentication": "bool",
  "osType": "Linux",
  "ssh": {
    "publicKeys": [
      {
        "keyData": "string"
      }
    ]
  },
  "sshKeyPair": {
    "privateKey": "string",
    "publicKey": "string"
  }
}

For Windows, use:

{
  "osType": "Windows"
}

InfrastructureConfiguration objects

Set the deploymentType property to specify the type of object.

For SingleServer, use:

{
  "customResourceNames": {
    "namingPatternType": "string"
    // For remaining properties, see SingleServerCustomResourceNames objects
  },
  "databaseType": "string",
  "dbDiskConfiguration": {
    "diskVolumeConfigurations": {
      "{customized property}": {
        "count": "int",
        "sizeGB": "int",
        "sku": {
          "name": "string"
        }
      }
    }
  },
  "deploymentType": "SingleServer",
  "networkConfiguration": {
    "isSecondaryIpEnabled": "bool"
  },
  "subnetId": "string",
  "virtualMachineConfiguration": {
    "imageReference": {
      "offer": "string",
      "publisher": "string",
      "sku": "string",
      "version": "string"
    },
    "osProfile": {
      "adminPassword": "string",
      "adminUsername": "string",
      "osConfiguration": {
        "osType": "string"
        // For remaining properties, see OSConfiguration objects
      }
    },
    "vmSize": "string"
  }
}

For ThreeTier, use:

{
  "applicationServer": {
    "instanceCount": "int",
    "subnetId": "string",
    "virtualMachineConfiguration": {
      "imageReference": {
        "offer": "string",
        "publisher": "string",
        "sku": "string",
        "version": "string"
      },
      "osProfile": {
        "adminPassword": "string",
        "adminUsername": "string",
        "osConfiguration": {
          "osType": "string"
          // For remaining properties, see OSConfiguration objects
        }
      },
      "vmSize": "string"
    }
  },
  "centralServer": {
    "instanceCount": "int",
    "subnetId": "string",
    "virtualMachineConfiguration": {
      "imageReference": {
        "offer": "string",
        "publisher": "string",
        "sku": "string",
        "version": "string"
      },
      "osProfile": {
        "adminPassword": "string",
        "adminUsername": "string",
        "osConfiguration": {
          "osType": "string"
          // For remaining properties, see OSConfiguration objects
        }
      },
      "vmSize": "string"
    }
  },
  "customResourceNames": {
    "namingPatternType": "string"
    // For remaining properties, see ThreeTierCustomResourceNames objects
  },
  "databaseServer": {
    "databaseType": "string",
    "diskConfiguration": {
      "diskVolumeConfigurations": {
        "{customized property}": {
          "count": "int",
          "sizeGB": "int",
          "sku": {
            "name": "string"
          }
        }
      }
    },
    "instanceCount": "int",
    "subnetId": "string",
    "virtualMachineConfiguration": {
      "imageReference": {
        "offer": "string",
        "publisher": "string",
        "sku": "string",
        "version": "string"
      },
      "osProfile": {
        "adminPassword": "string",
        "adminUsername": "string",
        "osConfiguration": {
          "osType": "string"
          // For remaining properties, see OSConfiguration objects
        }
      },
      "vmSize": "string"
    }
  },
  "deploymentType": "ThreeTier",
  "highAvailabilityConfig": {
    "highAvailabilityType": "string"
  },
  "networkConfiguration": {
    "isSecondaryIpEnabled": "bool"
  },
  "storageConfiguration": {
    "transportFileShareConfiguration": {
      "configurationType": "string"
      // For remaining properties, see FileShareConfiguration objects
    }
  }
}

FileShareConfiguration objects

Set the configurationType property to specify the type of object.

For CreateAndMount, use:

{
  "configurationType": "CreateAndMount",
  "resourceGroup": "string",
  "storageAccountName": "string"
}

For Mount, use:

{
  "configurationType": "Mount",
  "id": "string",
  "privateEndpointId": "string"
}

For Skip, use:

{
  "configurationType": "Skip"
}

Property Values

Microsoft.Workloads/sapVirtualInstances

Name Description Value
apiVersion The api version '2023-04-01'
identity A pre-created user assigned identity with appropriate roles assigned. To learn more on identity and roles required, visit the ACSS how-to-guide. UserAssignedServiceIdentity
location The geo-location where the resource lives string (required)
name The resource name string (required)
properties Defines the Virtual Instance for SAP solutions resource properties. SAPVirtualInstanceProperties (required)
tags Resource tags Dictionary of tag names and values. See Tags in templates
type The resource type 'Microsoft.Workloads/sapVirtualInstances'

ApplicationServerConfiguration

Name Description Value
instanceCount The number of app server instances. int (required)
subnetId The subnet id. string (required)
virtualMachineConfiguration Gets or sets the virtual machine configuration. VirtualMachineConfiguration (required)

ApplicationServerFullResourceNames

Name Description Value
availabilitySetName The full name for availability set. In case name is not provided, it will be defaulted to {SID}-App-AvSet. string
virtualMachines The list of virtual machine naming details. VirtualMachineResourceNames[]

CentralServerConfiguration

Name Description Value
instanceCount The number of central server VMs. int (required)
subnetId The subnet id. string (required)
virtualMachineConfiguration Gets or sets the virtual machine configuration. VirtualMachineConfiguration (required)

CentralServerFullResourceNames

Name Description Value
availabilitySetName The full name for availability set. In case name is not provided, it will be defaulted to {SID}-ASCS-AvSet. string
loadBalancer The resource names object for load balancer and related resources. LoadBalancerResourceNames
virtualMachines The list of names for all ASCS virtual machines to be deployed. The number of entries in this list should be equal to the number VMs to be created for ASCS layer. At maximum, there can be two virtual machines at this layer: ASCS and ERS. VirtualMachineResourceNames[]

CreateAndMountFileShareConfiguration

Name Description Value
configurationType The type of file share config. 'CreateAndMount' (required)
resourceGroup The name of transport file share resource group. This should be pre created by the customer. The app rg is used in case of missing input. string
storageAccountName The name of file share storage account name . A custom name is used in case of missing input. string

DatabaseConfiguration

Name Description Value
databaseType The database type. 'DB2'
'HANA'
diskConfiguration Gets or sets the disk configuration. DiskConfiguration
instanceCount The number of database VMs. int (required)
subnetId The subnet id. string (required)
virtualMachineConfiguration Gets or sets the virtual machine configuration. VirtualMachineConfiguration (required)

DatabaseServerFullResourceNames

Name Description Value
availabilitySetName The full name for availability set. In case name is not provided, it will be defaulted to {SID}-DB-AvSet. string
loadBalancer The resource names object for load balancer and related resources. LoadBalancerResourceNames
virtualMachines The list of virtual machine naming details. VirtualMachineResourceNames[]

DeployerVmPackages

Name Description Value
storageAccountId The deployer VM packages storage account id string
url The URL to the deployer VM packages file. string

DeploymentConfiguration

Name Description Value
appLocation The geo-location where the SAP system is to be created. string
configurationType The configuration Type. 'Deployment' (required)
infrastructureConfiguration The infrastructure configuration. InfrastructureConfiguration
softwareConfiguration The software configuration. SoftwareConfiguration

DeploymentWithOSConfiguration

Name Description Value
appLocation The geo-location where the SAP system is to be created. string
configurationType The configuration Type. 'DeploymentWithOSConfig' (required)
infrastructureConfiguration The infrastructure configuration. InfrastructureConfiguration
osSapConfiguration The OS and SAP configuration. OsSapConfiguration
softwareConfiguration The software configuration. SoftwareConfiguration

DiscoveryConfiguration

Name Description Value
centralServerVmId The virtual machine ID of the Central Server. string
configurationType The configuration Type. 'Discovery' (required)
managedRgStorageAccountName The custom storage account name for the storage account created by the service in the managed resource group created as part of VIS deployment.

Refer to the storage account naming rules here.

If not provided, the service will create the storage account with a random name.
string

Constraints:
Min length = 3
Max length = 24

DiskConfiguration

Name Description Value
diskVolumeConfigurations The disk configuration for the db volume. For HANA, Required volumes are: ['hana/data', 'hana/log', hana/shared', 'usr/sap', 'os'], Optional volume : ['backup']. DiskConfigurationDiskVolumeConfigurations

DiskConfigurationDiskVolumeConfigurations

Name Description Value

DiskSku

Name Description Value
name Defines the disk sku name. 'PremiumV2_LRS'
'Premium_LRS'
'Premium_ZRS'
'StandardSSD_LRS'
'StandardSSD_ZRS'
'Standard_LRS'
'UltraSSD_LRS'

DiskVolumeConfiguration

Name Description Value
count The total number of disks required for the concerned volume. int
sizeGB The disk size in GB. int
sku The disk SKU details. DiskSku

ExternalInstallationSoftwareConfiguration

Name Description Value
centralServerVmId The resource ID of the virtual machine containing the central server instance. string
softwareInstallationType The SAP software installation Type. 'External' (required)

FileShareConfiguration

Name Description Value
configurationType Set to 'CreateAndMount' for type CreateAndMountFileShareConfiguration. Set to 'Mount' for type MountFileShareConfiguration. Set to 'Skip' for type SkipFileShareConfiguration. 'CreateAndMount'
'Mount'
'Skip' (required)

HighAvailabilityConfiguration

Name Description Value
highAvailabilityType The high availability type. 'AvailabilitySet'
'AvailabilityZone' (required)

HighAvailabilitySoftwareConfiguration

Name Description Value
fencingClientId The fencing client id. string (required)
fencingClientPassword The fencing client id secret/password. The secret should never expire. This will be used pacemaker to start/stop the cluster VMs. string

Constraints:
Sensitive value. Pass in as a secure parameter. (required)

ImageReference

Name Description Value
offer Specifies the offer of the platform image or marketplace image used to create the virtual machine. string
publisher The image publisher. string
sku The image SKU. string
version Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. string

InfrastructureConfiguration

Name Description Value
appResourceGroup The application resource group where SAP system resources will be deployed. string (required)
deploymentType Set to 'SingleServer' for type SingleServerConfiguration. Set to 'ThreeTier' for type ThreeTierConfiguration. 'SingleServer'
'ThreeTier' (required)

LinuxConfiguration

Name Description Value
disablePasswordAuthentication Specifies whether password authentication should be disabled. bool
osType The OS Type 'Linux' (required)
ssh Specifies the ssh key configuration for a Linux OS. (This property is deprecated, please use 'sshKeyPair' instead) SshConfiguration
sshKeyPair The SSH Key-pair used to authenticate with the VM's. SshKeyPair

LoadBalancerResourceNames

Name Description Value
backendPoolNames The list of backend pool names. Currently, ACSS deploys only one backend pool and hence, size of this list should be 1 string[]
frontendIpConfigurationNames The list of frontend IP configuration names. If provided as input, size of this list should be 2 for cs layer and should be 1 for database layer. string[]
healthProbeNames The list of health probe names. If provided as input, size of this list should be 2 for cs layer and should be 1 for database layer. string[]
loadBalancerName The full resource name for load balancer. If this value is not provided, load balancer will be name as {ASCS/DB}-loadBalancer. string

ManagedRGConfiguration

Name Description Value
name Managed resource group name string

MountFileShareConfiguration

Name Description Value
configurationType The type of file share config. 'Mount' (required)
id The fileshare resource ID string (required)
privateEndpointId The private endpoint resource ID string (required)

NetworkConfiguration

Name Description Value
isSecondaryIpEnabled Specifies whether a secondary IP address should be added to the network interface on all VMs of the SAP system being deployed bool

NetworkInterfaceResourceNames

Name Description Value
networkInterfaceName The full name for network interface. If name is not provided, service uses a default name based on the deployment type. For SingleServer, default name is {SID}-Nic. In case of HA-AvZone systems, default name will be {SID}-{App/ASCS/DB}-Zone{A/B}-Nic with an incrementor at the end in case of more than 1 instance per layer. For distributed and HA-AvSet systems, default name will be {SID}-{App/ASCS/DB}-Nic with an incrementor at the end in case of more than 1 instance per layer. string

OSConfiguration

Name Description Value
osType Set to 'Linux' for type LinuxConfiguration. Set to 'Windows' for type WindowsConfiguration. 'Linux'
'Windows' (required)

OSProfile

Name Description Value
adminPassword Specifies the password of the administrator account.

Minimum-length (Windows): 8 characters

Minimum-length (Linux): 6 characters

Max-length (Windows): 123 characters

Max-length (Linux): 72 characters

Complexity requirements: 3 out of 4 conditions below need to be fulfilled
Has lower characters
Has upper characters
Has a digit
Has a special character (Regex match [\W_])

Disallowed values: "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!"

For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM

For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
string

Constraints:
Sensitive value. Pass in as a secure parameter.
adminUsername Specifies the name of the administrator account.

This property cannot be updated after the VM is created.

Windows-only restriction: Cannot end in "."

Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5".

Minimum-length (Linux): 1 character

Max-length (Linux): 64 characters

Max-length (Windows): 20 characters.
string
osConfiguration Specifies Windows operating system settings on the virtual machine. OSConfiguration

OsSapConfiguration

Name Description Value
deployerVmPackages The url and storage account ID where deployer VM packages are uploaded DeployerVmPackages
sapFqdn The FQDN to set for the SAP system string

SAPConfiguration

Name Description Value
configurationType Set to 'Deployment' for type DeploymentConfiguration. Set to 'DeploymentWithOSConfig' for type DeploymentWithOSConfiguration. Set to 'Discovery' for type DiscoveryConfiguration. 'Deployment'
'DeploymentWithOSConfig'
'Discovery' (required)

SAPInstallWithoutOSConfigSoftwareConfiguration

Name Description Value
bomUrl The URL to the SAP Build of Materials(BOM) file. string (required)
highAvailabilitySoftwareConfiguration Gets or sets the HA software configuration. HighAvailabilitySoftwareConfiguration
sapBitsStorageAccountId The SAP bits storage account id. string (required)
softwareInstallationType The SAP software installation Type. 'SAPInstallWithoutOSConfig' (required)
softwareVersion The software version to install. string (required)

SAPVirtualInstanceProperties

Name Description Value
configuration Defines if the SAP system is being created using Azure Center for SAP solutions (ACSS) or if an existing SAP system is being registered with ACSS SAPConfiguration (required)
environment Defines the environment type - Production/Non Production. 'NonProd'
'Prod' (required)
managedResourceGroupConfiguration Managed resource group configuration ManagedRGConfiguration
sapProduct Defines the SAP Product type. 'ECC'
'Other'
'S4HANA' (required)

ServiceInitiatedSoftwareConfiguration

Name Description Value
bomUrl The URL to the SAP Build of Materials(BOM) file. string (required)
highAvailabilitySoftwareConfiguration Gets or sets the HA software configuration. HighAvailabilitySoftwareConfiguration
sapBitsStorageAccountId The SAP bits storage account id. string (required)
sapFqdn The FQDN to set for the SAP system during install. string (required)
softwareInstallationType The SAP software installation Type. 'ServiceInitiated' (required)
softwareVersion The software version to install. string (required)
sshPrivateKey The SSH private key. string

Constraints:
Sensitive value. Pass in as a secure parameter. (required)

SharedStorageResourceNames

Name Description Value
sharedStorageAccountName The full name of the shared storage account. If it is not provided, it will be defaulted to {SID}nfs{guid of 15 chars}. string
sharedStorageAccountPrivateEndPointName The full name of private end point for the shared storage account. If it is not provided, it will be defaulted to {storageAccountName}_pe string

SingleServerConfiguration

Name Description Value
customResourceNames The set of custom names to be used for underlying azure resources that are part of the SAP system. SingleServerCustomResourceNames
databaseType The database type. 'DB2'
'HANA'
dbDiskConfiguration Gets or sets the disk configuration. DiskConfiguration
deploymentType The type of SAP deployment, single server or Three tier. 'SingleServer' (required)
networkConfiguration Network configuration for the server NetworkConfiguration
subnetId The subnet id. string (required)
virtualMachineConfiguration Gets or sets the virtual machine configuration. VirtualMachineConfiguration (required)

SingleServerCustomResourceNames

Name Description Value
namingPatternType Set to 'FullResourceName' for type SingleServerFullResourceNames. 'FullResourceName' (required)

SingleServerFullResourceNames

Name Description Value
namingPatternType The pattern type to be used for resource naming. 'FullResourceName' (required)
virtualMachine The resource names object for virtual machine and related resources. VirtualMachineResourceNames

SkipFileShareConfiguration

Name Description Value
configurationType The type of file share config. 'Skip' (required)

SoftwareConfiguration

Name Description Value
softwareInstallationType Set to 'External' for type ExternalInstallationSoftwareConfiguration. Set to 'SAPInstallWithoutOSConfig' for type SAPInstallWithoutOSConfigSoftwareConfiguration. Set to 'ServiceInitiated' for type ServiceInitiatedSoftwareConfiguration. 'External'
'SAPInstallWithoutOSConfig'
'ServiceInitiated' (required)

SshConfiguration

Name Description Value
publicKeys The list of SSH public keys used to authenticate with linux based VMs. SshPublicKey[]

SshKeyPair

Name Description Value
privateKey SSH private key. string

Constraints:
Sensitive value. Pass in as a secure parameter.
publicKey SSH public key string

SshPublicKey

Name Description Value
keyData SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format.

For creating ssh keys, see Create SSH keys on Linux and Mac for Linux VMs in Azure.
string

StorageConfiguration

Name Description Value
transportFileShareConfiguration The properties of the transport directory attached to the VIS. The default for transportFileShareConfiguration is the createAndMount flow if storage configuration is missing. FileShareConfiguration

ThreeTierConfiguration

Name Description Value
applicationServer The application server configuration. ApplicationServerConfiguration (required)
centralServer The central server configuration. CentralServerConfiguration (required)
customResourceNames The set of custom names to be used for underlying azure resources that are part of the SAP system. ThreeTierCustomResourceNames
databaseServer The database configuration. DatabaseConfiguration (required)
deploymentType The type of SAP deployment, single server or Three tier. 'ThreeTier' (required)
highAvailabilityConfig The high availability configuration. HighAvailabilityConfiguration
networkConfiguration Network configuration common to all servers NetworkConfiguration
storageConfiguration The storage configuration. StorageConfiguration

ThreeTierCustomResourceNames

Name Description Value
namingPatternType Set to 'FullResourceName' for type ThreeTierFullResourceNames. 'FullResourceName' (required)

ThreeTierFullResourceNames

Name Description Value
applicationServer The full resource names object for application layer resources. The number of entries in this list should be equal to the number VMs to be created for application layer. ApplicationServerFullResourceNames
centralServer The full resource names object for central server layer resources. CentralServerFullResourceNames
databaseServer The full resource names object for database layer resources. The number of entries in this list should be equal to the number VMs to be created for database layer. DatabaseServerFullResourceNames
namingPatternType The pattern type to be used for resource naming. 'FullResourceName' (required)
sharedStorage The resource names object for shared storage. SharedStorageResourceNames

TrackedResourceTags

Name Description Value

UserAssignedIdentities

Name Description Value

UserAssignedIdentity

Name Description Value

UserAssignedServiceIdentity

Name Description Value
type Type of manage identity 'None'
'UserAssigned' (required)
userAssignedIdentities User assigned identities dictionary UserAssignedIdentities

VirtualMachineConfiguration

Name Description Value
imageReference The image reference. ImageReference (required)
osProfile The OS profile. OSProfile (required)
vmSize The virtual machine size. string (required)

VirtualMachineResourceNames

Name Description Value
dataDiskNames The full resource names for virtual machine data disks. This is a dictionary containing list of names of data disks per volume. Currently supported volumes for database layer are ['hana/data', 'hana/log', hana/shared', 'usr/sap', 'os', 'backup']. For application and cs layers, only 'default' volume is supported VirtualMachineResourceNamesDataDiskNames
hostName The full name for virtual-machine's host (computer name). Currently, ACSS only supports host names which are less than or equal to 13 characters long. If this value is not provided, vmName will be used as host name. string
networkInterfaces The list of network interface name objects for the selected virtual machine. Currently, only one network interface is supported per virtual machine. NetworkInterfaceResourceNames[]
osDiskName The full name for OS disk attached to the VM. If this value is not provided, it will be named by ARM as per its default naming standards (prefixed with vm name). There is only one OS disk attached per Virtual Machine. string
vmName The full name for virtual machine. The length of this field can be upto 64 characters. If name is not provided, service uses a default name based on the deployment type. For SingleServer, default name is {SID}vm. In case of HA-AvZone systems, default name will be {SID}{app/ascs/db}z{a/b}vm with an incrementor at the end in case of more than 1 vm per layer. For distributed and HA-AvSet systems, default name will be {SID}{app/ascs/db}vm with an incrementor at the end in case of more than 1 vm per layer. string

VirtualMachineResourceNamesDataDiskNames

Name Description Value

WindowsConfiguration

Name Description Value
osType The OS Type 'Windows' (required)

Usage Examples

Terraform (AzAPI provider) resource definition

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Workloads/sapVirtualInstances@2023-04-01"
  name = "string"
  parent_id = "string"
  identity {
    type = "string"
    identity_ids = [
      "string"
    ]
  }
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    properties = {
      configuration = {
        configurationType = "string"
        // For remaining properties, see SAPConfiguration objects
      }
      environment = "string"
      managedResourceGroupConfiguration = {
        name = "string"
      }
      sapProduct = "string"
    }
  }
}

ThreeTierCustomResourceNames objects

Set the namingPatternType property to specify the type of object.

For FullResourceName, use:

{
  applicationServer = {
    availabilitySetName = "string"
    virtualMachines = [
      {
        dataDiskNames = {
          {customized property} = [
            "string"
          ]
        }
        hostName = "string"
        networkInterfaces = [
          {
            networkInterfaceName = "string"
          }
        ]
        osDiskName = "string"
        vmName = "string"
      }
    ]
  }
  centralServer = {
    availabilitySetName = "string"
    loadBalancer = {
      backendPoolNames = [
        "string"
      ]
      frontendIpConfigurationNames = [
        "string"
      ]
      healthProbeNames = [
        "string"
      ]
      loadBalancerName = "string"
    }
    virtualMachines = [
      {
        dataDiskNames = {
          {customized property} = [
            "string"
          ]
        }
        hostName = "string"
        networkInterfaces = [
          {
            networkInterfaceName = "string"
          }
        ]
        osDiskName = "string"
        vmName = "string"
      }
    ]
  }
  databaseServer = {
    availabilitySetName = "string"
    loadBalancer = {
      backendPoolNames = [
        "string"
      ]
      frontendIpConfigurationNames = [
        "string"
      ]
      healthProbeNames = [
        "string"
      ]
      loadBalancerName = "string"
    }
    virtualMachines = [
      {
        dataDiskNames = {
          {customized property} = [
            "string"
          ]
        }
        hostName = "string"
        networkInterfaces = [
          {
            networkInterfaceName = "string"
          }
        ]
        osDiskName = "string"
        vmName = "string"
      }
    ]
  }
  namingPatternType = "FullResourceName"
  sharedStorage = {
    sharedStorageAccountName = "string"
    sharedStorageAccountPrivateEndPointName = "string"
  }
}

SingleServerCustomResourceNames objects

Set the namingPatternType property to specify the type of object.

For FullResourceName, use:

{
  namingPatternType = "FullResourceName"
  virtualMachine = {
    dataDiskNames = {
      {customized property} = [
        "string"
      ]
    }
    hostName = "string"
    networkInterfaces = [
      {
        networkInterfaceName = "string"
      }
    ]
    osDiskName = "string"
    vmName = "string"
  }
}

SAPConfiguration objects

Set the configurationType property to specify the type of object.

For Deployment, use:

{
  appLocation = "string"
  configurationType = "Deployment"
  infrastructureConfiguration = {
    appResourceGroup = "string"
    deploymentType = "string"
    // For remaining properties, see InfrastructureConfiguration objects
  }
  softwareConfiguration = {
    softwareInstallationType = "string"
    // For remaining properties, see SoftwareConfiguration objects
  }
}

For DeploymentWithOSConfig, use:

{
  appLocation = "string"
  configurationType = "DeploymentWithOSConfig"
  infrastructureConfiguration = {
    appResourceGroup = "string"
    deploymentType = "string"
    // For remaining properties, see InfrastructureConfiguration objects
  }
  osSapConfiguration = {
    deployerVmPackages = {
      storageAccountId = "string"
      url = "string"
    }
    sapFqdn = "string"
  }
  softwareConfiguration = {
    softwareInstallationType = "string"
    // For remaining properties, see SoftwareConfiguration objects
  }
}

For Discovery, use:

{
  centralServerVmId = "string"
  configurationType = "Discovery"
  managedRgStorageAccountName = "string"
}

SoftwareConfiguration objects

Set the softwareInstallationType property to specify the type of object.

For External, use:

{
  centralServerVmId = "string"
  softwareInstallationType = "External"
}

For SAPInstallWithoutOSConfig, use:

{
  bomUrl = "string"
  highAvailabilitySoftwareConfiguration = {
    fencingClientId = "string"
    fencingClientPassword = "string"
  }
  sapBitsStorageAccountId = "string"
  softwareInstallationType = "SAPInstallWithoutOSConfig"
  softwareVersion = "string"
}

For ServiceInitiated, use:

{
  bomUrl = "string"
  highAvailabilitySoftwareConfiguration = {
    fencingClientId = "string"
    fencingClientPassword = "string"
  }
  sapBitsStorageAccountId = "string"
  sapFqdn = "string"
  softwareInstallationType = "ServiceInitiated"
  softwareVersion = "string"
  sshPrivateKey = "string"
}

OSConfiguration objects

Set the osType property to specify the type of object.

For Linux, use:

{
  disablePasswordAuthentication = bool
  osType = "Linux"
  ssh = {
    publicKeys = [
      {
        keyData = "string"
      }
    ]
  }
  sshKeyPair = {
    privateKey = "string"
    publicKey = "string"
  }
}

For Windows, use:

{
  osType = "Windows"
}

InfrastructureConfiguration objects

Set the deploymentType property to specify the type of object.

For SingleServer, use:

{
  customResourceNames = {
    namingPatternType = "string"
    // For remaining properties, see SingleServerCustomResourceNames objects
  }
  databaseType = "string"
  dbDiskConfiguration = {
    diskVolumeConfigurations = {
      {customized property} = {
        count = int
        sizeGB = int
        sku = {
          name = "string"
        }
      }
    }
  }
  deploymentType = "SingleServer"
  networkConfiguration = {
    isSecondaryIpEnabled = bool
  }
  subnetId = "string"
  virtualMachineConfiguration = {
    imageReference = {
      offer = "string"
      publisher = "string"
      sku = "string"
      version = "string"
    }
    osProfile = {
      adminPassword = "string"
      adminUsername = "string"
      osConfiguration = {
        osType = "string"
        // For remaining properties, see OSConfiguration objects
      }
    }
    vmSize = "string"
  }
}

For ThreeTier, use:

{
  applicationServer = {
    instanceCount = int
    subnetId = "string"
    virtualMachineConfiguration = {
      imageReference = {
        offer = "string"
        publisher = "string"
        sku = "string"
        version = "string"
      }
      osProfile = {
        adminPassword = "string"
        adminUsername = "string"
        osConfiguration = {
          osType = "string"
          // For remaining properties, see OSConfiguration objects
        }
      }
      vmSize = "string"
    }
  }
  centralServer = {
    instanceCount = int
    subnetId = "string"
    virtualMachineConfiguration = {
      imageReference = {
        offer = "string"
        publisher = "string"
        sku = "string"
        version = "string"
      }
      osProfile = {
        adminPassword = "string"
        adminUsername = "string"
        osConfiguration = {
          osType = "string"
          // For remaining properties, see OSConfiguration objects
        }
      }
      vmSize = "string"
    }
  }
  customResourceNames = {
    namingPatternType = "string"
    // For remaining properties, see ThreeTierCustomResourceNames objects
  }
  databaseServer = {
    databaseType = "string"
    diskConfiguration = {
      diskVolumeConfigurations = {
        {customized property} = {
          count = int
          sizeGB = int
          sku = {
            name = "string"
          }
        }
      }
    }
    instanceCount = int
    subnetId = "string"
    virtualMachineConfiguration = {
      imageReference = {
        offer = "string"
        publisher = "string"
        sku = "string"
        version = "string"
      }
      osProfile = {
        adminPassword = "string"
        adminUsername = "string"
        osConfiguration = {
          osType = "string"
          // For remaining properties, see OSConfiguration objects
        }
      }
      vmSize = "string"
    }
  }
  deploymentType = "ThreeTier"
  highAvailabilityConfig = {
    highAvailabilityType = "string"
  }
  networkConfiguration = {
    isSecondaryIpEnabled = bool
  }
  storageConfiguration = {
    transportFileShareConfiguration = {
      configurationType = "string"
      // For remaining properties, see FileShareConfiguration objects
    }
  }
}

FileShareConfiguration objects

Set the configurationType property to specify the type of object.

For CreateAndMount, use:

{
  configurationType = "CreateAndMount"
  resourceGroup = "string"
  storageAccountName = "string"
}

For Mount, use:

{
  configurationType = "Mount"
  id = "string"
  privateEndpointId = "string"
}

For Skip, use:

{
  configurationType = "Skip"
}

Property Values

Microsoft.Workloads/sapVirtualInstances

Name Description Value
identity A pre-created user assigned identity with appropriate roles assigned. To learn more on identity and roles required, visit the ACSS how-to-guide. UserAssignedServiceIdentity
location The geo-location where the resource lives string (required)
name The resource name string (required)
properties Defines the Virtual Instance for SAP solutions resource properties. SAPVirtualInstanceProperties (required)
tags Resource tags Dictionary of tag names and values.
type The resource type "Microsoft.Workloads/sapVirtualInstances@2023-04-01"

ApplicationServerConfiguration

Name Description Value
instanceCount The number of app server instances. int (required)
subnetId The subnet id. string (required)
virtualMachineConfiguration Gets or sets the virtual machine configuration. VirtualMachineConfiguration (required)

ApplicationServerFullResourceNames

Name Description Value
availabilitySetName The full name for availability set. In case name is not provided, it will be defaulted to {SID}-App-AvSet. string
virtualMachines The list of virtual machine naming details. VirtualMachineResourceNames[]

CentralServerConfiguration

Name Description Value
instanceCount The number of central server VMs. int (required)
subnetId The subnet id. string (required)
virtualMachineConfiguration Gets or sets the virtual machine configuration. VirtualMachineConfiguration (required)

CentralServerFullResourceNames

Name Description Value
availabilitySetName The full name for availability set. In case name is not provided, it will be defaulted to {SID}-ASCS-AvSet. string
loadBalancer The resource names object for load balancer and related resources. LoadBalancerResourceNames
virtualMachines The list of names for all ASCS virtual machines to be deployed. The number of entries in this list should be equal to the number VMs to be created for ASCS layer. At maximum, there can be two virtual machines at this layer: ASCS and ERS. VirtualMachineResourceNames[]

CreateAndMountFileShareConfiguration

Name Description Value
configurationType The type of file share config. 'CreateAndMount' (required)
resourceGroup The name of transport file share resource group. This should be pre created by the customer. The app rg is used in case of missing input. string
storageAccountName The name of file share storage account name . A custom name is used in case of missing input. string

DatabaseConfiguration

Name Description Value
databaseType The database type. 'DB2'
'HANA'
diskConfiguration Gets or sets the disk configuration. DiskConfiguration
instanceCount The number of database VMs. int (required)
subnetId The subnet id. string (required)
virtualMachineConfiguration Gets or sets the virtual machine configuration. VirtualMachineConfiguration (required)

DatabaseServerFullResourceNames

Name Description Value
availabilitySetName The full name for availability set. In case name is not provided, it will be defaulted to {SID}-DB-AvSet. string
loadBalancer The resource names object for load balancer and related resources. LoadBalancerResourceNames
virtualMachines The list of virtual machine naming details. VirtualMachineResourceNames[]

DeployerVmPackages

Name Description Value
storageAccountId The deployer VM packages storage account id string
url The URL to the deployer VM packages file. string

DeploymentConfiguration

Name Description Value
appLocation The geo-location where the SAP system is to be created. string
configurationType The configuration Type. 'Deployment' (required)
infrastructureConfiguration The infrastructure configuration. InfrastructureConfiguration
softwareConfiguration The software configuration. SoftwareConfiguration

DeploymentWithOSConfiguration

Name Description Value
appLocation The geo-location where the SAP system is to be created. string
configurationType The configuration Type. 'DeploymentWithOSConfig' (required)
infrastructureConfiguration The infrastructure configuration. InfrastructureConfiguration
osSapConfiguration The OS and SAP configuration. OsSapConfiguration
softwareConfiguration The software configuration. SoftwareConfiguration

DiscoveryConfiguration

Name Description Value
centralServerVmId The virtual machine ID of the Central Server. string
configurationType The configuration Type. 'Discovery' (required)
managedRgStorageAccountName The custom storage account name for the storage account created by the service in the managed resource group created as part of VIS deployment.

Refer to the storage account naming rules here.

If not provided, the service will create the storage account with a random name.
string

Constraints:
Min length = 3
Max length = 24

DiskConfiguration

Name Description Value
diskVolumeConfigurations The disk configuration for the db volume. For HANA, Required volumes are: ['hana/data', 'hana/log', hana/shared', 'usr/sap', 'os'], Optional volume : ['backup']. DiskConfigurationDiskVolumeConfigurations

DiskConfigurationDiskVolumeConfigurations

Name Description Value

DiskSku

Name Description Value
name Defines the disk sku name. 'PremiumV2_LRS'
'Premium_LRS'
'Premium_ZRS'
'StandardSSD_LRS'
'StandardSSD_ZRS'
'Standard_LRS'
'UltraSSD_LRS'

DiskVolumeConfiguration

Name Description Value
count The total number of disks required for the concerned volume. int
sizeGB The disk size in GB. int
sku The disk SKU details. DiskSku

ExternalInstallationSoftwareConfiguration

Name Description Value
centralServerVmId The resource ID of the virtual machine containing the central server instance. string
softwareInstallationType The SAP software installation Type. 'External' (required)

FileShareConfiguration

Name Description Value
configurationType Set to 'CreateAndMount' for type CreateAndMountFileShareConfiguration. Set to 'Mount' for type MountFileShareConfiguration. Set to 'Skip' for type SkipFileShareConfiguration. 'CreateAndMount'
'Mount'
'Skip' (required)

HighAvailabilityConfiguration

Name Description Value
highAvailabilityType The high availability type. 'AvailabilitySet'
'AvailabilityZone' (required)

HighAvailabilitySoftwareConfiguration

Name Description Value
fencingClientId The fencing client id. string (required)
fencingClientPassword The fencing client id secret/password. The secret should never expire. This will be used pacemaker to start/stop the cluster VMs. string

Constraints:
Sensitive value. Pass in as a secure parameter. (required)

ImageReference

Name Description Value
offer Specifies the offer of the platform image or marketplace image used to create the virtual machine. string
publisher The image publisher. string
sku The image SKU. string
version Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. string

InfrastructureConfiguration

Name Description Value
appResourceGroup The application resource group where SAP system resources will be deployed. string (required)
deploymentType Set to 'SingleServer' for type SingleServerConfiguration. Set to 'ThreeTier' for type ThreeTierConfiguration. 'SingleServer'
'ThreeTier' (required)

LinuxConfiguration

Name Description Value
disablePasswordAuthentication Specifies whether password authentication should be disabled. bool
osType The OS Type 'Linux' (required)
ssh Specifies the ssh key configuration for a Linux OS. (This property is deprecated, please use 'sshKeyPair' instead) SshConfiguration
sshKeyPair The SSH Key-pair used to authenticate with the VM's. SshKeyPair

LoadBalancerResourceNames

Name Description Value
backendPoolNames The list of backend pool names. Currently, ACSS deploys only one backend pool and hence, size of this list should be 1 string[]
frontendIpConfigurationNames The list of frontend IP configuration names. If provided as input, size of this list should be 2 for cs layer and should be 1 for database layer. string[]
healthProbeNames The list of health probe names. If provided as input, size of this list should be 2 for cs layer and should be 1 for database layer. string[]
loadBalancerName The full resource name for load balancer. If this value is not provided, load balancer will be name as {ASCS/DB}-loadBalancer. string

ManagedRGConfiguration

Name Description Value
name Managed resource group name string

MountFileShareConfiguration

Name Description Value
configurationType The type of file share config. 'Mount' (required)
id The fileshare resource ID string (required)
privateEndpointId The private endpoint resource ID string (required)

NetworkConfiguration

Name Description Value
isSecondaryIpEnabled Specifies whether a secondary IP address should be added to the network interface on all VMs of the SAP system being deployed bool

NetworkInterfaceResourceNames

Name Description Value
networkInterfaceName The full name for network interface. If name is not provided, service uses a default name based on the deployment type. For SingleServer, default name is {SID}-Nic. In case of HA-AvZone systems, default name will be {SID}-{App/ASCS/DB}-Zone{A/B}-Nic with an incrementor at the end in case of more than 1 instance per layer. For distributed and HA-AvSet systems, default name will be {SID}-{App/ASCS/DB}-Nic with an incrementor at the end in case of more than 1 instance per layer. string

OSConfiguration

Name Description Value
osType Set to 'Linux' for type LinuxConfiguration. Set to 'Windows' for type WindowsConfiguration. 'Linux'
'Windows' (required)

OSProfile

Name Description Value
adminPassword Specifies the password of the administrator account.

Minimum-length (Windows): 8 characters

Minimum-length (Linux): 6 characters

Max-length (Windows): 123 characters

Max-length (Linux): 72 characters

Complexity requirements: 3 out of 4 conditions below need to be fulfilled
Has lower characters
Has upper characters
Has a digit
Has a special character (Regex match [\W_])

Disallowed values: "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!"

For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM

For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
string

Constraints:
Sensitive value. Pass in as a secure parameter.
adminUsername Specifies the name of the administrator account.

This property cannot be updated after the VM is created.

Windows-only restriction: Cannot end in "."

Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5".

Minimum-length (Linux): 1 character

Max-length (Linux): 64 characters

Max-length (Windows): 20 characters.
string
osConfiguration Specifies Windows operating system settings on the virtual machine. OSConfiguration

OsSapConfiguration

Name Description Value
deployerVmPackages The url and storage account ID where deployer VM packages are uploaded DeployerVmPackages
sapFqdn The FQDN to set for the SAP system string

SAPConfiguration

Name Description Value
configurationType Set to 'Deployment' for type DeploymentConfiguration. Set to 'DeploymentWithOSConfig' for type DeploymentWithOSConfiguration. Set to 'Discovery' for type DiscoveryConfiguration. 'Deployment'
'DeploymentWithOSConfig'
'Discovery' (required)

SAPInstallWithoutOSConfigSoftwareConfiguration

Name Description Value
bomUrl The URL to the SAP Build of Materials(BOM) file. string (required)
highAvailabilitySoftwareConfiguration Gets or sets the HA software configuration. HighAvailabilitySoftwareConfiguration
sapBitsStorageAccountId The SAP bits storage account id. string (required)
softwareInstallationType The SAP software installation Type. 'SAPInstallWithoutOSConfig' (required)
softwareVersion The software version to install. string (required)

SAPVirtualInstanceProperties

Name Description Value
configuration Defines if the SAP system is being created using Azure Center for SAP solutions (ACSS) or if an existing SAP system is being registered with ACSS SAPConfiguration (required)
environment Defines the environment type - Production/Non Production. 'NonProd'
'Prod' (required)
managedResourceGroupConfiguration Managed resource group configuration ManagedRGConfiguration
sapProduct Defines the SAP Product type. 'ECC'
'Other'
'S4HANA' (required)

ServiceInitiatedSoftwareConfiguration

Name Description Value
bomUrl The URL to the SAP Build of Materials(BOM) file. string (required)
highAvailabilitySoftwareConfiguration Gets or sets the HA software configuration. HighAvailabilitySoftwareConfiguration
sapBitsStorageAccountId The SAP bits storage account id. string (required)
sapFqdn The FQDN to set for the SAP system during install. string (required)
softwareInstallationType The SAP software installation Type. 'ServiceInitiated' (required)
softwareVersion The software version to install. string (required)
sshPrivateKey The SSH private key. string

Constraints:
Sensitive value. Pass in as a secure parameter. (required)

SharedStorageResourceNames

Name Description Value
sharedStorageAccountName The full name of the shared storage account. If it is not provided, it will be defaulted to {SID}nfs{guid of 15 chars}. string
sharedStorageAccountPrivateEndPointName The full name of private end point for the shared storage account. If it is not provided, it will be defaulted to {storageAccountName}_pe string

SingleServerConfiguration

Name Description Value
customResourceNames The set of custom names to be used for underlying azure resources that are part of the SAP system. SingleServerCustomResourceNames
databaseType The database type. 'DB2'
'HANA'
dbDiskConfiguration Gets or sets the disk configuration. DiskConfiguration
deploymentType The type of SAP deployment, single server or Three tier. 'SingleServer' (required)
networkConfiguration Network configuration for the server NetworkConfiguration
subnetId The subnet id. string (required)
virtualMachineConfiguration Gets or sets the virtual machine configuration. VirtualMachineConfiguration (required)

SingleServerCustomResourceNames

Name Description Value
namingPatternType Set to 'FullResourceName' for type SingleServerFullResourceNames. 'FullResourceName' (required)

SingleServerFullResourceNames

Name Description Value
namingPatternType The pattern type to be used for resource naming. 'FullResourceName' (required)
virtualMachine The resource names object for virtual machine and related resources. VirtualMachineResourceNames

SkipFileShareConfiguration

Name Description Value
configurationType The type of file share config. 'Skip' (required)

SoftwareConfiguration

Name Description Value
softwareInstallationType Set to 'External' for type ExternalInstallationSoftwareConfiguration. Set to 'SAPInstallWithoutOSConfig' for type SAPInstallWithoutOSConfigSoftwareConfiguration. Set to 'ServiceInitiated' for type ServiceInitiatedSoftwareConfiguration. 'External'
'SAPInstallWithoutOSConfig'
'ServiceInitiated' (required)

SshConfiguration

Name Description Value
publicKeys The list of SSH public keys used to authenticate with linux based VMs. SshPublicKey[]

SshKeyPair

Name Description Value
privateKey SSH private key. string

Constraints:
Sensitive value. Pass in as a secure parameter.
publicKey SSH public key string

SshPublicKey

Name Description Value
keyData SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format.

For creating ssh keys, see Create SSH keys on Linux and Mac for Linux VMs in Azure.
string

StorageConfiguration

Name Description Value
transportFileShareConfiguration The properties of the transport directory attached to the VIS. The default for transportFileShareConfiguration is the createAndMount flow if storage configuration is missing. FileShareConfiguration

ThreeTierConfiguration

Name Description Value
applicationServer The application server configuration. ApplicationServerConfiguration (required)
centralServer The central server configuration. CentralServerConfiguration (required)
customResourceNames The set of custom names to be used for underlying azure resources that are part of the SAP system. ThreeTierCustomResourceNames
databaseServer The database configuration. DatabaseConfiguration (required)
deploymentType The type of SAP deployment, single server or Three tier. 'ThreeTier' (required)
highAvailabilityConfig The high availability configuration. HighAvailabilityConfiguration
networkConfiguration Network configuration common to all servers NetworkConfiguration
storageConfiguration The storage configuration. StorageConfiguration

ThreeTierCustomResourceNames

Name Description Value
namingPatternType Set to 'FullResourceName' for type ThreeTierFullResourceNames. 'FullResourceName' (required)

ThreeTierFullResourceNames

Name Description Value
applicationServer The full resource names object for application layer resources. The number of entries in this list should be equal to the number VMs to be created for application layer. ApplicationServerFullResourceNames
centralServer The full resource names object for central server layer resources. CentralServerFullResourceNames
databaseServer The full resource names object for database layer resources. The number of entries in this list should be equal to the number VMs to be created for database layer. DatabaseServerFullResourceNames
namingPatternType The pattern type to be used for resource naming. 'FullResourceName' (required)
sharedStorage The resource names object for shared storage. SharedStorageResourceNames

TrackedResourceTags

Name Description Value

UserAssignedIdentities

Name Description Value

UserAssignedIdentity

Name Description Value

UserAssignedServiceIdentity

Name Description Value
type Type of manage identity 'None'
'UserAssigned' (required)
userAssignedIdentities User assigned identities dictionary UserAssignedIdentities

VirtualMachineConfiguration

Name Description Value
imageReference The image reference. ImageReference (required)
osProfile The OS profile. OSProfile (required)
vmSize The virtual machine size. string (required)

VirtualMachineResourceNames

Name Description Value
dataDiskNames The full resource names for virtual machine data disks. This is a dictionary containing list of names of data disks per volume. Currently supported volumes for database layer are ['hana/data', 'hana/log', hana/shared', 'usr/sap', 'os', 'backup']. For application and cs layers, only 'default' volume is supported VirtualMachineResourceNamesDataDiskNames
hostName The full name for virtual-machine's host (computer name). Currently, ACSS only supports host names which are less than or equal to 13 characters long. If this value is not provided, vmName will be used as host name. string
networkInterfaces The list of network interface name objects for the selected virtual machine. Currently, only one network interface is supported per virtual machine. NetworkInterfaceResourceNames[]
osDiskName The full name for OS disk attached to the VM. If this value is not provided, it will be named by ARM as per its default naming standards (prefixed with vm name). There is only one OS disk attached per Virtual Machine. string
vmName The full name for virtual machine. The length of this field can be upto 64 characters. If name is not provided, service uses a default name based on the deployment type. For SingleServer, default name is {SID}vm. In case of HA-AvZone systems, default name will be {SID}{app/ascs/db}z{a/b}vm with an incrementor at the end in case of more than 1 vm per layer. For distributed and HA-AvSet systems, default name will be {SID}{app/ascs/db}vm with an incrementor at the end in case of more than 1 vm per layer. string

VirtualMachineResourceNamesDataDiskNames

Name Description Value

WindowsConfiguration

Name Description Value
osType The OS Type 'Windows' (required)