{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "languageVersion": "2.0",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.34.44.8038",
      "templateHash": "2869803289554582186"
    }
  },
  "definitions": {
    "_1.ListKeySet": {
      "type": "object",
      "properties": {
        "keys": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/_1.SasKeySet"
          }
        }
      },
      "metadata": {
        "__bicep_imported_from!": {
          "sourceTemplate": "utils.bicep"
        }
      }
    },
    "_1.SasKeySet": {
      "type": "object",
      "properties": {
        "keyName": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "metadata": {
        "__bicep_imported_from!": {
          "sourceTemplate": "utils.bicep"
        }
      }
    }
  },
  "functions": [
    {
      "namespace": "__bicep",
      "members": {
        "connectionString": {
          "parameters": [
            {
              "type": "string",
              "name": "name"
            },
            {
              "$ref": "#/definitions/_1.ListKeySet",
              "name": "keySet"
            }
          ],
          "output": {
            "type": "string",
            "value": "[format('DefaultEndpointsProtocol=https;AccountName={0};EndpointSuffix={1};AccountKey={2}', parameters('name'), environment().suffixes.storage, parameters('keySet').keys[0].value)]"
          },
          "metadata": {
            "__bicep_imported_from!": {
              "sourceTemplate": "utils.bicep"
            }
          }
        }
      }
    }
  ],
  "parameters": {
    "resourcePrefix": {
      "type": "string",
      "minLength": 5,
      "maxLength": 20
    }
  },
  "variables": {
    "storageAccountName": "[format('bicepassets{0}', uniqueString(resourceGroup().id, parameters('resourcePrefix')))]"
  },
  "resources": {
    "assetStorage": {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2023-05-01",
      "name": "[variables('storageAccountName')]",
      "location": "[resourceGroup().location]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "accessTier": "Cool",
        "supportsHttpsTrafficOnly": true,
        "defaultToOAuthAuthentication": true
      }
    },
    "blobServices": {
      "type": "Microsoft.Storage/storageAccounts/blobServices",
      "apiVersion": "2023-05-01",
      "name": "[format('{0}/{1}', variables('storageAccountName'), 'default')]",
      "dependsOn": [
        "assetStorage"
      ]
    },
    "assetContainer": {
      "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
      "apiVersion": "2023-05-01",
      "name": "[format('{0}/{1}/{2}', variables('storageAccountName'), 'default', 'assets')]",
      "properties": {
        "publicAccess": "None",
        "metadata": {}
      },
      "dependsOn": [
        "blobServices"
      ]
    }
  },
  "outputs": {
    "storageAccountName": {
      "type": "string",
      "value": "[variables('storageAccountName')]"
    }
  }
}