{
  "kind": "code.generic",
  "order": 20,
  "model": {
    "snippetModels": [
      {
        "name": "EnsureMicrosoftExtensionsConfigurationNamespaces",
        "condition": "ClassicConfigureServices",
        "snippets": [
          {
            "kind": "Empty",
            "location": {
              "parts": [
                {
                  "kind": "EntryPoint",
                  "properties": {}
                },
                {
                  "kind": "Method",
                  "properties": {
                    "Method": "CreateHostBuilder",
                    "TypeName": "System.String[]"
                  }
                },
                {
                  "kind": "UsingDeclaration",
                  "properties": {
                    "UsingDeclaration": "using Microsoft.Extensions.Configuration;"
                  }
                }
              ]
            },
            "body": "",
            "tokens": {}
          },
          {
            "kind": "UsingDeclaration",
            "location": {
              "parts": [
                {
                  "kind": "EntryPoint",
                  "properties": {}
                },
                {
                  "kind": "Method",
                  "properties": {
                    "Method": "CreateHostBuilder",
                    "TypeName": "System.String[]"
                  }
                }
              ]
            },
            "body": "using Microsoft.Extensions.Configuration;",
            "tokens": {}
          }
        ]
      },
      {
        "name": "EnsureAzureIdentityNamespaces",
        "condition": "ClassicConfigureServices",
        "snippets": [
          {
            "kind": "Empty",
            "location": {
              "parts": [
                {
                  "kind": "EntryPoint",
                  "properties": {}
                },
                {
                  "kind": "Method",
                  "properties": {
                    "Method": "CreateHostBuilder",
                    "TypeName": "System.String[]"
                  }
                },
                {
                  "kind": "UsingDeclaration",
                  "properties": {
                    "UsingDeclaration": "using Azure.Identity;"
                  }
                }
              ]
            },
            "body": "",
            "tokens": {}
          },
          {
            "kind": "UsingDeclaration",
            "location": {
              "parts": [
                {
                  "kind": "EntryPoint",
                  "properties": {}
                },
                {
                  "kind": "Method",
                  "properties": {
                    "Method": "CreateHostBuilder",
                    "TypeName": "System.String[]"
                  }
                }
              ]
            },
            "body": "using Azure.Identity;",
            "tokens": {}
          }
        ]
      },
      {
        "name": "EnsureAddKeyVault",
        "condition": "ClassicConfigureServices",
        "snippets": [
          {
            "kind": "Empty",
            "location": {
              "parts": [
                {
                  "kind": "EntryPoint",
                  "properties": {}
                },
                {
                  "kind": "Method",
                  "properties": {
                    "Method": "CreateHostBuilder",
                    "TypeName": "System.String[]"
                  }
                },
                {
                  "kind": "Invocation",
                  "properties": {
                    "Invocation": "AddAzureKeyVault"
                  }
                }
              ]
            },
            "body": "",
            "tokens": {}
          },
          {
            "kind": "Expression",
            "location": {
              "parts": [
                {
                  "kind": "EntryPoint",
                  "properties": {}
                },
                {
                  "kind": "Method",
                  "properties": {
                    "Method": "CreateHostBuilder",
                    "TypeName": "System.String[]"
                  }
                },
                {
                  "kind": "Invocation",
                  "properties": {
                    "Invocation": "ConfigureAppConfiguration"
                  }
                },
                {
                  "kind": "ArgumentDelegate",
                  "properties": {
                    "TypeName": "System.Action<Microsoft.Extensions.Hosting.HostBuilderContext, Microsoft.Extensions.Configuration.IConfigurationBuilder>"
                  }
                }
              ]
            },
            "body": "var keyVaultEndpoint = new Uri(Environment.GetEnvironmentVariable(`@@connectionId@@`)!);\r\n@@localConfigVar@@.AddAzureKeyVault(keyVaultEndpoint, new DefaultAzureCredential());",
            "tokens": {
              "localConfigVar": {
                "name": "localConfigVar",
                "kind": "MethodParameter",
                "properties": {
                  "TypeName": "Microsoft.Extensions.Configuration.IConfigurationBuilder"
                }
              },
              "connectionId": {
                "name": "connectionId",
                "kind": "ExternalValue",
                "properties": {
                  "ModelPropertyName": "connectionId"
                }
              }
            }
          },
          {
            "kind": "Expression",
            "location": {
              "parts": [
                {
                  "kind": "EntryPoint",
                  "properties": {}
                },
                {
                  "kind": "Method",
                  "properties": {
                    "Method": "CreateHostBuilder",
                    "TypeName": "System.String[]"
                  }
                },
                {
                  "kind": "Invocation",
                  "properties": {
                    "Invocation": "CreateDefaultBuilder"
                  }
                }
              ]
            },
            "body": "\r\nbuilder.ConfigureAppConfiguration((context, config) =>\r\n{\r\nvar keyVaultEndpoint = new Uri(Environment.GetEnvironmentVariable(`@@connectionId@@`)!);\r\nconfig.AddAzureKeyVault(keyVaultEndpoint, new DefaultAzureCredential());\r\n});\r\n",
            "tokens": {
              "connectionId": {
                "name": "connectionId",
                "kind": "ExternalValue",
                "properties": {
                  "ModelPropertyName": "connectionId"
                }
              }
            }
          }
        ]
      },
      {
        "name": "EnsureAddKeyVaultForMinimalAppModel",
        "condition": "MinimalAppModel",
        "snippets": [
          {
            "kind": "Empty",
            "location": {
              "parts": [
                {
                  "kind": "TopLevelMethod",
                  "properties": {}
                },
                {
                  "kind": "Invocation",
                  "properties": {
                    "Invocation": "AddAzureKeyVault"
                  }
                }
              ]
            },
            "body": "",
            "tokens": {}
          },
          {
            "kind": "Expression",
            "location": {
              "parts": [
                {
                  "kind": "TopLevelMethod",
                  "properties": {}
                },
                {
                  "kind": "LocalVariable",
                  "properties": {
                    "TypeName": "Microsoft.AspNetCore.Builder.WebApplicationBuilder?"
                  },
                  "locationTokenName": "localVar"
                }
              ]
            },
            "body": "\r\nvar keyVaultEndpoint = new Uri(Environment.GetEnvironmentVariable(`@@connectionId@@`)!);\r\n@@localVar@@.Configuration.AddAzureKeyVault(keyVaultEndpoint, new DefaultAzureCredential());\r\n",
            "tokens": {
              "localVar": {
                "name": "localVar",
                "kind": "LocalVariable",
                "properties": {
                  "TypeName": "Microsoft.AspNetCore.Builder.WebApplicationBuilder?"
                }
              },
              "connectionId": {
                "name": "connectionId",
                "kind": "ExternalValue",
                "properties": {
                  "ModelPropertyName": "connectionId"
                }
              }
            }
          }
        ]
      }
    ]
  }
}