Server farm (service plan) SKUs

Building on Shui... Use the following fragment in your template:

{
  "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "appServicePlanSkuName": {
      "type": "string",
      "allowedValues": [
        //name  Tier          Full name
        "D1",   //Shared      an D1 Shared
        "F1",   //Free        an F1 Free
        "B1",   //Basic       an B1 Basic
        "B2",   //Basic       an B2 Basic
        "B3",   //Basic       an B3 Basic
        "S1",   //Standard    an S1 Standard
        "S2",   //Standard    an S2 Standard
        "S3",   //Standard    an S3 Standard
        "P1",   //Premium     an P1 Premium
        "P2",   //Premium     an P2 Premium
        "P3",   //Premium     an P3 Premium
        "P1V2", //PremiumV2   an P1V2 PremiumV2
        "P2V2", //PremiumV2   an P2V2 PremiumV2
        "P3V2", //PremiumV2   an P3V2 PremiumV2
        "I1",   //Isolated    an I2 Isolated
        "I2",   //Isolated    an I2 Isolated
        "I3",   //Isolated    an I3 Isolated
        "Y1",   //Dynamic     a  function consumption plan
        "EP1",  //ElasticPremium
        "EP2",  //ElasticPremium
        "EP3"   //ElasticPremium
      ]
    },
    ...

Then define Microsoft.Web/serverFarms resource:

  "resources": [
    {
      "location": "[parameters('location')]",
      "name": "[parameters('appServicePlanName')]",
      "type": "Microsoft.Web/serverFarms",
      "apiVersion": "2018-02-01",
      "kind": "linux",
      "properties": {
        "name": "[parameters('appServicePlanName')]",
        "reserved": true,
        "targetWorkerCount": 1,
        "targetWorkerSizeId": "[parameters('appServicePlanWorkerSizeId')]",
      },
      "sku": {
        "name": "[parameters('appServicePlanSkuName')]"
      }
    }
    ...

There are various ways to find the sku and capabilities for resources. This link references a few options for you: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-sku-not-available-errors

The current server farm descriptions are:

name    Tier        Full name
D1      Shared      an D1 Shared
F1      Free        an F1 Free
B1      Basic       an B1 Basic
B2      Basic       an B2 Basic
B3      Basic       an B3 Basic
S1      Standard    an S1 Standard
S2      Standard    an S2 Standard
S3      Standard    an S3 Standard
P1      Premium     an P1 Premium
P2      Premium     an P2 Premium
P3      Premium     an P3 Premium
P1V2    PremiumV2   an P1V2 PremiumV2
P2V2    PremiumV2   an P2V2 PremiumV2
P3V2    PremiumV2   an P3V2 PremiumV2
I1      Isolated    an I2 Isolated
I2      Isolated    an I2 Isolated
I3      Isolated    an I3 Isolated
Y1      Dynamic     a  function consumption plan

to deploy a server farm use this resource definition in ARM:

{
  "type": "Microsoft.Web/serverfarms",
  "apiVersion": "2016-09-01",
  "name": "[parameters('hostingPlanName')]",
  "location": "[resourceGroup().location]",
  "properties": {
    "name": "[parameters('hostingPlanName')]"
  },
  "sku": {
    "name": "[parameters('hostingPlanSkuName')]",
    "tier": "[parameters('hostingPlanSkuTier')]"
  }
}

alternatively for a consumption plan; you can use a more specific api version:

{
  "type": "Microsoft.Web/serverfarms",
  "apiVersion": "2015-04-01",
  "name": "[variables('hostingPlanName')]",
  "location": "[resourceGroup().location]",
  "properties": {
      "name": "[variables('hostingPlanName')]",
      "computeMode": "Dynamic",
      "sku": "Dynamic"
  }
}

is there an Y2 consumption plan?

Currently, Azure does not support this, Azure only support one type consumption plan.

More information about this please refer to this official document:Azure App Service plan overview.