diff --git a/examples/examples_nodejs_test.go b/examples/examples_nodejs_test.go
index 5361605c1ff2..71b59514703d 100644
--- a/examples/examples_nodejs_test.go
+++ b/examples/examples_nodejs_test.go
@@ -6,10 +6,12 @@ package examples
import (
"encoding/json"
"path/filepath"
+ "strings"
"testing"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
)
func TestAccAppServiceTs(t *testing.T) {
@@ -195,6 +197,84 @@ func TestStorageAccountNetworkRule(t *testing.T) {
integration.ProgramTest(t, &test)
}
+func TestAccKeyVaultAccessPoliciesTs(t *testing.T) {
+ skipIfShort(t)
+ test := getJSBaseOptions(t).
+ With(integration.ProgramTestOptions{
+ ExpectRefreshChanges: false,
+ Dir: filepath.Join(getCwd(t), "keyvault-accesspolicies"),
+ EditDirs: []integration.EditDir{
+ {
+ Dir: filepath.Join("keyvault-accesspolicies", "2-update-keyvault"),
+ Additive: true,
+ // Check that the stand-alone AccessPolicies are still there, not deleted by the Vault update.
+ ExtraRuntimeValidation: func(t *testing.T, stackInfo integration.RuntimeValidationStackInfo) {
+ require.NotNil(t, stackInfo.Deployment)
+ require.NotNil(t, stackInfo.Deployment.Resources)
+
+ accessPolicies := 0
+ for _, resource := range stackInfo.Deployment.Resources {
+ if resource.Type == "azure-native:keyvault:AccessPolicy" {
+ accessPolicies++
+ }
+ }
+ assert.Equal(t, 2, accessPolicies)
+
+ // check the number of policies as returned by Azure directly via invoke
+ numberOfAPs, ok := stackInfo.Outputs["numberOfAPs"].(float64)
+ require.True(t, ok)
+ assert.Equal(t, 2.0, numberOfAPs)
+ },
+ },
+ {
+ Dir: filepath.Join("keyvault-accesspolicies", "3-update-accesspolicies"),
+ Additive: true,
+ // Check that the stand-alone AccessPolicies were updated resp. deleted.
+ ExtraRuntimeValidation: func(t *testing.T, stackInfo integration.RuntimeValidationStackInfo) {
+ require.NotNil(t, stackInfo.Deployment)
+ require.NotNil(t, stackInfo.Deployment.Resources)
+
+ ap1Found := false
+ for _, resource := range stackInfo.Deployment.Resources {
+ urn := string(resource.URN)
+ if strings.HasSuffix(urn, "keyvault:AccessPolicy::ap1") {
+ ap1Found = true
+ accessPolicy, ok := resource.Outputs["policy"]
+ require.True(t, ok, "Property 'policy' not found")
+ accessPolicyObj, ok := accessPolicy.(map[string]interface{})
+ require.True(t, ok, "Property 'policy' is not an object")
+
+ permissions, ok := accessPolicyObj["permissions"]
+ require.True(t, ok, "Property 'policy.permissions' not found")
+ permissionsObj, ok := permissions.(map[string]interface{})
+ require.True(t, ok, "Property 'policy.permissions' is not an object")
+
+ keyPermissions, ok := permissionsObj["keys"]
+ require.True(t, ok, "Property 'policy.permissions.keys' not found")
+ keyPermissionsArray, ok := keyPermissions.([]any)
+ require.True(t, ok, "Property 'policy.permissions.keys' is not an array")
+
+ require.Equal(t, 1, len(keyPermissionsArray))
+ assert.Equal(t, "get", keyPermissionsArray[0].(string))
+ } else if strings.HasSuffix(urn, "keyvault:AccessPolicy::ap2") {
+ t.Errorf("AccessPolicy ap2 should have been deleted")
+ }
+ }
+ assert.True(t, ap1Found, "AccessPolicy ap1 not found")
+
+ // Check the number of policies as returned by Azure directly via invoke.
+ // This doesn't work here because we have no way of waiting for the deletion of ap2.
+ // numberOfAPs, ok := stackInfo.Outputs["numberOfAPs"].(float64)
+ // assert.True(t, ok)
+ // assert.Equal(t, 1.0, numberOfAPs)
+ },
+ },
+ },
+ })
+
+ integration.ProgramTest(t, &test)
+}
+
func getJSBaseOptions(t *testing.T) integration.ProgramTestOptions {
base := getBaseOptions(t)
baseJS := base.With(integration.ProgramTestOptions{
diff --git a/examples/go.mod b/examples/go.mod
index def99c22130c..367f02536638 100644
--- a/examples/go.mod
+++ b/examples/go.mod
@@ -1,6 +1,6 @@
module github.com/pulumi/pulumi-azure-native/examples
-go 1.19
+go 1.21
require (
github.com/pulumi/pulumi/pkg/v3 v3.91.1
diff --git a/examples/go.sum b/examples/go.sum
index c0a29bfef6c0..6eb56ad57f05 100644
--- a/examples/go.sum
+++ b/examples/go.sum
@@ -158,6 +158,7 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym
github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
github.com/GoogleCloudPlatform/cloudsql-proxy v1.31.2/go.mod h1:qR6jVnZTKDCW3j+fC9mOEPHm++1nKDMkqbbkD6KNsfo=
github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM=
+github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=
@@ -212,6 +213,7 @@ github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8V
github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0=
github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk=
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
+github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
@@ -271,6 +273,7 @@ github.com/aws/aws-sdk-go-v2/internal/ini v1.3.16/go.mod h1:CYmI+7x03jjJih8kBEEF
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.6 h1:3L8pcjvgaSOs0zzZcMKzxDSkYKEpwJ2dNVDdxm68jAY=
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.6/go.mod h1:O7Oc4peGZDEKlddivslfYFvAbgzvl/GH3J8j3JIGBXc=
github.com/aws/aws-sdk-go-v2/service/iam v1.19.0 h1:9vCynoqC+dgxZKrsjvAniyIopsv3RZFsZ6wkQ+yxtj8=
+github.com/aws/aws-sdk-go-v2/service/iam v1.19.0/go.mod h1:OyAuvpFeSVNppcSsp1hFOVQcaTRc1LE24YIR7pMbbAA=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.3 h1:4n4KCtv5SUoT5Er5XV41huuzrCqepxlW3SDI9qHQebc=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.3/go.mod h1:gkb2qADY+OHaGLKNTYxMaQNacfeyQpZ4csDTQMeFmcw=
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.10 h1:7LJcuRalaLw+GYQTMGmVUl4opg2HrDZkvn/L3KvIQfw=
@@ -555,6 +558,7 @@ github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ=
github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q=
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU=
+github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM=
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
@@ -610,12 +614,14 @@ github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm
github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M=
github.com/gin-gonic/gin v1.7.7/go.mod h1:axIBovoeJpVj8S3BwE0uPMTeReE4+AfFtqpqaZ1qq1U=
github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY=
+github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4=
github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU=
github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow=
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4=
+github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4=
github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
@@ -683,6 +689,7 @@ github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
github.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68=
+github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
github.com/go-zookeeper/zk v1.0.2/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw=
github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=
@@ -1111,6 +1118,7 @@ github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfn
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
+github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
@@ -1294,6 +1302,7 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y
github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc=
github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0=
github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
+github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M=
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
@@ -2562,6 +2571,7 @@ lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw=
lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s=
nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
pgregory.net/rapid v0.6.1 h1:4eyrDxyht86tT4Ztm+kvlyNBLIk071gR+ZQdhphc9dQ=
+pgregory.net/rapid v0.6.1/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
diff --git a/examples/keyvault-accesspolicies/2-update-keyvault/index.ts b/examples/keyvault-accesspolicies/2-update-keyvault/index.ts
new file mode 100644
index 000000000000..325214d516aa
--- /dev/null
+++ b/examples/keyvault-accesspolicies/2-update-keyvault/index.ts
@@ -0,0 +1,77 @@
+// Copyright 2021, Pulumi Corporation. All rights reserved.
+
+import * as pulumi from "@pulumi/pulumi";
+import * as authorization from "@pulumi/azure-native/authorization";
+import * as keyvault from "@pulumi/azure-native/keyvault";
+import * as resources from "@pulumi/azure-native/resources";
+
+const resourceGroup = new resources.ResourceGroup("rg");
+
+const config = pulumi.output(authorization.getClientConfig());
+
+// enabledForDeployment (randomly picked) changed to true
+const vault = new keyvault.Vault("vault", {
+ resourceGroupName: resourceGroup.name,
+ location: resourceGroup.location,
+ properties: {
+ sku: {
+ family: keyvault.SkuFamily.A,
+ name: keyvault.SkuName.Standard,
+ },
+ tenantId: config.tenantId,
+ enabledForDeployment: true,
+ },
+});
+
+const ap1 = new keyvault.AccessPolicy("ap1", {
+ resourceGroupName: resourceGroup.name,
+ vaultName: vault.name,
+ policy: {
+ objectId: config.objectId,
+ permissions: {
+ keys: [
+ keyvault.KeyPermissions.Get,
+ keyvault.KeyPermissions.Create,
+ keyvault.KeyPermissions.Delete,
+ keyvault.KeyPermissions.List,
+ ],
+ secrets: [
+ keyvault.SecretPermissions.Get,
+ keyvault.SecretPermissions.List,
+ keyvault.SecretPermissions.Set,
+ keyvault.SecretPermissions.Delete,
+ ],
+ },
+ tenantId: config.tenantId,
+ }
+});
+
+const ap2 = new keyvault.AccessPolicy("ap2", {
+ resourceGroupName: resourceGroup.name,
+ vaultName: vault.name,
+ policy: {
+ objectId: "00000000-0000-0000-0000-000000000000",
+ permissions: {
+ keys: [
+ keyvault.KeyPermissions.Get,
+ ]
+ },
+ tenantId: config.tenantId,
+ }
+});
+
+export const rgName = resourceGroup.name;
+export const kvName = vault.name;
+
+// Read the Vault's state directly from Azure. We export it so the test can use it to make
+// additional assertions that Pulumi's view of the world matches Azure's.
+// We use `apply` here as a barrier, ensuring the invoke runs after the vault is updated.
+const newVaultState = vault.properties?.apply(_ => {
+ return keyvault.getVaultOutput({
+ resourceGroupName: resourceGroup.name,
+ vaultName: vault.name,
+ });
+})
+
+export const numberOfAPs = newVaultState.properties.accessPolicies?.apply(aps => aps?.length || 0 );
+export const aps = newVaultState.properties.accessPolicies;
\ No newline at end of file
diff --git a/examples/keyvault-accesspolicies/3-update-accesspolicies/index.ts b/examples/keyvault-accesspolicies/3-update-accesspolicies/index.ts
new file mode 100644
index 000000000000..12a6d332927e
--- /dev/null
+++ b/examples/keyvault-accesspolicies/3-update-accesspolicies/index.ts
@@ -0,0 +1,60 @@
+// Copyright 2021, Pulumi Corporation. All rights reserved.
+
+import * as pulumi from "@pulumi/pulumi";
+import * as authorization from "@pulumi/azure-native/authorization";
+import * as keyvault from "@pulumi/azure-native/keyvault";
+import * as resources from "@pulumi/azure-native/resources";
+
+const resourceGroup = new resources.ResourceGroup("rg");
+
+const config = pulumi.output(authorization.getClientConfig());
+
+// enabledForDeployment changed back to false
+const vault = new keyvault.Vault("vault", {
+ resourceGroupName: resourceGroup.name,
+ location: resourceGroup.location,
+ properties: {
+ sku: {
+ family: keyvault.SkuFamily.A,
+ name: keyvault.SkuName.Standard,
+ },
+ tenantId: config.tenantId,
+ enabledForDeployment: false,
+ },
+});
+
+// ap1 has different permissions
+const ap1 = new keyvault.AccessPolicy("ap1", {
+ resourceGroupName: resourceGroup.name,
+ vaultName: vault.name,
+ policy: {
+ objectId: config.objectId,
+ permissions: {
+ keys: [
+ keyvault.KeyPermissions.Get,
+ ],
+ secrets: [
+ keyvault.SecretPermissions.Get,
+ ]
+ },
+ tenantId: config.tenantId,
+ }
+});
+
+// ap2 is deleted
+
+export const rgName = resourceGroup.name;
+export const kvName = vault.name;
+
+// Read the Vault's state directly from Azure. We export it so the test can use it to make
+// additional assertions that Pulumi's view of the world matches Azure's.
+// We use `apply` here as a barrier, ensuring the invoke runs after the vault is updated.
+const newVaultState = vault.properties?.apply(_ => {
+ return keyvault.getVaultOutput({
+ resourceGroupName: resourceGroup.name,
+ vaultName: vault.name,
+ });
+})
+
+export const numberOfAPs = newVaultState.properties.accessPolicies?.apply(aps => aps?.length || 0 );
+export const aps = newVaultState.properties.accessPolicies;
\ No newline at end of file
diff --git a/examples/keyvault-accesspolicies/Pulumi.yaml b/examples/keyvault-accesspolicies/Pulumi.yaml
new file mode 100644
index 000000000000..f58fa44a760c
--- /dev/null
+++ b/examples/keyvault-accesspolicies/Pulumi.yaml
@@ -0,0 +1,3 @@
+name: keyvault-accesspolicies
+runtime: nodejs
+description: KeyVault resources
diff --git a/examples/keyvault-accesspolicies/index.ts b/examples/keyvault-accesspolicies/index.ts
new file mode 100644
index 000000000000..b3a4d73b0031
--- /dev/null
+++ b/examples/keyvault-accesspolicies/index.ts
@@ -0,0 +1,63 @@
+// Copyright 2021, Pulumi Corporation. All rights reserved.
+
+import * as pulumi from "@pulumi/pulumi";
+import * as authorization from "@pulumi/azure-native/authorization";
+import * as keyvault from "@pulumi/azure-native/keyvault";
+import * as resources from "@pulumi/azure-native/resources";
+
+const resourceGroup = new resources.ResourceGroup("rg");
+
+const config = pulumi.output(authorization.getClientConfig());
+
+const vault = new keyvault.Vault("vault", {
+ resourceGroupName: resourceGroup.name,
+ location: resourceGroup.location,
+ properties: {
+ sku: {
+ family: keyvault.SkuFamily.A,
+ name: keyvault.SkuName.Standard,
+ },
+ tenantId: config.tenantId,
+ enabledForDeployment: false,
+ },
+});
+
+const ap1 = new keyvault.AccessPolicy("ap1", {
+ resourceGroupName: resourceGroup.name,
+ vaultName: vault.name,
+ policy: {
+ objectId: config.objectId,
+ permissions: {
+ keys: [
+ keyvault.KeyPermissions.Get,
+ keyvault.KeyPermissions.Create,
+ keyvault.KeyPermissions.Delete,
+ keyvault.KeyPermissions.List,
+ ],
+ secrets: [
+ keyvault.SecretPermissions.Get,
+ keyvault.SecretPermissions.List,
+ keyvault.SecretPermissions.Set,
+ keyvault.SecretPermissions.Delete,
+ ],
+ },
+ tenantId: config.tenantId,
+ }
+});
+
+const ap2 = new keyvault.AccessPolicy("ap2", {
+ resourceGroupName: resourceGroup.name,
+ vaultName: vault.name,
+ policy: {
+ objectId: "00000000-0000-0000-0000-000000000000",
+ permissions: {
+ keys: [
+ keyvault.KeyPermissions.Get,
+ ]
+ },
+ tenantId: config.tenantId,
+ }
+}, {dependsOn: [ap1]});
+
+export const rgName = resourceGroup.name;
+export const kvName = vault.name;
diff --git a/examples/keyvault-accesspolicies/package.json b/examples/keyvault-accesspolicies/package.json
new file mode 100644
index 000000000000..1bf876f09c51
--- /dev/null
+++ b/examples/keyvault-accesspolicies/package.json
@@ -0,0 +1,11 @@
+{
+ "name": "azure-native-keyvault",
+ "version": "0.1.0",
+ "devDependencies": {
+ "@types/node": "latest"
+ },
+ "dependencies": {
+ "@pulumi/pulumi": "^3.0.0",
+ "@pulumi/azure-native": "^2.0.0"
+ }
+}
diff --git a/examples/keyvault-accesspolicies/tsconfig.json b/examples/keyvault-accesspolicies/tsconfig.json
new file mode 100644
index 000000000000..ab65afa6135b
--- /dev/null
+++ b/examples/keyvault-accesspolicies/tsconfig.json
@@ -0,0 +1,18 @@
+{
+ "compilerOptions": {
+ "strict": true,
+ "outDir": "bin",
+ "target": "es2016",
+ "module": "commonjs",
+ "moduleResolution": "node",
+ "sourceMap": true,
+ "experimentalDecorators": true,
+ "pretty": true,
+ "noFallthroughCasesInSwitch": true,
+ "noImplicitReturns": true,
+ "forceConsistentCasingInFileNames": true
+ },
+ "files": [
+ "index.ts"
+ ]
+}
diff --git a/examples/vnet-subnets-resolution/index.ts b/examples/vnet-subnets-resolution/index.ts
index beaf5b21c2e9..494bdea89c56 100644
--- a/examples/vnet-subnets-resolution/index.ts
+++ b/examples/vnet-subnets-resolution/index.ts
@@ -42,17 +42,17 @@ const externalSubnet = new network.Subnet("default", {
addressPrefix: "10.5.1.0/24",
});
-new network.Subnet("second", {
+const second = new network.Subnet("second", {
resourceGroupName: resourceGroup.name,
virtualNetworkName: externalVnet.name,
addressPrefix: "10.5.2.0/24",
-});
+}, {dependsOn: externalSubnet});
new network.Subnet("third", {
resourceGroupName: resourceGroup.name,
virtualNetworkName: externalVnet.name,
addressPrefix: "10.5.3.0/24",
-});
+}, {dependsOn: second});
new network.NetworkInterface("external-nic", {
resourceGroupName: resourceGroup.name,
diff --git a/examples/vnet-subnets-resolution/step2/index.ts b/examples/vnet-subnets-resolution/step2/index.ts
index 2ced6c10aae7..41e972239754 100644
--- a/examples/vnet-subnets-resolution/step2/index.ts
+++ b/examples/vnet-subnets-resolution/step2/index.ts
@@ -41,17 +41,17 @@ const externalSubnet = new network.Subnet("default", {
addressPrefix: "10.5.1.0/24",
});
-new network.Subnet("second", {
+const second = new network.Subnet("second", {
resourceGroupName: resourceGroup.name,
virtualNetworkName: externalVnet.name,
addressPrefix: "10.5.2.0/24",
-});
+}, {dependsOn: externalSubnet});
new network.Subnet("third", {
resourceGroupName: resourceGroup.name,
virtualNetworkName: externalVnet.name,
addressPrefix: "10.5.3.0/24",
-});
+}, {dependsOn: second});
new network.NetworkInterface("external-nic", {
resourceGroupName: resourceGroup.name,
diff --git a/provider/cmd/pulumi-resource-azure-native/schema.json b/provider/cmd/pulumi-resource-azure-native/schema.json
index c78364db544a..5796a79edd71 100644
--- a/provider/cmd/pulumi-resource-azure-native/schema.json
+++ b/provider/cmd/pulumi-resource-azure-native/schema.json
@@ -242713,7 +242713,7 @@
"type": "object",
"$ref": "#/types/azure-native:keyvault:AccessPolicyEntry"
},
- "description": "An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required."
+ "description": "An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.\nThese are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion."
},
"createMode": {
"$ref": "#/types/azure-native:keyvault:CreateMode",
@@ -242800,7 +242800,7 @@
"type": "object",
"$ref": "#/types/azure-native:keyvault:AccessPolicyEntryResponse"
},
- "description": "An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required."
+ "description": "An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.\nThese are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion."
},
"enablePurgeProtection": {
"type": "boolean",
@@ -460196,7 +460196,7 @@
]
},
"azure-native:appplatform:Deployment": {
- "description": "Deployment resource payload\nAzure REST API version: 2023-05-01-preview. Prior API version in Azure Native 1.x: 2020-07-01.\n\nOther available API versions: 2023-07-01-preview, 2023-09-01-preview, 2023-11-01-preview, 2023-12-01.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Deployments_CreateOrUpdate\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var deployment = new AzureNative.AppPlatform.Deployment(\"deployment\", new()\n {\n AppName = \"myapp\",\n DeploymentName = \"mydeployment\",\n Properties = new AzureNative.AppPlatform.Inputs.DeploymentResourcePropertiesArgs\n {\n DeploymentSettings = new AzureNative.AppPlatform.Inputs.DeploymentSettingsArgs\n {\n AddonConfigs = \n {\n { \"ApplicationConfigurationService\", \n {\n { \"patterns\", new[]\n {\n \"mypattern\",\n } },\n } },\n },\n Apms = new[]\n {\n new AzureNative.AppPlatform.Inputs.ApmReferenceArgs\n {\n ResourceId = \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apms/myappinsights\",\n },\n },\n EnvironmentVariables = \n {\n { \"env\", \"test\" },\n },\n LivenessProbe = new AzureNative.AppPlatform.Inputs.ProbeArgs\n {\n DisableProbe = false,\n FailureThreshold = 3,\n InitialDelaySeconds = 30,\n PeriodSeconds = 10,\n ProbeAction = new AzureNative.AppPlatform.Inputs.HTTPGetActionArgs\n {\n Path = \"/health\",\n Scheme = \"HTTP\",\n Type = \"HTTPGetAction\",\n },\n },\n ReadinessProbe = new AzureNative.AppPlatform.Inputs.ProbeArgs\n {\n DisableProbe = false,\n FailureThreshold = 3,\n InitialDelaySeconds = 30,\n PeriodSeconds = 10,\n ProbeAction = new AzureNative.AppPlatform.Inputs.HTTPGetActionArgs\n {\n Path = \"/health\",\n Scheme = \"HTTP\",\n Type = \"HTTPGetAction\",\n },\n },\n ResourceRequests = new AzureNative.AppPlatform.Inputs.ResourceRequestsArgs\n {\n Cpu = \"1000m\",\n Memory = \"3Gi\",\n },\n TerminationGracePeriodSeconds = 30,\n },\n Source = new AzureNative.AppPlatform.Inputs.SourceUploadedUserSourceInfoArgs\n {\n ArtifactSelector = \"sub-module-1\",\n RelativePath = \"resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc\",\n Type = \"Source\",\n Version = \"1.0\",\n },\n },\n ResourceGroupName = \"myResourceGroup\",\n ServiceName = \"myservice\",\n Sku = new AzureNative.AppPlatform.Inputs.SkuArgs\n {\n Capacity = 1,\n Name = \"S0\",\n Tier = \"Standard\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/appplatform/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appplatform.NewDeployment(ctx, \"deployment\", \u0026appplatform.DeploymentArgs{\n\t\t\tAppName: pulumi.String(\"myapp\"),\n\t\t\tDeploymentName: pulumi.String(\"mydeployment\"),\n\t\t\tProperties: appplatform.DeploymentResourcePropertiesResponse{\n\t\t\t\tDeploymentSettings: appplatform.DeploymentSettingsResponse{\n\t\t\t\t\tAddonConfigs: pulumi.Map{\n\t\t\t\t\t\t\"ApplicationConfigurationService\": pulumi.Any{\n\t\t\t\t\t\t\tPatterns: []string{\n\t\t\t\t\t\t\t\t\"mypattern\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tApms: appplatform.ApmReferenceArray{\n\t\t\t\t\t\t\u0026appplatform.ApmReferenceArgs{\n\t\t\t\t\t\t\tResourceId: pulumi.String(\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apms/myappinsights\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\t\"env\": pulumi.String(\"test\"),\n\t\t\t\t\t},\n\t\t\t\t\tLivenessProbe: \u0026appplatform.ProbeArgs{\n\t\t\t\t\t\tDisableProbe: pulumi.Bool(false),\n\t\t\t\t\t\tFailureThreshold: pulumi.Int(3),\n\t\t\t\t\t\tInitialDelaySeconds: pulumi.Int(30),\n\t\t\t\t\t\tPeriodSeconds: pulumi.Int(10),\n\t\t\t\t\t\tProbeAction: appplatform.HTTPGetAction{\n\t\t\t\t\t\t\tPath: \"/health\",\n\t\t\t\t\t\t\tScheme: \"HTTP\",\n\t\t\t\t\t\t\tType: \"HTTPGetAction\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tReadinessProbe: \u0026appplatform.ProbeArgs{\n\t\t\t\t\t\tDisableProbe: pulumi.Bool(false),\n\t\t\t\t\t\tFailureThreshold: pulumi.Int(3),\n\t\t\t\t\t\tInitialDelaySeconds: pulumi.Int(30),\n\t\t\t\t\t\tPeriodSeconds: pulumi.Int(10),\n\t\t\t\t\t\tProbeAction: appplatform.HTTPGetAction{\n\t\t\t\t\t\t\tPath: \"/health\",\n\t\t\t\t\t\t\tScheme: \"HTTP\",\n\t\t\t\t\t\t\tType: \"HTTPGetAction\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tResourceRequests: \u0026appplatform.ResourceRequestsArgs{\n\t\t\t\t\t\tCpu: pulumi.String(\"1000m\"),\n\t\t\t\t\t\tMemory: pulumi.String(\"3Gi\"),\n\t\t\t\t\t},\n\t\t\t\t\tTerminationGracePeriodSeconds: pulumi.Int(30),\n\t\t\t\t},\n\t\t\t\tSource: appplatform.SourceUploadedUserSourceInfo{\n\t\t\t\t\tArtifactSelector: \"sub-module-1\",\n\t\t\t\t\tRelativePath: \"resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc\",\n\t\t\t\t\tType: \"Source\",\n\t\t\t\t\tVersion: \"1.0\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"myResourceGroup\"),\n\t\t\tServiceName: pulumi.String(\"myservice\"),\n\t\t\tSku: \u0026appplatform.SkuArgs{\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t\tName: pulumi.String(\"S0\"),\n\t\t\t\tTier: pulumi.String(\"Standard\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.appplatform.Deployment;\nimport com.pulumi.azurenative.appplatform.DeploymentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var deployment = new Deployment(\"deployment\", DeploymentArgs.builder() \n .appName(\"myapp\")\n .deploymentName(\"mydeployment\")\n .properties(Map.ofEntries(\n Map.entry(\"deploymentSettings\", Map.ofEntries(\n Map.entry(\"addonConfigs\", Map.of(\"ApplicationConfigurationService\", Map.of(\"patterns\", \"mypattern\"))),\n Map.entry(\"apms\", Map.of(\"resourceId\", \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apms/myappinsights\")),\n Map.entry(\"environmentVariables\", Map.of(\"env\", \"test\")),\n Map.entry(\"livenessProbe\", Map.ofEntries(\n Map.entry(\"disableProbe\", false),\n Map.entry(\"failureThreshold\", 3),\n Map.entry(\"initialDelaySeconds\", 30),\n Map.entry(\"periodSeconds\", 10),\n Map.entry(\"probeAction\", Map.ofEntries(\n Map.entry(\"path\", \"/health\"),\n Map.entry(\"scheme\", \"HTTP\"),\n Map.entry(\"type\", \"HTTPGetAction\")\n ))\n )),\n Map.entry(\"readinessProbe\", Map.ofEntries(\n Map.entry(\"disableProbe\", false),\n Map.entry(\"failureThreshold\", 3),\n Map.entry(\"initialDelaySeconds\", 30),\n Map.entry(\"periodSeconds\", 10),\n Map.entry(\"probeAction\", Map.ofEntries(\n Map.entry(\"path\", \"/health\"),\n Map.entry(\"scheme\", \"HTTP\"),\n Map.entry(\"type\", \"HTTPGetAction\")\n ))\n )),\n Map.entry(\"resourceRequests\", Map.ofEntries(\n Map.entry(\"cpu\", \"1000m\"),\n Map.entry(\"memory\", \"3Gi\")\n )),\n Map.entry(\"terminationGracePeriodSeconds\", 30)\n )),\n Map.entry(\"source\", Map.ofEntries(\n Map.entry(\"artifactSelector\", \"sub-module-1\"),\n Map.entry(\"relativePath\", \"resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc\"),\n Map.entry(\"type\", \"Source\"),\n Map.entry(\"version\", \"1.0\")\n ))\n ))\n .resourceGroupName(\"myResourceGroup\")\n .serviceName(\"myservice\")\n .sku(Map.ofEntries(\n Map.entry(\"capacity\", 1),\n Map.entry(\"name\", \"S0\"),\n Map.entry(\"tier\", \"Standard\")\n ))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst deployment = new azure_native.appplatform.Deployment(\"deployment\", {\n appName: \"myapp\",\n deploymentName: \"mydeployment\",\n properties: {\n deploymentSettings: {\n addonConfigs: {\n ApplicationConfigurationService: {\n patterns: [\"mypattern\"],\n },\n },\n apms: [{\n resourceId: \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apms/myappinsights\",\n }],\n environmentVariables: {\n env: \"test\",\n },\n livenessProbe: {\n disableProbe: false,\n failureThreshold: 3,\n initialDelaySeconds: 30,\n periodSeconds: 10,\n probeAction: {\n path: \"/health\",\n scheme: \"HTTP\",\n type: \"HTTPGetAction\",\n },\n },\n readinessProbe: {\n disableProbe: false,\n failureThreshold: 3,\n initialDelaySeconds: 30,\n periodSeconds: 10,\n probeAction: {\n path: \"/health\",\n scheme: \"HTTP\",\n type: \"HTTPGetAction\",\n },\n },\n resourceRequests: {\n cpu: \"1000m\",\n memory: \"3Gi\",\n },\n terminationGracePeriodSeconds: 30,\n },\n source: {\n artifactSelector: \"sub-module-1\",\n relativePath: \"resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc\",\n type: \"Source\",\n version: \"1.0\",\n },\n },\n resourceGroupName: \"myResourceGroup\",\n serviceName: \"myservice\",\n sku: {\n capacity: 1,\n name: \"S0\",\n tier: \"Standard\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\ndeployment = azure_native.appplatform.Deployment(\"deployment\",\n app_name=\"myapp\",\n deployment_name=\"mydeployment\",\n properties=azure_native.appplatform.DeploymentResourcePropertiesResponseArgs(\n deployment_settings={\n \"addonConfigs\": {\n \"ApplicationConfigurationService\": {\n \"patterns\": [\"mypattern\"],\n },\n },\n \"apms\": [azure_native.appplatform.ApmReferenceArgs(\n resource_id=\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apms/myappinsights\",\n )],\n \"environmentVariables\": {\n \"env\": \"test\",\n },\n \"livenessProbe\": azure_native.appplatform.ProbeArgs(\n disable_probe=False,\n failure_threshold=3,\n initial_delay_seconds=30,\n period_seconds=10,\n probe_action=azure_native.appplatform.HTTPGetActionArgs(\n path=\"/health\",\n scheme=\"HTTP\",\n type=\"HTTPGetAction\",\n ),\n ),\n \"readinessProbe\": azure_native.appplatform.ProbeArgs(\n disable_probe=False,\n failure_threshold=3,\n initial_delay_seconds=30,\n period_seconds=10,\n probe_action=azure_native.appplatform.HTTPGetActionArgs(\n path=\"/health\",\n scheme=\"HTTP\",\n type=\"HTTPGetAction\",\n ),\n ),\n \"resourceRequests\": azure_native.appplatform.ResourceRequestsArgs(\n cpu=\"1000m\",\n memory=\"3Gi\",\n ),\n \"terminationGracePeriodSeconds\": 30,\n },\n source=azure_native.appplatform.SourceUploadedUserSourceInfoArgs(\n artifact_selector=\"sub-module-1\",\n relative_path=\"resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc\",\n type=\"Source\",\n version=\"1.0\",\n ),\n ),\n resource_group_name=\"myResourceGroup\",\n service_name=\"myservice\",\n sku=azure_native.appplatform.SkuArgs(\n capacity=1,\n name=\"S0\",\n tier=\"Standard\",\n ))\n\n```\n\n```yaml\nresources:\n deployment:\n type: azure-native:appplatform:Deployment\n properties:\n appName: myapp\n deploymentName: mydeployment\n properties:\n deploymentSettings:\n addonConfigs:\n ApplicationConfigurationService:\n patterns:\n - mypattern\n apms:\n - resourceId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apms/myappinsights\n environmentVariables:\n env: test\n livenessProbe:\n disableProbe: false\n failureThreshold: 3\n initialDelaySeconds: 30\n periodSeconds: 10\n probeAction:\n path: /health\n scheme: HTTP\n type: HTTPGetAction\n readinessProbe:\n disableProbe: false\n failureThreshold: 3\n initialDelaySeconds: 30\n periodSeconds: 10\n probeAction:\n path: /health\n scheme: HTTP\n type: HTTPGetAction\n resourceRequests:\n cpu: 1000m\n memory: 3Gi\n terminationGracePeriodSeconds: 30\n source:\n artifactSelector: sub-module-1\n relativePath: resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc\n type: Source\n version: '1.0'\n resourceGroupName: myResourceGroup\n serviceName: myservice\n sku:\n capacity: 1\n name: S0\n tier: Standard\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Deployments_CreateOrUpdate_CustomContainer\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var deployment = new AzureNative.AppPlatform.Deployment(\"deployment\", new()\n {\n AppName = \"myapp\",\n DeploymentName = \"mydeployment\",\n Properties = new AzureNative.AppPlatform.Inputs.DeploymentResourcePropertiesArgs\n {\n DeploymentSettings = new AzureNative.AppPlatform.Inputs.DeploymentSettingsArgs\n {\n EnvironmentVariables = \n {\n { \"env\", \"test\" },\n },\n LivenessProbe = new AzureNative.AppPlatform.Inputs.ProbeArgs\n {\n DisableProbe = false,\n FailureThreshold = 3,\n InitialDelaySeconds = 30,\n PeriodSeconds = 10,\n ProbeAction = new AzureNative.AppPlatform.Inputs.HTTPGetActionArgs\n {\n Path = \"/health\",\n Scheme = \"HTTP\",\n Type = \"HTTPGetAction\",\n },\n },\n ReadinessProbe = new AzureNative.AppPlatform.Inputs.ProbeArgs\n {\n DisableProbe = false,\n FailureThreshold = 3,\n InitialDelaySeconds = 30,\n PeriodSeconds = 10,\n ProbeAction = new AzureNative.AppPlatform.Inputs.HTTPGetActionArgs\n {\n Path = \"/health\",\n Scheme = \"HTTP\",\n Type = \"HTTPGetAction\",\n },\n },\n ResourceRequests = new AzureNative.AppPlatform.Inputs.ResourceRequestsArgs\n {\n Cpu = \"1000m\",\n Memory = \"3Gi\",\n },\n TerminationGracePeriodSeconds = 30,\n },\n Source = new AzureNative.AppPlatform.Inputs.CustomContainerUserSourceInfoArgs\n {\n CustomContainer = new AzureNative.AppPlatform.Inputs.CustomContainerArgs\n {\n Args = new[]\n {\n \"-c\",\n \"while true; do echo hello; sleep 10;done\",\n },\n Command = new[]\n {\n \"/bin/sh\",\n },\n ContainerImage = \"myContainerImage:v1\",\n ImageRegistryCredential = new AzureNative.AppPlatform.Inputs.ImageRegistryCredentialArgs\n {\n Password = \"myPassword\",\n Username = \"myUsername\",\n },\n LanguageFramework = \"springboot\",\n Server = \"myacr.azurecr.io\",\n },\n Type = \"Container\",\n },\n },\n ResourceGroupName = \"myResourceGroup\",\n ServiceName = \"myservice\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/appplatform/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appplatform.NewDeployment(ctx, \"deployment\", \u0026appplatform.DeploymentArgs{\n\t\t\tAppName: pulumi.String(\"myapp\"),\n\t\t\tDeploymentName: pulumi.String(\"mydeployment\"),\n\t\t\tProperties: appplatform.DeploymentResourcePropertiesResponse{\n\t\t\t\tDeploymentSettings: \u0026appplatform.DeploymentSettingsArgs{\n\t\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\t\"env\": pulumi.String(\"test\"),\n\t\t\t\t\t},\n\t\t\t\t\tLivenessProbe: \u0026appplatform.ProbeArgs{\n\t\t\t\t\t\tDisableProbe: pulumi.Bool(false),\n\t\t\t\t\t\tFailureThreshold: pulumi.Int(3),\n\t\t\t\t\t\tInitialDelaySeconds: pulumi.Int(30),\n\t\t\t\t\t\tPeriodSeconds: pulumi.Int(10),\n\t\t\t\t\t\tProbeAction: appplatform.HTTPGetAction{\n\t\t\t\t\t\t\tPath: \"/health\",\n\t\t\t\t\t\t\tScheme: \"HTTP\",\n\t\t\t\t\t\t\tType: \"HTTPGetAction\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tReadinessProbe: \u0026appplatform.ProbeArgs{\n\t\t\t\t\t\tDisableProbe: pulumi.Bool(false),\n\t\t\t\t\t\tFailureThreshold: pulumi.Int(3),\n\t\t\t\t\t\tInitialDelaySeconds: pulumi.Int(30),\n\t\t\t\t\t\tPeriodSeconds: pulumi.Int(10),\n\t\t\t\t\t\tProbeAction: appplatform.HTTPGetAction{\n\t\t\t\t\t\t\tPath: \"/health\",\n\t\t\t\t\t\t\tScheme: \"HTTP\",\n\t\t\t\t\t\t\tType: \"HTTPGetAction\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tResourceRequests: \u0026appplatform.ResourceRequestsArgs{\n\t\t\t\t\t\tCpu: pulumi.String(\"1000m\"),\n\t\t\t\t\t\tMemory: pulumi.String(\"3Gi\"),\n\t\t\t\t\t},\n\t\t\t\t\tTerminationGracePeriodSeconds: pulumi.Int(30),\n\t\t\t\t},\n\t\t\t\tSource: appplatform.CustomContainerUserSourceInfo{\n\t\t\t\t\tCustomContainer: appplatform.CustomContainer{\n\t\t\t\t\t\tArgs: []string{\n\t\t\t\t\t\t\t\"-c\",\n\t\t\t\t\t\t\t\"while true; do echo hello; sleep 10;done\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tCommand: []string{\n\t\t\t\t\t\t\t\"/bin/sh\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tContainerImage: \"myContainerImage:v1\",\n\t\t\t\t\t\tImageRegistryCredential: appplatform.ImageRegistryCredential{\n\t\t\t\t\t\t\tPassword: \"myPassword\",\n\t\t\t\t\t\t\tUsername: \"myUsername\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tLanguageFramework: \"springboot\",\n\t\t\t\t\t\tServer: \"myacr.azurecr.io\",\n\t\t\t\t\t},\n\t\t\t\t\tType: \"Container\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"myResourceGroup\"),\n\t\t\tServiceName: pulumi.String(\"myservice\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.appplatform.Deployment;\nimport com.pulumi.azurenative.appplatform.DeploymentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var deployment = new Deployment(\"deployment\", DeploymentArgs.builder() \n .appName(\"myapp\")\n .deploymentName(\"mydeployment\")\n .properties(Map.ofEntries(\n Map.entry(\"deploymentSettings\", Map.ofEntries(\n Map.entry(\"environmentVariables\", Map.of(\"env\", \"test\")),\n Map.entry(\"livenessProbe\", Map.ofEntries(\n Map.entry(\"disableProbe\", false),\n Map.entry(\"failureThreshold\", 3),\n Map.entry(\"initialDelaySeconds\", 30),\n Map.entry(\"periodSeconds\", 10),\n Map.entry(\"probeAction\", Map.ofEntries(\n Map.entry(\"path\", \"/health\"),\n Map.entry(\"scheme\", \"HTTP\"),\n Map.entry(\"type\", \"HTTPGetAction\")\n ))\n )),\n Map.entry(\"readinessProbe\", Map.ofEntries(\n Map.entry(\"disableProbe\", false),\n Map.entry(\"failureThreshold\", 3),\n Map.entry(\"initialDelaySeconds\", 30),\n Map.entry(\"periodSeconds\", 10),\n Map.entry(\"probeAction\", Map.ofEntries(\n Map.entry(\"path\", \"/health\"),\n Map.entry(\"scheme\", \"HTTP\"),\n Map.entry(\"type\", \"HTTPGetAction\")\n ))\n )),\n Map.entry(\"resourceRequests\", Map.ofEntries(\n Map.entry(\"cpu\", \"1000m\"),\n Map.entry(\"memory\", \"3Gi\")\n )),\n Map.entry(\"terminationGracePeriodSeconds\", 30)\n )),\n Map.entry(\"source\", Map.ofEntries(\n Map.entry(\"customContainer\", Map.ofEntries(\n Map.entry(\"args\", \n \"-c\",\n \"while true; do echo hello; sleep 10;done\"),\n Map.entry(\"command\", \"/bin/sh\"),\n Map.entry(\"containerImage\", \"myContainerImage:v1\"),\n Map.entry(\"imageRegistryCredential\", Map.ofEntries(\n Map.entry(\"password\", \"myPassword\"),\n Map.entry(\"username\", \"myUsername\")\n )),\n Map.entry(\"languageFramework\", \"springboot\"),\n Map.entry(\"server\", \"myacr.azurecr.io\")\n )),\n Map.entry(\"type\", \"Container\")\n ))\n ))\n .resourceGroupName(\"myResourceGroup\")\n .serviceName(\"myservice\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst deployment = new azure_native.appplatform.Deployment(\"deployment\", {\n appName: \"myapp\",\n deploymentName: \"mydeployment\",\n properties: {\n deploymentSettings: {\n environmentVariables: {\n env: \"test\",\n },\n livenessProbe: {\n disableProbe: false,\n failureThreshold: 3,\n initialDelaySeconds: 30,\n periodSeconds: 10,\n probeAction: {\n path: \"/health\",\n scheme: \"HTTP\",\n type: \"HTTPGetAction\",\n },\n },\n readinessProbe: {\n disableProbe: false,\n failureThreshold: 3,\n initialDelaySeconds: 30,\n periodSeconds: 10,\n probeAction: {\n path: \"/health\",\n scheme: \"HTTP\",\n type: \"HTTPGetAction\",\n },\n },\n resourceRequests: {\n cpu: \"1000m\",\n memory: \"3Gi\",\n },\n terminationGracePeriodSeconds: 30,\n },\n source: {\n customContainer: {\n args: [\n \"-c\",\n \"while true; do echo hello; sleep 10;done\",\n ],\n command: [\"/bin/sh\"],\n containerImage: \"myContainerImage:v1\",\n imageRegistryCredential: {\n password: \"myPassword\",\n username: \"myUsername\",\n },\n languageFramework: \"springboot\",\n server: \"myacr.azurecr.io\",\n },\n type: \"Container\",\n },\n },\n resourceGroupName: \"myResourceGroup\",\n serviceName: \"myservice\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\ndeployment = azure_native.appplatform.Deployment(\"deployment\",\n app_name=\"myapp\",\n deployment_name=\"mydeployment\",\n properties=azure_native.appplatform.DeploymentResourcePropertiesResponseArgs(\n deployment_settings=azure_native.appplatform.DeploymentSettingsArgs(\n environment_variables={\n \"env\": \"test\",\n },\n liveness_probe=azure_native.appplatform.ProbeArgs(\n disable_probe=False,\n failure_threshold=3,\n initial_delay_seconds=30,\n period_seconds=10,\n probe_action=azure_native.appplatform.HTTPGetActionArgs(\n path=\"/health\",\n scheme=\"HTTP\",\n type=\"HTTPGetAction\",\n ),\n ),\n readiness_probe=azure_native.appplatform.ProbeArgs(\n disable_probe=False,\n failure_threshold=3,\n initial_delay_seconds=30,\n period_seconds=10,\n probe_action=azure_native.appplatform.HTTPGetActionArgs(\n path=\"/health\",\n scheme=\"HTTP\",\n type=\"HTTPGetAction\",\n ),\n ),\n resource_requests=azure_native.appplatform.ResourceRequestsArgs(\n cpu=\"1000m\",\n memory=\"3Gi\",\n ),\n termination_grace_period_seconds=30,\n ),\n source=azure_native.appplatform.CustomContainerUserSourceInfoArgs(\n custom_container=azure_native.appplatform.CustomContainerArgs(\n args=[\n \"-c\",\n \"while true; do echo hello; sleep 10;done\",\n ],\n command=[\"/bin/sh\"],\n container_image=\"myContainerImage:v1\",\n image_registry_credential=azure_native.appplatform.ImageRegistryCredentialArgs(\n password=\"myPassword\",\n username=\"myUsername\",\n ),\n language_framework=\"springboot\",\n server=\"myacr.azurecr.io\",\n ),\n type=\"Container\",\n ),\n ),\n resource_group_name=\"myResourceGroup\",\n service_name=\"myservice\")\n\n```\n\n```yaml\nresources:\n deployment:\n type: azure-native:appplatform:Deployment\n properties:\n appName: myapp\n deploymentName: mydeployment\n properties:\n deploymentSettings:\n environmentVariables:\n env: test\n livenessProbe:\n disableProbe: false\n failureThreshold: 3\n initialDelaySeconds: 30\n periodSeconds: 10\n probeAction:\n path: /health\n scheme: HTTP\n type: HTTPGetAction\n readinessProbe:\n disableProbe: false\n failureThreshold: 3\n initialDelaySeconds: 30\n periodSeconds: 10\n probeAction:\n path: /health\n scheme: HTTP\n type: HTTPGetAction\n resourceRequests:\n cpu: 1000m\n memory: 3Gi\n terminationGracePeriodSeconds: 30\n source:\n customContainer:\n args:\n - -c\n - while true; do echo hello; sleep 10;done\n command:\n - /bin/sh\n containerImage: myContainerImage:v1\n imageRegistryCredential:\n password: myPassword\n username: myUsername\n languageFramework: springboot\n server: myacr.azurecr.io\n type: Container\n resourceGroupName: myResourceGroup\n serviceName: myservice\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn existing resource can be imported using its type token, name, and identifier, e.g.\n\n```sh\n$ pulumi import azure-native:appplatform:Deployment mydeployment /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName} \n```\n",
+ "description": "Deployment resource payload\nAzure REST API version: 2023-05-01-preview. Prior API version in Azure Native 1.x: 2020-07-01.\n\nOther available API versions: 2023-07-01-preview, 2023-09-01-preview, 2023-11-01-preview, 2023-12-01.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Deployments_CreateOrUpdate\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var deployment = new AzureNative.AppPlatform.Deployment(\"deployment\", new()\n {\n AppName = \"myapp\",\n DeploymentName = \"mydeployment\",\n Properties = new AzureNative.AppPlatform.Inputs.DeploymentResourcePropertiesArgs\n {\n DeploymentSettings = new AzureNative.AppPlatform.Inputs.DeploymentSettingsArgs\n {\n AddonConfigs = \n {\n { \"ApplicationConfigurationService\", \n {\n { \"patterns\", new[]\n {\n \"mypattern\",\n } },\n } },\n },\n Apms = new[]\n {\n new AzureNative.AppPlatform.Inputs.ApmReferenceArgs\n {\n ResourceId = \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apms/myappinsights\",\n },\n },\n EnvironmentVariables = \n {\n { \"env\", \"test\" },\n },\n LivenessProbe = new AzureNative.AppPlatform.Inputs.ProbeArgs\n {\n DisableProbe = false,\n FailureThreshold = 3,\n InitialDelaySeconds = 30,\n PeriodSeconds = 10,\n ProbeAction = new AzureNative.AppPlatform.Inputs.HTTPGetActionArgs\n {\n Path = \"/health\",\n Scheme = \"HTTP\",\n Type = \"HTTPGetAction\",\n },\n },\n ReadinessProbe = new AzureNative.AppPlatform.Inputs.ProbeArgs\n {\n DisableProbe = false,\n FailureThreshold = 3,\n InitialDelaySeconds = 30,\n PeriodSeconds = 10,\n ProbeAction = new AzureNative.AppPlatform.Inputs.HTTPGetActionArgs\n {\n Path = \"/health\",\n Scheme = \"HTTP\",\n Type = \"HTTPGetAction\",\n },\n },\n ResourceRequests = new AzureNative.AppPlatform.Inputs.ResourceRequestsArgs\n {\n Cpu = \"1000m\",\n Memory = \"3Gi\",\n },\n TerminationGracePeriodSeconds = 30,\n },\n Source = new AzureNative.AppPlatform.Inputs.SourceUploadedUserSourceInfoArgs\n {\n ArtifactSelector = \"sub-module-1\",\n RelativePath = \"resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc\",\n Type = \"Source\",\n Version = \"1.0\",\n },\n },\n ResourceGroupName = \"myResourceGroup\",\n ServiceName = \"myservice\",\n Sku = new AzureNative.AppPlatform.Inputs.SkuArgs\n {\n Capacity = 1,\n Name = \"S0\",\n Tier = \"Standard\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/appplatform/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := appplatform.NewDeployment(ctx, \"deployment\", \u0026appplatform.DeploymentArgs{\nAppName: pulumi.String(\"myapp\"),\nDeploymentName: pulumi.String(\"mydeployment\"),\nProperties: appplatform.DeploymentResourcePropertiesResponse{\nDeploymentSettings: interface{}{\nAddonConfigs: pulumi.Map{\n\"ApplicationConfigurationService\": pulumi.Any{\nPatterns: []string{\n\"mypattern\",\n},\n},\n},\nApms: appplatform.ApmReferenceArray{\n\u0026appplatform.ApmReferenceArgs{\nResourceId: pulumi.String(\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apms/myappinsights\"),\n},\n},\nEnvironmentVariables: pulumi.StringMap{\n\"env\": pulumi.String(\"test\"),\n},\nLivenessProbe: \u0026appplatform.ProbeArgs{\nDisableProbe: pulumi.Bool(false),\nFailureThreshold: pulumi.Int(3),\nInitialDelaySeconds: pulumi.Int(30),\nPeriodSeconds: pulumi.Int(10),\nProbeAction: appplatform.HTTPGetAction{\nPath: \"/health\",\nScheme: \"HTTP\",\nType: \"HTTPGetAction\",\n},\n},\nReadinessProbe: \u0026appplatform.ProbeArgs{\nDisableProbe: pulumi.Bool(false),\nFailureThreshold: pulumi.Int(3),\nInitialDelaySeconds: pulumi.Int(30),\nPeriodSeconds: pulumi.Int(10),\nProbeAction: appplatform.HTTPGetAction{\nPath: \"/health\",\nScheme: \"HTTP\",\nType: \"HTTPGetAction\",\n},\n},\nResourceRequests: \u0026appplatform.ResourceRequestsArgs{\nCpu: pulumi.String(\"1000m\"),\nMemory: pulumi.String(\"3Gi\"),\n},\nTerminationGracePeriodSeconds: pulumi.Int(30),\n},\nSource: appplatform.SourceUploadedUserSourceInfo{\nArtifactSelector: \"sub-module-1\",\nRelativePath: \"resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc\",\nType: \"Source\",\nVersion: \"1.0\",\n},\n},\nResourceGroupName: pulumi.String(\"myResourceGroup\"),\nServiceName: pulumi.String(\"myservice\"),\nSku: \u0026appplatform.SkuArgs{\nCapacity: pulumi.Int(1),\nName: pulumi.String(\"S0\"),\nTier: pulumi.String(\"Standard\"),\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.appplatform.Deployment;\nimport com.pulumi.azurenative.appplatform.DeploymentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var deployment = new Deployment(\"deployment\", DeploymentArgs.builder() \n .appName(\"myapp\")\n .deploymentName(\"mydeployment\")\n .properties(Map.ofEntries(\n Map.entry(\"deploymentSettings\", Map.ofEntries(\n Map.entry(\"addonConfigs\", Map.of(\"ApplicationConfigurationService\", Map.of(\"patterns\", \"mypattern\"))),\n Map.entry(\"apms\", Map.of(\"resourceId\", \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apms/myappinsights\")),\n Map.entry(\"environmentVariables\", Map.of(\"env\", \"test\")),\n Map.entry(\"livenessProbe\", Map.ofEntries(\n Map.entry(\"disableProbe\", false),\n Map.entry(\"failureThreshold\", 3),\n Map.entry(\"initialDelaySeconds\", 30),\n Map.entry(\"periodSeconds\", 10),\n Map.entry(\"probeAction\", Map.ofEntries(\n Map.entry(\"path\", \"/health\"),\n Map.entry(\"scheme\", \"HTTP\"),\n Map.entry(\"type\", \"HTTPGetAction\")\n ))\n )),\n Map.entry(\"readinessProbe\", Map.ofEntries(\n Map.entry(\"disableProbe\", false),\n Map.entry(\"failureThreshold\", 3),\n Map.entry(\"initialDelaySeconds\", 30),\n Map.entry(\"periodSeconds\", 10),\n Map.entry(\"probeAction\", Map.ofEntries(\n Map.entry(\"path\", \"/health\"),\n Map.entry(\"scheme\", \"HTTP\"),\n Map.entry(\"type\", \"HTTPGetAction\")\n ))\n )),\n Map.entry(\"resourceRequests\", Map.ofEntries(\n Map.entry(\"cpu\", \"1000m\"),\n Map.entry(\"memory\", \"3Gi\")\n )),\n Map.entry(\"terminationGracePeriodSeconds\", 30)\n )),\n Map.entry(\"source\", Map.ofEntries(\n Map.entry(\"artifactSelector\", \"sub-module-1\"),\n Map.entry(\"relativePath\", \"resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc\"),\n Map.entry(\"type\", \"Source\"),\n Map.entry(\"version\", \"1.0\")\n ))\n ))\n .resourceGroupName(\"myResourceGroup\")\n .serviceName(\"myservice\")\n .sku(Map.ofEntries(\n Map.entry(\"capacity\", 1),\n Map.entry(\"name\", \"S0\"),\n Map.entry(\"tier\", \"Standard\")\n ))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst deployment = new azure_native.appplatform.Deployment(\"deployment\", {\n appName: \"myapp\",\n deploymentName: \"mydeployment\",\n properties: {\n deploymentSettings: {\n addonConfigs: {\n ApplicationConfigurationService: {\n patterns: [\"mypattern\"],\n },\n },\n apms: [{\n resourceId: \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apms/myappinsights\",\n }],\n environmentVariables: {\n env: \"test\",\n },\n livenessProbe: {\n disableProbe: false,\n failureThreshold: 3,\n initialDelaySeconds: 30,\n periodSeconds: 10,\n probeAction: {\n path: \"/health\",\n scheme: \"HTTP\",\n type: \"HTTPGetAction\",\n },\n },\n readinessProbe: {\n disableProbe: false,\n failureThreshold: 3,\n initialDelaySeconds: 30,\n periodSeconds: 10,\n probeAction: {\n path: \"/health\",\n scheme: \"HTTP\",\n type: \"HTTPGetAction\",\n },\n },\n resourceRequests: {\n cpu: \"1000m\",\n memory: \"3Gi\",\n },\n terminationGracePeriodSeconds: 30,\n },\n source: {\n artifactSelector: \"sub-module-1\",\n relativePath: \"resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc\",\n type: \"Source\",\n version: \"1.0\",\n },\n },\n resourceGroupName: \"myResourceGroup\",\n serviceName: \"myservice\",\n sku: {\n capacity: 1,\n name: \"S0\",\n tier: \"Standard\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\ndeployment = azure_native.appplatform.Deployment(\"deployment\",\n app_name=\"myapp\",\n deployment_name=\"mydeployment\",\n properties=azure_native.appplatform.DeploymentResourcePropertiesResponseArgs(\n deployment_settings={\n \"addonConfigs\": {\n \"ApplicationConfigurationService\": {\n \"patterns\": [\"mypattern\"],\n },\n },\n \"apms\": [azure_native.appplatform.ApmReferenceArgs(\n resource_id=\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apms/myappinsights\",\n )],\n \"environmentVariables\": {\n \"env\": \"test\",\n },\n \"livenessProbe\": azure_native.appplatform.ProbeArgs(\n disable_probe=False,\n failure_threshold=3,\n initial_delay_seconds=30,\n period_seconds=10,\n probe_action=azure_native.appplatform.HTTPGetActionArgs(\n path=\"/health\",\n scheme=\"HTTP\",\n type=\"HTTPGetAction\",\n ),\n ),\n \"readinessProbe\": azure_native.appplatform.ProbeArgs(\n disable_probe=False,\n failure_threshold=3,\n initial_delay_seconds=30,\n period_seconds=10,\n probe_action=azure_native.appplatform.HTTPGetActionArgs(\n path=\"/health\",\n scheme=\"HTTP\",\n type=\"HTTPGetAction\",\n ),\n ),\n \"resourceRequests\": azure_native.appplatform.ResourceRequestsArgs(\n cpu=\"1000m\",\n memory=\"3Gi\",\n ),\n \"terminationGracePeriodSeconds\": 30,\n },\n source=azure_native.appplatform.SourceUploadedUserSourceInfoArgs(\n artifact_selector=\"sub-module-1\",\n relative_path=\"resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc\",\n type=\"Source\",\n version=\"1.0\",\n ),\n ),\n resource_group_name=\"myResourceGroup\",\n service_name=\"myservice\",\n sku=azure_native.appplatform.SkuArgs(\n capacity=1,\n name=\"S0\",\n tier=\"Standard\",\n ))\n\n```\n\n```yaml\nresources:\n deployment:\n type: azure-native:appplatform:Deployment\n properties:\n appName: myapp\n deploymentName: mydeployment\n properties:\n deploymentSettings:\n addonConfigs:\n ApplicationConfigurationService:\n patterns:\n - mypattern\n apms:\n - resourceId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apms/myappinsights\n environmentVariables:\n env: test\n livenessProbe:\n disableProbe: false\n failureThreshold: 3\n initialDelaySeconds: 30\n periodSeconds: 10\n probeAction:\n path: /health\n scheme: HTTP\n type: HTTPGetAction\n readinessProbe:\n disableProbe: false\n failureThreshold: 3\n initialDelaySeconds: 30\n periodSeconds: 10\n probeAction:\n path: /health\n scheme: HTTP\n type: HTTPGetAction\n resourceRequests:\n cpu: 1000m\n memory: 3Gi\n terminationGracePeriodSeconds: 30\n source:\n artifactSelector: sub-module-1\n relativePath: resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc\n type: Source\n version: '1.0'\n resourceGroupName: myResourceGroup\n serviceName: myservice\n sku:\n capacity: 1\n name: S0\n tier: Standard\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Deployments_CreateOrUpdate_CustomContainer\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var deployment = new AzureNative.AppPlatform.Deployment(\"deployment\", new()\n {\n AppName = \"myapp\",\n DeploymentName = \"mydeployment\",\n Properties = new AzureNative.AppPlatform.Inputs.DeploymentResourcePropertiesArgs\n {\n DeploymentSettings = new AzureNative.AppPlatform.Inputs.DeploymentSettingsArgs\n {\n EnvironmentVariables = \n {\n { \"env\", \"test\" },\n },\n LivenessProbe = new AzureNative.AppPlatform.Inputs.ProbeArgs\n {\n DisableProbe = false,\n FailureThreshold = 3,\n InitialDelaySeconds = 30,\n PeriodSeconds = 10,\n ProbeAction = new AzureNative.AppPlatform.Inputs.HTTPGetActionArgs\n {\n Path = \"/health\",\n Scheme = \"HTTP\",\n Type = \"HTTPGetAction\",\n },\n },\n ReadinessProbe = new AzureNative.AppPlatform.Inputs.ProbeArgs\n {\n DisableProbe = false,\n FailureThreshold = 3,\n InitialDelaySeconds = 30,\n PeriodSeconds = 10,\n ProbeAction = new AzureNative.AppPlatform.Inputs.HTTPGetActionArgs\n {\n Path = \"/health\",\n Scheme = \"HTTP\",\n Type = \"HTTPGetAction\",\n },\n },\n ResourceRequests = new AzureNative.AppPlatform.Inputs.ResourceRequestsArgs\n {\n Cpu = \"1000m\",\n Memory = \"3Gi\",\n },\n TerminationGracePeriodSeconds = 30,\n },\n Source = new AzureNative.AppPlatform.Inputs.CustomContainerUserSourceInfoArgs\n {\n CustomContainer = new AzureNative.AppPlatform.Inputs.CustomContainerArgs\n {\n Args = new[]\n {\n \"-c\",\n \"while true; do echo hello; sleep 10;done\",\n },\n Command = new[]\n {\n \"/bin/sh\",\n },\n ContainerImage = \"myContainerImage:v1\",\n ImageRegistryCredential = new AzureNative.AppPlatform.Inputs.ImageRegistryCredentialArgs\n {\n Password = \"myPassword\",\n Username = \"myUsername\",\n },\n LanguageFramework = \"springboot\",\n Server = \"myacr.azurecr.io\",\n },\n Type = \"Container\",\n },\n },\n ResourceGroupName = \"myResourceGroup\",\n ServiceName = \"myservice\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/appplatform/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := appplatform.NewDeployment(ctx, \"deployment\", \u0026appplatform.DeploymentArgs{\nAppName: pulumi.String(\"myapp\"),\nDeploymentName: pulumi.String(\"mydeployment\"),\nProperties: appplatform.DeploymentResourcePropertiesResponse{\nDeploymentSettings: interface{}{\nEnvironmentVariables: pulumi.StringMap{\n\"env\": pulumi.String(\"test\"),\n},\nLivenessProbe: \u0026appplatform.ProbeArgs{\nDisableProbe: pulumi.Bool(false),\nFailureThreshold: pulumi.Int(3),\nInitialDelaySeconds: pulumi.Int(30),\nPeriodSeconds: pulumi.Int(10),\nProbeAction: appplatform.HTTPGetAction{\nPath: \"/health\",\nScheme: \"HTTP\",\nType: \"HTTPGetAction\",\n},\n},\nReadinessProbe: \u0026appplatform.ProbeArgs{\nDisableProbe: pulumi.Bool(false),\nFailureThreshold: pulumi.Int(3),\nInitialDelaySeconds: pulumi.Int(30),\nPeriodSeconds: pulumi.Int(10),\nProbeAction: appplatform.HTTPGetAction{\nPath: \"/health\",\nScheme: \"HTTP\",\nType: \"HTTPGetAction\",\n},\n},\nResourceRequests: \u0026appplatform.ResourceRequestsArgs{\nCpu: pulumi.String(\"1000m\"),\nMemory: pulumi.String(\"3Gi\"),\n},\nTerminationGracePeriodSeconds: pulumi.Int(30),\n},\nSource: appplatform.CustomContainerUserSourceInfo{\nCustomContainer: appplatform.CustomContainer{\nArgs: []string{\n\"-c\",\n\"while true; do echo hello; sleep 10;done\",\n},\nCommand: []string{\n\"/bin/sh\",\n},\nContainerImage: \"myContainerImage:v1\",\nImageRegistryCredential: appplatform.ImageRegistryCredential{\nPassword: \"myPassword\",\nUsername: \"myUsername\",\n},\nLanguageFramework: \"springboot\",\nServer: \"myacr.azurecr.io\",\n},\nType: \"Container\",\n},\n},\nResourceGroupName: pulumi.String(\"myResourceGroup\"),\nServiceName: pulumi.String(\"myservice\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.appplatform.Deployment;\nimport com.pulumi.azurenative.appplatform.DeploymentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var deployment = new Deployment(\"deployment\", DeploymentArgs.builder() \n .appName(\"myapp\")\n .deploymentName(\"mydeployment\")\n .properties(Map.ofEntries(\n Map.entry(\"deploymentSettings\", Map.ofEntries(\n Map.entry(\"environmentVariables\", Map.of(\"env\", \"test\")),\n Map.entry(\"livenessProbe\", Map.ofEntries(\n Map.entry(\"disableProbe\", false),\n Map.entry(\"failureThreshold\", 3),\n Map.entry(\"initialDelaySeconds\", 30),\n Map.entry(\"periodSeconds\", 10),\n Map.entry(\"probeAction\", Map.ofEntries(\n Map.entry(\"path\", \"/health\"),\n Map.entry(\"scheme\", \"HTTP\"),\n Map.entry(\"type\", \"HTTPGetAction\")\n ))\n )),\n Map.entry(\"readinessProbe\", Map.ofEntries(\n Map.entry(\"disableProbe\", false),\n Map.entry(\"failureThreshold\", 3),\n Map.entry(\"initialDelaySeconds\", 30),\n Map.entry(\"periodSeconds\", 10),\n Map.entry(\"probeAction\", Map.ofEntries(\n Map.entry(\"path\", \"/health\"),\n Map.entry(\"scheme\", \"HTTP\"),\n Map.entry(\"type\", \"HTTPGetAction\")\n ))\n )),\n Map.entry(\"resourceRequests\", Map.ofEntries(\n Map.entry(\"cpu\", \"1000m\"),\n Map.entry(\"memory\", \"3Gi\")\n )),\n Map.entry(\"terminationGracePeriodSeconds\", 30)\n )),\n Map.entry(\"source\", Map.ofEntries(\n Map.entry(\"customContainer\", Map.ofEntries(\n Map.entry(\"args\", \n \"-c\",\n \"while true; do echo hello; sleep 10;done\"),\n Map.entry(\"command\", \"/bin/sh\"),\n Map.entry(\"containerImage\", \"myContainerImage:v1\"),\n Map.entry(\"imageRegistryCredential\", Map.ofEntries(\n Map.entry(\"password\", \"myPassword\"),\n Map.entry(\"username\", \"myUsername\")\n )),\n Map.entry(\"languageFramework\", \"springboot\"),\n Map.entry(\"server\", \"myacr.azurecr.io\")\n )),\n Map.entry(\"type\", \"Container\")\n ))\n ))\n .resourceGroupName(\"myResourceGroup\")\n .serviceName(\"myservice\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst deployment = new azure_native.appplatform.Deployment(\"deployment\", {\n appName: \"myapp\",\n deploymentName: \"mydeployment\",\n properties: {\n deploymentSettings: {\n environmentVariables: {\n env: \"test\",\n },\n livenessProbe: {\n disableProbe: false,\n failureThreshold: 3,\n initialDelaySeconds: 30,\n periodSeconds: 10,\n probeAction: {\n path: \"/health\",\n scheme: \"HTTP\",\n type: \"HTTPGetAction\",\n },\n },\n readinessProbe: {\n disableProbe: false,\n failureThreshold: 3,\n initialDelaySeconds: 30,\n periodSeconds: 10,\n probeAction: {\n path: \"/health\",\n scheme: \"HTTP\",\n type: \"HTTPGetAction\",\n },\n },\n resourceRequests: {\n cpu: \"1000m\",\n memory: \"3Gi\",\n },\n terminationGracePeriodSeconds: 30,\n },\n source: {\n customContainer: {\n args: [\n \"-c\",\n \"while true; do echo hello; sleep 10;done\",\n ],\n command: [\"/bin/sh\"],\n containerImage: \"myContainerImage:v1\",\n imageRegistryCredential: {\n password: \"myPassword\",\n username: \"myUsername\",\n },\n languageFramework: \"springboot\",\n server: \"myacr.azurecr.io\",\n },\n type: \"Container\",\n },\n },\n resourceGroupName: \"myResourceGroup\",\n serviceName: \"myservice\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\ndeployment = azure_native.appplatform.Deployment(\"deployment\",\n app_name=\"myapp\",\n deployment_name=\"mydeployment\",\n properties=azure_native.appplatform.DeploymentResourcePropertiesResponseArgs(\n deployment_settings={\n \"environmentVariables\": {\n \"env\": \"test\",\n },\n \"livenessProbe\": azure_native.appplatform.ProbeArgs(\n disable_probe=False,\n failure_threshold=3,\n initial_delay_seconds=30,\n period_seconds=10,\n probe_action=azure_native.appplatform.HTTPGetActionArgs(\n path=\"/health\",\n scheme=\"HTTP\",\n type=\"HTTPGetAction\",\n ),\n ),\n \"readinessProbe\": azure_native.appplatform.ProbeArgs(\n disable_probe=False,\n failure_threshold=3,\n initial_delay_seconds=30,\n period_seconds=10,\n probe_action=azure_native.appplatform.HTTPGetActionArgs(\n path=\"/health\",\n scheme=\"HTTP\",\n type=\"HTTPGetAction\",\n ),\n ),\n \"resourceRequests\": azure_native.appplatform.ResourceRequestsArgs(\n cpu=\"1000m\",\n memory=\"3Gi\",\n ),\n \"terminationGracePeriodSeconds\": 30,\n },\n source=azure_native.appplatform.CustomContainerUserSourceInfoArgs(\n custom_container=azure_native.appplatform.CustomContainerArgs(\n args=[\n \"-c\",\n \"while true; do echo hello; sleep 10;done\",\n ],\n command=[\"/bin/sh\"],\n container_image=\"myContainerImage:v1\",\n image_registry_credential=azure_native.appplatform.ImageRegistryCredentialArgs(\n password=\"myPassword\",\n username=\"myUsername\",\n ),\n language_framework=\"springboot\",\n server=\"myacr.azurecr.io\",\n ),\n type=\"Container\",\n ),\n ),\n resource_group_name=\"myResourceGroup\",\n service_name=\"myservice\")\n\n```\n\n```yaml\nresources:\n deployment:\n type: azure-native:appplatform:Deployment\n properties:\n appName: myapp\n deploymentName: mydeployment\n properties:\n deploymentSettings:\n environmentVariables:\n env: test\n livenessProbe:\n disableProbe: false\n failureThreshold: 3\n initialDelaySeconds: 30\n periodSeconds: 10\n probeAction:\n path: /health\n scheme: HTTP\n type: HTTPGetAction\n readinessProbe:\n disableProbe: false\n failureThreshold: 3\n initialDelaySeconds: 30\n periodSeconds: 10\n probeAction:\n path: /health\n scheme: HTTP\n type: HTTPGetAction\n resourceRequests:\n cpu: 1000m\n memory: 3Gi\n terminationGracePeriodSeconds: 30\n source:\n customContainer:\n args:\n - -c\n - while true; do echo hello; sleep 10;done\n command:\n - /bin/sh\n containerImage: myContainerImage:v1\n imageRegistryCredential:\n password: myPassword\n username: myUsername\n languageFramework: springboot\n server: myacr.azurecr.io\n type: Container\n resourceGroupName: myResourceGroup\n serviceName: myservice\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn existing resource can be imported using its type token, name, and identifier, e.g.\n\n```sh\n$ pulumi import azure-native:appplatform:Deployment mydeployment /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName} \n```\n",
"properties": {
"name": {
"type": "string",
@@ -474964,7 +474964,7 @@
]
},
"azure-native:azurestackhci:UpdateRun": {
- "description": "Details of an Update run\nAzure REST API version: 2023-03-01.\n\nOther available API versions: 2022-12-15-preview, 2023-06-01, 2023-08-01, 2023-08-01-preview, 2023-11-01-preview.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Get Update runs under cluster resource\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var updateRun = new AzureNative.AzureStackHCI.UpdateRun(\"updateRun\", new()\n {\n ClusterName = \"testcluster\",\n Description = \"Update Azure Stack.\",\n EndTimeUtc = \"2022-04-06T13:58:42.969006+00:00\",\n ErrorMessage = \"\",\n LastUpdatedTimeUtc = \"2022-04-06T13:58:42.969006+00:00\",\n Name = \"Unnamed step\",\n ResourceGroupName = \"testrg\",\n StartTimeUtc = \"2022-04-06T01:36:33.3876751+00:00\",\n Status = \"Success\",\n Steps = new[]\n {\n new AzureNative.AzureStackHCI.Inputs.StepArgs\n {\n Description = \"Prepare for SSU update\",\n EndTimeUtc = \"2022-04-06T01:37:16.8728314+00:00\",\n ErrorMessage = \"\",\n LastUpdatedTimeUtc = \"2022-04-06T01:37:16.8728314+00:00\",\n Name = \"PreUpdate Cloud\",\n StartTimeUtc = \"2022-04-06T01:36:33.3876751+00:00\",\n Status = \"Success\",\n Steps = new[] {},\n },\n },\n UpdateName = \"Microsoft4.2203.2.32\",\n UpdateRunName = \"23b779ba-0d52-4a80-8571-45ca74664ec3\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/azurestackhci/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azurestackhci.NewUpdateRun(ctx, \"updateRun\", \u0026azurestackhci.UpdateRunArgs{\n\t\t\tClusterName: pulumi.String(\"testcluster\"),\n\t\t\tDescription: pulumi.String(\"Update Azure Stack.\"),\n\t\t\tEndTimeUtc: pulumi.String(\"2022-04-06T13:58:42.969006+00:00\"),\n\t\t\tErrorMessage: pulumi.String(\"\"),\n\t\t\tLastUpdatedTimeUtc: pulumi.String(\"2022-04-06T13:58:42.969006+00:00\"),\n\t\t\tName: pulumi.String(\"Unnamed step\"),\n\t\t\tResourceGroupName: pulumi.String(\"testrg\"),\n\t\t\tStartTimeUtc: pulumi.String(\"2022-04-06T01:36:33.3876751+00:00\"),\n\t\t\tStatus: pulumi.String(\"Success\"),\n\t\t\tSteps: []azurestackhci.StepArgs{\n\t\t\t\t{\n\t\t\t\t\tDescription: pulumi.String(\"Prepare for SSU update\"),\n\t\t\t\t\tEndTimeUtc: pulumi.String(\"2022-04-06T01:37:16.8728314+00:00\"),\n\t\t\t\t\tErrorMessage: pulumi.String(\"\"),\n\t\t\t\t\tLastUpdatedTimeUtc: pulumi.String(\"2022-04-06T01:37:16.8728314+00:00\"),\n\t\t\t\t\tName: pulumi.String(\"PreUpdate Cloud\"),\n\t\t\t\t\tStartTimeUtc: pulumi.String(\"2022-04-06T01:36:33.3876751+00:00\"),\n\t\t\t\t\tStatus: pulumi.String(\"Success\"),\n\t\t\t\t\tSteps: azurestackhci.StepArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tUpdateName: pulumi.String(\"Microsoft4.2203.2.32\"),\n\t\t\tUpdateRunName: pulumi.String(\"23b779ba-0d52-4a80-8571-45ca74664ec3\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.azurestackhci.UpdateRun;\nimport com.pulumi.azurenative.azurestackhci.UpdateRunArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var updateRun = new UpdateRun(\"updateRun\", UpdateRunArgs.builder() \n .clusterName(\"testcluster\")\n .description(\"Update Azure Stack.\")\n .endTimeUtc(\"2022-04-06T13:58:42.969006+00:00\")\n .errorMessage(\"\")\n .lastUpdatedTimeUtc(\"2022-04-06T13:58:42.969006+00:00\")\n .name(\"Unnamed step\")\n .resourceGroupName(\"testrg\")\n .startTimeUtc(\"2022-04-06T01:36:33.3876751+00:00\")\n .status(\"Success\")\n .steps(Map.ofEntries(\n Map.entry(\"description\", \"Prepare for SSU update\"),\n Map.entry(\"endTimeUtc\", \"2022-04-06T01:37:16.8728314+00:00\"),\n Map.entry(\"errorMessage\", \"\"),\n Map.entry(\"lastUpdatedTimeUtc\", \"2022-04-06T01:37:16.8728314+00:00\"),\n Map.entry(\"name\", \"PreUpdate Cloud\"),\n Map.entry(\"startTimeUtc\", \"2022-04-06T01:36:33.3876751+00:00\"),\n Map.entry(\"status\", \"Success\"),\n Map.entry(\"steps\", )\n ))\n .updateName(\"Microsoft4.2203.2.32\")\n .updateRunName(\"23b779ba-0d52-4a80-8571-45ca74664ec3\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst updateRun = new azure_native.azurestackhci.UpdateRun(\"updateRun\", {\n clusterName: \"testcluster\",\n description: \"Update Azure Stack.\",\n endTimeUtc: \"2022-04-06T13:58:42.969006+00:00\",\n errorMessage: \"\",\n lastUpdatedTimeUtc: \"2022-04-06T13:58:42.969006+00:00\",\n name: \"Unnamed step\",\n resourceGroupName: \"testrg\",\n startTimeUtc: \"2022-04-06T01:36:33.3876751+00:00\",\n status: \"Success\",\n steps: [{\n description: \"Prepare for SSU update\",\n endTimeUtc: \"2022-04-06T01:37:16.8728314+00:00\",\n errorMessage: \"\",\n lastUpdatedTimeUtc: \"2022-04-06T01:37:16.8728314+00:00\",\n name: \"PreUpdate Cloud\",\n startTimeUtc: \"2022-04-06T01:36:33.3876751+00:00\",\n status: \"Success\",\n steps: [],\n }],\n updateName: \"Microsoft4.2203.2.32\",\n updateRunName: \"23b779ba-0d52-4a80-8571-45ca74664ec3\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nupdate_run = azure_native.azurestackhci.UpdateRun(\"updateRun\",\n cluster_name=\"testcluster\",\n description=\"Update Azure Stack.\",\n end_time_utc=\"2022-04-06T13:58:42.969006+00:00\",\n error_message=\"\",\n last_updated_time_utc=\"2022-04-06T13:58:42.969006+00:00\",\n name=\"Unnamed step\",\n resource_group_name=\"testrg\",\n start_time_utc=\"2022-04-06T01:36:33.3876751+00:00\",\n status=\"Success\",\n steps=[azure_native.azurestackhci.StepArgs(\n description=\"Prepare for SSU update\",\n end_time_utc=\"2022-04-06T01:37:16.8728314+00:00\",\n error_message=\"\",\n last_updated_time_utc=\"2022-04-06T01:37:16.8728314+00:00\",\n name=\"PreUpdate Cloud\",\n start_time_utc=\"2022-04-06T01:36:33.3876751+00:00\",\n status=\"Success\",\n steps=[],\n )],\n update_name=\"Microsoft4.2203.2.32\",\n update_run_name=\"23b779ba-0d52-4a80-8571-45ca74664ec3\")\n\n```\n\n```yaml\nresources:\n updateRun:\n type: azure-native:azurestackhci:UpdateRun\n properties:\n clusterName: testcluster\n description: Update Azure Stack.\n endTimeUtc: 2022-04-06T13:58:42.969006+00:00\n errorMessage:\n lastUpdatedTimeUtc: 2022-04-06T13:58:42.969006+00:00\n name: Unnamed step\n resourceGroupName: testrg\n startTimeUtc: 2022-04-06T01:36:33.3876751+00:00\n status: Success\n steps:\n - description: Prepare for SSU update\n endTimeUtc: 2022-04-06T01:37:16.8728314+00:00\n errorMessage:\n lastUpdatedTimeUtc: 2022-04-06T01:37:16.8728314+00:00\n name: PreUpdate Cloud\n startTimeUtc: 2022-04-06T01:36:33.3876751+00:00\n status: Success\n steps: []\n updateName: Microsoft4.2203.2.32\n updateRunName: 23b779ba-0d52-4a80-8571-45ca74664ec3\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn existing resource can be imported using its type token, name, and identifier, e.g.\n\n```sh\n$ pulumi import azure-native:azurestackhci:UpdateRun Microsoft4.2203.2.32/23b779ba-0d52-4a80-8571-45ca74664ec3 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/updateRuns/{updateRunName} \n```\n",
+ "description": "Details of an Update run\nAzure REST API version: 2023-03-01.\n\nOther available API versions: 2022-12-15-preview, 2023-06-01, 2023-08-01, 2023-08-01-preview, 2023-11-01-preview.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Get Update runs under cluster resource\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var updateRun = new AzureNative.AzureStackHCI.UpdateRun(\"updateRun\", new()\n {\n ClusterName = \"testcluster\",\n Description = \"Update Azure Stack.\",\n EndTimeUtc = \"2022-04-06T13:58:42.969006+00:00\",\n ErrorMessage = \"\",\n LastUpdatedTimeUtc = \"2022-04-06T13:58:42.969006+00:00\",\n Name = \"Unnamed step\",\n ResourceGroupName = \"testrg\",\n StartTimeUtc = \"2022-04-06T01:36:33.3876751+00:00\",\n Status = \"Success\",\n Steps = new[]\n {\n new AzureNative.AzureStackHCI.Inputs.StepArgs\n {\n Description = \"Prepare for SSU update\",\n EndTimeUtc = \"2022-04-06T01:37:16.8728314+00:00\",\n ErrorMessage = \"\",\n LastUpdatedTimeUtc = \"2022-04-06T01:37:16.8728314+00:00\",\n Name = \"PreUpdate Cloud\",\n StartTimeUtc = \"2022-04-06T01:36:33.3876751+00:00\",\n Status = \"Success\",\n Steps = new[] {},\n },\n },\n UpdateName = \"Microsoft4.2203.2.32\",\n UpdateRunName = \"23b779ba-0d52-4a80-8571-45ca74664ec3\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/azurestackhci/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azurestackhci.NewUpdateRun(ctx, \"updateRun\", \u0026azurestackhci.UpdateRunArgs{\n\t\t\tClusterName: pulumi.String(\"testcluster\"),\n\t\t\tDescription: pulumi.String(\"Update Azure Stack.\"),\n\t\t\tEndTimeUtc: pulumi.String(\"2022-04-06T13:58:42.969006+00:00\"),\n\t\t\tErrorMessage: pulumi.String(\"\"),\n\t\t\tLastUpdatedTimeUtc: pulumi.String(\"2022-04-06T13:58:42.969006+00:00\"),\n\t\t\tName: pulumi.String(\"Unnamed step\"),\n\t\t\tResourceGroupName: pulumi.String(\"testrg\"),\n\t\t\tStartTimeUtc: pulumi.String(\"2022-04-06T01:36:33.3876751+00:00\"),\n\t\t\tStatus: pulumi.String(\"Success\"),\n\t\t\tSteps: []azurestackhci.StepArgs{\n\t\t\t\t{\n\t\t\t\t\tDescription: pulumi.String(\"Prepare for SSU update\"),\n\t\t\t\t\tEndTimeUtc: pulumi.String(\"2022-04-06T01:37:16.8728314+00:00\"),\n\t\t\t\t\tErrorMessage: pulumi.String(\"\"),\n\t\t\t\t\tLastUpdatedTimeUtc: pulumi.String(\"2022-04-06T01:37:16.8728314+00:00\"),\n\t\t\t\t\tName: pulumi.String(\"PreUpdate Cloud\"),\n\t\t\t\t\tStartTimeUtc: pulumi.String(\"2022-04-06T01:36:33.3876751+00:00\"),\n\t\t\t\t\tStatus: pulumi.String(\"Success\"),\n\t\t\t\t\tSteps: azurestackhci.StepArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tUpdateName: pulumi.String(\"Microsoft4.2203.2.32\"),\n\t\t\tUpdateRunName: pulumi.String(\"23b779ba-0d52-4a80-8571-45ca74664ec3\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.azurestackhci.UpdateRun;\nimport com.pulumi.azurenative.azurestackhci.UpdateRunArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var updateRun = new UpdateRun(\"updateRun\", UpdateRunArgs.builder() \n .clusterName(\"testcluster\")\n .description(\"Update Azure Stack.\")\n .endTimeUtc(\"2022-04-06T13:58:42.969006+00:00\")\n .errorMessage(\"\")\n .lastUpdatedTimeUtc(\"2022-04-06T13:58:42.969006+00:00\")\n .name(\"Unnamed step\")\n .resourceGroupName(\"testrg\")\n .startTimeUtc(\"2022-04-06T01:36:33.3876751+00:00\")\n .status(\"Success\")\n .steps(Map.ofEntries(\n Map.entry(\"description\", \"Prepare for SSU update\"),\n Map.entry(\"endTimeUtc\", \"2022-04-06T01:37:16.8728314+00:00\"),\n Map.entry(\"errorMessage\", \"\"),\n Map.entry(\"lastUpdatedTimeUtc\", \"2022-04-06T01:37:16.8728314+00:00\"),\n Map.entry(\"name\", \"PreUpdate Cloud\"),\n Map.entry(\"startTimeUtc\", \"2022-04-06T01:36:33.3876751+00:00\"),\n Map.entry(\"status\", \"Success\"),\n Map.entry(\"steps\", )\n ))\n .updateName(\"Microsoft4.2203.2.32\")\n .updateRunName(\"23b779ba-0d52-4a80-8571-45ca74664ec3\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst updateRun = new azure_native.azurestackhci.UpdateRun(\"updateRun\", {\n clusterName: \"testcluster\",\n description: \"Update Azure Stack.\",\n endTimeUtc: \"2022-04-06T13:58:42.969006+00:00\",\n errorMessage: \"\",\n lastUpdatedTimeUtc: \"2022-04-06T13:58:42.969006+00:00\",\n name: \"Unnamed step\",\n resourceGroupName: \"testrg\",\n startTimeUtc: \"2022-04-06T01:36:33.3876751+00:00\",\n status: \"Success\",\n steps: [{\n description: \"Prepare for SSU update\",\n endTimeUtc: \"2022-04-06T01:37:16.8728314+00:00\",\n errorMessage: \"\",\n lastUpdatedTimeUtc: \"2022-04-06T01:37:16.8728314+00:00\",\n name: \"PreUpdate Cloud\",\n startTimeUtc: \"2022-04-06T01:36:33.3876751+00:00\",\n status: \"Success\",\n steps: [],\n }],\n updateName: \"Microsoft4.2203.2.32\",\n updateRunName: \"23b779ba-0d52-4a80-8571-45ca74664ec3\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nupdate_run = azure_native.azurestackhci.UpdateRun(\"updateRun\",\n cluster_name=\"testcluster\",\n description=\"Update Azure Stack.\",\n end_time_utc=\"2022-04-06T13:58:42.969006+00:00\",\n error_message=\"\",\n last_updated_time_utc=\"2022-04-06T13:58:42.969006+00:00\",\n name=\"Unnamed step\",\n resource_group_name=\"testrg\",\n start_time_utc=\"2022-04-06T01:36:33.3876751+00:00\",\n status=\"Success\",\n steps=[{\n \"description\": \"Prepare for SSU update\",\n \"endTimeUtc\": \"2022-04-06T01:37:16.8728314+00:00\",\n \"errorMessage\": \"\",\n \"lastUpdatedTimeUtc\": \"2022-04-06T01:37:16.8728314+00:00\",\n \"name\": \"PreUpdate Cloud\",\n \"startTimeUtc\": \"2022-04-06T01:36:33.3876751+00:00\",\n \"status\": \"Success\",\n \"steps\": [],\n }],\n update_name=\"Microsoft4.2203.2.32\",\n update_run_name=\"23b779ba-0d52-4a80-8571-45ca74664ec3\")\n\n```\n\n```yaml\nresources:\n updateRun:\n type: azure-native:azurestackhci:UpdateRun\n properties:\n clusterName: testcluster\n description: Update Azure Stack.\n endTimeUtc: 2022-04-06T13:58:42.969006+00:00\n errorMessage:\n lastUpdatedTimeUtc: 2022-04-06T13:58:42.969006+00:00\n name: Unnamed step\n resourceGroupName: testrg\n startTimeUtc: 2022-04-06T01:36:33.3876751+00:00\n status: Success\n steps:\n - description: Prepare for SSU update\n endTimeUtc: 2022-04-06T01:37:16.8728314+00:00\n errorMessage:\n lastUpdatedTimeUtc: 2022-04-06T01:37:16.8728314+00:00\n name: PreUpdate Cloud\n startTimeUtc: 2022-04-06T01:36:33.3876751+00:00\n status: Success\n steps: []\n updateName: Microsoft4.2203.2.32\n updateRunName: 23b779ba-0d52-4a80-8571-45ca74664ec3\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn existing resource can be imported using its type token, name, and identifier, e.g.\n\n```sh\n$ pulumi import azure-native:azurestackhci:UpdateRun Microsoft4.2203.2.32/23b779ba-0d52-4a80-8571-45ca74664ec3 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/updateRuns/{updateRunName} \n```\n",
"properties": {
"description": {
"type": "string",
@@ -562066,6 +562066,43 @@
}
]
},
+ "azure-native:keyvault:AccessPolicy": {
+ "description": "Key Vault Access Policy for managing policies on existing vaults.\n## Import\n\nAn existing resource can be imported using its type token, name, and identifier, e.g.\n\n```sh\n$ pulumi import azure-native:keyvault:AccessPolicy myresource1 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/accessPolicy \n```\n",
+ "properties": {
+ "policy": {
+ "$ref": "#/types/azure-native:keyvault:AccessPolicyEntry",
+ "description": "The definition of the access policy."
+ },
+ "resourceGroupName": {
+ "type": "string",
+ "description": "Name of the resource group that contains the vault."
+ },
+ "vaultName": {
+ "type": "string",
+ "description": "Name of the Key Vault."
+ }
+ },
+ "type": "object",
+ "inputProperties": {
+ "policy": {
+ "$ref": "#/types/azure-native:keyvault:AccessPolicyEntry",
+ "description": "The definition of the access policy."
+ },
+ "resourceGroupName": {
+ "type": "string",
+ "description": "Name of the resource group that contains the vault."
+ },
+ "vaultName": {
+ "type": "string",
+ "description": "Name of the Key Vault."
+ }
+ },
+ "requiredInputs": [
+ "resourceGroupName",
+ "vaultName",
+ "policy"
+ ]
+ },
"azure-native:keyvault:Key": {
"description": "The key resource.\nAzure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2019-09-01.\n\nOther available API versions: 2023-07-01.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Create a key\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var key = new AzureNative.KeyVault.Key(\"key\", new()\n {\n KeyName = \"sample-key-name\",\n Properties = new AzureNative.KeyVault.Inputs.KeyPropertiesArgs\n {\n Kty = \"RSA\",\n },\n ResourceGroupName = \"sample-group\",\n VaultName = \"sample-vault-name\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/keyvault/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keyvault.NewKey(ctx, \"key\", \u0026keyvault.KeyArgs{\n\t\t\tKeyName: pulumi.String(\"sample-key-name\"),\n\t\t\tProperties: \u0026keyvault.KeyPropertiesArgs{\n\t\t\t\tKty: pulumi.String(\"RSA\"),\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"sample-group\"),\n\t\t\tVaultName: pulumi.String(\"sample-vault-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.keyvault.Key;\nimport com.pulumi.azurenative.keyvault.KeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var key = new Key(\"key\", KeyArgs.builder() \n .keyName(\"sample-key-name\")\n .properties(Map.of(\"kty\", \"RSA\"))\n .resourceGroupName(\"sample-group\")\n .vaultName(\"sample-vault-name\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst key = new azure_native.keyvault.Key(\"key\", {\n keyName: \"sample-key-name\",\n properties: {\n kty: \"RSA\",\n },\n resourceGroupName: \"sample-group\",\n vaultName: \"sample-vault-name\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nkey = azure_native.keyvault.Key(\"key\",\n key_name=\"sample-key-name\",\n properties=azure_native.keyvault.KeyPropertiesArgs(\n kty=\"RSA\",\n ),\n resource_group_name=\"sample-group\",\n vault_name=\"sample-vault-name\")\n\n```\n\n```yaml\nresources:\n key:\n type: azure-native:keyvault:Key\n properties:\n keyName: sample-key-name\n properties:\n kty: RSA\n resourceGroupName: sample-group\n vaultName: sample-vault-name\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn existing resource can be imported using its type token, name, and identifier, e.g.\n\n```sh\n$ pulumi import azure-native:keyvault:Key sample-key-name /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/keys/{keyName} \n```\n",
"properties": {
@@ -574251,7 +574288,7 @@
]
},
"azure-native:machinelearningservices:Job": {
- "description": "Azure Resource Manager resource envelope.\nAzure REST API version: 2023-04-01. Prior API version in Azure Native 1.x: 2021-03-01-preview.\n\nOther available API versions: 2021-03-01-preview, 2022-02-01-preview, 2023-04-01-preview, 2023-06-01-preview, 2023-08-01-preview, 2023-10-01.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### CreateOrUpdate AutoML Job.\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var job = new AzureNative.MachineLearningServices.Job(\"job\", new()\n {\n Id = \"string\",\n JobBaseProperties = new AzureNative.MachineLearningServices.Inputs.AutoMLJobArgs\n {\n ComputeId = \"string\",\n Description = \"string\",\n DisplayName = \"string\",\n EnvironmentId = \"string\",\n EnvironmentVariables = \n {\n { \"string\", \"string\" },\n },\n ExperimentName = \"string\",\n Identity = new AzureNative.MachineLearningServices.Inputs.AmlTokenArgs\n {\n IdentityType = \"AMLToken\",\n },\n IsArchived = false,\n JobType = \"AutoML\",\n Outputs = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.UriFileJobOutputArgs\n {\n Description = \"string\",\n JobOutputType = \"uri_file\",\n Mode = \"ReadWriteMount\",\n Uri = \"string\",\n } },\n },\n Properties = \n {\n { \"string\", \"string\" },\n },\n Resources = new AzureNative.MachineLearningServices.Inputs.JobResourceConfigurationArgs\n {\n InstanceCount = 1,\n InstanceType = \"string\",\n Properties = \n {\n { \"string\", \n {\n { \"9bec0ab0-c62f-4fa9-a97c-7b24bbcc90ad\", null },\n } },\n },\n },\n Services = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.JobServiceArgs\n {\n Endpoint = \"string\",\n JobServiceType = \"string\",\n Port = 1,\n Properties = \n {\n { \"string\", \"string\" },\n },\n } },\n },\n Tags = \n {\n { \"string\", \"string\" },\n },\n TaskDetails = new AzureNative.MachineLearningServices.Inputs.ImageClassificationArgs\n {\n LimitSettings = new AzureNative.MachineLearningServices.Inputs.ImageLimitSettingsArgs\n {\n MaxTrials = 2,\n },\n ModelSettings = new AzureNative.MachineLearningServices.Inputs.ImageModelSettingsClassificationArgs\n {\n ValidationCropSize = 2,\n },\n SearchSpace = new[]\n {\n new AzureNative.MachineLearningServices.Inputs.ImageModelDistributionSettingsClassificationArgs\n {\n ValidationCropSize = \"choice(2, 360)\",\n },\n },\n TargetColumnName = \"string\",\n TaskType = \"ImageClassification\",\n TrainingData = new AzureNative.MachineLearningServices.Inputs.MLTableJobInputArgs\n {\n JobInputType = \"mltable\",\n Uri = \"string\",\n },\n },\n },\n ResourceGroupName = \"test-rg\",\n WorkspaceName = \"my-aml-workspace\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/machinelearningservices/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := machinelearningservices.NewJob(ctx, \"job\", \u0026machinelearningservices.JobArgs{\nId: pulumi.String(\"string\"),\nJobBaseProperties: machinelearningservices.AutoMLJob{\nComputeId: \"string\",\nDescription: \"string\",\nDisplayName: \"string\",\nEnvironmentId: \"string\",\nEnvironmentVariables: map[string]interface{}{\n\"string\": \"string\",\n},\nExperimentName: \"string\",\nIdentity: machinelearningservices.AmlToken{\nIdentityType: \"AMLToken\",\n},\nIsArchived: false,\nJobType: \"AutoML\",\nOutputs: interface{}{\nString: machinelearningservices.UriFileJobOutput{\nDescription: \"string\",\nJobOutputType: \"uri_file\",\nMode: \"ReadWriteMount\",\nUri: \"string\",\n},\n},\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\nResources: machinelearningservices.JobResourceConfiguration{\nInstanceCount: 1,\nInstanceType: \"string\",\nProperties: map[string]interface{}{\n\"string\": map[string]interface{}{\n\"9bec0ab0-c62f-4fa9-a97c-7b24bbcc90ad\": nil,\n},\n},\n},\nServices: interface{}{\nString: machinelearningservices.JobService{\nEndpoint: \"string\",\nJobServiceType: \"string\",\nPort: 1,\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\n},\n},\nTags: map[string]interface{}{\n\"string\": \"string\",\n},\nTaskDetails: machinelearningservices.ImageClassification{\nLimitSettings: machinelearningservices.ImageLimitSettings{\nMaxTrials: 2,\n},\nModelSettings: machinelearningservices.ImageModelSettingsClassification{\nValidationCropSize: 2,\n},\nSearchSpace: []machinelearningservices.ImageModelDistributionSettingsClassification{\n{\nValidationCropSize: \"choice(2, 360)\",\n},\n},\nTargetColumnName: \"string\",\nTaskType: \"ImageClassification\",\nTrainingData: machinelearningservices.MLTableJobInput{\nJobInputType: \"mltable\",\nUri: \"string\",\n},\n},\n},\nResourceGroupName: pulumi.String(\"test-rg\"),\nWorkspaceName: pulumi.String(\"my-aml-workspace\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.machinelearningservices.Job;\nimport com.pulumi.azurenative.machinelearningservices.JobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var job = new Job(\"job\", JobArgs.builder() \n .id(\"string\")\n .jobBaseProperties(Map.ofEntries(\n Map.entry(\"computeId\", \"string\"),\n Map.entry(\"description\", \"string\"),\n Map.entry(\"displayName\", \"string\"),\n Map.entry(\"environmentId\", \"string\"),\n Map.entry(\"environmentVariables\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"experimentName\", \"string\"),\n Map.entry(\"identity\", Map.of(\"identityType\", \"AMLToken\")),\n Map.entry(\"isArchived\", false),\n Map.entry(\"jobType\", \"AutoML\"),\n Map.entry(\"outputs\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"description\", \"string\"),\n Map.entry(\"jobOutputType\", \"uri_file\"),\n Map.entry(\"mode\", \"ReadWriteMount\"),\n Map.entry(\"uri\", \"string\")\n ))),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"resources\", Map.ofEntries(\n Map.entry(\"instanceCount\", 1),\n Map.entry(\"instanceType\", \"string\"),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n )),\n Map.entry(\"services\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"endpoint\", \"string\"),\n Map.entry(\"jobServiceType\", \"string\"),\n Map.entry(\"port\", 1),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build())\n ))),\n Map.entry(\"tags\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"taskDetails\", Map.ofEntries(\n Map.entry(\"limitSettings\", Map.of(\"maxTrials\", 2)),\n Map.entry(\"modelSettings\", Map.of(\"validationCropSize\", 2)),\n Map.entry(\"searchSpace\", Map.of(\"validationCropSize\", \"choice(2, 360)\")),\n Map.entry(\"targetColumnName\", \"string\"),\n Map.entry(\"taskType\", \"ImageClassification\"),\n Map.entry(\"trainingData\", Map.ofEntries(\n Map.entry(\"jobInputType\", \"mltable\"),\n Map.entry(\"uri\", \"string\")\n ))\n ))\n ))\n .resourceGroupName(\"test-rg\")\n .workspaceName(\"my-aml-workspace\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst job = new azure_native.machinelearningservices.Job(\"job\", {\n id: \"string\",\n jobBaseProperties: {\n computeId: \"string\",\n description: \"string\",\n displayName: \"string\",\n environmentId: \"string\",\n environmentVariables: {\n string: \"string\",\n },\n experimentName: \"string\",\n identity: {\n identityType: \"AMLToken\",\n },\n isArchived: false,\n jobType: \"AutoML\",\n outputs: {\n string: {\n description: \"string\",\n jobOutputType: \"uri_file\",\n mode: \"ReadWriteMount\",\n uri: \"string\",\n },\n },\n properties: {\n string: \"string\",\n },\n resources: {\n instanceCount: 1,\n instanceType: \"string\",\n properties: {\n string: {\n \"9bec0ab0-c62f-4fa9-a97c-7b24bbcc90ad\": undefined,\n },\n },\n },\n services: {\n string: {\n endpoint: \"string\",\n jobServiceType: \"string\",\n port: 1,\n properties: {\n string: \"string\",\n },\n },\n },\n tags: {\n string: \"string\",\n },\n taskDetails: {\n limitSettings: {\n maxTrials: 2,\n },\n modelSettings: {\n validationCropSize: 2,\n },\n searchSpace: [{\n validationCropSize: \"choice(2, 360)\",\n }],\n targetColumnName: \"string\",\n taskType: \"ImageClassification\",\n trainingData: {\n jobInputType: \"mltable\",\n uri: \"string\",\n },\n },\n },\n resourceGroupName: \"test-rg\",\n workspaceName: \"my-aml-workspace\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\njob = azure_native.machinelearningservices.Job(\"job\",\n id=\"string\",\n job_base_properties=azure_native.machinelearningservices.AutoMLJobArgs(\n compute_id=\"string\",\n description=\"string\",\n display_name=\"string\",\n environment_id=\"string\",\n environment_variables={\n \"string\": \"string\",\n },\n experiment_name=\"string\",\n identity=azure_native.machinelearningservices.AmlTokenArgs(\n identity_type=\"AMLToken\",\n ),\n is_archived=False,\n job_type=\"AutoML\",\n outputs={\n \"string\": azure_native.machinelearningservices.UriFileJobOutputArgs(\n description=\"string\",\n job_output_type=\"uri_file\",\n mode=\"ReadWriteMount\",\n uri=\"string\",\n ),\n },\n properties={\n \"string\": \"string\",\n },\n resources=azure_native.machinelearningservices.JobResourceConfigurationArgs(\n instance_count=1,\n instance_type=\"string\",\n properties={\n \"string\": {\n \"9bec0ab0-c62f-4fa9-a97c-7b24bbcc90ad\": None,\n },\n },\n ),\n services={\n \"string\": azure_native.machinelearningservices.JobServiceArgs(\n endpoint=\"string\",\n job_service_type=\"string\",\n port=1,\n properties={\n \"string\": \"string\",\n },\n ),\n },\n tags={\n \"string\": \"string\",\n },\n task_details=azure_native.machinelearningservices.ImageClassificationArgs(\n limit_settings=azure_native.machinelearningservices.ImageLimitSettingsArgs(\n max_trials=2,\n ),\n model_settings=azure_native.machinelearningservices.ImageModelSettingsClassificationArgs(\n validation_crop_size=2,\n ),\n search_space=[azure_native.machinelearningservices.ImageModelDistributionSettingsClassificationArgs(\n validation_crop_size=\"choice(2, 360)\",\n )],\n target_column_name=\"string\",\n task_type=\"ImageClassification\",\n training_data=azure_native.machinelearningservices.MLTableJobInputArgs(\n job_input_type=\"mltable\",\n uri=\"string\",\n ),\n ),\n ),\n resource_group_name=\"test-rg\",\n workspace_name=\"my-aml-workspace\")\n\n```\n\n```yaml\nresources:\n job:\n type: azure-native:machinelearningservices:Job\n properties:\n id: string\n jobBaseProperties:\n computeId: string\n description: string\n displayName: string\n environmentId: string\n environmentVariables:\n string: string\n experimentName: string\n identity:\n identityType: AMLToken\n isArchived: false\n jobType: AutoML\n outputs:\n string:\n description: string\n jobOutputType: uri_file\n mode: ReadWriteMount\n uri: string\n properties:\n string: string\n resources:\n instanceCount: 1\n instanceType: string\n properties:\n string:\n 9bec0ab0-c62f-4fa9-a97c-7b24bbcc90ad: null\n services:\n string:\n endpoint: string\n jobServiceType: string\n port: 1\n properties:\n string: string\n tags:\n string: string\n taskDetails:\n limitSettings:\n maxTrials: 2\n modelSettings:\n validationCropSize: 2\n searchSpace:\n - validationCropSize: choice(2, 360)\n targetColumnName: string\n taskType: ImageClassification\n trainingData:\n jobInputType: mltable\n uri: string\n resourceGroupName: test-rg\n workspaceName: my-aml-workspace\n\n```\n\n{{% /example %}}\n{{% example %}}\n### CreateOrUpdate Command Job.\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var job = new AzureNative.MachineLearningServices.Job(\"job\", new()\n {\n Id = \"string\",\n JobBaseProperties = new AzureNative.MachineLearningServices.Inputs.CommandJobArgs\n {\n CodeId = \"string\",\n Command = \"string\",\n ComputeId = \"string\",\n Description = \"string\",\n DisplayName = \"string\",\n Distribution = new AzureNative.MachineLearningServices.Inputs.TensorFlowArgs\n {\n DistributionType = \"TensorFlow\",\n ParameterServerCount = 1,\n WorkerCount = 1,\n },\n EnvironmentId = \"string\",\n EnvironmentVariables = \n {\n { \"string\", \"string\" },\n },\n ExperimentName = \"string\",\n Identity = new AzureNative.MachineLearningServices.Inputs.AmlTokenArgs\n {\n IdentityType = \"AMLToken\",\n },\n Inputs = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.LiteralJobInputArgs\n {\n Description = \"string\",\n JobInputType = \"literal\",\n Value = \"string\",\n } },\n },\n JobType = \"Command\",\n Limits = new AzureNative.MachineLearningServices.Inputs.CommandJobLimitsArgs\n {\n JobLimitsType = \"Command\",\n Timeout = \"PT5M\",\n },\n Outputs = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.UriFileJobOutputArgs\n {\n Description = \"string\",\n JobOutputType = \"uri_file\",\n Mode = \"ReadWriteMount\",\n Uri = \"string\",\n } },\n },\n Properties = \n {\n { \"string\", \"string\" },\n },\n Resources = new AzureNative.MachineLearningServices.Inputs.JobResourceConfigurationArgs\n {\n InstanceCount = 1,\n InstanceType = \"string\",\n Properties = \n {\n { \"string\", \n {\n { \"e6b6493e-7d5e-4db3-be1e-306ec641327e\", null },\n } },\n },\n },\n Services = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.JobServiceArgs\n {\n Endpoint = \"string\",\n JobServiceType = \"string\",\n Port = 1,\n Properties = \n {\n { \"string\", \"string\" },\n },\n } },\n },\n Tags = \n {\n { \"string\", \"string\" },\n },\n },\n ResourceGroupName = \"test-rg\",\n WorkspaceName = \"my-aml-workspace\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/machinelearningservices/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := machinelearningservices.NewJob(ctx, \"job\", \u0026machinelearningservices.JobArgs{\nId: pulumi.String(\"string\"),\nJobBaseProperties: machinelearningservices.CommandJob{\nCodeId: \"string\",\nCommand: \"string\",\nComputeId: \"string\",\nDescription: \"string\",\nDisplayName: \"string\",\nDistribution: machinelearningservices.TensorFlow{\nDistributionType: \"TensorFlow\",\nParameterServerCount: 1,\nWorkerCount: 1,\n},\nEnvironmentId: \"string\",\nEnvironmentVariables: map[string]interface{}{\n\"string\": \"string\",\n},\nExperimentName: \"string\",\nIdentity: machinelearningservices.AmlToken{\nIdentityType: \"AMLToken\",\n},\nInputs: interface{}{\nString: machinelearningservices.LiteralJobInput{\nDescription: \"string\",\nJobInputType: \"literal\",\nValue: \"string\",\n},\n},\nJobType: \"Command\",\nLimits: machinelearningservices.CommandJobLimits{\nJobLimitsType: \"Command\",\nTimeout: \"PT5M\",\n},\nOutputs: interface{}{\nString: machinelearningservices.UriFileJobOutput{\nDescription: \"string\",\nJobOutputType: \"uri_file\",\nMode: \"ReadWriteMount\",\nUri: \"string\",\n},\n},\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\nResources: machinelearningservices.JobResourceConfiguration{\nInstanceCount: 1,\nInstanceType: \"string\",\nProperties: map[string]interface{}{\n\"string\": map[string]interface{}{\n\"e6b6493e-7d5e-4db3-be1e-306ec641327e\": nil,\n},\n},\n},\nServices: interface{}{\nString: machinelearningservices.JobService{\nEndpoint: \"string\",\nJobServiceType: \"string\",\nPort: 1,\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\n},\n},\nTags: map[string]interface{}{\n\"string\": \"string\",\n},\n},\nResourceGroupName: pulumi.String(\"test-rg\"),\nWorkspaceName: pulumi.String(\"my-aml-workspace\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.machinelearningservices.Job;\nimport com.pulumi.azurenative.machinelearningservices.JobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var job = new Job(\"job\", JobArgs.builder() \n .id(\"string\")\n .jobBaseProperties(Map.ofEntries(\n Map.entry(\"codeId\", \"string\"),\n Map.entry(\"command\", \"string\"),\n Map.entry(\"computeId\", \"string\"),\n Map.entry(\"description\", \"string\"),\n Map.entry(\"displayName\", \"string\"),\n Map.entry(\"distribution\", Map.ofEntries(\n Map.entry(\"distributionType\", \"TensorFlow\"),\n Map.entry(\"parameterServerCount\", 1),\n Map.entry(\"workerCount\", 1)\n )),\n Map.entry(\"environmentId\", \"string\"),\n Map.entry(\"environmentVariables\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"experimentName\", \"string\"),\n Map.entry(\"identity\", Map.of(\"identityType\", \"AMLToken\")),\n Map.entry(\"inputs\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"description\", \"string\"),\n Map.entry(\"jobInputType\", \"literal\"),\n Map.entry(\"value\", \"string\")\n ))),\n Map.entry(\"jobType\", \"Command\"),\n Map.entry(\"limits\", Map.ofEntries(\n Map.entry(\"jobLimitsType\", \"Command\"),\n Map.entry(\"timeout\", \"PT5M\")\n )),\n Map.entry(\"outputs\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"description\", \"string\"),\n Map.entry(\"jobOutputType\", \"uri_file\"),\n Map.entry(\"mode\", \"ReadWriteMount\"),\n Map.entry(\"uri\", \"string\")\n ))),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"resources\", Map.ofEntries(\n Map.entry(\"instanceCount\", 1),\n Map.entry(\"instanceType\", \"string\"),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n )),\n Map.entry(\"services\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"endpoint\", \"string\"),\n Map.entry(\"jobServiceType\", \"string\"),\n Map.entry(\"port\", 1),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build())\n ))),\n Map.entry(\"tags\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build())\n ))\n .resourceGroupName(\"test-rg\")\n .workspaceName(\"my-aml-workspace\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst job = new azure_native.machinelearningservices.Job(\"job\", {\n id: \"string\",\n jobBaseProperties: {\n codeId: \"string\",\n command: \"string\",\n computeId: \"string\",\n description: \"string\",\n displayName: \"string\",\n distribution: {\n distributionType: \"TensorFlow\",\n parameterServerCount: 1,\n workerCount: 1,\n },\n environmentId: \"string\",\n environmentVariables: {\n string: \"string\",\n },\n experimentName: \"string\",\n identity: {\n identityType: \"AMLToken\",\n },\n inputs: {\n string: {\n description: \"string\",\n jobInputType: \"literal\",\n value: \"string\",\n },\n },\n jobType: \"Command\",\n limits: {\n jobLimitsType: \"Command\",\n timeout: \"PT5M\",\n },\n outputs: {\n string: {\n description: \"string\",\n jobOutputType: \"uri_file\",\n mode: \"ReadWriteMount\",\n uri: \"string\",\n },\n },\n properties: {\n string: \"string\",\n },\n resources: {\n instanceCount: 1,\n instanceType: \"string\",\n properties: {\n string: {\n \"e6b6493e-7d5e-4db3-be1e-306ec641327e\": undefined,\n },\n },\n },\n services: {\n string: {\n endpoint: \"string\",\n jobServiceType: \"string\",\n port: 1,\n properties: {\n string: \"string\",\n },\n },\n },\n tags: {\n string: \"string\",\n },\n },\n resourceGroupName: \"test-rg\",\n workspaceName: \"my-aml-workspace\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\njob = azure_native.machinelearningservices.Job(\"job\",\n id=\"string\",\n job_base_properties=azure_native.machinelearningservices.CommandJobArgs(\n code_id=\"string\",\n command=\"string\",\n compute_id=\"string\",\n description=\"string\",\n display_name=\"string\",\n distribution=azure_native.machinelearningservices.TensorFlowArgs(\n distribution_type=\"TensorFlow\",\n parameter_server_count=1,\n worker_count=1,\n ),\n environment_id=\"string\",\n environment_variables={\n \"string\": \"string\",\n },\n experiment_name=\"string\",\n identity=azure_native.machinelearningservices.AmlTokenArgs(\n identity_type=\"AMLToken\",\n ),\n inputs={\n \"string\": azure_native.machinelearningservices.LiteralJobInputArgs(\n description=\"string\",\n job_input_type=\"literal\",\n value=\"string\",\n ),\n },\n job_type=\"Command\",\n limits=azure_native.machinelearningservices.CommandJobLimitsArgs(\n job_limits_type=\"Command\",\n timeout=\"PT5M\",\n ),\n outputs={\n \"string\": azure_native.machinelearningservices.UriFileJobOutputArgs(\n description=\"string\",\n job_output_type=\"uri_file\",\n mode=\"ReadWriteMount\",\n uri=\"string\",\n ),\n },\n properties={\n \"string\": \"string\",\n },\n resources=azure_native.machinelearningservices.JobResourceConfigurationArgs(\n instance_count=1,\n instance_type=\"string\",\n properties={\n \"string\": {\n \"e6b6493e-7d5e-4db3-be1e-306ec641327e\": None,\n },\n },\n ),\n services={\n \"string\": azure_native.machinelearningservices.JobServiceArgs(\n endpoint=\"string\",\n job_service_type=\"string\",\n port=1,\n properties={\n \"string\": \"string\",\n },\n ),\n },\n tags={\n \"string\": \"string\",\n },\n ),\n resource_group_name=\"test-rg\",\n workspace_name=\"my-aml-workspace\")\n\n```\n\n```yaml\nresources:\n job:\n type: azure-native:machinelearningservices:Job\n properties:\n id: string\n jobBaseProperties:\n codeId: string\n command: string\n computeId: string\n description: string\n displayName: string\n distribution:\n distributionType: TensorFlow\n parameterServerCount: 1\n workerCount: 1\n environmentId: string\n environmentVariables:\n string: string\n experimentName: string\n identity:\n identityType: AMLToken\n inputs:\n string:\n description: string\n jobInputType: literal\n value: string\n jobType: Command\n limits:\n jobLimitsType: Command\n timeout: PT5M\n outputs:\n string:\n description: string\n jobOutputType: uri_file\n mode: ReadWriteMount\n uri: string\n properties:\n string: string\n resources:\n instanceCount: 1\n instanceType: string\n properties:\n string:\n e6b6493e-7d5e-4db3-be1e-306ec641327e: null\n services:\n string:\n endpoint: string\n jobServiceType: string\n port: 1\n properties:\n string: string\n tags:\n string: string\n resourceGroupName: test-rg\n workspaceName: my-aml-workspace\n\n```\n\n{{% /example %}}\n{{% example %}}\n### CreateOrUpdate Pipeline Job.\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var job = new AzureNative.MachineLearningServices.Job(\"job\", new()\n {\n Id = \"string\",\n JobBaseProperties = new AzureNative.MachineLearningServices.Inputs.PipelineJobArgs\n {\n ComputeId = \"string\",\n Description = \"string\",\n DisplayName = \"string\",\n ExperimentName = \"string\",\n Inputs = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.LiteralJobInputArgs\n {\n Description = \"string\",\n JobInputType = \"literal\",\n Value = \"string\",\n } },\n },\n JobType = \"Pipeline\",\n Outputs = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.UriFileJobOutputArgs\n {\n Description = \"string\",\n JobOutputType = \"uri_file\",\n Mode = \"Upload\",\n Uri = \"string\",\n } },\n },\n Properties = \n {\n { \"string\", \"string\" },\n },\n Services = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.JobServiceArgs\n {\n Endpoint = \"string\",\n JobServiceType = \"string\",\n Port = 1,\n Properties = \n {\n { \"string\", \"string\" },\n },\n } },\n },\n Settings = null,\n Tags = \n {\n { \"string\", \"string\" },\n },\n },\n ResourceGroupName = \"test-rg\",\n WorkspaceName = \"my-aml-workspace\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/machinelearningservices/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := machinelearningservices.NewJob(ctx, \"job\", \u0026machinelearningservices.JobArgs{\nId: pulumi.String(\"string\"),\nJobBaseProperties: machinelearningservices.PipelineJob{\nComputeId: \"string\",\nDescription: \"string\",\nDisplayName: \"string\",\nExperimentName: \"string\",\nInputs: interface{}{\nString: machinelearningservices.LiteralJobInput{\nDescription: \"string\",\nJobInputType: \"literal\",\nValue: \"string\",\n},\n},\nJobType: \"Pipeline\",\nOutputs: interface{}{\nString: machinelearningservices.UriFileJobOutput{\nDescription: \"string\",\nJobOutputType: \"uri_file\",\nMode: \"Upload\",\nUri: \"string\",\n},\n},\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\nServices: interface{}{\nString: machinelearningservices.JobService{\nEndpoint: \"string\",\nJobServiceType: \"string\",\nPort: 1,\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\n},\n},\nSettings: nil,\nTags: map[string]interface{}{\n\"string\": \"string\",\n},\n},\nResourceGroupName: pulumi.String(\"test-rg\"),\nWorkspaceName: pulumi.String(\"my-aml-workspace\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.machinelearningservices.Job;\nimport com.pulumi.azurenative.machinelearningservices.JobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var job = new Job(\"job\", JobArgs.builder() \n .id(\"string\")\n .jobBaseProperties(Map.ofEntries(\n Map.entry(\"computeId\", \"string\"),\n Map.entry(\"description\", \"string\"),\n Map.entry(\"displayName\", \"string\"),\n Map.entry(\"experimentName\", \"string\"),\n Map.entry(\"inputs\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"description\", \"string\"),\n Map.entry(\"jobInputType\", \"literal\"),\n Map.entry(\"value\", \"string\")\n ))),\n Map.entry(\"jobType\", \"Pipeline\"),\n Map.entry(\"outputs\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"description\", \"string\"),\n Map.entry(\"jobOutputType\", \"uri_file\"),\n Map.entry(\"mode\", \"Upload\"),\n Map.entry(\"uri\", \"string\")\n ))),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"services\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"endpoint\", \"string\"),\n Map.entry(\"jobServiceType\", \"string\"),\n Map.entry(\"port\", 1),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build())\n ))),\n Map.entry(\"settings\", ),\n Map.entry(\"tags\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build())\n ))\n .resourceGroupName(\"test-rg\")\n .workspaceName(\"my-aml-workspace\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst job = new azure_native.machinelearningservices.Job(\"job\", {\n id: \"string\",\n jobBaseProperties: {\n computeId: \"string\",\n description: \"string\",\n displayName: \"string\",\n experimentName: \"string\",\n inputs: {\n string: {\n description: \"string\",\n jobInputType: \"literal\",\n value: \"string\",\n },\n },\n jobType: \"Pipeline\",\n outputs: {\n string: {\n description: \"string\",\n jobOutputType: \"uri_file\",\n mode: \"Upload\",\n uri: \"string\",\n },\n },\n properties: {\n string: \"string\",\n },\n services: {\n string: {\n endpoint: \"string\",\n jobServiceType: \"string\",\n port: 1,\n properties: {\n string: \"string\",\n },\n },\n },\n settings: {},\n tags: {\n string: \"string\",\n },\n },\n resourceGroupName: \"test-rg\",\n workspaceName: \"my-aml-workspace\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\njob = azure_native.machinelearningservices.Job(\"job\",\n id=\"string\",\n job_base_properties=azure_native.machinelearningservices.PipelineJobArgs(\n compute_id=\"string\",\n description=\"string\",\n display_name=\"string\",\n experiment_name=\"string\",\n inputs={\n \"string\": azure_native.machinelearningservices.LiteralJobInputArgs(\n description=\"string\",\n job_input_type=\"literal\",\n value=\"string\",\n ),\n },\n job_type=\"Pipeline\",\n outputs={\n \"string\": azure_native.machinelearningservices.UriFileJobOutputArgs(\n description=\"string\",\n job_output_type=\"uri_file\",\n mode=\"Upload\",\n uri=\"string\",\n ),\n },\n properties={\n \"string\": \"string\",\n },\n services={\n \"string\": azure_native.machinelearningservices.JobServiceArgs(\n endpoint=\"string\",\n job_service_type=\"string\",\n port=1,\n properties={\n \"string\": \"string\",\n },\n ),\n },\n settings={},\n tags={\n \"string\": \"string\",\n },\n ),\n resource_group_name=\"test-rg\",\n workspace_name=\"my-aml-workspace\")\n\n```\n\n```yaml\nresources:\n job:\n type: azure-native:machinelearningservices:Job\n properties:\n id: string\n jobBaseProperties:\n computeId: string\n description: string\n displayName: string\n experimentName: string\n inputs:\n string:\n description: string\n jobInputType: literal\n value: string\n jobType: Pipeline\n outputs:\n string:\n description: string\n jobOutputType: uri_file\n mode: Upload\n uri: string\n properties:\n string: string\n services:\n string:\n endpoint: string\n jobServiceType: string\n port: 1\n properties:\n string: string\n settings: {}\n tags:\n string: string\n resourceGroupName: test-rg\n workspaceName: my-aml-workspace\n\n```\n\n{{% /example %}}\n{{% example %}}\n### CreateOrUpdate Sweep Job.\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var job = new AzureNative.MachineLearningServices.Job(\"job\", new()\n {\n Id = \"string\",\n JobBaseProperties = new AzureNative.MachineLearningServices.Inputs.SweepJobArgs\n {\n ComputeId = \"string\",\n Description = \"string\",\n DisplayName = \"string\",\n EarlyTermination = new AzureNative.MachineLearningServices.Inputs.MedianStoppingPolicyArgs\n {\n DelayEvaluation = 1,\n EvaluationInterval = 1,\n PolicyType = \"MedianStopping\",\n },\n ExperimentName = \"string\",\n JobType = \"Sweep\",\n Limits = new AzureNative.MachineLearningServices.Inputs.SweepJobLimitsArgs\n {\n JobLimitsType = \"Sweep\",\n MaxConcurrentTrials = 1,\n MaxTotalTrials = 1,\n TrialTimeout = \"PT1S\",\n },\n Objective = new AzureNative.MachineLearningServices.Inputs.ObjectiveArgs\n {\n Goal = \"Minimize\",\n PrimaryMetric = \"string\",\n },\n Properties = \n {\n { \"string\", \"string\" },\n },\n SamplingAlgorithm = new AzureNative.MachineLearningServices.Inputs.GridSamplingAlgorithmArgs\n {\n SamplingAlgorithmType = \"Grid\",\n },\n SearchSpace = \n {\n { \"string\", null },\n },\n Services = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.JobServiceArgs\n {\n Endpoint = \"string\",\n JobServiceType = \"string\",\n Port = 1,\n Properties = \n {\n { \"string\", \"string\" },\n },\n } },\n },\n Tags = \n {\n { \"string\", \"string\" },\n },\n Trial = new AzureNative.MachineLearningServices.Inputs.TrialComponentArgs\n {\n CodeId = \"string\",\n Command = \"string\",\n Distribution = new AzureNative.MachineLearningServices.Inputs.MpiArgs\n {\n DistributionType = \"Mpi\",\n ProcessCountPerInstance = 1,\n },\n EnvironmentId = \"string\",\n EnvironmentVariables = \n {\n { \"string\", \"string\" },\n },\n Resources = new AzureNative.MachineLearningServices.Inputs.JobResourceConfigurationArgs\n {\n InstanceCount = 1,\n InstanceType = \"string\",\n Properties = \n {\n { \"string\", \n {\n { \"e6b6493e-7d5e-4db3-be1e-306ec641327e\", null },\n } },\n },\n },\n },\n },\n ResourceGroupName = \"test-rg\",\n WorkspaceName = \"my-aml-workspace\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/machinelearningservices/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := machinelearningservices.NewJob(ctx, \"job\", \u0026machinelearningservices.JobArgs{\nId: pulumi.String(\"string\"),\nJobBaseProperties: machinelearningservices.SweepJob{\nComputeId: \"string\",\nDescription: \"string\",\nDisplayName: \"string\",\nEarlyTermination: machinelearningservices.MedianStoppingPolicy{\nDelayEvaluation: 1,\nEvaluationInterval: 1,\nPolicyType: \"MedianStopping\",\n},\nExperimentName: \"string\",\nJobType: \"Sweep\",\nLimits: machinelearningservices.SweepJobLimits{\nJobLimitsType: \"Sweep\",\nMaxConcurrentTrials: 1,\nMaxTotalTrials: 1,\nTrialTimeout: \"PT1S\",\n},\nObjective: machinelearningservices.Objective{\nGoal: \"Minimize\",\nPrimaryMetric: \"string\",\n},\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\nSamplingAlgorithm: machinelearningservices.GridSamplingAlgorithm{\nSamplingAlgorithmType: \"Grid\",\n},\nSearchSpace: map[string]interface{}{\n\"string\": nil,\n},\nServices: interface{}{\nString: machinelearningservices.JobService{\nEndpoint: \"string\",\nJobServiceType: \"string\",\nPort: 1,\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\n},\n},\nTags: map[string]interface{}{\n\"string\": \"string\",\n},\nTrial: machinelearningservices.TrialComponent{\nCodeId: \"string\",\nCommand: \"string\",\nDistribution: machinelearningservices.Mpi{\nDistributionType: \"Mpi\",\nProcessCountPerInstance: 1,\n},\nEnvironmentId: \"string\",\nEnvironmentVariables: map[string]interface{}{\n\"string\": \"string\",\n},\nResources: machinelearningservices.JobResourceConfiguration{\nInstanceCount: 1,\nInstanceType: \"string\",\nProperties: map[string]interface{}{\n\"string\": map[string]interface{}{\n\"e6b6493e-7d5e-4db3-be1e-306ec641327e\": nil,\n},\n},\n},\n},\n},\nResourceGroupName: pulumi.String(\"test-rg\"),\nWorkspaceName: pulumi.String(\"my-aml-workspace\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.machinelearningservices.Job;\nimport com.pulumi.azurenative.machinelearningservices.JobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var job = new Job(\"job\", JobArgs.builder() \n .id(\"string\")\n .jobBaseProperties(Map.ofEntries(\n Map.entry(\"computeId\", \"string\"),\n Map.entry(\"description\", \"string\"),\n Map.entry(\"displayName\", \"string\"),\n Map.entry(\"earlyTermination\", Map.ofEntries(\n Map.entry(\"delayEvaluation\", 1),\n Map.entry(\"evaluationInterval\", 1),\n Map.entry(\"policyType\", \"MedianStopping\")\n )),\n Map.entry(\"experimentName\", \"string\"),\n Map.entry(\"jobType\", \"Sweep\"),\n Map.entry(\"limits\", Map.ofEntries(\n Map.entry(\"jobLimitsType\", \"Sweep\"),\n Map.entry(\"maxConcurrentTrials\", 1),\n Map.entry(\"maxTotalTrials\", 1),\n Map.entry(\"trialTimeout\", \"PT1S\")\n )),\n Map.entry(\"objective\", Map.ofEntries(\n Map.entry(\"goal\", \"Minimize\"),\n Map.entry(\"primaryMetric\", \"string\")\n )),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"samplingAlgorithm\", Map.of(\"samplingAlgorithmType\", \"Grid\")),\n Map.entry(\"searchSpace\", AutoMLJobArgs.builder()\n .string()\n .build()),\n Map.entry(\"services\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"endpoint\", \"string\"),\n Map.entry(\"jobServiceType\", \"string\"),\n Map.entry(\"port\", 1),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build())\n ))),\n Map.entry(\"tags\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"trial\", Map.ofEntries(\n Map.entry(\"codeId\", \"string\"),\n Map.entry(\"command\", \"string\"),\n Map.entry(\"distribution\", Map.ofEntries(\n Map.entry(\"distributionType\", \"Mpi\"),\n Map.entry(\"processCountPerInstance\", 1)\n )),\n Map.entry(\"environmentId\", \"string\"),\n Map.entry(\"environmentVariables\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"resources\", Map.ofEntries(\n Map.entry(\"instanceCount\", 1),\n Map.entry(\"instanceType\", \"string\"),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n ))\n ))\n ))\n .resourceGroupName(\"test-rg\")\n .workspaceName(\"my-aml-workspace\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst job = new azure_native.machinelearningservices.Job(\"job\", {\n id: \"string\",\n jobBaseProperties: {\n computeId: \"string\",\n description: \"string\",\n displayName: \"string\",\n earlyTermination: {\n delayEvaluation: 1,\n evaluationInterval: 1,\n policyType: \"MedianStopping\",\n },\n experimentName: \"string\",\n jobType: \"Sweep\",\n limits: {\n jobLimitsType: \"Sweep\",\n maxConcurrentTrials: 1,\n maxTotalTrials: 1,\n trialTimeout: \"PT1S\",\n },\n objective: {\n goal: \"Minimize\",\n primaryMetric: \"string\",\n },\n properties: {\n string: \"string\",\n },\n samplingAlgorithm: {\n samplingAlgorithmType: \"Grid\",\n },\n searchSpace: {\n string: {},\n },\n services: {\n string: {\n endpoint: \"string\",\n jobServiceType: \"string\",\n port: 1,\n properties: {\n string: \"string\",\n },\n },\n },\n tags: {\n string: \"string\",\n },\n trial: {\n codeId: \"string\",\n command: \"string\",\n distribution: {\n distributionType: \"Mpi\",\n processCountPerInstance: 1,\n },\n environmentId: \"string\",\n environmentVariables: {\n string: \"string\",\n },\n resources: {\n instanceCount: 1,\n instanceType: \"string\",\n properties: {\n string: {\n \"e6b6493e-7d5e-4db3-be1e-306ec641327e\": undefined,\n },\n },\n },\n },\n },\n resourceGroupName: \"test-rg\",\n workspaceName: \"my-aml-workspace\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\njob = azure_native.machinelearningservices.Job(\"job\",\n id=\"string\",\n job_base_properties=azure_native.machinelearningservices.SweepJobArgs(\n compute_id=\"string\",\n description=\"string\",\n display_name=\"string\",\n early_termination=azure_native.machinelearningservices.MedianStoppingPolicyArgs(\n delay_evaluation=1,\n evaluation_interval=1,\n policy_type=\"MedianStopping\",\n ),\n experiment_name=\"string\",\n job_type=\"Sweep\",\n limits=azure_native.machinelearningservices.SweepJobLimitsArgs(\n job_limits_type=\"Sweep\",\n max_concurrent_trials=1,\n max_total_trials=1,\n trial_timeout=\"PT1S\",\n ),\n objective=azure_native.machinelearningservices.ObjectiveArgs(\n goal=\"Minimize\",\n primary_metric=\"string\",\n ),\n properties={\n \"string\": \"string\",\n },\n sampling_algorithm=azure_native.machinelearningservices.GridSamplingAlgorithmArgs(\n sampling_algorithm_type=\"Grid\",\n ),\n search_space={\n \"string\": {},\n },\n services={\n \"string\": azure_native.machinelearningservices.JobServiceArgs(\n endpoint=\"string\",\n job_service_type=\"string\",\n port=1,\n properties={\n \"string\": \"string\",\n },\n ),\n },\n tags={\n \"string\": \"string\",\n },\n trial=azure_native.machinelearningservices.TrialComponentArgs(\n code_id=\"string\",\n command=\"string\",\n distribution=azure_native.machinelearningservices.MpiArgs(\n distribution_type=\"Mpi\",\n process_count_per_instance=1,\n ),\n environment_id=\"string\",\n environment_variables={\n \"string\": \"string\",\n },\n resources=azure_native.machinelearningservices.JobResourceConfigurationArgs(\n instance_count=1,\n instance_type=\"string\",\n properties={\n \"string\": {\n \"e6b6493e-7d5e-4db3-be1e-306ec641327e\": None,\n },\n },\n ),\n ),\n ),\n resource_group_name=\"test-rg\",\n workspace_name=\"my-aml-workspace\")\n\n```\n\n```yaml\nresources:\n job:\n type: azure-native:machinelearningservices:Job\n properties:\n id: string\n jobBaseProperties:\n computeId: string\n description: string\n displayName: string\n earlyTermination:\n delayEvaluation: 1\n evaluationInterval: 1\n policyType: MedianStopping\n experimentName: string\n jobType: Sweep\n limits:\n jobLimitsType: Sweep\n maxConcurrentTrials: 1\n maxTotalTrials: 1\n trialTimeout: PT1S\n objective:\n goal: Minimize\n primaryMetric: string\n properties:\n string: string\n samplingAlgorithm:\n samplingAlgorithmType: Grid\n searchSpace:\n string: {}\n services:\n string:\n endpoint: string\n jobServiceType: string\n port: 1\n properties:\n string: string\n tags:\n string: string\n trial:\n codeId: string\n command: string\n distribution:\n distributionType: Mpi\n processCountPerInstance: 1\n environmentId: string\n environmentVariables:\n string: string\n resources:\n instanceCount: 1\n instanceType: string\n properties:\n string:\n e6b6493e-7d5e-4db3-be1e-306ec641327e: null\n resourceGroupName: test-rg\n workspaceName: my-aml-workspace\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn existing resource can be imported using its type token, name, and identifier, e.g.\n\n```sh\n$ pulumi import azure-native:machinelearningservices:Job string /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/jobs/{id} \n```\n",
+ "description": "Azure Resource Manager resource envelope.\nAzure REST API version: 2023-04-01. Prior API version in Azure Native 1.x: 2021-03-01-preview.\n\nOther available API versions: 2021-03-01-preview, 2022-02-01-preview, 2023-04-01-preview, 2023-06-01-preview, 2023-08-01-preview, 2023-10-01.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### CreateOrUpdate AutoML Job.\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var job = new AzureNative.MachineLearningServices.Job(\"job\", new()\n {\n Id = \"string\",\n JobBaseProperties = new AzureNative.MachineLearningServices.Inputs.AutoMLJobArgs\n {\n ComputeId = \"string\",\n Description = \"string\",\n DisplayName = \"string\",\n EnvironmentId = \"string\",\n EnvironmentVariables = \n {\n { \"string\", \"string\" },\n },\n ExperimentName = \"string\",\n Identity = new AzureNative.MachineLearningServices.Inputs.AmlTokenArgs\n {\n IdentityType = \"AMLToken\",\n },\n IsArchived = false,\n JobType = \"AutoML\",\n Outputs = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.UriFileJobOutputArgs\n {\n Description = \"string\",\n JobOutputType = \"uri_file\",\n Mode = \"ReadWriteMount\",\n Uri = \"string\",\n } },\n },\n Properties = \n {\n { \"string\", \"string\" },\n },\n Resources = new AzureNative.MachineLearningServices.Inputs.JobResourceConfigurationArgs\n {\n InstanceCount = 1,\n InstanceType = \"string\",\n Properties = \n {\n { \"string\", \n {\n { \"9bec0ab0-c62f-4fa9-a97c-7b24bbcc90ad\", null },\n } },\n },\n },\n Services = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.JobServiceArgs\n {\n Endpoint = \"string\",\n JobServiceType = \"string\",\n Port = 1,\n Properties = \n {\n { \"string\", \"string\" },\n },\n } },\n },\n Tags = \n {\n { \"string\", \"string\" },\n },\n TaskDetails = new AzureNative.MachineLearningServices.Inputs.ImageClassificationArgs\n {\n LimitSettings = new AzureNative.MachineLearningServices.Inputs.ImageLimitSettingsArgs\n {\n MaxTrials = 2,\n },\n ModelSettings = new AzureNative.MachineLearningServices.Inputs.ImageModelSettingsClassificationArgs\n {\n ValidationCropSize = 2,\n },\n SearchSpace = new[]\n {\n new AzureNative.MachineLearningServices.Inputs.ImageModelDistributionSettingsClassificationArgs\n {\n ValidationCropSize = \"choice(2, 360)\",\n },\n },\n TargetColumnName = \"string\",\n TaskType = \"ImageClassification\",\n TrainingData = new AzureNative.MachineLearningServices.Inputs.MLTableJobInputArgs\n {\n JobInputType = \"mltable\",\n Uri = \"string\",\n },\n },\n },\n ResourceGroupName = \"test-rg\",\n WorkspaceName = \"my-aml-workspace\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/machinelearningservices/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := machinelearningservices.NewJob(ctx, \"job\", \u0026machinelearningservices.JobArgs{\nId: pulumi.String(\"string\"),\nJobBaseProperties: interface{}{\nComputeId: \"string\",\nDescription: \"string\",\nDisplayName: \"string\",\nEnvironmentId: \"string\",\nEnvironmentVariables: map[string]interface{}{\n\"string\": \"string\",\n},\nExperimentName: \"string\",\nIdentity: machinelearningservices.AmlToken{\nIdentityType: \"AMLToken\",\n},\nIsArchived: false,\nJobType: \"AutoML\",\nOutputs: interface{}{\nString: machinelearningservices.UriFileJobOutput{\nDescription: \"string\",\nJobOutputType: \"uri_file\",\nMode: \"ReadWriteMount\",\nUri: \"string\",\n},\n},\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\nResources: machinelearningservices.JobResourceConfiguration{\nInstanceCount: 1,\nInstanceType: \"string\",\nProperties: map[string]interface{}{\n\"string\": map[string]interface{}{\n\"9bec0ab0-c62f-4fa9-a97c-7b24bbcc90ad\": nil,\n},\n},\n},\nServices: interface{}{\nString: machinelearningservices.JobService{\nEndpoint: \"string\",\nJobServiceType: \"string\",\nPort: 1,\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\n},\n},\nTags: map[string]interface{}{\n\"string\": \"string\",\n},\nTaskDetails: machinelearningservices.ImageClassification{\nLimitSettings: machinelearningservices.ImageLimitSettings{\nMaxTrials: 2,\n},\nModelSettings: machinelearningservices.ImageModelSettingsClassification{\nValidationCropSize: 2,\n},\nSearchSpace: []machinelearningservices.ImageModelDistributionSettingsClassification{\n{\nValidationCropSize: \"choice(2, 360)\",\n},\n},\nTargetColumnName: \"string\",\nTaskType: \"ImageClassification\",\nTrainingData: machinelearningservices.MLTableJobInput{\nJobInputType: \"mltable\",\nUri: \"string\",\n},\n},\n},\nResourceGroupName: pulumi.String(\"test-rg\"),\nWorkspaceName: pulumi.String(\"my-aml-workspace\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.machinelearningservices.Job;\nimport com.pulumi.azurenative.machinelearningservices.JobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var job = new Job(\"job\", JobArgs.builder() \n .id(\"string\")\n .jobBaseProperties(Map.ofEntries(\n Map.entry(\"computeId\", \"string\"),\n Map.entry(\"description\", \"string\"),\n Map.entry(\"displayName\", \"string\"),\n Map.entry(\"environmentId\", \"string\"),\n Map.entry(\"environmentVariables\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"experimentName\", \"string\"),\n Map.entry(\"identity\", Map.of(\"identityType\", \"AMLToken\")),\n Map.entry(\"isArchived\", false),\n Map.entry(\"jobType\", \"AutoML\"),\n Map.entry(\"outputs\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"description\", \"string\"),\n Map.entry(\"jobOutputType\", \"uri_file\"),\n Map.entry(\"mode\", \"ReadWriteMount\"),\n Map.entry(\"uri\", \"string\")\n ))),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"resources\", Map.ofEntries(\n Map.entry(\"instanceCount\", 1),\n Map.entry(\"instanceType\", \"string\"),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n )),\n Map.entry(\"services\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"endpoint\", \"string\"),\n Map.entry(\"jobServiceType\", \"string\"),\n Map.entry(\"port\", 1),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build())\n ))),\n Map.entry(\"tags\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"taskDetails\", Map.ofEntries(\n Map.entry(\"limitSettings\", Map.of(\"maxTrials\", 2)),\n Map.entry(\"modelSettings\", Map.of(\"validationCropSize\", 2)),\n Map.entry(\"searchSpace\", Map.of(\"validationCropSize\", \"choice(2, 360)\")),\n Map.entry(\"targetColumnName\", \"string\"),\n Map.entry(\"taskType\", \"ImageClassification\"),\n Map.entry(\"trainingData\", Map.ofEntries(\n Map.entry(\"jobInputType\", \"mltable\"),\n Map.entry(\"uri\", \"string\")\n ))\n ))\n ))\n .resourceGroupName(\"test-rg\")\n .workspaceName(\"my-aml-workspace\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst job = new azure_native.machinelearningservices.Job(\"job\", {\n id: \"string\",\n jobBaseProperties: {\n computeId: \"string\",\n description: \"string\",\n displayName: \"string\",\n environmentId: \"string\",\n environmentVariables: {\n string: \"string\",\n },\n experimentName: \"string\",\n identity: {\n identityType: \"AMLToken\",\n },\n isArchived: false,\n jobType: \"AutoML\",\n outputs: {\n string: {\n description: \"string\",\n jobOutputType: \"uri_file\",\n mode: \"ReadWriteMount\",\n uri: \"string\",\n },\n },\n properties: {\n string: \"string\",\n },\n resources: {\n instanceCount: 1,\n instanceType: \"string\",\n properties: {\n string: {\n \"9bec0ab0-c62f-4fa9-a97c-7b24bbcc90ad\": undefined,\n },\n },\n },\n services: {\n string: {\n endpoint: \"string\",\n jobServiceType: \"string\",\n port: 1,\n properties: {\n string: \"string\",\n },\n },\n },\n tags: {\n string: \"string\",\n },\n taskDetails: {\n limitSettings: {\n maxTrials: 2,\n },\n modelSettings: {\n validationCropSize: 2,\n },\n searchSpace: [{\n validationCropSize: \"choice(2, 360)\",\n }],\n targetColumnName: \"string\",\n taskType: \"ImageClassification\",\n trainingData: {\n jobInputType: \"mltable\",\n uri: \"string\",\n },\n },\n },\n resourceGroupName: \"test-rg\",\n workspaceName: \"my-aml-workspace\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\njob = azure_native.machinelearningservices.Job(\"job\",\n id=\"string\",\n job_base_properties=azure_native.machinelearningservices.AutoMLJobArgs(\n compute_id=\"string\",\n description=\"string\",\n display_name=\"string\",\n environment_id=\"string\",\n environment_variables={\n \"string\": \"string\",\n },\n experiment_name=\"string\",\n identity=azure_native.machinelearningservices.AmlTokenArgs(\n identity_type=\"AMLToken\",\n ),\n is_archived=False,\n job_type=\"AutoML\",\n outputs={\n \"string\": azure_native.machinelearningservices.UriFileJobOutputArgs(\n description=\"string\",\n job_output_type=\"uri_file\",\n mode=\"ReadWriteMount\",\n uri=\"string\",\n ),\n },\n properties={\n \"string\": \"string\",\n },\n resources=azure_native.machinelearningservices.JobResourceConfigurationArgs(\n instance_count=1,\n instance_type=\"string\",\n properties={\n \"string\": {\n \"9bec0ab0-c62f-4fa9-a97c-7b24bbcc90ad\": None,\n },\n },\n ),\n services={\n \"string\": azure_native.machinelearningservices.JobServiceArgs(\n endpoint=\"string\",\n job_service_type=\"string\",\n port=1,\n properties={\n \"string\": \"string\",\n },\n ),\n },\n tags={\n \"string\": \"string\",\n },\n task_details=azure_native.machinelearningservices.ImageClassificationArgs(\n limit_settings=azure_native.machinelearningservices.ImageLimitSettingsArgs(\n max_trials=2,\n ),\n model_settings=azure_native.machinelearningservices.ImageModelSettingsClassificationArgs(\n validation_crop_size=2,\n ),\n search_space=[azure_native.machinelearningservices.ImageModelDistributionSettingsClassificationArgs(\n validation_crop_size=\"choice(2, 360)\",\n )],\n target_column_name=\"string\",\n task_type=\"ImageClassification\",\n training_data=azure_native.machinelearningservices.MLTableJobInputArgs(\n job_input_type=\"mltable\",\n uri=\"string\",\n ),\n ),\n ),\n resource_group_name=\"test-rg\",\n workspace_name=\"my-aml-workspace\")\n\n```\n\n```yaml\nresources:\n job:\n type: azure-native:machinelearningservices:Job\n properties:\n id: string\n jobBaseProperties:\n computeId: string\n description: string\n displayName: string\n environmentId: string\n environmentVariables:\n string: string\n experimentName: string\n identity:\n identityType: AMLToken\n isArchived: false\n jobType: AutoML\n outputs:\n string:\n description: string\n jobOutputType: uri_file\n mode: ReadWriteMount\n uri: string\n properties:\n string: string\n resources:\n instanceCount: 1\n instanceType: string\n properties:\n string:\n 9bec0ab0-c62f-4fa9-a97c-7b24bbcc90ad: null\n services:\n string:\n endpoint: string\n jobServiceType: string\n port: 1\n properties:\n string: string\n tags:\n string: string\n taskDetails:\n limitSettings:\n maxTrials: 2\n modelSettings:\n validationCropSize: 2\n searchSpace:\n - validationCropSize: choice(2, 360)\n targetColumnName: string\n taskType: ImageClassification\n trainingData:\n jobInputType: mltable\n uri: string\n resourceGroupName: test-rg\n workspaceName: my-aml-workspace\n\n```\n\n{{% /example %}}\n{{% example %}}\n### CreateOrUpdate Command Job.\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var job = new AzureNative.MachineLearningServices.Job(\"job\", new()\n {\n Id = \"string\",\n JobBaseProperties = new AzureNative.MachineLearningServices.Inputs.CommandJobArgs\n {\n CodeId = \"string\",\n Command = \"string\",\n ComputeId = \"string\",\n Description = \"string\",\n DisplayName = \"string\",\n Distribution = new AzureNative.MachineLearningServices.Inputs.TensorFlowArgs\n {\n DistributionType = \"TensorFlow\",\n ParameterServerCount = 1,\n WorkerCount = 1,\n },\n EnvironmentId = \"string\",\n EnvironmentVariables = \n {\n { \"string\", \"string\" },\n },\n ExperimentName = \"string\",\n Identity = new AzureNative.MachineLearningServices.Inputs.AmlTokenArgs\n {\n IdentityType = \"AMLToken\",\n },\n Inputs = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.LiteralJobInputArgs\n {\n Description = \"string\",\n JobInputType = \"literal\",\n Value = \"string\",\n } },\n },\n JobType = \"Command\",\n Limits = new AzureNative.MachineLearningServices.Inputs.CommandJobLimitsArgs\n {\n JobLimitsType = \"Command\",\n Timeout = \"PT5M\",\n },\n Outputs = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.UriFileJobOutputArgs\n {\n Description = \"string\",\n JobOutputType = \"uri_file\",\n Mode = \"ReadWriteMount\",\n Uri = \"string\",\n } },\n },\n Properties = \n {\n { \"string\", \"string\" },\n },\n Resources = new AzureNative.MachineLearningServices.Inputs.JobResourceConfigurationArgs\n {\n InstanceCount = 1,\n InstanceType = \"string\",\n Properties = \n {\n { \"string\", \n {\n { \"e6b6493e-7d5e-4db3-be1e-306ec641327e\", null },\n } },\n },\n },\n Services = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.JobServiceArgs\n {\n Endpoint = \"string\",\n JobServiceType = \"string\",\n Port = 1,\n Properties = \n {\n { \"string\", \"string\" },\n },\n } },\n },\n Tags = \n {\n { \"string\", \"string\" },\n },\n },\n ResourceGroupName = \"test-rg\",\n WorkspaceName = \"my-aml-workspace\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/machinelearningservices/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := machinelearningservices.NewJob(ctx, \"job\", \u0026machinelearningservices.JobArgs{\nId: pulumi.String(\"string\"),\nJobBaseProperties: machinelearningservices.CommandJob{\nCodeId: \"string\",\nCommand: \"string\",\nComputeId: \"string\",\nDescription: \"string\",\nDisplayName: \"string\",\nDistribution: machinelearningservices.TensorFlow{\nDistributionType: \"TensorFlow\",\nParameterServerCount: 1,\nWorkerCount: 1,\n},\nEnvironmentId: \"string\",\nEnvironmentVariables: map[string]interface{}{\n\"string\": \"string\",\n},\nExperimentName: \"string\",\nIdentity: machinelearningservices.AmlToken{\nIdentityType: \"AMLToken\",\n},\nInputs: interface{}{\nString: machinelearningservices.LiteralJobInput{\nDescription: \"string\",\nJobInputType: \"literal\",\nValue: \"string\",\n},\n},\nJobType: \"Command\",\nLimits: machinelearningservices.CommandJobLimits{\nJobLimitsType: \"Command\",\nTimeout: \"PT5M\",\n},\nOutputs: interface{}{\nString: machinelearningservices.UriFileJobOutput{\nDescription: \"string\",\nJobOutputType: \"uri_file\",\nMode: \"ReadWriteMount\",\nUri: \"string\",\n},\n},\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\nResources: machinelearningservices.JobResourceConfiguration{\nInstanceCount: 1,\nInstanceType: \"string\",\nProperties: map[string]interface{}{\n\"string\": map[string]interface{}{\n\"e6b6493e-7d5e-4db3-be1e-306ec641327e\": nil,\n},\n},\n},\nServices: interface{}{\nString: machinelearningservices.JobService{\nEndpoint: \"string\",\nJobServiceType: \"string\",\nPort: 1,\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\n},\n},\nTags: map[string]interface{}{\n\"string\": \"string\",\n},\n},\nResourceGroupName: pulumi.String(\"test-rg\"),\nWorkspaceName: pulumi.String(\"my-aml-workspace\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.machinelearningservices.Job;\nimport com.pulumi.azurenative.machinelearningservices.JobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var job = new Job(\"job\", JobArgs.builder() \n .id(\"string\")\n .jobBaseProperties(Map.ofEntries(\n Map.entry(\"codeId\", \"string\"),\n Map.entry(\"command\", \"string\"),\n Map.entry(\"computeId\", \"string\"),\n Map.entry(\"description\", \"string\"),\n Map.entry(\"displayName\", \"string\"),\n Map.entry(\"distribution\", Map.ofEntries(\n Map.entry(\"distributionType\", \"TensorFlow\"),\n Map.entry(\"parameterServerCount\", 1),\n Map.entry(\"workerCount\", 1)\n )),\n Map.entry(\"environmentId\", \"string\"),\n Map.entry(\"environmentVariables\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"experimentName\", \"string\"),\n Map.entry(\"identity\", Map.of(\"identityType\", \"AMLToken\")),\n Map.entry(\"inputs\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"description\", \"string\"),\n Map.entry(\"jobInputType\", \"literal\"),\n Map.entry(\"value\", \"string\")\n ))),\n Map.entry(\"jobType\", \"Command\"),\n Map.entry(\"limits\", Map.ofEntries(\n Map.entry(\"jobLimitsType\", \"Command\"),\n Map.entry(\"timeout\", \"PT5M\")\n )),\n Map.entry(\"outputs\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"description\", \"string\"),\n Map.entry(\"jobOutputType\", \"uri_file\"),\n Map.entry(\"mode\", \"ReadWriteMount\"),\n Map.entry(\"uri\", \"string\")\n ))),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"resources\", Map.ofEntries(\n Map.entry(\"instanceCount\", 1),\n Map.entry(\"instanceType\", \"string\"),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n )),\n Map.entry(\"services\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"endpoint\", \"string\"),\n Map.entry(\"jobServiceType\", \"string\"),\n Map.entry(\"port\", 1),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build())\n ))),\n Map.entry(\"tags\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build())\n ))\n .resourceGroupName(\"test-rg\")\n .workspaceName(\"my-aml-workspace\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst job = new azure_native.machinelearningservices.Job(\"job\", {\n id: \"string\",\n jobBaseProperties: {\n codeId: \"string\",\n command: \"string\",\n computeId: \"string\",\n description: \"string\",\n displayName: \"string\",\n distribution: {\n distributionType: \"TensorFlow\",\n parameterServerCount: 1,\n workerCount: 1,\n },\n environmentId: \"string\",\n environmentVariables: {\n string: \"string\",\n },\n experimentName: \"string\",\n identity: {\n identityType: \"AMLToken\",\n },\n inputs: {\n string: {\n description: \"string\",\n jobInputType: \"literal\",\n value: \"string\",\n },\n },\n jobType: \"Command\",\n limits: {\n jobLimitsType: \"Command\",\n timeout: \"PT5M\",\n },\n outputs: {\n string: {\n description: \"string\",\n jobOutputType: \"uri_file\",\n mode: \"ReadWriteMount\",\n uri: \"string\",\n },\n },\n properties: {\n string: \"string\",\n },\n resources: {\n instanceCount: 1,\n instanceType: \"string\",\n properties: {\n string: {\n \"e6b6493e-7d5e-4db3-be1e-306ec641327e\": undefined,\n },\n },\n },\n services: {\n string: {\n endpoint: \"string\",\n jobServiceType: \"string\",\n port: 1,\n properties: {\n string: \"string\",\n },\n },\n },\n tags: {\n string: \"string\",\n },\n },\n resourceGroupName: \"test-rg\",\n workspaceName: \"my-aml-workspace\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\njob = azure_native.machinelearningservices.Job(\"job\",\n id=\"string\",\n job_base_properties=azure_native.machinelearningservices.CommandJobArgs(\n code_id=\"string\",\n command=\"string\",\n compute_id=\"string\",\n description=\"string\",\n display_name=\"string\",\n distribution=azure_native.machinelearningservices.TensorFlowArgs(\n distribution_type=\"TensorFlow\",\n parameter_server_count=1,\n worker_count=1,\n ),\n environment_id=\"string\",\n environment_variables={\n \"string\": \"string\",\n },\n experiment_name=\"string\",\n identity=azure_native.machinelearningservices.AmlTokenArgs(\n identity_type=\"AMLToken\",\n ),\n inputs={\n \"string\": azure_native.machinelearningservices.LiteralJobInputArgs(\n description=\"string\",\n job_input_type=\"literal\",\n value=\"string\",\n ),\n },\n job_type=\"Command\",\n limits=azure_native.machinelearningservices.CommandJobLimitsArgs(\n job_limits_type=\"Command\",\n timeout=\"PT5M\",\n ),\n outputs={\n \"string\": azure_native.machinelearningservices.UriFileJobOutputArgs(\n description=\"string\",\n job_output_type=\"uri_file\",\n mode=\"ReadWriteMount\",\n uri=\"string\",\n ),\n },\n properties={\n \"string\": \"string\",\n },\n resources=azure_native.machinelearningservices.JobResourceConfigurationArgs(\n instance_count=1,\n instance_type=\"string\",\n properties={\n \"string\": {\n \"e6b6493e-7d5e-4db3-be1e-306ec641327e\": None,\n },\n },\n ),\n services={\n \"string\": azure_native.machinelearningservices.JobServiceArgs(\n endpoint=\"string\",\n job_service_type=\"string\",\n port=1,\n properties={\n \"string\": \"string\",\n },\n ),\n },\n tags={\n \"string\": \"string\",\n },\n ),\n resource_group_name=\"test-rg\",\n workspace_name=\"my-aml-workspace\")\n\n```\n\n```yaml\nresources:\n job:\n type: azure-native:machinelearningservices:Job\n properties:\n id: string\n jobBaseProperties:\n codeId: string\n command: string\n computeId: string\n description: string\n displayName: string\n distribution:\n distributionType: TensorFlow\n parameterServerCount: 1\n workerCount: 1\n environmentId: string\n environmentVariables:\n string: string\n experimentName: string\n identity:\n identityType: AMLToken\n inputs:\n string:\n description: string\n jobInputType: literal\n value: string\n jobType: Command\n limits:\n jobLimitsType: Command\n timeout: PT5M\n outputs:\n string:\n description: string\n jobOutputType: uri_file\n mode: ReadWriteMount\n uri: string\n properties:\n string: string\n resources:\n instanceCount: 1\n instanceType: string\n properties:\n string:\n e6b6493e-7d5e-4db3-be1e-306ec641327e: null\n services:\n string:\n endpoint: string\n jobServiceType: string\n port: 1\n properties:\n string: string\n tags:\n string: string\n resourceGroupName: test-rg\n workspaceName: my-aml-workspace\n\n```\n\n{{% /example %}}\n{{% example %}}\n### CreateOrUpdate Pipeline Job.\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var job = new AzureNative.MachineLearningServices.Job(\"job\", new()\n {\n Id = \"string\",\n JobBaseProperties = new AzureNative.MachineLearningServices.Inputs.PipelineJobArgs\n {\n ComputeId = \"string\",\n Description = \"string\",\n DisplayName = \"string\",\n ExperimentName = \"string\",\n Inputs = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.LiteralJobInputArgs\n {\n Description = \"string\",\n JobInputType = \"literal\",\n Value = \"string\",\n } },\n },\n JobType = \"Pipeline\",\n Outputs = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.UriFileJobOutputArgs\n {\n Description = \"string\",\n JobOutputType = \"uri_file\",\n Mode = \"Upload\",\n Uri = \"string\",\n } },\n },\n Properties = \n {\n { \"string\", \"string\" },\n },\n Services = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.JobServiceArgs\n {\n Endpoint = \"string\",\n JobServiceType = \"string\",\n Port = 1,\n Properties = \n {\n { \"string\", \"string\" },\n },\n } },\n },\n Settings = null,\n Tags = \n {\n { \"string\", \"string\" },\n },\n },\n ResourceGroupName = \"test-rg\",\n WorkspaceName = \"my-aml-workspace\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/machinelearningservices/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := machinelearningservices.NewJob(ctx, \"job\", \u0026machinelearningservices.JobArgs{\nId: pulumi.String(\"string\"),\nJobBaseProperties: machinelearningservices.PipelineJob{\nComputeId: \"string\",\nDescription: \"string\",\nDisplayName: \"string\",\nExperimentName: \"string\",\nInputs: interface{}{\nString: machinelearningservices.LiteralJobInput{\nDescription: \"string\",\nJobInputType: \"literal\",\nValue: \"string\",\n},\n},\nJobType: \"Pipeline\",\nOutputs: interface{}{\nString: machinelearningservices.UriFileJobOutput{\nDescription: \"string\",\nJobOutputType: \"uri_file\",\nMode: \"Upload\",\nUri: \"string\",\n},\n},\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\nServices: interface{}{\nString: machinelearningservices.JobService{\nEndpoint: \"string\",\nJobServiceType: \"string\",\nPort: 1,\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\n},\n},\nSettings: nil,\nTags: map[string]interface{}{\n\"string\": \"string\",\n},\n},\nResourceGroupName: pulumi.String(\"test-rg\"),\nWorkspaceName: pulumi.String(\"my-aml-workspace\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.machinelearningservices.Job;\nimport com.pulumi.azurenative.machinelearningservices.JobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var job = new Job(\"job\", JobArgs.builder() \n .id(\"string\")\n .jobBaseProperties(Map.ofEntries(\n Map.entry(\"computeId\", \"string\"),\n Map.entry(\"description\", \"string\"),\n Map.entry(\"displayName\", \"string\"),\n Map.entry(\"experimentName\", \"string\"),\n Map.entry(\"inputs\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"description\", \"string\"),\n Map.entry(\"jobInputType\", \"literal\"),\n Map.entry(\"value\", \"string\")\n ))),\n Map.entry(\"jobType\", \"Pipeline\"),\n Map.entry(\"outputs\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"description\", \"string\"),\n Map.entry(\"jobOutputType\", \"uri_file\"),\n Map.entry(\"mode\", \"Upload\"),\n Map.entry(\"uri\", \"string\")\n ))),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"services\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"endpoint\", \"string\"),\n Map.entry(\"jobServiceType\", \"string\"),\n Map.entry(\"port\", 1),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build())\n ))),\n Map.entry(\"settings\", ),\n Map.entry(\"tags\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build())\n ))\n .resourceGroupName(\"test-rg\")\n .workspaceName(\"my-aml-workspace\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst job = new azure_native.machinelearningservices.Job(\"job\", {\n id: \"string\",\n jobBaseProperties: {\n computeId: \"string\",\n description: \"string\",\n displayName: \"string\",\n experimentName: \"string\",\n inputs: {\n string: {\n description: \"string\",\n jobInputType: \"literal\",\n value: \"string\",\n },\n },\n jobType: \"Pipeline\",\n outputs: {\n string: {\n description: \"string\",\n jobOutputType: \"uri_file\",\n mode: \"Upload\",\n uri: \"string\",\n },\n },\n properties: {\n string: \"string\",\n },\n services: {\n string: {\n endpoint: \"string\",\n jobServiceType: \"string\",\n port: 1,\n properties: {\n string: \"string\",\n },\n },\n },\n settings: {},\n tags: {\n string: \"string\",\n },\n },\n resourceGroupName: \"test-rg\",\n workspaceName: \"my-aml-workspace\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\njob = azure_native.machinelearningservices.Job(\"job\",\n id=\"string\",\n job_base_properties=azure_native.machinelearningservices.PipelineJobArgs(\n compute_id=\"string\",\n description=\"string\",\n display_name=\"string\",\n experiment_name=\"string\",\n inputs={\n \"string\": azure_native.machinelearningservices.LiteralJobInputArgs(\n description=\"string\",\n job_input_type=\"literal\",\n value=\"string\",\n ),\n },\n job_type=\"Pipeline\",\n outputs={\n \"string\": azure_native.machinelearningservices.UriFileJobOutputArgs(\n description=\"string\",\n job_output_type=\"uri_file\",\n mode=\"Upload\",\n uri=\"string\",\n ),\n },\n properties={\n \"string\": \"string\",\n },\n services={\n \"string\": azure_native.machinelearningservices.JobServiceArgs(\n endpoint=\"string\",\n job_service_type=\"string\",\n port=1,\n properties={\n \"string\": \"string\",\n },\n ),\n },\n settings={},\n tags={\n \"string\": \"string\",\n },\n ),\n resource_group_name=\"test-rg\",\n workspace_name=\"my-aml-workspace\")\n\n```\n\n```yaml\nresources:\n job:\n type: azure-native:machinelearningservices:Job\n properties:\n id: string\n jobBaseProperties:\n computeId: string\n description: string\n displayName: string\n experimentName: string\n inputs:\n string:\n description: string\n jobInputType: literal\n value: string\n jobType: Pipeline\n outputs:\n string:\n description: string\n jobOutputType: uri_file\n mode: Upload\n uri: string\n properties:\n string: string\n services:\n string:\n endpoint: string\n jobServiceType: string\n port: 1\n properties:\n string: string\n settings: {}\n tags:\n string: string\n resourceGroupName: test-rg\n workspaceName: my-aml-workspace\n\n```\n\n{{% /example %}}\n{{% example %}}\n### CreateOrUpdate Sweep Job.\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var job = new AzureNative.MachineLearningServices.Job(\"job\", new()\n {\n Id = \"string\",\n JobBaseProperties = new AzureNative.MachineLearningServices.Inputs.SweepJobArgs\n {\n ComputeId = \"string\",\n Description = \"string\",\n DisplayName = \"string\",\n EarlyTermination = new AzureNative.MachineLearningServices.Inputs.MedianStoppingPolicyArgs\n {\n DelayEvaluation = 1,\n EvaluationInterval = 1,\n PolicyType = \"MedianStopping\",\n },\n ExperimentName = \"string\",\n JobType = \"Sweep\",\n Limits = new AzureNative.MachineLearningServices.Inputs.SweepJobLimitsArgs\n {\n JobLimitsType = \"Sweep\",\n MaxConcurrentTrials = 1,\n MaxTotalTrials = 1,\n TrialTimeout = \"PT1S\",\n },\n Objective = new AzureNative.MachineLearningServices.Inputs.ObjectiveArgs\n {\n Goal = \"Minimize\",\n PrimaryMetric = \"string\",\n },\n Properties = \n {\n { \"string\", \"string\" },\n },\n SamplingAlgorithm = new AzureNative.MachineLearningServices.Inputs.GridSamplingAlgorithmArgs\n {\n SamplingAlgorithmType = \"Grid\",\n },\n SearchSpace = \n {\n { \"string\", null },\n },\n Services = \n {\n { \"string\", new AzureNative.MachineLearningServices.Inputs.JobServiceArgs\n {\n Endpoint = \"string\",\n JobServiceType = \"string\",\n Port = 1,\n Properties = \n {\n { \"string\", \"string\" },\n },\n } },\n },\n Tags = \n {\n { \"string\", \"string\" },\n },\n Trial = new AzureNative.MachineLearningServices.Inputs.TrialComponentArgs\n {\n CodeId = \"string\",\n Command = \"string\",\n Distribution = new AzureNative.MachineLearningServices.Inputs.MpiArgs\n {\n DistributionType = \"Mpi\",\n ProcessCountPerInstance = 1,\n },\n EnvironmentId = \"string\",\n EnvironmentVariables = \n {\n { \"string\", \"string\" },\n },\n Resources = new AzureNative.MachineLearningServices.Inputs.JobResourceConfigurationArgs\n {\n InstanceCount = 1,\n InstanceType = \"string\",\n Properties = \n {\n { \"string\", \n {\n { \"e6b6493e-7d5e-4db3-be1e-306ec641327e\", null },\n } },\n },\n },\n },\n },\n ResourceGroupName = \"test-rg\",\n WorkspaceName = \"my-aml-workspace\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/machinelearningservices/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := machinelearningservices.NewJob(ctx, \"job\", \u0026machinelearningservices.JobArgs{\nId: pulumi.String(\"string\"),\nJobBaseProperties: machinelearningservices.SweepJob{\nComputeId: \"string\",\nDescription: \"string\",\nDisplayName: \"string\",\nEarlyTermination: machinelearningservices.MedianStoppingPolicy{\nDelayEvaluation: 1,\nEvaluationInterval: 1,\nPolicyType: \"MedianStopping\",\n},\nExperimentName: \"string\",\nJobType: \"Sweep\",\nLimits: machinelearningservices.SweepJobLimits{\nJobLimitsType: \"Sweep\",\nMaxConcurrentTrials: 1,\nMaxTotalTrials: 1,\nTrialTimeout: \"PT1S\",\n},\nObjective: machinelearningservices.Objective{\nGoal: \"Minimize\",\nPrimaryMetric: \"string\",\n},\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\nSamplingAlgorithm: machinelearningservices.GridSamplingAlgorithm{\nSamplingAlgorithmType: \"Grid\",\n},\nSearchSpace: map[string]interface{}{\n\"string\": nil,\n},\nServices: interface{}{\nString: machinelearningservices.JobService{\nEndpoint: \"string\",\nJobServiceType: \"string\",\nPort: 1,\nProperties: map[string]interface{}{\n\"string\": \"string\",\n},\n},\n},\nTags: map[string]interface{}{\n\"string\": \"string\",\n},\nTrial: machinelearningservices.TrialComponent{\nCodeId: \"string\",\nCommand: \"string\",\nDistribution: machinelearningservices.Mpi{\nDistributionType: \"Mpi\",\nProcessCountPerInstance: 1,\n},\nEnvironmentId: \"string\",\nEnvironmentVariables: map[string]interface{}{\n\"string\": \"string\",\n},\nResources: machinelearningservices.JobResourceConfiguration{\nInstanceCount: 1,\nInstanceType: \"string\",\nProperties: map[string]interface{}{\n\"string\": map[string]interface{}{\n\"e6b6493e-7d5e-4db3-be1e-306ec641327e\": nil,\n},\n},\n},\n},\n},\nResourceGroupName: pulumi.String(\"test-rg\"),\nWorkspaceName: pulumi.String(\"my-aml-workspace\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.machinelearningservices.Job;\nimport com.pulumi.azurenative.machinelearningservices.JobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var job = new Job(\"job\", JobArgs.builder() \n .id(\"string\")\n .jobBaseProperties(Map.ofEntries(\n Map.entry(\"computeId\", \"string\"),\n Map.entry(\"description\", \"string\"),\n Map.entry(\"displayName\", \"string\"),\n Map.entry(\"earlyTermination\", Map.ofEntries(\n Map.entry(\"delayEvaluation\", 1),\n Map.entry(\"evaluationInterval\", 1),\n Map.entry(\"policyType\", \"MedianStopping\")\n )),\n Map.entry(\"experimentName\", \"string\"),\n Map.entry(\"jobType\", \"Sweep\"),\n Map.entry(\"limits\", Map.ofEntries(\n Map.entry(\"jobLimitsType\", \"Sweep\"),\n Map.entry(\"maxConcurrentTrials\", 1),\n Map.entry(\"maxTotalTrials\", 1),\n Map.entry(\"trialTimeout\", \"PT1S\")\n )),\n Map.entry(\"objective\", Map.ofEntries(\n Map.entry(\"goal\", \"Minimize\"),\n Map.entry(\"primaryMetric\", \"string\")\n )),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"samplingAlgorithm\", Map.of(\"samplingAlgorithmType\", \"Grid\")),\n Map.entry(\"searchSpace\", AutoMLJobArgs.builder()\n .string()\n .build()),\n Map.entry(\"services\", Map.of(\"string\", Map.ofEntries(\n Map.entry(\"endpoint\", \"string\"),\n Map.entry(\"jobServiceType\", \"string\"),\n Map.entry(\"port\", 1),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build())\n ))),\n Map.entry(\"tags\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"trial\", Map.ofEntries(\n Map.entry(\"codeId\", \"string\"),\n Map.entry(\"command\", \"string\"),\n Map.entry(\"distribution\", Map.ofEntries(\n Map.entry(\"distributionType\", \"Mpi\"),\n Map.entry(\"processCountPerInstance\", 1)\n )),\n Map.entry(\"environmentId\", \"string\"),\n Map.entry(\"environmentVariables\", AutoMLJobArgs.builder()\n .string(\"string\")\n .build()),\n Map.entry(\"resources\", Map.ofEntries(\n Map.entry(\"instanceCount\", 1),\n Map.entry(\"instanceType\", \"string\"),\n Map.entry(\"properties\", AutoMLJobArgs.builder()\n .string(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n ))\n ))\n ))\n .resourceGroupName(\"test-rg\")\n .workspaceName(\"my-aml-workspace\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst job = new azure_native.machinelearningservices.Job(\"job\", {\n id: \"string\",\n jobBaseProperties: {\n computeId: \"string\",\n description: \"string\",\n displayName: \"string\",\n earlyTermination: {\n delayEvaluation: 1,\n evaluationInterval: 1,\n policyType: \"MedianStopping\",\n },\n experimentName: \"string\",\n jobType: \"Sweep\",\n limits: {\n jobLimitsType: \"Sweep\",\n maxConcurrentTrials: 1,\n maxTotalTrials: 1,\n trialTimeout: \"PT1S\",\n },\n objective: {\n goal: \"Minimize\",\n primaryMetric: \"string\",\n },\n properties: {\n string: \"string\",\n },\n samplingAlgorithm: {\n samplingAlgorithmType: \"Grid\",\n },\n searchSpace: {\n string: {},\n },\n services: {\n string: {\n endpoint: \"string\",\n jobServiceType: \"string\",\n port: 1,\n properties: {\n string: \"string\",\n },\n },\n },\n tags: {\n string: \"string\",\n },\n trial: {\n codeId: \"string\",\n command: \"string\",\n distribution: {\n distributionType: \"Mpi\",\n processCountPerInstance: 1,\n },\n environmentId: \"string\",\n environmentVariables: {\n string: \"string\",\n },\n resources: {\n instanceCount: 1,\n instanceType: \"string\",\n properties: {\n string: {\n \"e6b6493e-7d5e-4db3-be1e-306ec641327e\": undefined,\n },\n },\n },\n },\n },\n resourceGroupName: \"test-rg\",\n workspaceName: \"my-aml-workspace\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\njob = azure_native.machinelearningservices.Job(\"job\",\n id=\"string\",\n job_base_properties=azure_native.machinelearningservices.SweepJobArgs(\n compute_id=\"string\",\n description=\"string\",\n display_name=\"string\",\n early_termination=azure_native.machinelearningservices.MedianStoppingPolicyArgs(\n delay_evaluation=1,\n evaluation_interval=1,\n policy_type=\"MedianStopping\",\n ),\n experiment_name=\"string\",\n job_type=\"Sweep\",\n limits=azure_native.machinelearningservices.SweepJobLimitsArgs(\n job_limits_type=\"Sweep\",\n max_concurrent_trials=1,\n max_total_trials=1,\n trial_timeout=\"PT1S\",\n ),\n objective=azure_native.machinelearningservices.ObjectiveArgs(\n goal=\"Minimize\",\n primary_metric=\"string\",\n ),\n properties={\n \"string\": \"string\",\n },\n sampling_algorithm=azure_native.machinelearningservices.GridSamplingAlgorithmArgs(\n sampling_algorithm_type=\"Grid\",\n ),\n search_space={\n \"string\": {},\n },\n services={\n \"string\": azure_native.machinelearningservices.JobServiceArgs(\n endpoint=\"string\",\n job_service_type=\"string\",\n port=1,\n properties={\n \"string\": \"string\",\n },\n ),\n },\n tags={\n \"string\": \"string\",\n },\n trial=azure_native.machinelearningservices.TrialComponentArgs(\n code_id=\"string\",\n command=\"string\",\n distribution=azure_native.machinelearningservices.MpiArgs(\n distribution_type=\"Mpi\",\n process_count_per_instance=1,\n ),\n environment_id=\"string\",\n environment_variables={\n \"string\": \"string\",\n },\n resources=azure_native.machinelearningservices.JobResourceConfigurationArgs(\n instance_count=1,\n instance_type=\"string\",\n properties={\n \"string\": {\n \"e6b6493e-7d5e-4db3-be1e-306ec641327e\": None,\n },\n },\n ),\n ),\n ),\n resource_group_name=\"test-rg\",\n workspace_name=\"my-aml-workspace\")\n\n```\n\n```yaml\nresources:\n job:\n type: azure-native:machinelearningservices:Job\n properties:\n id: string\n jobBaseProperties:\n computeId: string\n description: string\n displayName: string\n earlyTermination:\n delayEvaluation: 1\n evaluationInterval: 1\n policyType: MedianStopping\n experimentName: string\n jobType: Sweep\n limits:\n jobLimitsType: Sweep\n maxConcurrentTrials: 1\n maxTotalTrials: 1\n trialTimeout: PT1S\n objective:\n goal: Minimize\n primaryMetric: string\n properties:\n string: string\n samplingAlgorithm:\n samplingAlgorithmType: Grid\n searchSpace:\n string: {}\n services:\n string:\n endpoint: string\n jobServiceType: string\n port: 1\n properties:\n string: string\n tags:\n string: string\n trial:\n codeId: string\n command: string\n distribution:\n distributionType: Mpi\n processCountPerInstance: 1\n environmentId: string\n environmentVariables:\n string: string\n resources:\n instanceCount: 1\n instanceType: string\n properties:\n string:\n e6b6493e-7d5e-4db3-be1e-306ec641327e: null\n resourceGroupName: test-rg\n workspaceName: my-aml-workspace\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn existing resource can be imported using its type token, name, and identifier, e.g.\n\n```sh\n$ pulumi import azure-native:machinelearningservices:Job string /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/jobs/{id} \n```\n",
"properties": {
"jobBaseProperties": {
"oneOf": [
@@ -574399,7 +574436,7 @@
]
},
"azure-native:machinelearningservices:LabelingJob": {
- "description": "Azure Resource Manager resource envelope.\nAzure REST API version: 2023-04-01-preview. Prior API version in Azure Native 1.x: 2020-09-01-preview.\n\nOther available API versions: 2020-09-01-preview, 2021-03-01-preview, 2023-06-01-preview, 2023-08-01-preview.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### CreateOrUpdate Labeling Job.\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var labelingJob = new AzureNative.MachineLearningServices.LabelingJob(\"labelingJob\", new()\n {\n Id = \"testLabelingJob\",\n LabelingJobProperties = new AzureNative.MachineLearningServices.Inputs.LabelingJobArgs\n {\n Description = \"string\",\n JobInstructions = new AzureNative.MachineLearningServices.Inputs.LabelingJobInstructionsArgs\n {\n Uri = \"link/to/instructions\",\n },\n JobType = \"Labeling\",\n LabelCategories = \n {\n { \"myCategory1\", new AzureNative.MachineLearningServices.Inputs.LabelCategoryArgs\n {\n Classes = \n {\n { \"myLabelClass1\", new AzureNative.MachineLearningServices.Inputs.LabelClassArgs\n {\n DisplayName = \"myLabelClass1\",\n Subclasses = null,\n } },\n { \"myLabelClass2\", new AzureNative.MachineLearningServices.Inputs.LabelClassArgs\n {\n DisplayName = \"myLabelClass2\",\n Subclasses = null,\n } },\n },\n DisplayName = \"myCategory1Title\",\n MultiSelect = \"Disabled\",\n } },\n { \"myCategory2\", new AzureNative.MachineLearningServices.Inputs.LabelCategoryArgs\n {\n Classes = \n {\n { \"myLabelClass1\", new AzureNative.MachineLearningServices.Inputs.LabelClassArgs\n {\n DisplayName = \"myLabelClass1\",\n Subclasses = null,\n } },\n { \"myLabelClass2\", new AzureNative.MachineLearningServices.Inputs.LabelClassArgs\n {\n DisplayName = \"myLabelClass2\",\n Subclasses = null,\n } },\n },\n DisplayName = \"myCategory2Title\",\n MultiSelect = \"Disabled\",\n } },\n },\n LabelingJobMediaProperties = new AzureNative.MachineLearningServices.Inputs.LabelingJobImagePropertiesArgs\n {\n MediaType = \"Image\",\n },\n MlAssistConfiguration = new AzureNative.MachineLearningServices.Inputs.MLAssistConfigurationEnabledArgs\n {\n InferencingComputeBinding = \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/myscoringcompute\",\n MlAssist = \"Enabled\",\n TrainingComputeBinding = \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/mytrainingompute\",\n },\n Properties = \n {\n { \"additionalProp1\", \"string\" },\n { \"additionalProp2\", \"string\" },\n { \"additionalProp3\", \"string\" },\n },\n Tags = \n {\n { \"additionalProp1\", \"string\" },\n { \"additionalProp2\", \"string\" },\n { \"additionalProp3\", \"string\" },\n },\n },\n ResourceGroupName = \"workspace-1234\",\n WorkspaceName = \"testworkspace\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/machinelearningservices/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := machinelearningservices.NewLabelingJob(ctx, \"labelingJob\", \u0026machinelearningservices.LabelingJobArgs{\nId: pulumi.String(\"testLabelingJob\"),\nLabelingJobProperties: interface{}{\nDescription: pulumi.String(\"string\"),\nJobInstructions: \u0026machinelearningservices.LabelingJobInstructionsArgs{\nUri: pulumi.String(\"link/to/instructions\"),\n},\nJobType: pulumi.String(\"Labeling\"),\nLabelCategories: machinelearningservices.LabelCategoryMap{\n\"myCategory1\": interface{}{\nClasses: interface{}{\nMyLabelClass1: interface{}{\nDisplayName: pulumi.String(\"myLabelClass1\"),\nSubclasses: nil,\n},\nMyLabelClass2: \u0026machinelearningservices.LabelClassArgs{\nDisplayName: pulumi.String(\"myLabelClass2\"),\nSubclasses: nil,\n},\n},\nDisplayName: pulumi.String(\"myCategory1Title\"),\nMultiSelect: pulumi.String(\"Disabled\"),\n},\n\"myCategory2\": \u0026machinelearningservices.LabelCategoryArgs{\nClasses: interface{}{\nMyLabelClass1: \u0026machinelearningservices.LabelClassArgs{\nDisplayName: pulumi.String(\"myLabelClass1\"),\nSubclasses: nil,\n},\nMyLabelClass2: interface{}{\nDisplayName: pulumi.String(\"myLabelClass2\"),\nSubclasses: nil,\n},\n},\nDisplayName: pulumi.String(\"myCategory2Title\"),\nMultiSelect: pulumi.String(\"Disabled\"),\n},\n},\nLabelingJobMediaProperties: machinelearningservices.LabelingJobImageProperties{\nMediaType: \"Image\",\n},\nMlAssistConfiguration: machinelearningservices.MLAssistConfigurationEnabled{\nInferencingComputeBinding: \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/myscoringcompute\",\nMlAssist: \"Enabled\",\nTrainingComputeBinding: \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/mytrainingompute\",\n},\nProperties: pulumi.StringMap{\n\"additionalProp1\": pulumi.String(\"string\"),\n\"additionalProp2\": pulumi.String(\"string\"),\n\"additionalProp3\": pulumi.String(\"string\"),\n},\nTags: pulumi.StringMap{\n\"additionalProp1\": pulumi.String(\"string\"),\n\"additionalProp2\": pulumi.String(\"string\"),\n\"additionalProp3\": pulumi.String(\"string\"),\n},\n},\nResourceGroupName: pulumi.String(\"workspace-1234\"),\nWorkspaceName: pulumi.String(\"testworkspace\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.machinelearningservices.LabelingJob;\nimport com.pulumi.azurenative.machinelearningservices.LabelingJobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var labelingJob = new LabelingJob(\"labelingJob\", LabelingJobArgs.builder() \n .id(\"testLabelingJob\")\n .labelingJobProperties(Map.ofEntries(\n Map.entry(\"description\", \"string\"),\n Map.entry(\"jobInstructions\", Map.of(\"uri\", \"link/to/instructions\")),\n Map.entry(\"jobType\", \"Labeling\"),\n Map.entry(\"labelCategories\", Map.ofEntries(\n Map.entry(\"myCategory1\", Map.ofEntries(\n Map.entry(\"classes\", Map.ofEntries(\n Map.entry(\"myLabelClass1\", Map.ofEntries(\n Map.entry(\"displayName\", \"myLabelClass1\"),\n Map.entry(\"subclasses\", )\n )),\n Map.entry(\"myLabelClass2\", Map.ofEntries(\n Map.entry(\"displayName\", \"myLabelClass2\"),\n Map.entry(\"subclasses\", )\n ))\n )),\n Map.entry(\"displayName\", \"myCategory1Title\"),\n Map.entry(\"multiSelect\", \"Disabled\")\n )),\n Map.entry(\"myCategory2\", Map.ofEntries(\n Map.entry(\"classes\", Map.ofEntries(\n Map.entry(\"myLabelClass1\", Map.ofEntries(\n Map.entry(\"displayName\", \"myLabelClass1\"),\n Map.entry(\"subclasses\", )\n )),\n Map.entry(\"myLabelClass2\", Map.ofEntries(\n Map.entry(\"displayName\", \"myLabelClass2\"),\n Map.entry(\"subclasses\", )\n ))\n )),\n Map.entry(\"displayName\", \"myCategory2Title\"),\n Map.entry(\"multiSelect\", \"Disabled\")\n ))\n )),\n Map.entry(\"labelingJobMediaProperties\", Map.of(\"mediaType\", \"Image\")),\n Map.entry(\"mlAssistConfiguration\", Map.ofEntries(\n Map.entry(\"inferencingComputeBinding\", \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/myscoringcompute\"),\n Map.entry(\"mlAssist\", \"Enabled\"),\n Map.entry(\"trainingComputeBinding\", \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/mytrainingompute\")\n )),\n Map.entry(\"properties\", Map.ofEntries(\n Map.entry(\"additionalProp1\", \"string\"),\n Map.entry(\"additionalProp2\", \"string\"),\n Map.entry(\"additionalProp3\", \"string\")\n )),\n Map.entry(\"tags\", Map.ofEntries(\n Map.entry(\"additionalProp1\", \"string\"),\n Map.entry(\"additionalProp2\", \"string\"),\n Map.entry(\"additionalProp3\", \"string\")\n ))\n ))\n .resourceGroupName(\"workspace-1234\")\n .workspaceName(\"testworkspace\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst labelingJob = new azure_native.machinelearningservices.LabelingJob(\"labelingJob\", {\n id: \"testLabelingJob\",\n labelingJobProperties: {\n description: \"string\",\n jobInstructions: {\n uri: \"link/to/instructions\",\n },\n jobType: \"Labeling\",\n labelCategories: {\n myCategory1: {\n classes: {\n myLabelClass1: {\n displayName: \"myLabelClass1\",\n subclasses: {},\n },\n myLabelClass2: {\n displayName: \"myLabelClass2\",\n subclasses: {},\n },\n },\n displayName: \"myCategory1Title\",\n multiSelect: \"Disabled\",\n },\n myCategory2: {\n classes: {\n myLabelClass1: {\n displayName: \"myLabelClass1\",\n subclasses: {},\n },\n myLabelClass2: {\n displayName: \"myLabelClass2\",\n subclasses: {},\n },\n },\n displayName: \"myCategory2Title\",\n multiSelect: \"Disabled\",\n },\n },\n labelingJobMediaProperties: {\n mediaType: \"Image\",\n },\n mlAssistConfiguration: {\n inferencingComputeBinding: \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/myscoringcompute\",\n mlAssist: \"Enabled\",\n trainingComputeBinding: \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/mytrainingompute\",\n },\n properties: {\n additionalProp1: \"string\",\n additionalProp2: \"string\",\n additionalProp3: \"string\",\n },\n tags: {\n additionalProp1: \"string\",\n additionalProp2: \"string\",\n additionalProp3: \"string\",\n },\n },\n resourceGroupName: \"workspace-1234\",\n workspaceName: \"testworkspace\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nlabeling_job = azure_native.machinelearningservices.LabelingJob(\"labelingJob\",\n id=\"testLabelingJob\",\n labeling_job_properties=azure_native.machinelearningservices.LabelingJobResponseArgs(\n description=\"string\",\n job_instructions=azure_native.machinelearningservices.LabelingJobInstructionsArgs(\n uri=\"link/to/instructions\",\n ),\n job_type=\"Labeling\",\n label_categories={\n \"myCategory1\": azure_native.machinelearningservices.LabelCategoryArgs(\n classes={\n \"myLabelClass1\": azure_native.machinelearningservices.LabelClassArgs(\n display_name=\"myLabelClass1\",\n subclasses={},\n ),\n \"myLabelClass2\": azure_native.machinelearningservices.LabelClassArgs(\n display_name=\"myLabelClass2\",\n subclasses={},\n ),\n },\n display_name=\"myCategory1Title\",\n multi_select=\"Disabled\",\n ),\n \"myCategory2\": azure_native.machinelearningservices.LabelCategoryArgs(\n classes={\n \"myLabelClass1\": azure_native.machinelearningservices.LabelClassArgs(\n display_name=\"myLabelClass1\",\n subclasses={},\n ),\n \"myLabelClass2\": azure_native.machinelearningservices.LabelClassArgs(\n display_name=\"myLabelClass2\",\n subclasses={},\n ),\n },\n display_name=\"myCategory2Title\",\n multi_select=\"Disabled\",\n ),\n },\n labeling_job_media_properties=azure_native.machinelearningservices.LabelingJobImagePropertiesArgs(\n media_type=\"Image\",\n ),\n ml_assist_configuration=azure_native.machinelearningservices.MLAssistConfigurationEnabledArgs(\n inferencing_compute_binding=\"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/myscoringcompute\",\n ml_assist=\"Enabled\",\n training_compute_binding=\"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/mytrainingompute\",\n ),\n properties={\n \"additionalProp1\": \"string\",\n \"additionalProp2\": \"string\",\n \"additionalProp3\": \"string\",\n },\n tags={\n \"additionalProp1\": \"string\",\n \"additionalProp2\": \"string\",\n \"additionalProp3\": \"string\",\n },\n ),\n resource_group_name=\"workspace-1234\",\n workspace_name=\"testworkspace\")\n\n```\n\n```yaml\nresources:\n labelingJob:\n type: azure-native:machinelearningservices:LabelingJob\n properties:\n id: testLabelingJob\n labelingJobProperties:\n description: string\n jobInstructions:\n uri: link/to/instructions\n jobType: Labeling\n labelCategories:\n myCategory1:\n classes:\n myLabelClass1:\n displayName: myLabelClass1\n subclasses: {}\n myLabelClass2:\n displayName: myLabelClass2\n subclasses: {}\n displayName: myCategory1Title\n multiSelect: Disabled\n myCategory2:\n classes:\n myLabelClass1:\n displayName: myLabelClass1\n subclasses: {}\n myLabelClass2:\n displayName: myLabelClass2\n subclasses: {}\n displayName: myCategory2Title\n multiSelect: Disabled\n labelingJobMediaProperties:\n mediaType: Image\n mlAssistConfiguration:\n inferencingComputeBinding: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/myscoringcompute\n mlAssist: Enabled\n trainingComputeBinding: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/mytrainingompute\n properties:\n additionalProp1: string\n additionalProp2: string\n additionalProp3: string\n tags:\n additionalProp1: string\n additionalProp2: string\n additionalProp3: string\n resourceGroupName: workspace-1234\n workspaceName: testworkspace\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn existing resource can be imported using its type token, name, and identifier, e.g.\n\n```sh\n$ pulumi import azure-native:machinelearningservices:LabelingJob testLabelingJob /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/labelingJobs/{id} \n```\n",
+ "description": "Azure Resource Manager resource envelope.\nAzure REST API version: 2023-04-01-preview. Prior API version in Azure Native 1.x: 2020-09-01-preview.\n\nOther available API versions: 2020-09-01-preview, 2021-03-01-preview, 2023-06-01-preview, 2023-08-01-preview.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### CreateOrUpdate Labeling Job.\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var labelingJob = new AzureNative.MachineLearningServices.LabelingJob(\"labelingJob\", new()\n {\n Id = \"testLabelingJob\",\n LabelingJobProperties = new AzureNative.MachineLearningServices.Inputs.LabelingJobArgs\n {\n Description = \"string\",\n JobInstructions = new AzureNative.MachineLearningServices.Inputs.LabelingJobInstructionsArgs\n {\n Uri = \"link/to/instructions\",\n },\n JobType = \"Labeling\",\n LabelCategories = \n {\n { \"myCategory1\", new AzureNative.MachineLearningServices.Inputs.LabelCategoryArgs\n {\n Classes = \n {\n { \"myLabelClass1\", new AzureNative.MachineLearningServices.Inputs.LabelClassArgs\n {\n DisplayName = \"myLabelClass1\",\n Subclasses = null,\n } },\n { \"myLabelClass2\", new AzureNative.MachineLearningServices.Inputs.LabelClassArgs\n {\n DisplayName = \"myLabelClass2\",\n Subclasses = null,\n } },\n },\n DisplayName = \"myCategory1Title\",\n MultiSelect = \"Disabled\",\n } },\n { \"myCategory2\", new AzureNative.MachineLearningServices.Inputs.LabelCategoryArgs\n {\n Classes = \n {\n { \"myLabelClass1\", \n {\n { \"displayName\", \"myLabelClass1\" },\n { \"subclasses\", null },\n } },\n { \"myLabelClass2\", new AzureNative.MachineLearningServices.Inputs.LabelClassArgs\n {\n DisplayName = \"myLabelClass2\",\n Subclasses = null,\n } },\n },\n DisplayName = \"myCategory2Title\",\n MultiSelect = \"Disabled\",\n } },\n },\n LabelingJobMediaProperties = new AzureNative.MachineLearningServices.Inputs.LabelingJobImagePropertiesArgs\n {\n MediaType = \"Image\",\n },\n MlAssistConfiguration = new AzureNative.MachineLearningServices.Inputs.MLAssistConfigurationEnabledArgs\n {\n InferencingComputeBinding = \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/myscoringcompute\",\n MlAssist = \"Enabled\",\n TrainingComputeBinding = \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/mytrainingompute\",\n },\n Properties = \n {\n { \"additionalProp1\", \"string\" },\n { \"additionalProp2\", \"string\" },\n { \"additionalProp3\", \"string\" },\n },\n Tags = \n {\n { \"additionalProp1\", \"string\" },\n { \"additionalProp2\", \"string\" },\n { \"additionalProp3\", \"string\" },\n },\n },\n ResourceGroupName = \"workspace-1234\",\n WorkspaceName = \"testworkspace\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/machinelearningservices/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := machinelearningservices.NewLabelingJob(ctx, \"labelingJob\", \u0026machinelearningservices.LabelingJobArgs{\nId: pulumi.String(\"testLabelingJob\"),\nLabelingJobProperties: interface{}{\nDescription: pulumi.String(\"string\"),\nJobInstructions: \u0026machinelearningservices.LabelingJobInstructionsArgs{\nUri: pulumi.String(\"link/to/instructions\"),\n},\nJobType: pulumi.String(\"Labeling\"),\nLabelCategories: machinelearningservices.LabelCategoryMap{\n\"myCategory1\": \u0026machinelearningservices.LabelCategoryArgs{\nClasses: interface{}{\nMyLabelClass1: interface{}{\nDisplayName: pulumi.String(\"myLabelClass1\"),\nSubclasses: nil,\n},\nMyLabelClass2: \u0026machinelearningservices.LabelClassArgs{\nDisplayName: pulumi.String(\"myLabelClass2\"),\nSubclasses: nil,\n},\n},\nDisplayName: pulumi.String(\"myCategory1Title\"),\nMultiSelect: pulumi.String(\"Disabled\"),\n},\n\"myCategory2\": interface{}{\nClasses: interface{}{\nMyLabelClass1: interface{}{\nDisplayName: pulumi.String(\"myLabelClass1\"),\nSubclasses: nil,\n},\nMyLabelClass2: interface{}{\nDisplayName: pulumi.String(\"myLabelClass2\"),\nSubclasses: nil,\n},\n},\nDisplayName: pulumi.String(\"myCategory2Title\"),\nMultiSelect: pulumi.String(\"Disabled\"),\n},\n},\nLabelingJobMediaProperties: machinelearningservices.LabelingJobImageProperties{\nMediaType: \"Image\",\n},\nMlAssistConfiguration: machinelearningservices.MLAssistConfigurationEnabled{\nInferencingComputeBinding: \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/myscoringcompute\",\nMlAssist: \"Enabled\",\nTrainingComputeBinding: \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/mytrainingompute\",\n},\nProperties: pulumi.StringMap{\n\"additionalProp1\": pulumi.String(\"string\"),\n\"additionalProp2\": pulumi.String(\"string\"),\n\"additionalProp3\": pulumi.String(\"string\"),\n},\nTags: pulumi.StringMap{\n\"additionalProp1\": pulumi.String(\"string\"),\n\"additionalProp2\": pulumi.String(\"string\"),\n\"additionalProp3\": pulumi.String(\"string\"),\n},\n},\nResourceGroupName: pulumi.String(\"workspace-1234\"),\nWorkspaceName: pulumi.String(\"testworkspace\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.machinelearningservices.LabelingJob;\nimport com.pulumi.azurenative.machinelearningservices.LabelingJobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var labelingJob = new LabelingJob(\"labelingJob\", LabelingJobArgs.builder() \n .id(\"testLabelingJob\")\n .labelingJobProperties(Map.ofEntries(\n Map.entry(\"description\", \"string\"),\n Map.entry(\"jobInstructions\", Map.of(\"uri\", \"link/to/instructions\")),\n Map.entry(\"jobType\", \"Labeling\"),\n Map.entry(\"labelCategories\", Map.ofEntries(\n Map.entry(\"myCategory1\", Map.ofEntries(\n Map.entry(\"classes\", Map.ofEntries(\n Map.entry(\"myLabelClass1\", Map.ofEntries(\n Map.entry(\"displayName\", \"myLabelClass1\"),\n Map.entry(\"subclasses\", )\n )),\n Map.entry(\"myLabelClass2\", Map.ofEntries(\n Map.entry(\"displayName\", \"myLabelClass2\"),\n Map.entry(\"subclasses\", )\n ))\n )),\n Map.entry(\"displayName\", \"myCategory1Title\"),\n Map.entry(\"multiSelect\", \"Disabled\")\n )),\n Map.entry(\"myCategory2\", Map.ofEntries(\n Map.entry(\"classes\", Map.ofEntries(\n Map.entry(\"myLabelClass1\", Map.ofEntries(\n Map.entry(\"displayName\", \"myLabelClass1\"),\n Map.entry(\"subclasses\", )\n )),\n Map.entry(\"myLabelClass2\", Map.ofEntries(\n Map.entry(\"displayName\", \"myLabelClass2\"),\n Map.entry(\"subclasses\", )\n ))\n )),\n Map.entry(\"displayName\", \"myCategory2Title\"),\n Map.entry(\"multiSelect\", \"Disabled\")\n ))\n )),\n Map.entry(\"labelingJobMediaProperties\", Map.of(\"mediaType\", \"Image\")),\n Map.entry(\"mlAssistConfiguration\", Map.ofEntries(\n Map.entry(\"inferencingComputeBinding\", \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/myscoringcompute\"),\n Map.entry(\"mlAssist\", \"Enabled\"),\n Map.entry(\"trainingComputeBinding\", \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/mytrainingompute\")\n )),\n Map.entry(\"properties\", Map.ofEntries(\n Map.entry(\"additionalProp1\", \"string\"),\n Map.entry(\"additionalProp2\", \"string\"),\n Map.entry(\"additionalProp3\", \"string\")\n )),\n Map.entry(\"tags\", Map.ofEntries(\n Map.entry(\"additionalProp1\", \"string\"),\n Map.entry(\"additionalProp2\", \"string\"),\n Map.entry(\"additionalProp3\", \"string\")\n ))\n ))\n .resourceGroupName(\"workspace-1234\")\n .workspaceName(\"testworkspace\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst labelingJob = new azure_native.machinelearningservices.LabelingJob(\"labelingJob\", {\n id: \"testLabelingJob\",\n labelingJobProperties: {\n description: \"string\",\n jobInstructions: {\n uri: \"link/to/instructions\",\n },\n jobType: \"Labeling\",\n labelCategories: {\n myCategory1: {\n classes: {\n myLabelClass1: {\n displayName: \"myLabelClass1\",\n subclasses: {},\n },\n myLabelClass2: {\n displayName: \"myLabelClass2\",\n subclasses: {},\n },\n },\n displayName: \"myCategory1Title\",\n multiSelect: \"Disabled\",\n },\n myCategory2: {\n classes: {\n myLabelClass1: {\n displayName: \"myLabelClass1\",\n subclasses: {},\n },\n myLabelClass2: {\n displayName: \"myLabelClass2\",\n subclasses: {},\n },\n },\n displayName: \"myCategory2Title\",\n multiSelect: \"Disabled\",\n },\n },\n labelingJobMediaProperties: {\n mediaType: \"Image\",\n },\n mlAssistConfiguration: {\n inferencingComputeBinding: \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/myscoringcompute\",\n mlAssist: \"Enabled\",\n trainingComputeBinding: \"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/mytrainingompute\",\n },\n properties: {\n additionalProp1: \"string\",\n additionalProp2: \"string\",\n additionalProp3: \"string\",\n },\n tags: {\n additionalProp1: \"string\",\n additionalProp2: \"string\",\n additionalProp3: \"string\",\n },\n },\n resourceGroupName: \"workspace-1234\",\n workspaceName: \"testworkspace\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nlabeling_job = azure_native.machinelearningservices.LabelingJob(\"labelingJob\",\n id=\"testLabelingJob\",\n labeling_job_properties=azure_native.machinelearningservices.LabelingJobResponseArgs(\n description=\"string\",\n job_instructions=azure_native.machinelearningservices.LabelingJobInstructionsArgs(\n uri=\"link/to/instructions\",\n ),\n job_type=\"Labeling\",\n label_categories={\n \"myCategory1\": azure_native.machinelearningservices.LabelCategoryArgs(\n classes={\n \"myLabelClass1\": azure_native.machinelearningservices.LabelClassArgs(\n display_name=\"myLabelClass1\",\n subclasses={},\n ),\n \"myLabelClass2\": azure_native.machinelearningservices.LabelClassArgs(\n display_name=\"myLabelClass2\",\n subclasses={},\n ),\n },\n display_name=\"myCategory1Title\",\n multi_select=\"Disabled\",\n ),\n \"myCategory2\": azure_native.machinelearningservices.LabelCategoryArgs(\n classes={\n \"myLabelClass1\": {\n \"displayName\": \"myLabelClass1\",\n \"subclasses\": {},\n },\n \"myLabelClass2\": azure_native.machinelearningservices.LabelClassArgs(\n display_name=\"myLabelClass2\",\n subclasses={},\n ),\n },\n display_name=\"myCategory2Title\",\n multi_select=\"Disabled\",\n ),\n },\n labeling_job_media_properties=azure_native.machinelearningservices.LabelingJobImagePropertiesArgs(\n media_type=\"Image\",\n ),\n ml_assist_configuration=azure_native.machinelearningservices.MLAssistConfigurationEnabledArgs(\n inferencing_compute_binding=\"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/myscoringcompute\",\n ml_assist=\"Enabled\",\n training_compute_binding=\"/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/mytrainingompute\",\n ),\n properties={\n \"additionalProp1\": \"string\",\n \"additionalProp2\": \"string\",\n \"additionalProp3\": \"string\",\n },\n tags={\n \"additionalProp1\": \"string\",\n \"additionalProp2\": \"string\",\n \"additionalProp3\": \"string\",\n },\n ),\n resource_group_name=\"workspace-1234\",\n workspace_name=\"testworkspace\")\n\n```\n\n```yaml\nresources:\n labelingJob:\n type: azure-native:machinelearningservices:LabelingJob\n properties:\n id: testLabelingJob\n labelingJobProperties:\n description: string\n jobInstructions:\n uri: link/to/instructions\n jobType: Labeling\n labelCategories:\n myCategory1:\n classes:\n myLabelClass1:\n displayName: myLabelClass1\n subclasses: {}\n myLabelClass2:\n displayName: myLabelClass2\n subclasses: {}\n displayName: myCategory1Title\n multiSelect: Disabled\n myCategory2:\n classes:\n myLabelClass1:\n displayName: myLabelClass1\n subclasses: {}\n myLabelClass2:\n displayName: myLabelClass2\n subclasses: {}\n displayName: myCategory2Title\n multiSelect: Disabled\n labelingJobMediaProperties:\n mediaType: Image\n mlAssistConfiguration:\n inferencingComputeBinding: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/myscoringcompute\n mlAssist: Enabled\n trainingComputeBinding: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/computes/mytrainingompute\n properties:\n additionalProp1: string\n additionalProp2: string\n additionalProp3: string\n tags:\n additionalProp1: string\n additionalProp2: string\n additionalProp3: string\n resourceGroupName: workspace-1234\n workspaceName: testworkspace\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn existing resource can be imported using its type token, name, and identifier, e.g.\n\n```sh\n$ pulumi import azure-native:machinelearningservices:LabelingJob testLabelingJob /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/labelingJobs/{id} \n```\n",
"properties": {
"labelingJobProperties": {
"type": "object",
@@ -601986,7 +602023,7 @@
]
},
"azure-native:network:LoadBalancer": {
- "description": "LoadBalancer resource.\nAzure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01.\n\nOther available API versions: 2015-05-01-preview, 2018-06-01, 2019-06-01, 2019-08-01, 2023-04-01, 2023-05-01, 2023-06-01, 2023-09-01.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Create load balancer\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb\",\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Name = \"fe-lb\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n },\n },\n InboundNatPools = new[] {},\n InboundNatRules = new[]\n {\n new AzureNative.Network.Inputs.InboundNatRuleArgs\n {\n BackendPort = 3389,\n EnableFloatingIP = true,\n EnableTcpReset = false,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 3389,\n IdleTimeoutInMinutes = 15,\n Name = \"in-nat-rule\",\n Protocol = \"Tcp\",\n },\n },\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n BackendPort = 80,\n EnableFloatingIP = true,\n EnableTcpReset = false,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 80,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"Tcp\",\n },\n },\n Location = \"eastus\",\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: network.InboundNatPoolArray{},\n\t\t\tInboundNatRules: []network.InboundNatRuleTypeArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendPort: pulumi.Int(3389),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tEnableTcpReset: pulumi.Bool(false),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(3389),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"in-nat-rule\"),\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(80),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tEnableTcpReset: pulumi.Bool(false),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(80),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools(Map.of(\"name\", \"be-lb\"))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"))\n ))\n .inboundNatPools()\n .inboundNatRules(Map.ofEntries(\n Map.entry(\"backendPort\", 3389),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"enableTcpReset\", false),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 3389),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"name\", \"in-nat-rule\"),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"backendPort\", 80),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"enableTcpReset\", false),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 80),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .location(\"eastus\")\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [{\n name: \"be-lb\",\n }],\n frontendIPConfigurations: [{\n name: \"fe-lb\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n }],\n inboundNatPools: [],\n inboundNatRules: [{\n backendPort: 3389,\n enableFloatingIP: true,\n enableTcpReset: false,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 3389,\n idleTimeoutInMinutes: 15,\n name: \"in-nat-rule\",\n protocol: \"Tcp\",\n }],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPool: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n backendPort: 80,\n enableFloatingIP: true,\n enableTcpReset: false,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 80,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"Tcp\",\n }],\n location: \"eastus\",\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[azure_native.network.BackendAddressPoolArgs(\n name=\"be-lb\",\n )],\n frontend_ip_configurations=[{\n \"name\": \"fe-lb\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n ),\n }],\n inbound_nat_pools=[],\n inbound_nat_rules=[{\n \"backendPort\": 3389,\n \"enableFloatingIP\": True,\n \"enableTcpReset\": False,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 3389,\n \"idleTimeoutInMinutes\": 15,\n \"name\": \"in-nat-rule\",\n \"protocol\": \"Tcp\",\n }],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n ),\n \"backendPort\": 80,\n \"enableFloatingIP\": True,\n \"enableTcpReset\": False,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 80,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"Tcp\",\n }],\n location=\"eastus\",\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\")\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - name: be-lb\n frontendIPConfigurations:\n - name: fe-lb\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\n inboundNatPools: []\n inboundNatRules:\n - backendPort: 3389\n enableFloatingIP: true\n enableTcpReset: false\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 3389\n idleTimeoutInMinutes: 15\n name: in-nat-rule\n protocol: Tcp\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPool:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n backendPort: 80\n enableFloatingIP: true\n enableTcpReset: false\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 80\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: Tcp\n location: eastus\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with Frontend IP in Zone 1\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb\",\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Name = \"fe-lb\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n Zones = new[]\n {\n \"1\",\n },\n },\n },\n InboundNatPools = new[] {},\n InboundNatRules = new[]\n {\n new AzureNative.Network.Inputs.InboundNatRuleArgs\n {\n BackendPort = 3389,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 3389,\n IdleTimeoutInMinutes = 15,\n Name = \"in-nat-rule\",\n Protocol = \"Tcp\",\n },\n },\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n BackendPort = 80,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 80,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"Tcp\",\n },\n },\n Location = \"eastus\",\n OutboundRules = new[] {},\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Standard\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"),\n\t\t\t\t\t},\n\t\t\t\t\tZones: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: network.InboundNatPoolArray{},\n\t\t\tInboundNatRules: []network.InboundNatRuleTypeArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendPort: pulumi.Int(3389),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(3389),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"in-nat-rule\"),\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(80),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(80),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tOutboundRules: network.OutboundRuleArray{},\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Standard\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools(Map.of(\"name\", \"be-lb\"))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\")),\n Map.entry(\"zones\", \"1\")\n ))\n .inboundNatPools()\n .inboundNatRules(Map.ofEntries(\n Map.entry(\"backendPort\", 3389),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 3389),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"name\", \"in-nat-rule\"),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"backendPort\", 80),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 80),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .location(\"eastus\")\n .outboundRules()\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .sku(Map.of(\"name\", \"Standard\"))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [{\n name: \"be-lb\",\n }],\n frontendIPConfigurations: [{\n name: \"fe-lb\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n zones: [\"1\"],\n }],\n inboundNatPools: [],\n inboundNatRules: [{\n backendPort: 3389,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 3389,\n idleTimeoutInMinutes: 15,\n name: \"in-nat-rule\",\n protocol: \"Tcp\",\n }],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPool: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n backendPort: 80,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 80,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"Tcp\",\n }],\n location: \"eastus\",\n outboundRules: [],\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Standard\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[azure_native.network.BackendAddressPoolArgs(\n name=\"be-lb\",\n )],\n frontend_ip_configurations=[{\n \"name\": \"fe-lb\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n ),\n \"zones\": [\"1\"],\n }],\n inbound_nat_pools=[],\n inbound_nat_rules=[{\n \"backendPort\": 3389,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 3389,\n \"idleTimeoutInMinutes\": 15,\n \"name\": \"in-nat-rule\",\n \"protocol\": \"Tcp\",\n }],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n ),\n \"backendPort\": 80,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 80,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"Tcp\",\n }],\n location=\"eastus\",\n outbound_rules=[],\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Standard\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - name: be-lb\n frontendIPConfigurations:\n - name: fe-lb\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\n zones:\n - '1'\n inboundNatPools: []\n inboundNatRules:\n - backendPort: 3389\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 3389\n idleTimeoutInMinutes: 15\n name: in-nat-rule\n protocol: Tcp\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPool:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n backendPort: 80\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 80\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: Tcp\n location: eastus\n outboundRules: []\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n sku:\n name: Standard\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with Gateway Load Balancer Consumer configured\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb\",\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n GatewayLoadBalancer = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\",\n },\n Name = \"fe-lb\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n },\n },\n InboundNatPools = new[] {},\n InboundNatRules = new[]\n {\n new AzureNative.Network.Inputs.InboundNatRuleArgs\n {\n BackendPort = 3389,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 3389,\n IdleTimeoutInMinutes = 15,\n Name = \"in-nat-rule\",\n Protocol = \"Tcp\",\n },\n },\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n BackendPort = 80,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 80,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"Tcp\",\n },\n },\n Location = \"eastus\",\n OutboundRules = new[] {},\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Standard\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tGatewayLoadBalancer: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: network.InboundNatPoolArray{},\n\t\t\tInboundNatRules: []network.InboundNatRuleTypeArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendPort: pulumi.Int(3389),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(3389),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"in-nat-rule\"),\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(80),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(80),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tOutboundRules: network.OutboundRuleArray{},\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Standard\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools(Map.of(\"name\", \"be-lb\"))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"gatewayLoadBalancer\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\")),\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"))\n ))\n .inboundNatPools()\n .inboundNatRules(Map.ofEntries(\n Map.entry(\"backendPort\", 3389),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 3389),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"name\", \"in-nat-rule\"),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"backendPort\", 80),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 80),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .location(\"eastus\")\n .outboundRules()\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .sku(Map.of(\"name\", \"Standard\"))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [{\n name: \"be-lb\",\n }],\n frontendIPConfigurations: [{\n gatewayLoadBalancer: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\",\n },\n name: \"fe-lb\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n }],\n inboundNatPools: [],\n inboundNatRules: [{\n backendPort: 3389,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 3389,\n idleTimeoutInMinutes: 15,\n name: \"in-nat-rule\",\n protocol: \"Tcp\",\n }],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPool: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n backendPort: 80,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 80,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"Tcp\",\n }],\n location: \"eastus\",\n outboundRules: [],\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Standard\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[azure_native.network.BackendAddressPoolArgs(\n name=\"be-lb\",\n )],\n frontend_ip_configurations=[{\n \"gatewayLoadBalancer\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\",\n ),\n \"name\": \"fe-lb\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n ),\n }],\n inbound_nat_pools=[],\n inbound_nat_rules=[{\n \"backendPort\": 3389,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 3389,\n \"idleTimeoutInMinutes\": 15,\n \"name\": \"in-nat-rule\",\n \"protocol\": \"Tcp\",\n }],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n ),\n \"backendPort\": 80,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 80,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"Tcp\",\n }],\n location=\"eastus\",\n outbound_rules=[],\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Standard\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - name: be-lb\n frontendIPConfigurations:\n - gatewayLoadBalancer:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\n name: fe-lb\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\n inboundNatPools: []\n inboundNatRules:\n - backendPort: 3389\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 3389\n idleTimeoutInMinutes: 15\n name: in-nat-rule\n protocol: Tcp\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPool:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n backendPort: 80\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 80\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: Tcp\n location: eastus\n outboundRules: []\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n sku:\n name: Standard\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with Gateway Load Balancer Provider configured with one Backend Pool\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb\",\n TunnelInterfaces = new[]\n {\n new AzureNative.Network.Inputs.GatewayLoadBalancerTunnelInterfaceArgs\n {\n Identifier = 900,\n Port = 15000,\n Protocol = \"VXLAN\",\n Type = \"Internal\",\n },\n new AzureNative.Network.Inputs.GatewayLoadBalancerTunnelInterfaceArgs\n {\n Identifier = 901,\n Port = 15001,\n Protocol = \"VXLAN\",\n Type = \"Internal\",\n },\n },\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Name = \"fe-lb\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n },\n },\n InboundNatPools = new[] {},\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n },\n BackendPort = 0,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 0,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"All\",\n },\n },\n Location = \"eastus\",\n OutboundRules = new[] {},\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Premium\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb\"),\n\t\t\t\t\tTunnelInterfaces: network.GatewayLoadBalancerTunnelInterfaceArray{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tIdentifier: pulumi.Int(900),\n\t\t\t\t\t\t\tPort: pulumi.Int(15000),\n\t\t\t\t\t\t\tProtocol: pulumi.String(\"VXLAN\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"Internal\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tIdentifier: pulumi.Int(901),\n\t\t\t\t\t\t\tPort: pulumi.Int(15001),\n\t\t\t\t\t\t\tProtocol: pulumi.String(\"VXLAN\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"Internal\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: network.InboundNatPoolArray{},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPools: network.SubResourceArray{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(0),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(0),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"All\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tOutboundRules: network.OutboundRuleArray{},\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Premium\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools(Map.ofEntries(\n Map.entry(\"name\", \"be-lb\"),\n Map.entry(\"tunnelInterfaces\", \n Map.ofEntries(\n Map.entry(\"identifier\", 900),\n Map.entry(\"port\", 15000),\n Map.entry(\"protocol\", \"VXLAN\"),\n Map.entry(\"type\", \"Internal\")\n ),\n Map.ofEntries(\n Map.entry(\"identifier\", 901),\n Map.entry(\"port\", 15001),\n Map.entry(\"protocol\", \"VXLAN\"),\n Map.entry(\"type\", \"Internal\")\n ))\n ))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"))\n ))\n .inboundNatPools()\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPools\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"backendPort\", 0),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 0),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"All\")\n ))\n .location(\"eastus\")\n .outboundRules()\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .sku(Map.of(\"name\", \"Premium\"))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [{\n name: \"be-lb\",\n tunnelInterfaces: [\n {\n identifier: 900,\n port: 15000,\n protocol: \"VXLAN\",\n type: \"Internal\",\n },\n {\n identifier: 901,\n port: 15001,\n protocol: \"VXLAN\",\n type: \"Internal\",\n },\n ],\n }],\n frontendIPConfigurations: [{\n name: \"fe-lb\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n }],\n inboundNatPools: [],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPools: [{\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n }],\n backendPort: 0,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 0,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"All\",\n }],\n location: \"eastus\",\n outboundRules: [],\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Premium\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[{\n \"name\": \"be-lb\",\n \"tunnelInterfaces\": [\n azure_native.network.GatewayLoadBalancerTunnelInterfaceArgs(\n identifier=900,\n port=15000,\n protocol=\"VXLAN\",\n type=\"Internal\",\n ),\n azure_native.network.GatewayLoadBalancerTunnelInterfaceArgs(\n identifier=901,\n port=15001,\n protocol=\"VXLAN\",\n type=\"Internal\",\n ),\n ],\n }],\n frontend_ip_configurations=[{\n \"name\": \"fe-lb\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n ),\n }],\n inbound_nat_pools=[],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPools\": [azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n )],\n \"backendPort\": 0,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 0,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"All\",\n }],\n location=\"eastus\",\n outbound_rules=[],\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Premium\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - name: be-lb\n tunnelInterfaces:\n - identifier: 900\n port: 15000\n protocol: VXLAN\n type: Internal\n - identifier: 901\n port: 15001\n protocol: VXLAN\n type: Internal\n frontendIPConfigurations:\n - name: fe-lb\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\n inboundNatPools: []\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPools:\n - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n backendPort: 0\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 0\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: All\n location: eastus\n outboundRules: []\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n sku:\n name: Premium\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with Gateway Load Balancer Provider configured with two Backend Pool\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb1\",\n },\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb2\",\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Name = \"fe-lb\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n },\n },\n InboundNatPools = new[] {},\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPool = null,\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb1\",\n },\n new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb2\",\n },\n },\n BackendPort = 0,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 0,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"All\",\n },\n },\n Location = \"eastus\",\n OutboundRules = new[] {},\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Premium\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb1\"),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: network.InboundNatPoolArray{},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: nil,\n\t\t\t\t\tBackendAddressPools: network.SubResourceArray{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(0),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(0),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"All\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tOutboundRules: network.OutboundRuleArray{},\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Premium\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools( \n Map.of(\"name\", \"be-lb1\"),\n Map.of(\"name\", \"be-lb2\"))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"))\n ))\n .inboundNatPools()\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", ),\n Map.entry(\"backendAddressPools\", \n Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb1\"),\n Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb2\")),\n Map.entry(\"backendPort\", 0),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 0),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"All\")\n ))\n .location(\"eastus\")\n .outboundRules()\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .sku(Map.of(\"name\", \"Premium\"))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [\n {\n name: \"be-lb1\",\n },\n {\n name: \"be-lb2\",\n },\n ],\n frontendIPConfigurations: [{\n name: \"fe-lb\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n }],\n inboundNatPools: [],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPool: {},\n backendAddressPools: [\n {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb1\",\n },\n {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb2\",\n },\n ],\n backendPort: 0,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 0,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"All\",\n }],\n location: \"eastus\",\n outboundRules: [],\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Premium\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[\n azure_native.network.BackendAddressPoolArgs(\n name=\"be-lb1\",\n ),\n azure_native.network.BackendAddressPoolArgs(\n name=\"be-lb2\",\n ),\n ],\n frontend_ip_configurations=[{\n \"name\": \"fe-lb\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n ),\n }],\n inbound_nat_pools=[],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(),\n \"backendAddressPools\": [\n azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb1\",\n ),\n azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb2\",\n ),\n ],\n \"backendPort\": 0,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 0,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"All\",\n }],\n location=\"eastus\",\n outbound_rules=[],\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Premium\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - name: be-lb1\n - name: be-lb2\n frontendIPConfigurations:\n - name: fe-lb\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\n inboundNatPools: []\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPool: {}\n backendAddressPools:\n - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb1\n - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb2\n backendPort: 0\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 0\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: All\n location: eastus\n outboundRules: []\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n sku:\n name: Premium\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with Global Tier and one regional load balancer in its backend pool\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n LoadBalancerBackendAddresses = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancerBackendAddressArgs\n {\n LoadBalancerFrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb\",\n },\n Name = \"regional-lb1-address\",\n },\n },\n Name = \"be-lb\",\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Name = \"fe-lb\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n },\n },\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n BackendPort = 80,\n EnableFloatingIP = false,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 80,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"Tcp\",\n },\n },\n Location = \"eastus\",\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Standard\",\n Tier = \"Global\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tLoadBalancerBackendAddresses: network.LoadBalancerBackendAddressArray{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLoadBalancerFrontendIPConfiguration: {\n\t\t\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tName: pulumi.String(\"regional-lb1-address\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"be-lb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(80),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(false),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(80),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Standard\"),\n\t\t\t\tTier: pulumi.String(\"Global\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools(Map.ofEntries(\n Map.entry(\"loadBalancerBackendAddresses\", Map.ofEntries(\n Map.entry(\"loadBalancerFrontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb\")),\n Map.entry(\"name\", \"regional-lb1-address\")\n )),\n Map.entry(\"name\", \"be-lb\")\n ))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"))\n ))\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"backendPort\", 80),\n Map.entry(\"enableFloatingIP\", false),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 80),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .location(\"eastus\")\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .sku(Map.ofEntries(\n Map.entry(\"name\", \"Standard\"),\n Map.entry(\"tier\", \"Global\")\n ))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [{\n loadBalancerBackendAddresses: [{\n loadBalancerFrontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb\",\n },\n name: \"regional-lb1-address\",\n }],\n name: \"be-lb\",\n }],\n frontendIPConfigurations: [{\n name: \"fe-lb\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n }],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPool: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n backendPort: 80,\n enableFloatingIP: false,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 80,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"Tcp\",\n }],\n location: \"eastus\",\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Standard\",\n tier: \"Global\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[{\n \"loadBalancerBackendAddresses\": [{\n \"loadBalancerFrontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb\",\n ),\n \"name\": \"regional-lb1-address\",\n }],\n \"name\": \"be-lb\",\n }],\n frontend_ip_configurations=[{\n \"name\": \"fe-lb\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n ),\n }],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n ),\n \"backendPort\": 80,\n \"enableFloatingIP\": False,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 80,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"Tcp\",\n }],\n location=\"eastus\",\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Standard\",\n tier=\"Global\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - loadBalancerBackendAddresses:\n - loadBalancerFrontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb\n name: regional-lb1-address\n name: be-lb\n frontendIPConfigurations:\n - name: fe-lb\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPool:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n backendPort: 80\n enableFloatingIP: false\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 80\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: Tcp\n location: eastus\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n sku:\n name: Standard\n tier: Global\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with Standard SKU\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb\",\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Name = \"fe-lb\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n },\n },\n InboundNatPools = new[] {},\n InboundNatRules = new[]\n {\n new AzureNative.Network.Inputs.InboundNatRuleArgs\n {\n BackendPort = 3389,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 3389,\n IdleTimeoutInMinutes = 15,\n Name = \"in-nat-rule\",\n Protocol = \"Tcp\",\n },\n },\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n BackendPort = 80,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 80,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"Tcp\",\n },\n },\n Location = \"eastus\",\n OutboundRules = new[] {},\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Standard\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: network.InboundNatPoolArray{},\n\t\t\tInboundNatRules: []network.InboundNatRuleTypeArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendPort: pulumi.Int(3389),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(3389),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"in-nat-rule\"),\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(80),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(80),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tOutboundRules: network.OutboundRuleArray{},\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Standard\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools(Map.of(\"name\", \"be-lb\"))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"))\n ))\n .inboundNatPools()\n .inboundNatRules(Map.ofEntries(\n Map.entry(\"backendPort\", 3389),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 3389),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"name\", \"in-nat-rule\"),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"backendPort\", 80),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 80),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .location(\"eastus\")\n .outboundRules()\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .sku(Map.of(\"name\", \"Standard\"))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [{\n name: \"be-lb\",\n }],\n frontendIPConfigurations: [{\n name: \"fe-lb\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n }],\n inboundNatPools: [],\n inboundNatRules: [{\n backendPort: 3389,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 3389,\n idleTimeoutInMinutes: 15,\n name: \"in-nat-rule\",\n protocol: \"Tcp\",\n }],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPool: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n backendPort: 80,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 80,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"Tcp\",\n }],\n location: \"eastus\",\n outboundRules: [],\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Standard\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[azure_native.network.BackendAddressPoolArgs(\n name=\"be-lb\",\n )],\n frontend_ip_configurations=[{\n \"name\": \"fe-lb\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n ),\n }],\n inbound_nat_pools=[],\n inbound_nat_rules=[{\n \"backendPort\": 3389,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 3389,\n \"idleTimeoutInMinutes\": 15,\n \"name\": \"in-nat-rule\",\n \"protocol\": \"Tcp\",\n }],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n ),\n \"backendPort\": 80,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 80,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"Tcp\",\n }],\n location=\"eastus\",\n outbound_rules=[],\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Standard\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - name: be-lb\n frontendIPConfigurations:\n - name: fe-lb\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\n inboundNatPools: []\n inboundNatRules:\n - backendPort: 3389\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 3389\n idleTimeoutInMinutes: 15\n name: in-nat-rule\n protocol: Tcp\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPool:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n backendPort: 80\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 80\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: Tcp\n location: eastus\n outboundRules: []\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n sku:\n name: Standard\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with inbound nat pool\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[] {},\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\",\n Name = \"test\",\n PrivateIPAllocationMethod = \"Dynamic\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet\",\n },\n Zones = new() { },\n },\n },\n InboundNatPools = new[]\n {\n new AzureNative.Network.Inputs.InboundNatPoolArgs\n {\n BackendPort = 8888,\n EnableFloatingIP = true,\n EnableTcpReset = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\",\n },\n FrontendPortRangeEnd = 8085,\n FrontendPortRangeStart = 8080,\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test\",\n IdleTimeoutInMinutes = 10,\n Name = \"test\",\n Protocol = \"Tcp\",\n },\n },\n InboundNatRules = new[] {},\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[] {},\n Location = \"eastus\",\n OutboundRules = new[] {},\n Probes = new[] {},\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Standard\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: network.BackendAddressPoolArray{},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\"),\n\t\t\t\t\tName: pulumi.String(\"test\"),\n\t\t\t\t\tPrivateIPAllocationMethod: pulumi.String(\"Dynamic\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet\"),\n\t\t\t\t\t},\n\t\t\t\t\tZones: pulumi.StringArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: []network.InboundNatPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendPort: pulumi.Int(8888),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tEnableTcpReset: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPortRangeEnd: pulumi.Int(8085),\n\t\t\t\t\tFrontendPortRangeStart: pulumi.Int(8080),\n\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test\"),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(10),\n\t\t\t\t\tName: pulumi.String(\"test\"),\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatRules: network.InboundNatRuleTypeArray{},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: network.LoadBalancingRuleArray{},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tOutboundRules: network.OutboundRuleArray{},\n\t\t\tProbes: network.ProbeArray{},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Standard\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools()\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\"),\n Map.entry(\"name\", \"test\"),\n Map.entry(\"privateIPAllocationMethod\", \"Dynamic\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet\")),\n Map.entry(\"zones\", )\n ))\n .inboundNatPools(Map.ofEntries(\n Map.entry(\"backendPort\", 8888),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"enableTcpReset\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\")),\n Map.entry(\"frontendPortRangeEnd\", 8085),\n Map.entry(\"frontendPortRangeStart\", 8080),\n Map.entry(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test\"),\n Map.entry(\"idleTimeoutInMinutes\", 10),\n Map.entry(\"name\", \"test\"),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .inboundNatRules()\n .loadBalancerName(\"lb\")\n .loadBalancingRules()\n .location(\"eastus\")\n .outboundRules()\n .probes()\n .resourceGroupName(\"rg1\")\n .sku(Map.of(\"name\", \"Standard\"))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [],\n frontendIPConfigurations: [{\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\",\n name: \"test\",\n privateIPAllocationMethod: \"Dynamic\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet\",\n },\n zones: [],\n }],\n inboundNatPools: [{\n backendPort: 8888,\n enableFloatingIP: true,\n enableTcpReset: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\",\n },\n frontendPortRangeEnd: 8085,\n frontendPortRangeStart: 8080,\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test\",\n idleTimeoutInMinutes: 10,\n name: \"test\",\n protocol: \"Tcp\",\n }],\n inboundNatRules: [],\n loadBalancerName: \"lb\",\n loadBalancingRules: [],\n location: \"eastus\",\n outboundRules: [],\n probes: [],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Standard\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[],\n frontend_ip_configurations=[{\n \"id\": \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\",\n \"name\": \"test\",\n \"privateIPAllocationMethod\": \"Dynamic\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet\",\n ),\n \"zones\": [],\n }],\n inbound_nat_pools=[{\n \"backendPort\": 8888,\n \"enableFloatingIP\": True,\n \"enableTcpReset\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\",\n ),\n \"frontendPortRangeEnd\": 8085,\n \"frontendPortRangeStart\": 8080,\n \"id\": \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test\",\n \"idleTimeoutInMinutes\": 10,\n \"name\": \"test\",\n \"protocol\": \"Tcp\",\n }],\n inbound_nat_rules=[],\n load_balancer_name=\"lb\",\n load_balancing_rules=[],\n location=\"eastus\",\n outbound_rules=[],\n probes=[],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Standard\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools: []\n frontendIPConfigurations:\n - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\n name: test\n privateIPAllocationMethod: Dynamic\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet\n zones: []\n inboundNatPools:\n - backendPort: 8888\n enableFloatingIP: true\n enableTcpReset: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\n frontendPortRangeEnd: 8085\n frontendPortRangeStart: 8080\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test\n idleTimeoutInMinutes: 10\n name: test\n protocol: Tcp\n inboundNatRules: []\n loadBalancerName: lb\n loadBalancingRules: []\n location: eastus\n outboundRules: []\n probes: []\n resourceGroupName: rg1\n sku:\n name: Standard\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with outbound rules\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb\",\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Name = \"fe-lb\",\n PublicIPAddress = new AzureNative.Network.Inputs.PublicIPAddressArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip\",\n },\n },\n },\n InboundNatPools = new[] {},\n InboundNatRules = new[]\n {\n new AzureNative.Network.Inputs.InboundNatRuleArgs\n {\n BackendPort = 3389,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 3389,\n IdleTimeoutInMinutes = 15,\n Name = \"in-nat-rule\",\n Protocol = \"Tcp\",\n },\n },\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n BackendPort = 80,\n DisableOutboundSnat = true,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 80,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"Tcp\",\n },\n },\n Location = \"eastus\",\n OutboundRules = new[]\n {\n new AzureNative.Network.Inputs.OutboundRuleArgs\n {\n BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n },\n Name = \"rule1\",\n Protocol = \"All\",\n },\n },\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Standard\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tPublicIPAddress: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: network.InboundNatPoolArray{},\n\t\t\tInboundNatRules: []network.InboundNatRuleTypeArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendPort: pulumi.Int(3389),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(3389),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"in-nat-rule\"),\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(80),\n\t\t\t\t\tDisableOutboundSnat: pulumi.Bool(true),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(80),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tOutboundRules: []network.OutboundRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendIPConfigurations: network.SubResourceArray{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"rule1\"),\n\t\t\t\t\tProtocol: pulumi.String(\"All\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Standard\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools(Map.of(\"name\", \"be-lb\"))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"publicIPAddress\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip\"))\n ))\n .inboundNatPools()\n .inboundNatRules(Map.ofEntries(\n Map.entry(\"backendPort\", 3389),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 3389),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"name\", \"in-nat-rule\"),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"backendPort\", 80),\n Map.entry(\"disableOutboundSnat\", true),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 80),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .location(\"eastus\")\n .outboundRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"frontendIPConfigurations\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"name\", \"rule1\"),\n Map.entry(\"protocol\", \"All\")\n ))\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .sku(Map.of(\"name\", \"Standard\"))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [{\n name: \"be-lb\",\n }],\n frontendIPConfigurations: [{\n name: \"fe-lb\",\n publicIPAddress: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip\",\n },\n }],\n inboundNatPools: [],\n inboundNatRules: [{\n backendPort: 3389,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 3389,\n idleTimeoutInMinutes: 15,\n name: \"in-nat-rule\",\n protocol: \"Tcp\",\n }],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPool: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n backendPort: 80,\n disableOutboundSnat: true,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 80,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"Tcp\",\n }],\n location: \"eastus\",\n outboundRules: [{\n backendAddressPool: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n frontendIPConfigurations: [{\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n }],\n name: \"rule1\",\n protocol: \"All\",\n }],\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Standard\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[azure_native.network.BackendAddressPoolArgs(\n name=\"be-lb\",\n )],\n frontend_ip_configurations=[{\n \"name\": \"fe-lb\",\n \"publicIPAddress\": azure_native.network.PublicIPAddressArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip\",\n ),\n }],\n inbound_nat_pools=[],\n inbound_nat_rules=[{\n \"backendPort\": 3389,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 3389,\n \"idleTimeoutInMinutes\": 15,\n \"name\": \"in-nat-rule\",\n \"protocol\": \"Tcp\",\n }],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n ),\n \"backendPort\": 80,\n \"disableOutboundSnat\": True,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 80,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"Tcp\",\n }],\n location=\"eastus\",\n outbound_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n ),\n \"frontendIPConfigurations\": [azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n )],\n \"name\": \"rule1\",\n \"protocol\": \"All\",\n }],\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Standard\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - name: be-lb\n frontendIPConfigurations:\n - name: fe-lb\n publicIPAddress:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip\n inboundNatPools: []\n inboundNatRules:\n - backendPort: 3389\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 3389\n idleTimeoutInMinutes: 15\n name: in-nat-rule\n protocol: Tcp\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPool:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n backendPort: 80\n disableOutboundSnat: true\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 80\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: Tcp\n location: eastus\n outboundRules:\n - backendAddressPool:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n frontendIPConfigurations:\n - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n name: rule1\n protocol: All\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n sku:\n name: Standard\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn existing resource can be imported using its type token, name, and identifier, e.g.\n\n```sh\n$ pulumi import azure-native:network:LoadBalancer lb /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName} \n```\n",
+ "description": "LoadBalancer resource.\nAzure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01.\n\nOther available API versions: 2015-05-01-preview, 2018-06-01, 2019-06-01, 2019-08-01, 2023-04-01, 2023-05-01, 2023-06-01, 2023-09-01.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Create load balancer\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb\",\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Name = \"fe-lb\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n },\n },\n InboundNatPools = new[] {},\n InboundNatRules = new[]\n {\n new AzureNative.Network.Inputs.InboundNatRuleArgs\n {\n BackendPort = 3389,\n EnableFloatingIP = true,\n EnableTcpReset = false,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 3389,\n IdleTimeoutInMinutes = 15,\n Name = \"in-nat-rule\",\n Protocol = \"Tcp\",\n },\n },\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n BackendPort = 80,\n EnableFloatingIP = true,\n EnableTcpReset = false,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 80,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"Tcp\",\n },\n },\n Location = \"eastus\",\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: network.InboundNatPoolArray{},\n\t\t\tInboundNatRules: []network.InboundNatRuleTypeArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendPort: pulumi.Int(3389),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tEnableTcpReset: pulumi.Bool(false),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(3389),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"in-nat-rule\"),\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(80),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tEnableTcpReset: pulumi.Bool(false),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(80),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools(Map.of(\"name\", \"be-lb\"))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"))\n ))\n .inboundNatPools()\n .inboundNatRules(Map.ofEntries(\n Map.entry(\"backendPort\", 3389),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"enableTcpReset\", false),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 3389),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"name\", \"in-nat-rule\"),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"backendPort\", 80),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"enableTcpReset\", false),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 80),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .location(\"eastus\")\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [{\n name: \"be-lb\",\n }],\n frontendIPConfigurations: [{\n name: \"fe-lb\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n }],\n inboundNatPools: [],\n inboundNatRules: [{\n backendPort: 3389,\n enableFloatingIP: true,\n enableTcpReset: false,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 3389,\n idleTimeoutInMinutes: 15,\n name: \"in-nat-rule\",\n protocol: \"Tcp\",\n }],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPool: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n backendPort: 80,\n enableFloatingIP: true,\n enableTcpReset: false,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 80,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"Tcp\",\n }],\n location: \"eastus\",\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[azure_native.network.BackendAddressPoolArgs(\n name=\"be-lb\",\n )],\n frontend_ip_configurations=[{\n \"name\": \"fe-lb\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n ),\n }],\n inbound_nat_pools=[],\n inbound_nat_rules=[{\n \"backendPort\": 3389,\n \"enableFloatingIP\": True,\n \"enableTcpReset\": False,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 3389,\n \"idleTimeoutInMinutes\": 15,\n \"name\": \"in-nat-rule\",\n \"protocol\": \"Tcp\",\n }],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n ),\n \"backendPort\": 80,\n \"enableFloatingIP\": True,\n \"enableTcpReset\": False,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 80,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"Tcp\",\n }],\n location=\"eastus\",\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\")\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - name: be-lb\n frontendIPConfigurations:\n - name: fe-lb\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\n inboundNatPools: []\n inboundNatRules:\n - backendPort: 3389\n enableFloatingIP: true\n enableTcpReset: false\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 3389\n idleTimeoutInMinutes: 15\n name: in-nat-rule\n protocol: Tcp\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPool:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n backendPort: 80\n enableFloatingIP: true\n enableTcpReset: false\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 80\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: Tcp\n location: eastus\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with Frontend IP in Zone 1\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb\",\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Name = \"fe-lb\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n Zones = new[]\n {\n \"1\",\n },\n },\n },\n InboundNatPools = new[] {},\n InboundNatRules = new[]\n {\n new AzureNative.Network.Inputs.InboundNatRuleArgs\n {\n BackendPort = 3389,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 3389,\n IdleTimeoutInMinutes = 15,\n Name = \"in-nat-rule\",\n Protocol = \"Tcp\",\n },\n },\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n BackendPort = 80,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 80,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"Tcp\",\n },\n },\n Location = \"eastus\",\n OutboundRules = new[] {},\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Standard\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"),\n\t\t\t\t\t},\n\t\t\t\t\tZones: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: network.InboundNatPoolArray{},\n\t\t\tInboundNatRules: []network.InboundNatRuleTypeArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendPort: pulumi.Int(3389),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(3389),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"in-nat-rule\"),\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(80),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(80),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tOutboundRules: network.OutboundRuleArray{},\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Standard\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools(Map.of(\"name\", \"be-lb\"))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\")),\n Map.entry(\"zones\", \"1\")\n ))\n .inboundNatPools()\n .inboundNatRules(Map.ofEntries(\n Map.entry(\"backendPort\", 3389),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 3389),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"name\", \"in-nat-rule\"),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"backendPort\", 80),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 80),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .location(\"eastus\")\n .outboundRules()\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .sku(Map.of(\"name\", \"Standard\"))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [{\n name: \"be-lb\",\n }],\n frontendIPConfigurations: [{\n name: \"fe-lb\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n zones: [\"1\"],\n }],\n inboundNatPools: [],\n inboundNatRules: [{\n backendPort: 3389,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 3389,\n idleTimeoutInMinutes: 15,\n name: \"in-nat-rule\",\n protocol: \"Tcp\",\n }],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPool: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n backendPort: 80,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 80,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"Tcp\",\n }],\n location: \"eastus\",\n outboundRules: [],\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Standard\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[azure_native.network.BackendAddressPoolArgs(\n name=\"be-lb\",\n )],\n frontend_ip_configurations=[{\n \"name\": \"fe-lb\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n ),\n \"zones\": [\"1\"],\n }],\n inbound_nat_pools=[],\n inbound_nat_rules=[{\n \"backendPort\": 3389,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 3389,\n \"idleTimeoutInMinutes\": 15,\n \"name\": \"in-nat-rule\",\n \"protocol\": \"Tcp\",\n }],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n ),\n \"backendPort\": 80,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 80,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"Tcp\",\n }],\n location=\"eastus\",\n outbound_rules=[],\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Standard\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - name: be-lb\n frontendIPConfigurations:\n - name: fe-lb\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\n zones:\n - '1'\n inboundNatPools: []\n inboundNatRules:\n - backendPort: 3389\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 3389\n idleTimeoutInMinutes: 15\n name: in-nat-rule\n protocol: Tcp\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPool:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n backendPort: 80\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 80\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: Tcp\n location: eastus\n outboundRules: []\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n sku:\n name: Standard\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with Gateway Load Balancer Consumer configured\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb\",\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n GatewayLoadBalancer = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\",\n },\n Name = \"fe-lb\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n },\n },\n InboundNatPools = new[] {},\n InboundNatRules = new[]\n {\n new AzureNative.Network.Inputs.InboundNatRuleArgs\n {\n BackendPort = 3389,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 3389,\n IdleTimeoutInMinutes = 15,\n Name = \"in-nat-rule\",\n Protocol = \"Tcp\",\n },\n },\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n BackendPort = 80,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 80,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"Tcp\",\n },\n },\n Location = \"eastus\",\n OutboundRules = new[] {},\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Standard\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tGatewayLoadBalancer: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: network.InboundNatPoolArray{},\n\t\t\tInboundNatRules: []network.InboundNatRuleTypeArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendPort: pulumi.Int(3389),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(3389),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"in-nat-rule\"),\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(80),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(80),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tOutboundRules: network.OutboundRuleArray{},\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Standard\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools(Map.of(\"name\", \"be-lb\"))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"gatewayLoadBalancer\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\")),\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"))\n ))\n .inboundNatPools()\n .inboundNatRules(Map.ofEntries(\n Map.entry(\"backendPort\", 3389),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 3389),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"name\", \"in-nat-rule\"),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"backendPort\", 80),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 80),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .location(\"eastus\")\n .outboundRules()\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .sku(Map.of(\"name\", \"Standard\"))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [{\n name: \"be-lb\",\n }],\n frontendIPConfigurations: [{\n gatewayLoadBalancer: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\",\n },\n name: \"fe-lb\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n }],\n inboundNatPools: [],\n inboundNatRules: [{\n backendPort: 3389,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 3389,\n idleTimeoutInMinutes: 15,\n name: \"in-nat-rule\",\n protocol: \"Tcp\",\n }],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPool: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n backendPort: 80,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 80,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"Tcp\",\n }],\n location: \"eastus\",\n outboundRules: [],\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Standard\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[azure_native.network.BackendAddressPoolArgs(\n name=\"be-lb\",\n )],\n frontend_ip_configurations=[{\n \"gatewayLoadBalancer\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\",\n ),\n \"name\": \"fe-lb\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n ),\n }],\n inbound_nat_pools=[],\n inbound_nat_rules=[{\n \"backendPort\": 3389,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 3389,\n \"idleTimeoutInMinutes\": 15,\n \"name\": \"in-nat-rule\",\n \"protocol\": \"Tcp\",\n }],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n ),\n \"backendPort\": 80,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 80,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"Tcp\",\n }],\n location=\"eastus\",\n outbound_rules=[],\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Standard\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - name: be-lb\n frontendIPConfigurations:\n - gatewayLoadBalancer:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\n name: fe-lb\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\n inboundNatPools: []\n inboundNatRules:\n - backendPort: 3389\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 3389\n idleTimeoutInMinutes: 15\n name: in-nat-rule\n protocol: Tcp\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPool:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n backendPort: 80\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 80\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: Tcp\n location: eastus\n outboundRules: []\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n sku:\n name: Standard\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with Gateway Load Balancer Provider configured with one Backend Pool\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb\",\n TunnelInterfaces = new[]\n {\n new AzureNative.Network.Inputs.GatewayLoadBalancerTunnelInterfaceArgs\n {\n Identifier = 900,\n Port = 15000,\n Protocol = \"VXLAN\",\n Type = \"Internal\",\n },\n new AzureNative.Network.Inputs.GatewayLoadBalancerTunnelInterfaceArgs\n {\n Identifier = 901,\n Port = 15001,\n Protocol = \"VXLAN\",\n Type = \"Internal\",\n },\n },\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Name = \"fe-lb\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n },\n },\n InboundNatPools = new[] {},\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n },\n BackendPort = 0,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 0,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"All\",\n },\n },\n Location = \"eastus\",\n OutboundRules = new[] {},\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Premium\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb\"),\n\t\t\t\t\tTunnelInterfaces: network.GatewayLoadBalancerTunnelInterfaceArray{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tIdentifier: pulumi.Int(900),\n\t\t\t\t\t\t\tPort: pulumi.Int(15000),\n\t\t\t\t\t\t\tProtocol: pulumi.String(\"VXLAN\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"Internal\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tIdentifier: pulumi.Int(901),\n\t\t\t\t\t\t\tPort: pulumi.Int(15001),\n\t\t\t\t\t\t\tProtocol: pulumi.String(\"VXLAN\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"Internal\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: network.InboundNatPoolArray{},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPools: network.SubResourceArray{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(0),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(0),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"All\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tOutboundRules: network.OutboundRuleArray{},\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Premium\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools(Map.ofEntries(\n Map.entry(\"name\", \"be-lb\"),\n Map.entry(\"tunnelInterfaces\", \n Map.ofEntries(\n Map.entry(\"identifier\", 900),\n Map.entry(\"port\", 15000),\n Map.entry(\"protocol\", \"VXLAN\"),\n Map.entry(\"type\", \"Internal\")\n ),\n Map.ofEntries(\n Map.entry(\"identifier\", 901),\n Map.entry(\"port\", 15001),\n Map.entry(\"protocol\", \"VXLAN\"),\n Map.entry(\"type\", \"Internal\")\n ))\n ))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"))\n ))\n .inboundNatPools()\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPools\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"backendPort\", 0),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 0),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"All\")\n ))\n .location(\"eastus\")\n .outboundRules()\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .sku(Map.of(\"name\", \"Premium\"))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [{\n name: \"be-lb\",\n tunnelInterfaces: [\n {\n identifier: 900,\n port: 15000,\n protocol: \"VXLAN\",\n type: \"Internal\",\n },\n {\n identifier: 901,\n port: 15001,\n protocol: \"VXLAN\",\n type: \"Internal\",\n },\n ],\n }],\n frontendIPConfigurations: [{\n name: \"fe-lb\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n }],\n inboundNatPools: [],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPools: [{\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n }],\n backendPort: 0,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 0,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"All\",\n }],\n location: \"eastus\",\n outboundRules: [],\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Premium\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[{\n \"name\": \"be-lb\",\n \"tunnelInterfaces\": [\n azure_native.network.GatewayLoadBalancerTunnelInterfaceArgs(\n identifier=900,\n port=15000,\n protocol=\"VXLAN\",\n type=\"Internal\",\n ),\n azure_native.network.GatewayLoadBalancerTunnelInterfaceArgs(\n identifier=901,\n port=15001,\n protocol=\"VXLAN\",\n type=\"Internal\",\n ),\n ],\n }],\n frontend_ip_configurations=[{\n \"name\": \"fe-lb\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n ),\n }],\n inbound_nat_pools=[],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPools\": [azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n )],\n \"backendPort\": 0,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 0,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"All\",\n }],\n location=\"eastus\",\n outbound_rules=[],\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Premium\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - name: be-lb\n tunnelInterfaces:\n - identifier: 900\n port: 15000\n protocol: VXLAN\n type: Internal\n - identifier: 901\n port: 15001\n protocol: VXLAN\n type: Internal\n frontendIPConfigurations:\n - name: fe-lb\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\n inboundNatPools: []\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPools:\n - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n backendPort: 0\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 0\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: All\n location: eastus\n outboundRules: []\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n sku:\n name: Premium\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with Gateway Load Balancer Provider configured with two Backend Pool\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb1\",\n },\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb2\",\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Name = \"fe-lb\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n },\n },\n InboundNatPools = new[] {},\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPool = null,\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb1\",\n },\n new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb2\",\n },\n },\n BackendPort = 0,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 0,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"All\",\n },\n },\n Location = \"eastus\",\n OutboundRules = new[] {},\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Premium\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb1\"),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: network.InboundNatPoolArray{},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: nil,\n\t\t\t\t\tBackendAddressPools: network.SubResourceArray{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(0),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(0),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"All\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tOutboundRules: network.OutboundRuleArray{},\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Premium\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools( \n Map.of(\"name\", \"be-lb1\"),\n Map.of(\"name\", \"be-lb2\"))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"))\n ))\n .inboundNatPools()\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", ),\n Map.entry(\"backendAddressPools\", \n Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb1\"),\n Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb2\")),\n Map.entry(\"backendPort\", 0),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 0),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"All\")\n ))\n .location(\"eastus\")\n .outboundRules()\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .sku(Map.of(\"name\", \"Premium\"))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [\n {\n name: \"be-lb1\",\n },\n {\n name: \"be-lb2\",\n },\n ],\n frontendIPConfigurations: [{\n name: \"fe-lb\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n }],\n inboundNatPools: [],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPool: {},\n backendAddressPools: [\n {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb1\",\n },\n {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb2\",\n },\n ],\n backendPort: 0,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 0,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"All\",\n }],\n location: \"eastus\",\n outboundRules: [],\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Premium\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[\n azure_native.network.BackendAddressPoolArgs(\n name=\"be-lb1\",\n ),\n azure_native.network.BackendAddressPoolArgs(\n name=\"be-lb2\",\n ),\n ],\n frontend_ip_configurations=[{\n \"name\": \"fe-lb\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n ),\n }],\n inbound_nat_pools=[],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(),\n \"backendAddressPools\": [\n azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb1\",\n ),\n azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb2\",\n ),\n ],\n \"backendPort\": 0,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 0,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"All\",\n }],\n location=\"eastus\",\n outbound_rules=[],\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Premium\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - name: be-lb1\n - name: be-lb2\n frontendIPConfigurations:\n - name: fe-lb\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\n inboundNatPools: []\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPool: {}\n backendAddressPools:\n - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb1\n - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb2\n backendPort: 0\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 0\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: All\n location: eastus\n outboundRules: []\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n sku:\n name: Premium\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with Global Tier and one regional load balancer in its backend pool\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n LoadBalancerBackendAddresses = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancerBackendAddressArgs\n {\n LoadBalancerFrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb\",\n },\n Name = \"regional-lb1-address\",\n },\n },\n Name = \"be-lb\",\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Name = \"fe-lb\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n },\n },\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n BackendPort = 80,\n EnableFloatingIP = false,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 80,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"Tcp\",\n },\n },\n Location = \"eastus\",\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Standard\",\n Tier = \"Global\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tLoadBalancerBackendAddresses: network.LoadBalancerBackendAddressArray{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLoadBalancerFrontendIPConfiguration: {\n\t\t\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tName: pulumi.String(\"regional-lb1-address\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"be-lb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(80),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(false),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(80),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Standard\"),\n\t\t\t\tTier: pulumi.String(\"Global\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools(Map.ofEntries(\n Map.entry(\"loadBalancerBackendAddresses\", Map.ofEntries(\n Map.entry(\"loadBalancerFrontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb\")),\n Map.entry(\"name\", \"regional-lb1-address\")\n )),\n Map.entry(\"name\", \"be-lb\")\n ))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"))\n ))\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"backendPort\", 80),\n Map.entry(\"enableFloatingIP\", false),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 80),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .location(\"eastus\")\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .sku(Map.ofEntries(\n Map.entry(\"name\", \"Standard\"),\n Map.entry(\"tier\", \"Global\")\n ))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [{\n loadBalancerBackendAddresses: [{\n loadBalancerFrontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb\",\n },\n name: \"regional-lb1-address\",\n }],\n name: \"be-lb\",\n }],\n frontendIPConfigurations: [{\n name: \"fe-lb\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n }],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPool: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n backendPort: 80,\n enableFloatingIP: false,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 80,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"Tcp\",\n }],\n location: \"eastus\",\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Standard\",\n tier: \"Global\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[{\n \"loadBalancerBackendAddresses\": [{\n \"loadBalancerFrontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb\",\n ),\n \"name\": \"regional-lb1-address\",\n }],\n \"name\": \"be-lb\",\n }],\n frontend_ip_configurations=[{\n \"name\": \"fe-lb\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n ),\n }],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n ),\n \"backendPort\": 80,\n \"enableFloatingIP\": False,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 80,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"Tcp\",\n }],\n location=\"eastus\",\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Standard\",\n tier=\"Global\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - loadBalancerBackendAddresses:\n - loadBalancerFrontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb\n name: regional-lb1-address\n name: be-lb\n frontendIPConfigurations:\n - name: fe-lb\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPool:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n backendPort: 80\n enableFloatingIP: false\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 80\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: Tcp\n location: eastus\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n sku:\n name: Standard\n tier: Global\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with Standard SKU\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb\",\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Name = \"fe-lb\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n },\n },\n InboundNatPools = new[] {},\n InboundNatRules = new[]\n {\n new AzureNative.Network.Inputs.InboundNatRuleArgs\n {\n BackendPort = 3389,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 3389,\n IdleTimeoutInMinutes = 15,\n Name = \"in-nat-rule\",\n Protocol = \"Tcp\",\n },\n },\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n BackendPort = 80,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 80,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"Tcp\",\n },\n },\n Location = \"eastus\",\n OutboundRules = new[] {},\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Standard\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: network.InboundNatPoolArray{},\n\t\t\tInboundNatRules: []network.InboundNatRuleTypeArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendPort: pulumi.Int(3389),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(3389),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"in-nat-rule\"),\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(80),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(80),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tOutboundRules: network.OutboundRuleArray{},\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Standard\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools(Map.of(\"name\", \"be-lb\"))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\"))\n ))\n .inboundNatPools()\n .inboundNatRules(Map.ofEntries(\n Map.entry(\"backendPort\", 3389),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 3389),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"name\", \"in-nat-rule\"),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"backendPort\", 80),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 80),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .location(\"eastus\")\n .outboundRules()\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .sku(Map.of(\"name\", \"Standard\"))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [{\n name: \"be-lb\",\n }],\n frontendIPConfigurations: [{\n name: \"fe-lb\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n },\n }],\n inboundNatPools: [],\n inboundNatRules: [{\n backendPort: 3389,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 3389,\n idleTimeoutInMinutes: 15,\n name: \"in-nat-rule\",\n protocol: \"Tcp\",\n }],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPool: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n backendPort: 80,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 80,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"Tcp\",\n }],\n location: \"eastus\",\n outboundRules: [],\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Standard\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[azure_native.network.BackendAddressPoolArgs(\n name=\"be-lb\",\n )],\n frontend_ip_configurations=[{\n \"name\": \"fe-lb\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\",\n ),\n }],\n inbound_nat_pools=[],\n inbound_nat_rules=[{\n \"backendPort\": 3389,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 3389,\n \"idleTimeoutInMinutes\": 15,\n \"name\": \"in-nat-rule\",\n \"protocol\": \"Tcp\",\n }],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n ),\n \"backendPort\": 80,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 80,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"Tcp\",\n }],\n location=\"eastus\",\n outbound_rules=[],\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Standard\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - name: be-lb\n frontendIPConfigurations:\n - name: fe-lb\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb\n inboundNatPools: []\n inboundNatRules:\n - backendPort: 3389\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 3389\n idleTimeoutInMinutes: 15\n name: in-nat-rule\n protocol: Tcp\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPool:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n backendPort: 80\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 80\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: Tcp\n location: eastus\n outboundRules: []\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n sku:\n name: Standard\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with inbound nat pool\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[] {},\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\",\n Name = \"test\",\n PrivateIPAllocationMethod = \"Dynamic\",\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet\",\n },\n Zones = new() { },\n },\n },\n InboundNatPools = new[]\n {\n new AzureNative.Network.Inputs.InboundNatPoolArgs\n {\n BackendPort = 8888,\n EnableFloatingIP = true,\n EnableTcpReset = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\",\n },\n FrontendPortRangeEnd = 8085,\n FrontendPortRangeStart = 8080,\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test\",\n IdleTimeoutInMinutes = 10,\n Name = \"test\",\n Protocol = \"Tcp\",\n },\n },\n InboundNatRules = new[] {},\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[] {},\n Location = \"eastus\",\n OutboundRules = new[] {},\n Probes = new[] {},\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Standard\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: network.BackendAddressPoolArray{},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\"),\n\t\t\t\t\tName: pulumi.String(\"test\"),\n\t\t\t\t\tPrivateIPAllocationMethod: pulumi.String(\"Dynamic\"),\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet\"),\n\t\t\t\t\t},\n\t\t\t\t\tZones: pulumi.StringArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: []network.InboundNatPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendPort: pulumi.Int(8888),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tEnableTcpReset: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPortRangeEnd: pulumi.Int(8085),\n\t\t\t\t\tFrontendPortRangeStart: pulumi.Int(8080),\n\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test\"),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(10),\n\t\t\t\t\tName: pulumi.String(\"test\"),\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatRules: network.InboundNatRuleTypeArray{},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: network.LoadBalancingRuleArray{},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tOutboundRules: network.OutboundRuleArray{},\n\t\t\tProbes: network.ProbeArray{},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Standard\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools()\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\"),\n Map.entry(\"name\", \"test\"),\n Map.entry(\"privateIPAllocationMethod\", \"Dynamic\"),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet\")),\n Map.entry(\"zones\", )\n ))\n .inboundNatPools(Map.ofEntries(\n Map.entry(\"backendPort\", 8888),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"enableTcpReset\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\")),\n Map.entry(\"frontendPortRangeEnd\", 8085),\n Map.entry(\"frontendPortRangeStart\", 8080),\n Map.entry(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test\"),\n Map.entry(\"idleTimeoutInMinutes\", 10),\n Map.entry(\"name\", \"test\"),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .inboundNatRules()\n .loadBalancerName(\"lb\")\n .loadBalancingRules()\n .location(\"eastus\")\n .outboundRules()\n .probes()\n .resourceGroupName(\"rg1\")\n .sku(Map.of(\"name\", \"Standard\"))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [],\n frontendIPConfigurations: [{\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\",\n name: \"test\",\n privateIPAllocationMethod: \"Dynamic\",\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet\",\n },\n zones: [],\n }],\n inboundNatPools: [{\n backendPort: 8888,\n enableFloatingIP: true,\n enableTcpReset: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\",\n },\n frontendPortRangeEnd: 8085,\n frontendPortRangeStart: 8080,\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test\",\n idleTimeoutInMinutes: 10,\n name: \"test\",\n protocol: \"Tcp\",\n }],\n inboundNatRules: [],\n loadBalancerName: \"lb\",\n loadBalancingRules: [],\n location: \"eastus\",\n outboundRules: [],\n probes: [],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Standard\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[],\n frontend_ip_configurations=[{\n \"id\": \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\",\n \"name\": \"test\",\n \"privateIPAllocationMethod\": \"Dynamic\",\n \"subnet\": azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet\",\n ),\n \"zones\": [],\n }],\n inbound_nat_pools=[{\n \"backendPort\": 8888,\n \"enableFloatingIP\": True,\n \"enableTcpReset\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\",\n ),\n \"frontendPortRangeEnd\": 8085,\n \"frontendPortRangeStart\": 8080,\n \"id\": \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test\",\n \"idleTimeoutInMinutes\": 10,\n \"name\": \"test\",\n \"protocol\": \"Tcp\",\n }],\n inbound_nat_rules=[],\n load_balancer_name=\"lb\",\n load_balancing_rules=[],\n location=\"eastus\",\n outbound_rules=[],\n probes=[],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Standard\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools: []\n frontendIPConfigurations:\n - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\n name: test\n privateIPAllocationMethod: Dynamic\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet\n zones: []\n inboundNatPools:\n - backendPort: 8888\n enableFloatingIP: true\n enableTcpReset: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test\n frontendPortRangeEnd: 8085\n frontendPortRangeStart: 8080\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test\n idleTimeoutInMinutes: 10\n name: test\n protocol: Tcp\n inboundNatRules: []\n loadBalancerName: lb\n loadBalancingRules: []\n location: eastus\n outboundRules: []\n probes: []\n resourceGroupName: rg1\n sku:\n name: Standard\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create load balancer with outbound rules\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var loadBalancer = new AzureNative.Network.LoadBalancer(\"loadBalancer\", new()\n {\n BackendAddressPools = new[]\n {\n new AzureNative.Network.Inputs.BackendAddressPoolArgs\n {\n Name = \"be-lb\",\n },\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.FrontendIPConfigurationArgs\n {\n Name = \"fe-lb\",\n PublicIPAddress = new AzureNative.Network.Inputs.PublicIPAddressArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip\",\n },\n },\n },\n InboundNatPools = new[] {},\n InboundNatRules = new[]\n {\n new AzureNative.Network.Inputs.InboundNatRuleArgs\n {\n BackendPort = 3389,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 3389,\n IdleTimeoutInMinutes = 15,\n Name = \"in-nat-rule\",\n Protocol = \"Tcp\",\n },\n },\n LoadBalancerName = \"lb\",\n LoadBalancingRules = new[]\n {\n new AzureNative.Network.Inputs.LoadBalancingRuleArgs\n {\n BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n BackendPort = 80,\n DisableOutboundSnat = true,\n EnableFloatingIP = true,\n FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n FrontendPort = 80,\n IdleTimeoutInMinutes = 15,\n LoadDistribution = \"Default\",\n Name = \"rulelb\",\n Probe = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n Protocol = \"Tcp\",\n },\n },\n Location = \"eastus\",\n OutboundRules = new[]\n {\n new AzureNative.Network.Inputs.OutboundRuleArgs\n {\n BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n FrontendIPConfigurations = new[]\n {\n new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n },\n Name = \"rule1\",\n Protocol = \"All\",\n },\n },\n Probes = new[]\n {\n new AzureNative.Network.Inputs.ProbeArgs\n {\n IntervalInSeconds = 15,\n Name = \"probe-lb\",\n NumberOfProbes = 2,\n Port = 80,\n ProbeThreshold = 1,\n Protocol = \"Http\",\n RequestPath = \"healthcheck.aspx\",\n },\n },\n ResourceGroupName = \"rg1\",\n Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs\n {\n Name = \"Standard\",\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewLoadBalancer(ctx, \"loadBalancer\", \u0026network.LoadBalancerArgs{\n\t\t\tBackendAddressPools: []network.BackendAddressPoolArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"be-lb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIPConfigurations: []network.FrontendIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"fe-lb\"),\n\t\t\t\t\tPublicIPAddress: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInboundNatPools: network.InboundNatPoolArray{},\n\t\t\tInboundNatRules: []network.InboundNatRuleTypeArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendPort: pulumi.Int(3389),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(3389),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"in-nat-rule\"),\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancerName: pulumi.String(\"lb\"),\n\t\t\tLoadBalancingRules: []network.LoadBalancingRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tBackendPort: pulumi.Int(80),\n\t\t\t\t\tDisableOutboundSnat: pulumi.Bool(true),\n\t\t\t\t\tEnableFloatingIP: pulumi.Bool(true),\n\t\t\t\t\tFrontendIPConfiguration: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendPort: pulumi.Int(80),\n\t\t\t\t\tIdleTimeoutInMinutes: pulumi.Int(15),\n\t\t\t\t\tLoadDistribution: pulumi.String(\"Default\"),\n\t\t\t\t\tName: pulumi.String(\"rulelb\"),\n\t\t\t\t\tProbe: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tOutboundRules: []network.OutboundRuleArgs{\n\t\t\t\t{\n\t\t\t\t\tBackendAddressPool: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendIPConfigurations: network.SubResourceArray{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"rule1\"),\n\t\t\t\t\tProtocol: pulumi.String(\"All\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProbes: []network.ProbeArgs{\n\t\t\t\t{\n\t\t\t\t\tIntervalInSeconds: pulumi.Int(15),\n\t\t\t\t\tName: pulumi.String(\"probe-lb\"),\n\t\t\t\t\tNumberOfProbes: pulumi.Int(2),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\tProbeThreshold: pulumi.Int(1),\n\t\t\t\t\tProtocol: pulumi.String(\"Http\"),\n\t\t\t\t\tRequestPath: pulumi.String(\"healthcheck.aspx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t\tSku: \u0026network.LoadBalancerSkuArgs{\n\t\t\t\tName: pulumi.String(\"Standard\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.LoadBalancer;\nimport com.pulumi.azurenative.network.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var loadBalancer = new LoadBalancer(\"loadBalancer\", LoadBalancerArgs.builder() \n .backendAddressPools(Map.of(\"name\", \"be-lb\"))\n .frontendIPConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"fe-lb\"),\n Map.entry(\"publicIPAddress\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip\"))\n ))\n .inboundNatPools()\n .inboundNatRules(Map.ofEntries(\n Map.entry(\"backendPort\", 3389),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 3389),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"name\", \"in-nat-rule\"),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .loadBalancerName(\"lb\")\n .loadBalancingRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"backendPort\", 80),\n Map.entry(\"disableOutboundSnat\", true),\n Map.entry(\"enableFloatingIP\", true),\n Map.entry(\"frontendIPConfiguration\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"frontendPort\", 80),\n Map.entry(\"idleTimeoutInMinutes\", 15),\n Map.entry(\"loadDistribution\", \"Default\"),\n Map.entry(\"name\", \"rulelb\"),\n Map.entry(\"probe\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\")),\n Map.entry(\"protocol\", \"Tcp\")\n ))\n .location(\"eastus\")\n .outboundRules(Map.ofEntries(\n Map.entry(\"backendAddressPool\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\")),\n Map.entry(\"frontendIPConfigurations\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\")),\n Map.entry(\"name\", \"rule1\"),\n Map.entry(\"protocol\", \"All\")\n ))\n .probes(Map.ofEntries(\n Map.entry(\"intervalInSeconds\", 15),\n Map.entry(\"name\", \"probe-lb\"),\n Map.entry(\"numberOfProbes\", 2),\n Map.entry(\"port\", 80),\n Map.entry(\"probeThreshold\", 1),\n Map.entry(\"protocol\", \"Http\"),\n Map.entry(\"requestPath\", \"healthcheck.aspx\")\n ))\n .resourceGroupName(\"rg1\")\n .sku(Map.of(\"name\", \"Standard\"))\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst loadBalancer = new azure_native.network.LoadBalancer(\"loadBalancer\", {\n backendAddressPools: [{\n name: \"be-lb\",\n }],\n frontendIPConfigurations: [{\n name: \"fe-lb\",\n publicIPAddress: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip\",\n },\n }],\n inboundNatPools: [],\n inboundNatRules: [{\n backendPort: 3389,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 3389,\n idleTimeoutInMinutes: 15,\n name: \"in-nat-rule\",\n protocol: \"Tcp\",\n }],\n loadBalancerName: \"lb\",\n loadBalancingRules: [{\n backendAddressPool: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n backendPort: 80,\n disableOutboundSnat: true,\n enableFloatingIP: true,\n frontendIPConfiguration: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n },\n frontendPort: 80,\n idleTimeoutInMinutes: 15,\n loadDistribution: \"Default\",\n name: \"rulelb\",\n probe: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n },\n protocol: \"Tcp\",\n }],\n location: \"eastus\",\n outboundRules: [{\n backendAddressPool: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n },\n frontendIPConfigurations: [{\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n }],\n name: \"rule1\",\n protocol: \"All\",\n }],\n probes: [{\n intervalInSeconds: 15,\n name: \"probe-lb\",\n numberOfProbes: 2,\n port: 80,\n probeThreshold: 1,\n protocol: \"Http\",\n requestPath: \"healthcheck.aspx\",\n }],\n resourceGroupName: \"rg1\",\n sku: {\n name: \"Standard\",\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nload_balancer = azure_native.network.LoadBalancer(\"loadBalancer\",\n backend_address_pools=[azure_native.network.BackendAddressPoolArgs(\n name=\"be-lb\",\n )],\n frontend_ip_configurations=[azure_native.network.FrontendIPConfigurationArgs(\n name=\"fe-lb\",\n public_ip_address=azure_native.network.PublicIPAddressArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip\",\n ),\n )],\n inbound_nat_pools=[],\n inbound_nat_rules=[{\n \"backendPort\": 3389,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 3389,\n \"idleTimeoutInMinutes\": 15,\n \"name\": \"in-nat-rule\",\n \"protocol\": \"Tcp\",\n }],\n load_balancer_name=\"lb\",\n load_balancing_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n ),\n \"backendPort\": 80,\n \"disableOutboundSnat\": True,\n \"enableFloatingIP\": True,\n \"frontendIPConfiguration\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n ),\n \"frontendPort\": 80,\n \"idleTimeoutInMinutes\": 15,\n \"loadDistribution\": \"Default\",\n \"name\": \"rulelb\",\n \"probe\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\",\n ),\n \"protocol\": \"Tcp\",\n }],\n location=\"eastus\",\n outbound_rules=[{\n \"backendAddressPool\": azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\",\n ),\n \"frontendIPConfigurations\": [azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\",\n )],\n \"name\": \"rule1\",\n \"protocol\": \"All\",\n }],\n probes=[azure_native.network.ProbeArgs(\n interval_in_seconds=15,\n name=\"probe-lb\",\n number_of_probes=2,\n port=80,\n probe_threshold=1,\n protocol=\"Http\",\n request_path=\"healthcheck.aspx\",\n )],\n resource_group_name=\"rg1\",\n sku=azure_native.network.LoadBalancerSkuArgs(\n name=\"Standard\",\n ))\n\n```\n\n```yaml\nresources:\n loadBalancer:\n type: azure-native:network:LoadBalancer\n properties:\n backendAddressPools:\n - name: be-lb\n frontendIPConfigurations:\n - name: fe-lb\n publicIPAddress:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip\n inboundNatPools: []\n inboundNatRules:\n - backendPort: 3389\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 3389\n idleTimeoutInMinutes: 15\n name: in-nat-rule\n protocol: Tcp\n loadBalancerName: lb\n loadBalancingRules:\n - backendAddressPool:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n backendPort: 80\n disableOutboundSnat: true\n enableFloatingIP: true\n frontendIPConfiguration:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n frontendPort: 80\n idleTimeoutInMinutes: 15\n loadDistribution: Default\n name: rulelb\n probe:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb\n protocol: Tcp\n location: eastus\n outboundRules:\n - backendAddressPool:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb\n frontendIPConfigurations:\n - id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb\n name: rule1\n protocol: All\n probes:\n - intervalInSeconds: 15\n name: probe-lb\n numberOfProbes: 2\n port: 80\n probeThreshold: 1\n protocol: Http\n requestPath: healthcheck.aspx\n resourceGroupName: rg1\n sku:\n name: Standard\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn existing resource can be imported using its type token, name, and identifier, e.g.\n\n```sh\n$ pulumi import azure-native:network:LoadBalancer lb /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName} \n```\n",
"properties": {
"backendAddressPools": {
"type": "array",
@@ -603545,7 +603582,7 @@
]
},
"azure-native:network:NetworkInterface": {
- "description": "A network interface in a resource group.\nAzure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01.\n\nOther available API versions: 2015-05-01-preview, 2018-07-01, 2019-02-01, 2019-06-01, 2019-08-01, 2023-04-01, 2023-05-01, 2023-06-01, 2023-09-01.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Create network interface\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var networkInterface = new AzureNative.Network.NetworkInterface(\"networkInterface\", new()\n {\n DisableTcpStateTracking = true,\n EnableAcceleratedNetworking = true,\n IpConfigurations = new[]\n {\n new AzureNative.Network.Inputs.NetworkInterfaceIPConfigurationArgs\n {\n Name = \"ipconfig1\",\n PublicIPAddress = new AzureNative.Network.Inputs.PublicIPAddressArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\",\n },\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\",\n },\n },\n },\n Location = \"eastus\",\n NetworkInterfaceName = \"test-nic\",\n ResourceGroupName = \"rg1\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewNetworkInterface(ctx, \"networkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tDisableTcpStateTracking: pulumi.Bool(true),\n\t\t\tEnableAcceleratedNetworking: pulumi.Bool(true),\n\t\t\tIpConfigurations: []network.NetworkInterfaceIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"ipconfig1\"),\n\t\t\t\t\tPublicIPAddress: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tNetworkInterfaceName: pulumi.String(\"test-nic\"),\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.NetworkInterface;\nimport com.pulumi.azurenative.network.NetworkInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var networkInterface = new NetworkInterface(\"networkInterface\", NetworkInterfaceArgs.builder() \n .disableTcpStateTracking(true)\n .enableAcceleratedNetworking(true)\n .ipConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"ipconfig1\"),\n Map.entry(\"publicIPAddress\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\")),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\"))\n ))\n .location(\"eastus\")\n .networkInterfaceName(\"test-nic\")\n .resourceGroupName(\"rg1\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst networkInterface = new azure_native.network.NetworkInterface(\"networkInterface\", {\n disableTcpStateTracking: true,\n enableAcceleratedNetworking: true,\n ipConfigurations: [{\n name: \"ipconfig1\",\n publicIPAddress: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\",\n },\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\",\n },\n }],\n location: \"eastus\",\n networkInterfaceName: \"test-nic\",\n resourceGroupName: \"rg1\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nnetwork_interface = azure_native.network.NetworkInterface(\"networkInterface\",\n disable_tcp_state_tracking=True,\n enable_accelerated_networking=True,\n ip_configurations=[azure_native.network.NetworkInterfaceIPConfigurationArgs(\n name=\"ipconfig1\",\n public_ip_address=azure_native.network.PublicIPAddressArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\",\n ),\n subnet=azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\",\n ),\n )],\n location=\"eastus\",\n network_interface_name=\"test-nic\",\n resource_group_name=\"rg1\")\n\n```\n\n```yaml\nresources:\n networkInterface:\n type: azure-native:network:NetworkInterface\n properties:\n disableTcpStateTracking: true\n enableAcceleratedNetworking: true\n ipConfigurations:\n - name: ipconfig1\n publicIPAddress:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\n location: eastus\n networkInterfaceName: test-nic\n resourceGroupName: rg1\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create network interface with Gateway Load Balancer Consumer configured\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var networkInterface = new AzureNative.Network.NetworkInterface(\"networkInterface\", new()\n {\n EnableAcceleratedNetworking = true,\n IpConfigurations = new[]\n {\n \n {\n { \"gatewayLoadBalancer\", new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\",\n } },\n { \"name\", \"ipconfig1\" },\n { \"publicIPAddress\", new AzureNative.Network.Inputs.PublicIPAddressArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\",\n } },\n { \"subnet\", new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\",\n } },\n },\n },\n Location = \"eastus\",\n NetworkInterfaceName = \"test-nic\",\n ResourceGroupName = \"rg1\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewNetworkInterface(ctx, \"networkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tEnableAcceleratedNetworking: pulumi.Bool(true),\n\t\t\tIpConfigurations: []network.NetworkInterfaceIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tGatewayLoadBalancer: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"ipconfig1\"),\n\t\t\t\t\tPublicIPAddress: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tNetworkInterfaceName: pulumi.String(\"test-nic\"),\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.NetworkInterface;\nimport com.pulumi.azurenative.network.NetworkInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var networkInterface = new NetworkInterface(\"networkInterface\", NetworkInterfaceArgs.builder() \n .enableAcceleratedNetworking(true)\n .ipConfigurations(Map.ofEntries(\n Map.entry(\"gatewayLoadBalancer\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\")),\n Map.entry(\"name\", \"ipconfig1\"),\n Map.entry(\"publicIPAddress\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\")),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\"))\n ))\n .location(\"eastus\")\n .networkInterfaceName(\"test-nic\")\n .resourceGroupName(\"rg1\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst networkInterface = new azure_native.network.NetworkInterface(\"networkInterface\", {\n enableAcceleratedNetworking: true,\n ipConfigurations: [{\n gatewayLoadBalancer: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\",\n },\n name: \"ipconfig1\",\n publicIPAddress: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\",\n },\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\",\n },\n }],\n location: \"eastus\",\n networkInterfaceName: \"test-nic\",\n resourceGroupName: \"rg1\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nnetwork_interface = azure_native.network.NetworkInterface(\"networkInterface\",\n enable_accelerated_networking=True,\n ip_configurations=[azure_native.network.NetworkInterfaceIPConfigurationResponseArgs(\n gateway_load_balancer=azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\",\n ),\n name=\"ipconfig1\",\n public_ip_address=azure_native.network.PublicIPAddressArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\",\n ),\n subnet=azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\",\n ),\n )],\n location=\"eastus\",\n network_interface_name=\"test-nic\",\n resource_group_name=\"rg1\")\n\n```\n\n```yaml\nresources:\n networkInterface:\n type: azure-native:network:NetworkInterface\n properties:\n enableAcceleratedNetworking: true\n ipConfigurations:\n - gatewayLoadBalancer:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\n name: ipconfig1\n publicIPAddress:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\n location: eastus\n networkInterfaceName: test-nic\n resourceGroupName: rg1\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn existing resource can be imported using its type token, name, and identifier, e.g.\n\n```sh\n$ pulumi import azure-native:network:NetworkInterface test-nic /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName} \n```\n",
+ "description": "A network interface in a resource group.\nAzure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01.\n\nOther available API versions: 2015-05-01-preview, 2018-07-01, 2019-02-01, 2019-06-01, 2019-08-01, 2023-04-01, 2023-05-01, 2023-06-01, 2023-09-01.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Create network interface\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var networkInterface = new AzureNative.Network.NetworkInterface(\"networkInterface\", new()\n {\n DisableTcpStateTracking = true,\n EnableAcceleratedNetworking = true,\n IpConfigurations = new[]\n {\n new AzureNative.Network.Inputs.NetworkInterfaceIPConfigurationArgs\n {\n Name = \"ipconfig1\",\n PublicIPAddress = new AzureNative.Network.Inputs.PublicIPAddressArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\",\n },\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\",\n },\n },\n },\n Location = \"eastus\",\n NetworkInterfaceName = \"test-nic\",\n ResourceGroupName = \"rg1\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewNetworkInterface(ctx, \"networkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tDisableTcpStateTracking: pulumi.Bool(true),\n\t\t\tEnableAcceleratedNetworking: pulumi.Bool(true),\n\t\t\tIpConfigurations: []network.NetworkInterfaceIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tName: pulumi.String(\"ipconfig1\"),\n\t\t\t\t\tPublicIPAddress: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tNetworkInterfaceName: pulumi.String(\"test-nic\"),\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.NetworkInterface;\nimport com.pulumi.azurenative.network.NetworkInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var networkInterface = new NetworkInterface(\"networkInterface\", NetworkInterfaceArgs.builder() \n .disableTcpStateTracking(true)\n .enableAcceleratedNetworking(true)\n .ipConfigurations(Map.ofEntries(\n Map.entry(\"name\", \"ipconfig1\"),\n Map.entry(\"publicIPAddress\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\")),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\"))\n ))\n .location(\"eastus\")\n .networkInterfaceName(\"test-nic\")\n .resourceGroupName(\"rg1\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst networkInterface = new azure_native.network.NetworkInterface(\"networkInterface\", {\n disableTcpStateTracking: true,\n enableAcceleratedNetworking: true,\n ipConfigurations: [{\n name: \"ipconfig1\",\n publicIPAddress: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\",\n },\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\",\n },\n }],\n location: \"eastus\",\n networkInterfaceName: \"test-nic\",\n resourceGroupName: \"rg1\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nnetwork_interface = azure_native.network.NetworkInterface(\"networkInterface\",\n disable_tcp_state_tracking=True,\n enable_accelerated_networking=True,\n ip_configurations=[azure_native.network.NetworkInterfaceIPConfigurationArgs(\n name=\"ipconfig1\",\n public_ip_address=azure_native.network.PublicIPAddressArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\",\n ),\n subnet=azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\",\n ),\n )],\n location=\"eastus\",\n network_interface_name=\"test-nic\",\n resource_group_name=\"rg1\")\n\n```\n\n```yaml\nresources:\n networkInterface:\n type: azure-native:network:NetworkInterface\n properties:\n disableTcpStateTracking: true\n enableAcceleratedNetworking: true\n ipConfigurations:\n - name: ipconfig1\n publicIPAddress:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\n location: eastus\n networkInterfaceName: test-nic\n resourceGroupName: rg1\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Create network interface with Gateway Load Balancer Consumer configured\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureNative = Pulumi.AzureNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var networkInterface = new AzureNative.Network.NetworkInterface(\"networkInterface\", new()\n {\n EnableAcceleratedNetworking = true,\n IpConfigurations = new[]\n {\n new AzureNative.Network.Inputs.NetworkInterfaceIPConfigurationArgs\n {\n GatewayLoadBalancer = new AzureNative.Network.Inputs.SubResourceArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\",\n },\n Name = \"ipconfig1\",\n PublicIPAddress = new AzureNative.Network.Inputs.PublicIPAddressArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\",\n },\n Subnet = new AzureNative.Network.Inputs.SubnetArgs\n {\n Id = \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\",\n },\n },\n },\n Location = \"eastus\",\n NetworkInterfaceName = \"test-nic\",\n ResourceGroupName = \"rg1\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure-native-sdk/network/v2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewNetworkInterface(ctx, \"networkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tEnableAcceleratedNetworking: pulumi.Bool(true),\n\t\t\tIpConfigurations: []network.NetworkInterfaceIPConfigurationArgs{\n\t\t\t\t{\n\t\t\t\t\tGatewayLoadBalancer: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"ipconfig1\"),\n\t\t\t\t\tPublicIPAddress: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubnet: {\n\t\t\t\t\t\tId: pulumi.String(\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t\tNetworkInterfaceName: pulumi.String(\"test-nic\"),\n\t\t\tResourceGroupName: pulumi.String(\"rg1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azurenative.network.NetworkInterface;\nimport com.pulumi.azurenative.network.NetworkInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var networkInterface = new NetworkInterface(\"networkInterface\", NetworkInterfaceArgs.builder() \n .enableAcceleratedNetworking(true)\n .ipConfigurations(Map.ofEntries(\n Map.entry(\"gatewayLoadBalancer\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\")),\n Map.entry(\"name\", \"ipconfig1\"),\n Map.entry(\"publicIPAddress\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\")),\n Map.entry(\"subnet\", Map.of(\"id\", \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\"))\n ))\n .location(\"eastus\")\n .networkInterfaceName(\"test-nic\")\n .resourceGroupName(\"rg1\")\n .build());\n\n }\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure_native from \"@pulumi/azure-native\";\n\nconst networkInterface = new azure_native.network.NetworkInterface(\"networkInterface\", {\n enableAcceleratedNetworking: true,\n ipConfigurations: [{\n gatewayLoadBalancer: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\",\n },\n name: \"ipconfig1\",\n publicIPAddress: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\",\n },\n subnet: {\n id: \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\",\n },\n }],\n location: \"eastus\",\n networkInterfaceName: \"test-nic\",\n resourceGroupName: \"rg1\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_azure_native as azure_native\n\nnetwork_interface = azure_native.network.NetworkInterface(\"networkInterface\",\n enable_accelerated_networking=True,\n ip_configurations=[azure_native.network.NetworkInterfaceIPConfigurationArgs(\n gateway_load_balancer=azure_native.network.SubResourceArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\",\n ),\n name=\"ipconfig1\",\n public_ip_address=azure_native.network.PublicIPAddressArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\",\n ),\n subnet=azure_native.network.SubnetArgs(\n id=\"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\",\n ),\n )],\n location=\"eastus\",\n network_interface_name=\"test-nic\",\n resource_group_name=\"rg1\")\n\n```\n\n```yaml\nresources:\n networkInterface:\n type: azure-native:network:NetworkInterface\n properties:\n enableAcceleratedNetworking: true\n ipConfigurations:\n - gatewayLoadBalancer:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider\n name: ipconfig1\n publicIPAddress:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip\n subnet:\n id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default\n location: eastus\n networkInterfaceName: test-nic\n resourceGroupName: rg1\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn existing resource can be imported using its type token, name, and identifier, e.g.\n\n```sh\n$ pulumi import azure-native:network:NetworkInterface test-nic /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName} \n```\n",
"properties": {
"auxiliaryMode": {
"type": "string",
diff --git a/provider/go.mod b/provider/go.mod
index aa732982209a..8cc06cfcd60f 100644
--- a/provider/go.mod
+++ b/provider/go.mod
@@ -4,6 +4,8 @@ go 1.21.0
require (
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible
+ github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1
+ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/keyvault/armkeyvault v1.4.0
github.com/Azure/go-autorest/autorest v0.11.29
github.com/blang/semver v3.5.1+incompatible
github.com/brianvoe/gofakeit/v6 v6.16.0
@@ -13,7 +15,7 @@ require (
github.com/go-openapi/spec v0.20.4
github.com/go-openapi/swag v0.21.1
github.com/golang/protobuf v1.5.3
- github.com/google/uuid v1.3.0
+ github.com/google/uuid v1.3.1
github.com/hashicorp/go-azure-helpers v0.51.0
github.com/hashicorp/go-multierror v1.1.1
github.com/hashicorp/hcl/v2 v2.17.0
@@ -42,6 +44,7 @@ require (
cloud.google.com/go/compute/metadata v0.2.3 // indirect
cloud.google.com/go/longrunning v0.5.1 // indirect
dario.cat/mergo v1.0.0 // indirect
+ github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 // indirect
github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect
github.com/BurntSushi/toml v1.2.1 // indirect
github.com/armon/go-metrics v0.4.0 // indirect
diff --git a/provider/go.sum b/provider/go.sum
index 4f9ac3275439..ecb26f1a21e1 100644
--- a/provider/go.sum
+++ b/provider/go.sum
@@ -110,11 +110,23 @@ github.com/Azure/azure-sdk-for-go v68.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9mo
github.com/Azure/azure-sdk-for-go/sdk/azcore v0.19.0/go.mod h1:h6H6c8enJmmocHUbLiiGY6sx7f9i+X3m1CHdd5c6Rdw=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.1/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U=
+github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 h1:lGlwhPtrX6EVml1hO0ivjkUxsSyl4dsiw9qcA1k/3IQ=
+github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1/go.mod h1:RKUqNu35KJYcVG/fqTRqmuXJZYNhYkBrnC/hX7yGbTA=
github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.11.0/go.mod h1:HcM1YX14R7CJcghJGOYCgdezslRSVzqwLf/q+4Y2r/0=
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0/go.mod h1:+6sju8gk8FRmSajX3Oz4G5Gm7P+mbqE9FVaXXFYTkCM=
+github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 h1:BMAjVKJM0U/CYF27gA0ZMmXGkOcvfFtD0oHVZ1TIPRI=
+github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0/go.mod h1:1fXstnBMas5kzG+S3q8UoJcmyU6nUeunJcMDHcRYHhs=
github.com/Azure/azure-sdk-for-go/sdk/internal v0.7.0/go.mod h1:yqy467j36fJxcRV2TzfVZ1pCb5vxm4BtZPUdYWe/Xo8=
github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w=
+github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 h1:6oNBlSdi1QqM1PNW7FPA6xOGA5UNsXnkaYZz9vdPGhA=
+github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1/go.mod h1:s4kgfzA0covAXNicZHDMN58jExvcng2mC/DepXiF1EI=
github.com/Azure/azure-sdk-for-go/sdk/messaging/azservicebus v1.0.2/go.mod h1:LH9XQnMr2ZYxQdVdCrzLO9mxeDyrDFa6wbSI3x5zCZk=
+github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v2 v2.0.0 h1:PTFGRSlMKCQelWwxUyYVEUqseBJVemLyqWJjvMyt0do=
+github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v2 v2.0.0/go.mod h1:LRr2FzBTQlONPPa5HREE5+RjSCTXl7BwOvYOaWTqCaI=
+github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/keyvault/armkeyvault v1.4.0 h1:HlZMUZW8S4P9oob1nCHxCCKrytxyLc+24nUJGssoEto=
+github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/keyvault/armkeyvault v1.4.0/go.mod h1:StGsLbuJh06Bd8IBfnAlIFV3fLb+gkczONWf15hpX2E=
+github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.1.1 h1:7CBQ+Ei8SP2c6ydQTGCCrS35bDxgTMfoP2miAwK++OU=
+github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.1.1/go.mod h1:c/wcGeGx5FUPbM/JltUYHZcKmigwyVLJlDq+4HdtXaw=
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1/go.mod h1:eZ4g6GUvXiGulfIbbhh1Xr4XwUYaYaWMqzGD/284wCA=
github.com/Azure/go-amqp v0.17.0/go.mod h1:9YJ3RhxRT1gquYnzpZO1vcYMMpAdJT+QEg6fwmw9Zlg=
github.com/Azure/go-amqp v0.17.5/go.mod h1:9YJ3RhxRT1gquYnzpZO1vcYMMpAdJT+QEg6fwmw9Zlg=
@@ -167,6 +179,8 @@ github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZ
github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4=
+github.com/AzureAD/microsoft-authentication-library-for-go v1.1.1 h1:WpB/QDNLpMw72xHJc34BNNykqSOeEJDAWkhf0u12/Jk=
+github.com/AzureAD/microsoft-authentication-library-for-go v1.1.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=
github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
@@ -554,6 +568,7 @@ github.com/djherbis/times v1.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU=
github.com/djherbis/times v1.5.0/go.mod h1:5q7FDLvbNg1L/KaBmPcWlVR9NmoKo3+ucqUA3ijQhA0=
github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko=
+github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI=
github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ=
github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY=
@@ -781,12 +796,15 @@ github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
+github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c=
github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
+github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE=
+github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
@@ -900,8 +918,9 @@ github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
+github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/wire v0.5.0 h1:I7ELFeVBr3yfPIcc8+MWvrjk+3VjbcSzoXm3JVa+jD8=
github.com/google/wire v0.5.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU=
github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8=
@@ -1446,6 +1465,8 @@ github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=
github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI=
github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA=
github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ=
+github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU=
+github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
diff --git a/provider/pkg/gen/__snapshots__/gen_vnet_test.snap b/provider/pkg/gen/__snapshots__/gen_vnet_test.snap
index f617167d8175..26bf88de507e 100755
--- a/provider/pkg/gen/__snapshots__/gen_vnet_test.snap
+++ b/provider/pkg/gen/__snapshots__/gen_vnet_test.snap
@@ -79934,6 +79934,147 @@
Methods: {},
},
Resources: {
+ "azure-native:keyvault:AccessPolicy": {
+ ObjectTypeSpec: schema.ObjectTypeSpec{
+ Description: "Key Vault Access Policy for managing policies on existing vaults.",
+ Properties: {
+ "policy": {
+ TypeSpec: schema.TypeSpec{
+ Type: "",
+ Ref: "#/types/azure-native:keyvault:AccessPolicyEntry",
+ AdditionalProperties: (*schema.TypeSpec)(nil),
+ Items: (*schema.TypeSpec)(nil),
+ OneOf: nil,
+ Discriminator: (*schema.DiscriminatorSpec)(nil),
+ Plain: false,
+ },
+ Description: "The definition of the access policy.",
+ Const: nil,
+ Default: nil,
+ DefaultInfo: (*schema.DefaultSpec)(nil),
+ DeprecationMessage: "",
+ Language: {},
+ Secret: false,
+ ReplaceOnChanges: false,
+ WillReplaceOnChanges: false,
+ },
+ "resourceGroupName": {
+ TypeSpec: schema.TypeSpec{
+ Type: "string",
+ Ref: "",
+ AdditionalProperties: (*schema.TypeSpec)(nil),
+ Items: (*schema.TypeSpec)(nil),
+ OneOf: nil,
+ Discriminator: (*schema.DiscriminatorSpec)(nil),
+ Plain: false,
+ },
+ Description: "Name of the resource group that contains the vault.",
+ Const: nil,
+ Default: nil,
+ DefaultInfo: (*schema.DefaultSpec)(nil),
+ DeprecationMessage: "",
+ Language: {},
+ Secret: false,
+ ReplaceOnChanges: false,
+ WillReplaceOnChanges: false,
+ },
+ "vaultName": {
+ TypeSpec: schema.TypeSpec{
+ Type: "string",
+ Ref: "",
+ AdditionalProperties: (*schema.TypeSpec)(nil),
+ Items: (*schema.TypeSpec)(nil),
+ OneOf: nil,
+ Discriminator: (*schema.DiscriminatorSpec)(nil),
+ Plain: false,
+ },
+ Description: "Name of the Key Vault.",
+ Const: nil,
+ Default: nil,
+ DefaultInfo: (*schema.DefaultSpec)(nil),
+ DeprecationMessage: "",
+ Language: {},
+ Secret: false,
+ ReplaceOnChanges: false,
+ WillReplaceOnChanges: false,
+ },
+ },
+ Type: "object",
+ Required: nil,
+ Plain: nil,
+ Language: {},
+ IsOverlay: false,
+ },
+ InputProperties: {
+ "policy": {
+ TypeSpec: schema.TypeSpec{
+ Type: "",
+ Ref: "#/types/azure-native:keyvault:AccessPolicyEntry",
+ AdditionalProperties: (*schema.TypeSpec)(nil),
+ Items: (*schema.TypeSpec)(nil),
+ OneOf: nil,
+ Discriminator: (*schema.DiscriminatorSpec)(nil),
+ Plain: false,
+ },
+ Description: "The definition of the access policy.",
+ Const: nil,
+ Default: nil,
+ DefaultInfo: (*schema.DefaultSpec)(nil),
+ DeprecationMessage: "",
+ Language: {},
+ Secret: false,
+ ReplaceOnChanges: false,
+ WillReplaceOnChanges: false,
+ },
+ "resourceGroupName": {
+ TypeSpec: schema.TypeSpec{
+ Type: "string",
+ Ref: "",
+ AdditionalProperties: (*schema.TypeSpec)(nil),
+ Items: (*schema.TypeSpec)(nil),
+ OneOf: nil,
+ Discriminator: (*schema.DiscriminatorSpec)(nil),
+ Plain: false,
+ },
+ Description: "Name of the resource group that contains the vault.",
+ Const: nil,
+ Default: nil,
+ DefaultInfo: (*schema.DefaultSpec)(nil),
+ DeprecationMessage: "",
+ Language: {},
+ Secret: false,
+ ReplaceOnChanges: false,
+ WillReplaceOnChanges: false,
+ },
+ "vaultName": {
+ TypeSpec: schema.TypeSpec{
+ Type: "string",
+ Ref: "",
+ AdditionalProperties: (*schema.TypeSpec)(nil),
+ Items: (*schema.TypeSpec)(nil),
+ OneOf: nil,
+ Discriminator: (*schema.DiscriminatorSpec)(nil),
+ Plain: false,
+ },
+ Description: "Name of the Key Vault.",
+ Const: nil,
+ Default: nil,
+ DefaultInfo: (*schema.DefaultSpec)(nil),
+ DeprecationMessage: "",
+ Language: {},
+ Secret: false,
+ ReplaceOnChanges: false,
+ WillReplaceOnChanges: false,
+ },
+ },
+ RequiredInputs: {"resourceGroupName", "vaultName", "policy"},
+ PlainInputs: nil,
+ StateInputs: (*schema.ObjectTypeSpec)(nil),
+ Aliases: nil,
+ DeprecationMessage: "",
+ IsComponent: false,
+ Methods: {},
+ },
"azure-native:network/v20230201:AdminRule": {
ObjectTypeSpec: schema.ObjectTypeSpec{
Description: "Network admin rule.",
@@ -226877,6 +227018,136 @@
},
},
Resources: {
+ "azure-native:keyvault:AccessPolicy": {
+ APIVersion: "",
+ Path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/accessPolicy",
+ UpdateMethod: "",
+ PutParameters: {
+ {
+ Name: "subscriptionId",
+ Location: "path",
+ IsRequired: true,
+ Value: &resources.AzureAPIProperty{
+ Type: "string",
+ Items: (*resources.AzureAPIProperty)(nil),
+ AdditionalProperties: (*resources.AzureAPIProperty)(nil),
+ OneOf: nil,
+ Ref: "",
+ Const: nil,
+ Minimum: (*float64)(nil),
+ Maximum: (*float64)(nil),
+ MinLength: (*int64)(nil),
+ MaxLength: (*int64)(nil),
+ Pattern: "",
+ SdkName: "",
+ Containers: nil,
+ ForceNew: false,
+ AutoName: "",
+ IsStringSet: false,
+ Default: nil,
+ MaintainSubResourceIfUnset: false,
+ ArrayIdentifiers: nil,
+ },
+ Body: (*resources.AzureAPIType)(nil),
+ },
+ {
+ Name: "resourceGroupName",
+ Location: "path",
+ IsRequired: true,
+ Value: &resources.AzureAPIProperty{
+ Type: "string",
+ Items: (*resources.AzureAPIProperty)(nil),
+ AdditionalProperties: (*resources.AzureAPIProperty)(nil),
+ OneOf: nil,
+ Ref: "",
+ Const: nil,
+ Minimum: (*float64)(nil),
+ Maximum: (*float64)(nil),
+ MinLength: (*int64)(nil),
+ MaxLength: (*int64)(nil),
+ Pattern: "",
+ SdkName: "",
+ Containers: nil,
+ ForceNew: false,
+ AutoName: "",
+ IsStringSet: false,
+ Default: nil,
+ MaintainSubResourceIfUnset: false,
+ ArrayIdentifiers: nil,
+ },
+ Body: (*resources.AzureAPIType)(nil),
+ },
+ {
+ Name: "vaultName",
+ Location: "path",
+ IsRequired: true,
+ Value: &resources.AzureAPIProperty{
+ Type: "string",
+ Items: (*resources.AzureAPIProperty)(nil),
+ AdditionalProperties: (*resources.AzureAPIProperty)(nil),
+ OneOf: nil,
+ Ref: "",
+ Const: nil,
+ Minimum: (*float64)(nil),
+ Maximum: (*float64)(nil),
+ MinLength: (*int64)(nil),
+ MaxLength: (*int64)(nil),
+ Pattern: "",
+ SdkName: "",
+ Containers: nil,
+ ForceNew: false,
+ AutoName: "",
+ IsStringSet: false,
+ Default: nil,
+ MaintainSubResourceIfUnset: false,
+ ArrayIdentifiers: nil,
+ },
+ Body: (*resources.AzureAPIType)(nil),
+ },
+ {
+ Name: "properties",
+ Location: "body",
+ IsRequired: false,
+ Value: (*resources.AzureAPIProperty)(nil),
+ Body: &resources.AzureAPIType{
+ Properties: {
+ "policy": {
+ Type: "#/types/azure-native:keyvault:AccessPolicyEntry",
+ Items: (*resources.AzureAPIProperty)(nil),
+ AdditionalProperties: (*resources.AzureAPIProperty)(nil),
+ OneOf: nil,
+ Ref: "",
+ Const: nil,
+ Minimum: (*float64)(nil),
+ Maximum: (*float64)(nil),
+ MinLength: (*int64)(nil),
+ MaxLength: (*int64)(nil),
+ Pattern: "",
+ SdkName: "",
+ Containers: nil,
+ ForceNew: false,
+ AutoName: "",
+ IsStringSet: false,
+ Default: nil,
+ MaintainSubResourceIfUnset: false,
+ ArrayIdentifiers: nil,
+ },
+ },
+ RequiredProperties: {"resourceGroupName", "vaultName", "policy"},
+ },
+ },
+ },
+ Response: {},
+ Singleton: false,
+ DefaultBody: {},
+ PutAsyncStyle: "",
+ DeleteAsyncStyle: "",
+ ReadMethod: "",
+ ReadPath: "",
+ AutoLocationDisabled: false,
+ RequiredContainers: nil,
+ DefaultProperties: {},
+ },
"azure-native:network/v20230201:AdminRule": {
APIVersion: "2023-02-01",
Path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules/{ruleName}",
diff --git a/provider/pkg/gen/properties.go b/provider/pkg/gen/properties.go
index 27bf283f800d..f84f6a0bb8cd 100644
--- a/provider/pkg/gen/properties.go
+++ b/provider/pkg/gen/properties.go
@@ -222,6 +222,12 @@ func (m *moduleGenerator) genProperty(name string, schema *spec.Schema, context
}
}
+ // Special case for KeyVault access policies - they are a resource that can be defined inline in Vaults or
+ // stand-alone. The logic above cannot detect that because they are defined as a custom resource. #594
+ if m.resourceName == "Vault" && m.prov == "KeyVault" && name == "accessPolicies" {
+ maintainSubResourceIfUnset = true
+ }
+
description, err := getPropertyDescription(schema, context, maintainSubResourceIfUnset)
if err != nil {
return nil, nil, err
diff --git a/provider/pkg/provider/auth.go b/provider/pkg/provider/auth.go
index 8673b57865d5..a86a12fc5bbd 100644
--- a/provider/pkg/provider/auth.go
+++ b/provider/pkg/provider/auth.go
@@ -9,7 +9,10 @@ import (
"fmt"
"os/exec"
"strings"
+ "time"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
"github.com/Azure/go-autorest/autorest"
"github.com/hashicorp/go-azure-helpers/authentication"
"github.com/hashicorp/go-azure-helpers/sender"
@@ -308,6 +311,32 @@ func (k *azureNativeProvider) getOAuthToken(ctx context.Context, auth *authConfi
return token, nil
}
+type TokenFactory func(ctx context.Context, auth *authConfig, endpoint string) (string, error)
+
+// Implements the `azidentity.TokenCredential` interface.
+type azCoreTokenCredential struct {
+ p *azureNativeProvider
+}
+
+func (cred azCoreTokenCredential) GetToken(ctx context.Context, options policy.TokenRequestOptions) (azcore.AccessToken, error) {
+ authConfig, err := cred.p.getAuthConfig()
+ if err != nil {
+ return azcore.AccessToken{}, err
+ }
+ token, err := cred.p.getOAuthToken(ctx, authConfig, string(environments.ResourceManagerPublic.Endpoint))
+ if err != nil {
+ return azcore.AccessToken{}, err
+ }
+ return azcore.AccessToken{
+ Token: token,
+ // This hard-coded expiry is not ideal but we don't know the lifetime of the token at this
+ // point because the Azure response containing it is down the call stack in go-azure-helpers.
+ ExpiresOn: time.Now().Add(2 * time.Hour),
+ }, nil
+}
+
+var _ azcore.TokenCredential = (*azCoreTokenCredential)(nil)
+
func (k *azureNativeProvider) buildOAuthConfig(authConfig *authentication.Config) (*authentication.OAuthConfig, error) {
oauthConfig, err := authConfig.BuildOAuthConfig(k.environment.ActiveDirectoryEndpoint)
if err != nil {
diff --git a/provider/pkg/provider/provider.go b/provider/pkg/provider/provider.go
index 834ac37e975e..287f7d6617d6 100644
--- a/provider/pkg/provider/provider.go
+++ b/provider/pkg/provider/provider.go
@@ -221,9 +221,13 @@ func (k *azureNativeProvider) Configure(ctx context.Context,
k.client.Authorizer = resourceManagerAuth
k.client.UserAgent = k.getUserAgent()
- k.customResources = resources.BuildCustomResources(&env, k.subscriptionID,
+ azCoreTokenCredential := azCoreTokenCredential{p: k}
+ k.customResources, err = resources.BuildCustomResources(&env, k.subscriptionID,
resourceManagerBearerAuth, resourceManagerAuth, keyVaultBearerAuth,
- k.client.UserAgent)
+ k.client.UserAgent, azCoreTokenCredential)
+ if err != nil {
+ return nil, fmt.Errorf("initializing custom resources: %w", err)
+ }
return &rpc.ConfigureResponse{
SupportsPreview: true,
diff --git a/provider/pkg/resources/custom_keyvault_accesspolicy.go b/provider/pkg/resources/custom_keyvault_accesspolicy.go
new file mode 100644
index 000000000000..4d2cde8b209e
--- /dev/null
+++ b/provider/pkg/resources/custom_keyvault_accesspolicy.go
@@ -0,0 +1,333 @@
+// Copyright 2021, Pulumi Corporation. All rights reserved.
+
+package resources
+
+import (
+ "context"
+ "errors"
+ "fmt"
+ "regexp"
+
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore"
+ "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/keyvault/armkeyvault"
+ "github.com/pulumi/pulumi/pkg/v3/codegen/schema"
+ "github.com/pulumi/pulumi/sdk/v3/go/common/resource"
+)
+
+// Frequently used resource property names.
+const (
+ vaultName = "vaultName"
+ policy = "policy"
+)
+
+const path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/accessPolicy"
+
+var keyVaultAccessPolicyProperties = map[string]schema.PropertySpec{
+ resourceGroupName: {
+ TypeSpec: schema.TypeSpec{Type: "string"},
+ Description: "Name of the resource group that contains the vault.",
+ },
+ vaultName: {
+ TypeSpec: schema.TypeSpec{Type: "string"},
+ Description: "Name of the Key Vault.",
+ },
+ policy: {
+ // This type is generated from the Azure spec because the Vault resource references it.
+ TypeSpec: schema.TypeSpec{Ref: "#/types/azure-native:keyvault:AccessPolicyEntry"},
+ Description: "The definition of the access policy.",
+ },
+}
+
+func keyVaultAccessPolicy(client *armkeyvault.VaultsClient) *CustomResource {
+ c := &accessPolicyClient{client: client}
+ return &CustomResource{
+ tok: "azure-native:keyvault:AccessPolicy",
+ path: path,
+ Schema: &schema.ResourceSpec{
+ ObjectTypeSpec: schema.ObjectTypeSpec{
+ Description: "Key Vault Access Policy for managing policies on existing vaults.",
+ Type: "object",
+ Properties: keyVaultAccessPolicyProperties,
+ },
+ InputProperties: keyVaultAccessPolicyProperties,
+ RequiredInputs: []string{resourceGroupName, vaultName, policy},
+ },
+ Meta: &AzureAPIResource{
+ Path: path,
+ PutParameters: []AzureAPIParameter{
+ {Name: subscriptionId, Location: "path", IsRequired: true, Value: &AzureAPIProperty{Type: "string"}},
+ {Name: resourceGroupName, Location: "path", IsRequired: true, Value: &AzureAPIProperty{Type: "string"}},
+ {Name: vaultName, Location: "path", IsRequired: true, Value: &AzureAPIProperty{Type: "string"}},
+ {
+ Name: "properties",
+ Location: "body",
+ Body: &AzureAPIType{
+ Properties: map[string]AzureAPIProperty{
+ policy: {Type: "#/types/azure-native:keyvault:AccessPolicyEntry"},
+ },
+ RequiredProperties: []string{resourceGroupName, vaultName, policy},
+ },
+ },
+ },
+ },
+ Read: c.read,
+ Create: func(ctx context.Context, properties resource.PropertyMap) (map[string]interface{}, error) {
+ return c.write(ctx, properties, false /* shouldExist */)
+ },
+ Update: func(ctx context.Context, properties resource.PropertyMap) (map[string]interface{}, error) {
+ return c.write(ctx, properties, true /* shouldExist */)
+ },
+ Delete: func(ctx context.Context, properties resource.PropertyMap) error {
+ return c.modify(ctx, properties, armkeyvault.AccessPolicyUpdateKindRemove)
+ },
+ }
+}
+
+type accessPolicyClient struct {
+ client *armkeyvault.VaultsClient
+}
+
+func (c *accessPolicyClient) read(ctx context.Context, id string, properties resource.PropertyMap) (map[string]interface{}, bool, error) {
+ // input from path
+ parsedId, err := parseKeyVaultPathParams(id)
+ if err != nil {
+ return nil, false, err
+ }
+
+ // input from body
+ policyObj := properties[policy].ObjectValue()
+ objectId := policyObj["objectId"].StringValue()
+
+ vaultResult, err := c.client.Get(ctx, parsedId.ResourceGroup, parsedId.VaultName, &armkeyvault.VaultsClientGetOptions{})
+ if err != nil {
+ var respErr *azcore.ResponseError
+ if errors.As(err, &respErr) && respErr.StatusCode == 404 {
+ return nil, false, nil
+ }
+ return nil, false, err
+ }
+
+ for _, ap := range vaultResult.Properties.AccessPolicies {
+ if *ap.ObjectID == objectId {
+ ape := map[string]interface{}{
+ "tenantId": ap.TenantID,
+ "objectId": ap.ObjectID,
+ "applicationId": ap.ApplicationID,
+ "permissions": sdkPermissionsToMap(ap.Permissions),
+ }
+
+ return map[string]interface{}{
+ resourceGroupName: parsedId.ResourceGroup,
+ vaultName: vaultResult.Name,
+ policy: ape,
+ }, true, nil
+ }
+ }
+
+ return properties.Mappable(), false, nil
+}
+
+func azureIdFromProperties(properties resource.PropertyMap) (string, error) {
+ if !properties.HasValue(resourceGroupName) || !properties.HasValue(vaultName) {
+ return "", fmt.Errorf("missing required property %s or %s", resourceGroupName, vaultName)
+ }
+ rg := properties[resourceGroupName].StringValue()
+ vaultName := properties[vaultName].StringValue()
+
+ return fmt.Sprintf("/subscriptions/{subscription}/resourceGroups/%s/providers/Microsoft.KeyVault/vaults/%s/accessPolicy",
+ rg, vaultName), nil
+}
+
+func (c *accessPolicyClient) readFromProperties(ctx context.Context, properties resource.PropertyMap) (map[string]interface{}, bool, error) {
+ id, err := azureIdFromProperties(properties)
+ if err != nil {
+ return nil, false, err
+ }
+ return c.read(ctx, id, properties)
+}
+
+func (c *accessPolicyClient) write(ctx context.Context, properties resource.PropertyMap, shouldExist bool) (map[string]interface{}, error) {
+ _, found, err := c.readFromProperties(ctx, properties)
+ if err != nil {
+ return nil, err
+ }
+
+ if (found && !shouldExist) || (!found && shouldExist) {
+ policyObj := properties[policy].ObjectValue()
+ objectId := policyObj["objectId"].StringValue()
+ msg := "access policy for %s already exists"
+ if shouldExist {
+ msg = "access policy for %s does not exist"
+ }
+ return nil, fmt.Errorf(msg, objectId)
+ }
+
+ err = c.modify(ctx, properties, armkeyvault.AccessPolicyUpdateKindReplace)
+ if err != nil {
+ return nil, err
+ }
+
+ // Read it back.
+ state, found, err := c.readFromProperties(ctx, properties)
+ if !found {
+ return nil, errors.New("newly written access policy not found")
+ }
+ return state, err
+}
+
+func sdkPolicyParamsFromProperties(properties resource.PropertyMap) (*armkeyvault.VaultAccessPolicyParameters, error) {
+ if !properties.HasValue(policy) {
+ return nil, fmt.Errorf("missing required property %s", policy)
+ }
+ policyObj := properties[policy].ObjectValue()
+ if !policyObj.HasValue("objectId") || !policyObj.HasValue("tenantId") {
+ return nil, fmt.Errorf("missing required property objectId or tenantId")
+ }
+ objectId := policyObj["objectId"].StringValue()
+ tenantId := policyObj["tenantId"].StringValue()
+
+ var applicationId string
+ if policyObj.HasValue("applicationId") {
+ applicationId = policyObj["applicationId"].StringValue()
+ }
+
+ var permissions armkeyvault.Permissions
+ if permissionMap, ok := policyObj["permissions"]; ok {
+ permissionVals := permissionMap.ObjectValue()
+ permissions = propertyPermissionsToSdk(permissionVals)
+ }
+
+ return &armkeyvault.VaultAccessPolicyParameters{
+ Properties: &armkeyvault.VaultAccessPolicyProperties{
+ AccessPolicies: []*armkeyvault.AccessPolicyEntry{
+ {
+ ObjectID: &objectId,
+ Permissions: &permissions,
+ TenantID: &tenantId,
+ ApplicationID: &applicationId,
+ },
+ },
+ },
+ }, nil
+}
+
+// modify creates, updates, or deletes depending on the op parameter.
+func (c *accessPolicyClient) modify(ctx context.Context, properties resource.PropertyMap, op armkeyvault.AccessPolicyUpdateKind) error {
+ rg := properties[resourceGroupName].StringValue()
+ vaultName := properties[vaultName].StringValue()
+
+ params, err := sdkPolicyParamsFromProperties(properties)
+ if err != nil {
+ return err
+ }
+
+ _, err = c.client.UpdateAccessPolicy(ctx, rg, vaultName,
+ op,
+ *params,
+ &armkeyvault.VaultsClientUpdateAccessPolicyOptions{})
+ return err
+}
+
+type vaultPathParams struct {
+ ResourceGroup string
+ VaultName string
+}
+
+func parseKeyVaultPathParams(id string) (vaultPathParams, error) {
+ idMatcher := regexp.MustCompile(`(?i)^/subscriptions/.+?/resourceGroups/(.+?)/providers/Microsoft.KeyVault/vaults/(.+?)/accessPolicy$`)
+ matches := idMatcher.FindStringSubmatch(id)
+ if len(matches) != 3 {
+ return vaultPathParams{}, fmt.Errorf("unable to parse key vault access policy id in the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/accessPolicy: %s", id)
+ }
+ return vaultPathParams{
+ ResourceGroup: matches[1],
+ VaultName: matches[2],
+ }, nil
+}
+
+func sdkPolicyToMap(ap *armkeyvault.AccessPolicyEntry) map[string]interface{} {
+ return map[string]interface{}{
+ "tenantId": ap.TenantID,
+ "objectId": ap.ObjectID,
+ "applicationId": ap.ApplicationID,
+ "permissions": map[string]interface{}{
+ "certificatePermissions": ap.Permissions.Certificates,
+ "keyPermissions": ap.Permissions.Keys,
+ "secretPermissions": ap.Permissions.Secrets,
+ "storagePermissions": ap.Permissions.Storage,
+ },
+ }
+}
+
+func sdkPermissionsToMap(permissions *armkeyvault.Permissions) map[string]interface{} {
+ result := map[string]interface{}{}
+
+ if len(permissions.Certificates) > 0 {
+ certPermissions := make([]string, 0, len(permissions.Certificates))
+ for _, p := range permissions.Certificates {
+ certPermissions = append(certPermissions, string(*p))
+ }
+ result["certificates"] = certPermissions
+ }
+ if len(permissions.Keys) > 0 {
+ keyPermissions := make([]string, 0, len(permissions.Keys))
+ for _, p := range permissions.Keys {
+ keyPermissions = append(keyPermissions, string(*p))
+ }
+ result["keys"] = keyPermissions
+ }
+ if len(permissions.Secrets) > 0 {
+ secretPermissions := make([]string, 0, len(permissions.Secrets))
+ for _, p := range permissions.Secrets {
+ secretPermissions = append(secretPermissions, string(*p))
+ }
+ result["secrets"] = secretPermissions
+ }
+ if len(permissions.Storage) > 0 {
+ storagePermissions := make([]string, 0, len(permissions.Storage))
+ for _, p := range permissions.Storage {
+ storagePermissions = append(storagePermissions, string(*p))
+ }
+ result["storage"] = storagePermissions
+ }
+ return result
+}
+
+func propertyPermissionsToSdk(permissions resource.PropertyMap) armkeyvault.Permissions {
+ result := armkeyvault.Permissions{}
+
+ keyPermissions, ok := permissions["keys"]
+ if ok {
+ result.Keys = []*armkeyvault.KeyPermissions{}
+ for _, v := range keyPermissions.ArrayValue() {
+ perm := armkeyvault.KeyPermissions(v.StringValue())
+ result.Keys = append(result.Keys, &perm)
+ }
+ }
+ certPermissions, ok := permissions["certificates"]
+ if ok {
+ result.Certificates = []*armkeyvault.CertificatePermissions{}
+ for _, v := range certPermissions.ArrayValue() {
+ perm := armkeyvault.CertificatePermissions(v.StringValue())
+ result.Certificates = append(result.Certificates, &perm)
+ }
+ }
+ secretPermissions, ok := permissions["secrets"]
+ if ok {
+ result.Secrets = []*armkeyvault.SecretPermissions{}
+ for _, v := range secretPermissions.ArrayValue() {
+ perm := armkeyvault.SecretPermissions(v.StringValue())
+ result.Secrets = append(result.Secrets, &perm)
+ }
+ }
+ storagePermissions, ok := permissions["storage"]
+ if ok {
+ result.Storage = []*armkeyvault.StoragePermissions{}
+ for _, v := range storagePermissions.ArrayValue() {
+ perm := armkeyvault.StoragePermissions(v.StringValue())
+ result.Storage = append(result.Storage, &perm)
+ }
+ }
+
+ return result
+}
diff --git a/provider/pkg/resources/custom_keyvault_accesspolicy_test.go b/provider/pkg/resources/custom_keyvault_accesspolicy_test.go
new file mode 100644
index 000000000000..cc73195c28a4
--- /dev/null
+++ b/provider/pkg/resources/custom_keyvault_accesspolicy_test.go
@@ -0,0 +1,113 @@
+package resources
+
+import (
+ "testing"
+
+ "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/keyvault/armkeyvault"
+ "github.com/pulumi/pulumi/sdk/v3/go/common/resource"
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+)
+
+func TestParsePathParams(t *testing.T) {
+ const accessPolicyAzureId = "/subscriptions/0282681f-7a9e-424b-80b2-96babd57a8a1/resourceGroups/pulumi-dev-shared/providers/Microsoft.KeyVault/vaults/pulumi-testing/accessPolicy"
+ params, err := parseKeyVaultPathParams(accessPolicyAzureId)
+ require.NoError(t, err)
+ assert.Equal(t, "pulumi-testing", params.VaultName)
+ assert.Equal(t, "pulumi-dev-shared", params.ResourceGroup)
+
+ for _, invalidId := range []string{
+ "",
+ "/subscriptions/0282681f-7a9e-424b-80b2-96babd57a8a1/resourceGroups/pulumi-dev-shared",
+ "/subscriptions/0282681f-7a9e-424b-80b2-96babd57a8a1/resourceGroups/pulumi-dev-shared/providers/Microsoft.KeyVault",
+ "/subscriptions/0282681f-7a9e-424b-80b2-96babd57a8a1/resourceGroups/pulumi-dev-shared/providers/Microsoft.KeyVault/vaults/pulumi-testing",
+ "/subscriptions//resourceGroups/pulumi-dev-shared/providers/Microsoft.KeyVault/vaults/pulumi-testing/accessPolicy",
+ "/subscriptions/0282681f-7a9e-424b-80b2-96babd57a8a1/resourceGroups//providers/Microsoft.KeyVault/vaults/pulumi-testing/accessPolicy",
+ "/subscriptions/0282681f-7a9e-424b-80b2-96babd57a8a1/resourceGroups/pulumi-dev-shared/providers/Microsoft.KeyVault/vaults//accessPolicy",
+ } {
+ _, err := parseKeyVaultPathParams(invalidId)
+ assert.Error(t, err, invalidId)
+ }
+}
+
+func TestAzureIdFromProperties(t *testing.T) {
+ for _, incomplete := range []resource.PropertyMap{
+ {
+ resource.PropertyKey(resourceGroupName): resource.NewStringProperty("rg"),
+ },
+ {
+ resource.PropertyKey(vaultName): resource.NewStringProperty("vault"),
+ },
+ } {
+ _, err := azureIdFromProperties(incomplete)
+ assert.Error(t, err)
+ }
+
+ id, err := azureIdFromProperties(resource.PropertyMap{
+ resource.PropertyKey(resourceGroupName): resource.NewStringProperty("rg"),
+ resource.PropertyKey(vaultName): resource.NewStringProperty("vault"),
+ })
+ require.NoError(t, err)
+ assert.Equal(t, "/subscriptions/{subscription}/resourceGroups/rg/providers/Microsoft.KeyVault/vaults/vault/accessPolicy", id)
+}
+
+func TestSdkParamsFromProperties(t *testing.T) {
+ for _, incomplete := range []resource.PropertyMap{
+ {},
+ {
+ policy: resource.NewObjectProperty(resource.PropertyMap{
+ "objectId": resource.NewStringProperty("objectId"),
+ }),
+ },
+ {
+ policy: resource.NewObjectProperty(resource.PropertyMap{
+ "tenantId": resource.NewStringProperty("tenantId"),
+ }),
+ },
+ } {
+ _, err := sdkPolicyParamsFromProperties(incomplete)
+ assert.Error(t, err)
+ }
+
+ complete, err := sdkPolicyParamsFromProperties(resource.PropertyMap{
+ policy: resource.NewObjectProperty(resource.PropertyMap{
+ "objectId": resource.NewStringProperty("objectId"),
+ "tenantId": resource.NewStringProperty("tenantId"),
+ "applicationId": resource.NewStringProperty("applicationId"),
+ }),
+ })
+ require.NoError(t, err)
+ assert.Len(t, complete.Properties.AccessPolicies, 1)
+ assert.Equal(t, "objectId", *complete.Properties.AccessPolicies[0].ObjectID)
+ assert.Equal(t, "tenantId", *complete.Properties.AccessPolicies[0].TenantID)
+ assert.Equal(t, "applicationId", *complete.Properties.AccessPolicies[0].ApplicationID)
+}
+
+func TestPropertyPermissionsToSdk(t *testing.T) {
+ permissions := resource.PropertyMap{
+ "keys": resource.NewArrayProperty([]resource.PropertyValue{
+ resource.NewStringProperty("get"),
+ }),
+ "certificates": resource.NewArrayProperty([]resource.PropertyValue{
+ resource.NewStringProperty("get"),
+ resource.NewStringProperty("list"),
+ }),
+ "secrets": resource.NewArrayProperty([]resource.PropertyValue{
+ resource.NewStringProperty("purge"),
+ }),
+ "storage": resource.NewArrayProperty([]resource.PropertyValue{
+ resource.NewStringProperty("deletesas"),
+ }),
+ }
+
+ sdkPermissions := propertyPermissionsToSdk(permissions)
+ assert.Len(t, sdkPermissions.Keys, 1)
+ assert.Equal(t, armkeyvault.KeyPermissionsGet, *sdkPermissions.Keys[0])
+ assert.Len(t, sdkPermissions.Certificates, 2)
+ assert.Equal(t, armkeyvault.CertificatePermissionsGet, *sdkPermissions.Certificates[0])
+ assert.Equal(t, armkeyvault.CertificatePermissionsList, *sdkPermissions.Certificates[1])
+ assert.Len(t, sdkPermissions.Secrets, 1)
+ assert.Equal(t, armkeyvault.SecretPermissionsPurge, *sdkPermissions.Secrets[0])
+ assert.Len(t, sdkPermissions.Storage, 1)
+ assert.Equal(t, armkeyvault.StoragePermissionsDeletesas, *sdkPermissions.Storage[0])
+}
diff --git a/provider/pkg/resources/customresources.go b/provider/pkg/resources/customresources.go
index 8868b0bc32c3..06575a228e4b 100644
--- a/provider/pkg/resources/customresources.go
+++ b/provider/pkg/resources/customresources.go
@@ -5,6 +5,9 @@ package resources
import (
"context"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm"
+ "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/keyvault/armkeyvault"
"github.com/Azure/azure-sdk-for-go/services/keyvault/2016-10-01/keyvault"
"github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-04-01/storage"
"github.com/Azure/go-autorest/autorest"
@@ -42,12 +45,18 @@ func BuildCustomResources(env *azure.Environment,
bearerAuth autorest.Authorizer,
tokenAuth autorest.Authorizer,
kvBearerAuth autorest.Authorizer,
- userAgent string) map[string]*CustomResource {
+ userAgent string,
+ tokenFactory azcore.TokenCredential) (map[string]*CustomResource, error) {
kvClient := keyvault.New()
kvClient.Authorizer = kvBearerAuth
kvClient.UserAgent = userAgent
+ armKVClient, err := armkeyvault.NewVaultsClient(subscriptionID, tokenFactory, &arm.ClientOptions{})
+ if err != nil {
+ return nil, err
+ }
+
storageAccountsClient := storage.NewAccountsClientWithBaseURI(env.ResourceManagerEndpoint, subscriptionID)
storageAccountsClient.Authorizer = tokenAuth
storageAccountsClient.UserAgent = userAgent
@@ -56,6 +65,7 @@ func BuildCustomResources(env *azure.Environment,
// Azure KeyVault resources.
keyVaultSecret(env.KeyVaultDNSSuffix, &kvClient),
keyVaultKey(env.KeyVaultDNSSuffix, &kvClient),
+ keyVaultAccessPolicy(armKVClient),
// Storage resources.
newStorageAccountStaticWebsite(env, &storageAccountsClient),
newBlob(env, &storageAccountsClient),
@@ -65,11 +75,11 @@ func BuildCustomResources(env *azure.Environment,
for _, r := range resources {
result[r.path] = r
}
- return result
+ return result, nil
}
// featureLookup is a map of custom resource to lookup their capabilities.
-var featureLookup = BuildCustomResources(&azure.Environment{}, "", nil, nil, nil, "")
+var featureLookup, _ = BuildCustomResources(&azure.Environment{}, "", nil, nil, nil, "", nil)
// HasCustomDelete returns true if a custom DELETE operation is defined for a given API path.
func HasCustomDelete(path string) bool {
diff --git a/sdk/dotnet/KeyVault/AccessPolicy.cs b/sdk/dotnet/KeyVault/AccessPolicy.cs
new file mode 100644
index 000000000000..66d538396f45
--- /dev/null
+++ b/sdk/dotnet/KeyVault/AccessPolicy.cs
@@ -0,0 +1,104 @@
+// *** WARNING: this file was generated by pulumi. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.AzureNative.KeyVault
+{
+ ///
+ /// Key Vault Access Policy for managing policies on existing vaults.
+ ///
+ [AzureNativeResourceType("azure-native:keyvault:AccessPolicy")]
+ public partial class AccessPolicy : global::Pulumi.CustomResource
+ {
+ ///
+ /// The definition of the access policy.
+ ///
+ [Output("policy")]
+ public Output Policy { get; private set; } = null!;
+
+ ///
+ /// Name of the resource group that contains the vault.
+ ///
+ [Output("resourceGroupName")]
+ public Output ResourceGroupName { get; private set; } = null!;
+
+ ///
+ /// Name of the Key Vault.
+ ///
+ [Output("vaultName")]
+ public Output VaultName { get; private set; } = null!;
+
+
+ ///
+ /// Create a AccessPolicy resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public AccessPolicy(string name, AccessPolicyArgs args, CustomResourceOptions? options = null)
+ : base("azure-native:keyvault:AccessPolicy", name, args ?? new AccessPolicyArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private AccessPolicy(string name, Input id, CustomResourceOptions? options = null)
+ : base("azure-native:keyvault:AccessPolicy", name, null, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing AccessPolicy resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// A bag of options that control this resource's behavior
+ public static AccessPolicy Get(string name, Input id, CustomResourceOptions? options = null)
+ {
+ return new AccessPolicy(name, id, options);
+ }
+ }
+
+ public sealed class AccessPolicyArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The definition of the access policy.
+ ///
+ [Input("policy", required: true)]
+ public Input Policy { get; set; } = null!;
+
+ ///
+ /// Name of the resource group that contains the vault.
+ ///
+ [Input("resourceGroupName", required: true)]
+ public Input ResourceGroupName { get; set; } = null!;
+
+ ///
+ /// Name of the Key Vault.
+ ///
+ [Input("vaultName", required: true)]
+ public Input VaultName { get; set; } = null!;
+
+ public AccessPolicyArgs()
+ {
+ }
+ public static new AccessPolicyArgs Empty => new AccessPolicyArgs();
+ }
+}
diff --git a/sdk/dotnet/KeyVault/Inputs/VaultPropertiesArgs.cs b/sdk/dotnet/KeyVault/Inputs/VaultPropertiesArgs.cs
index ce1b57c4b5dd..b11d699ef804 100644
--- a/sdk/dotnet/KeyVault/Inputs/VaultPropertiesArgs.cs
+++ b/sdk/dotnet/KeyVault/Inputs/VaultPropertiesArgs.cs
@@ -20,6 +20,7 @@ public sealed class VaultPropertiesArgs : global::Pulumi.ResourceArgs
///
/// An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ /// These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
///
public InputList AccessPolicies
{
diff --git a/sdk/dotnet/KeyVault/Outputs/AccessPolicyEntry.cs b/sdk/dotnet/KeyVault/Outputs/AccessPolicyEntry.cs
new file mode 100644
index 000000000000..8b3d54a5efcd
--- /dev/null
+++ b/sdk/dotnet/KeyVault/Outputs/AccessPolicyEntry.cs
@@ -0,0 +1,52 @@
+// *** WARNING: this file was generated by pulumi. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.AzureNative.KeyVault.Outputs
+{
+
+ ///
+ /// An identity that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID.
+ ///
+ [OutputType]
+ public sealed class AccessPolicyEntry
+ {
+ ///
+ /// Application ID of the client making request on behalf of a principal
+ ///
+ public readonly string? ApplicationId;
+ ///
+ /// The object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies.
+ ///
+ public readonly string ObjectId;
+ ///
+ /// Permissions the identity has for keys, secrets and certificates.
+ ///
+ public readonly Outputs.Permissions Permissions;
+ ///
+ /// The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
+ ///
+ public readonly string TenantId;
+
+ [OutputConstructor]
+ private AccessPolicyEntry(
+ string? applicationId,
+
+ string objectId,
+
+ Outputs.Permissions permissions,
+
+ string tenantId)
+ {
+ ApplicationId = applicationId;
+ ObjectId = objectId;
+ Permissions = permissions;
+ TenantId = tenantId;
+ }
+ }
+}
diff --git a/sdk/dotnet/KeyVault/Outputs/Permissions.cs b/sdk/dotnet/KeyVault/Outputs/Permissions.cs
new file mode 100644
index 000000000000..1ab7371d629d
--- /dev/null
+++ b/sdk/dotnet/KeyVault/Outputs/Permissions.cs
@@ -0,0 +1,52 @@
+// *** WARNING: this file was generated by pulumi. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.AzureNative.KeyVault.Outputs
+{
+
+ ///
+ /// Permissions the identity has for keys, secrets, certificates and storage.
+ ///
+ [OutputType]
+ public sealed class Permissions
+ {
+ ///
+ /// Permissions to certificates
+ ///
+ public readonly ImmutableArray Certificates;
+ ///
+ /// Permissions to keys
+ ///
+ public readonly ImmutableArray Keys;
+ ///
+ /// Permissions to secrets
+ ///
+ public readonly ImmutableArray Secrets;
+ ///
+ /// Permissions to storage accounts
+ ///
+ public readonly ImmutableArray Storage;
+
+ [OutputConstructor]
+ private Permissions(
+ ImmutableArray certificates,
+
+ ImmutableArray keys,
+
+ ImmutableArray secrets,
+
+ ImmutableArray storage)
+ {
+ Certificates = certificates;
+ Keys = keys;
+ Secrets = secrets;
+ Storage = storage;
+ }
+ }
+}
diff --git a/sdk/dotnet/KeyVault/Outputs/VaultPropertiesResponse.cs b/sdk/dotnet/KeyVault/Outputs/VaultPropertiesResponse.cs
index 753744109dc5..ea3a5e0c9e96 100644
--- a/sdk/dotnet/KeyVault/Outputs/VaultPropertiesResponse.cs
+++ b/sdk/dotnet/KeyVault/Outputs/VaultPropertiesResponse.cs
@@ -18,6 +18,7 @@ public sealed class VaultPropertiesResponse
{
///
/// An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ /// These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
///
public readonly ImmutableArray AccessPolicies;
///
diff --git a/sdk/dotnet/KeyVault/V20230201/Inputs/VaultPropertiesArgs.cs b/sdk/dotnet/KeyVault/V20230201/Inputs/VaultPropertiesArgs.cs
index 7b8e63f8e394..4b7748dfcae2 100644
--- a/sdk/dotnet/KeyVault/V20230201/Inputs/VaultPropertiesArgs.cs
+++ b/sdk/dotnet/KeyVault/V20230201/Inputs/VaultPropertiesArgs.cs
@@ -20,6 +20,7 @@ public sealed class VaultPropertiesArgs : global::Pulumi.ResourceArgs
///
/// An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ /// These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
///
public InputList AccessPolicies
{
diff --git a/sdk/dotnet/KeyVault/V20230201/Outputs/VaultPropertiesResponse.cs b/sdk/dotnet/KeyVault/V20230201/Outputs/VaultPropertiesResponse.cs
index 41cdb45f3f69..68bf5d989590 100644
--- a/sdk/dotnet/KeyVault/V20230201/Outputs/VaultPropertiesResponse.cs
+++ b/sdk/dotnet/KeyVault/V20230201/Outputs/VaultPropertiesResponse.cs
@@ -18,6 +18,7 @@ public sealed class VaultPropertiesResponse
{
///
/// An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ /// These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
///
public readonly ImmutableArray AccessPolicies;
///
diff --git a/sdk/dotnet/KeyVault/V20230701/Inputs/VaultPropertiesArgs.cs b/sdk/dotnet/KeyVault/V20230701/Inputs/VaultPropertiesArgs.cs
index 7dcde3ac866a..916d6b489b82 100644
--- a/sdk/dotnet/KeyVault/V20230701/Inputs/VaultPropertiesArgs.cs
+++ b/sdk/dotnet/KeyVault/V20230701/Inputs/VaultPropertiesArgs.cs
@@ -20,6 +20,7 @@ public sealed class VaultPropertiesArgs : global::Pulumi.ResourceArgs
///
/// An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ /// These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
///
public InputList AccessPolicies
{
diff --git a/sdk/dotnet/KeyVault/V20230701/Outputs/VaultPropertiesResponse.cs b/sdk/dotnet/KeyVault/V20230701/Outputs/VaultPropertiesResponse.cs
index e9b571c9d69b..7887cdc06335 100644
--- a/sdk/dotnet/KeyVault/V20230701/Outputs/VaultPropertiesResponse.cs
+++ b/sdk/dotnet/KeyVault/V20230701/Outputs/VaultPropertiesResponse.cs
@@ -18,6 +18,7 @@ public sealed class VaultPropertiesResponse
{
///
/// An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ /// These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
///
public readonly ImmutableArray AccessPolicies;
///
diff --git a/sdk/nodejs/keyvault/accessPolicy.ts b/sdk/nodejs/keyvault/accessPolicy.ts
new file mode 100644
index 000000000000..88917199271f
--- /dev/null
+++ b/sdk/nodejs/keyvault/accessPolicy.ts
@@ -0,0 +1,102 @@
+// *** WARNING: this file was generated by pulumi-language-nodejs. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+import * as pulumi from "@pulumi/pulumi";
+import * as inputs from "../types/input";
+import * as outputs from "../types/output";
+import * as enums from "../types/enums";
+import * as utilities from "../utilities";
+
+/**
+ * Key Vault Access Policy for managing policies on existing vaults.
+ */
+export class AccessPolicy extends pulumi.CustomResource {
+ /**
+ * Get an existing AccessPolicy resource's state with the given name, ID, and optional extra
+ * properties used to qualify the lookup.
+ *
+ * @param name The _unique_ name of the resulting resource.
+ * @param id The _unique_ provider ID of the resource to lookup.
+ * @param opts Optional settings to control the behavior of the CustomResource.
+ */
+ public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): AccessPolicy {
+ return new AccessPolicy(name, undefined as any, { ...opts, id: id });
+ }
+
+ /** @internal */
+ public static readonly __pulumiType = 'azure-native:keyvault:AccessPolicy';
+
+ /**
+ * Returns true if the given object is an instance of AccessPolicy. This is designed to work even
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
+ */
+ public static isInstance(obj: any): obj is AccessPolicy {
+ if (obj === undefined || obj === null) {
+ return false;
+ }
+ return obj['__pulumiType'] === AccessPolicy.__pulumiType;
+ }
+
+ /**
+ * The definition of the access policy.
+ */
+ public readonly policy!: pulumi.Output;
+ /**
+ * Name of the resource group that contains the vault.
+ */
+ public readonly resourceGroupName!: pulumi.Output;
+ /**
+ * Name of the Key Vault.
+ */
+ public readonly vaultName!: pulumi.Output;
+
+ /**
+ * Create a AccessPolicy resource with the given unique name, arguments, and options.
+ *
+ * @param name The _unique_ name of the resource.
+ * @param args The arguments to use to populate this resource's properties.
+ * @param opts A bag of options that control this resource's behavior.
+ */
+ constructor(name: string, args: AccessPolicyArgs, opts?: pulumi.CustomResourceOptions) {
+ let resourceInputs: pulumi.Inputs = {};
+ opts = opts || {};
+ if (!opts.id) {
+ if ((!args || args.policy === undefined) && !opts.urn) {
+ throw new Error("Missing required property 'policy'");
+ }
+ if ((!args || args.resourceGroupName === undefined) && !opts.urn) {
+ throw new Error("Missing required property 'resourceGroupName'");
+ }
+ if ((!args || args.vaultName === undefined) && !opts.urn) {
+ throw new Error("Missing required property 'vaultName'");
+ }
+ resourceInputs["policy"] = args ? args.policy : undefined;
+ resourceInputs["resourceGroupName"] = args ? args.resourceGroupName : undefined;
+ resourceInputs["vaultName"] = args ? args.vaultName : undefined;
+ } else {
+ resourceInputs["policy"] = undefined /*out*/;
+ resourceInputs["resourceGroupName"] = undefined /*out*/;
+ resourceInputs["vaultName"] = undefined /*out*/;
+ }
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
+ super(AccessPolicy.__pulumiType, name, resourceInputs, opts);
+ }
+}
+
+/**
+ * The set of arguments for constructing a AccessPolicy resource.
+ */
+export interface AccessPolicyArgs {
+ /**
+ * The definition of the access policy.
+ */
+ policy: pulumi.Input;
+ /**
+ * Name of the resource group that contains the vault.
+ */
+ resourceGroupName: pulumi.Input;
+ /**
+ * Name of the Key Vault.
+ */
+ vaultName: pulumi.Input;
+}
diff --git a/sdk/nodejs/keyvault/index.ts b/sdk/nodejs/keyvault/index.ts
index db26e8c6c13b..094d9b30b424 100644
--- a/sdk/nodejs/keyvault/index.ts
+++ b/sdk/nodejs/keyvault/index.ts
@@ -5,6 +5,11 @@ import * as pulumi from "@pulumi/pulumi";
import * as utilities from "../utilities";
// Export members:
+export { AccessPolicyArgs } from "./accessPolicy";
+export type AccessPolicy = import("./accessPolicy").AccessPolicy;
+export const AccessPolicy: typeof import("./accessPolicy").AccessPolicy = null as any;
+utilities.lazyLoad(exports, ["AccessPolicy"], () => require("./accessPolicy"));
+
export { GetKeyArgs, GetKeyResult, GetKeyOutputArgs } from "./getKey";
export const getKey: typeof import("./getKey").getKey = null as any;
export const getKeyOutput: typeof import("./getKey").getKeyOutput = null as any;
@@ -82,6 +87,8 @@ const _module = {
version: utilities.getVersion(),
construct: (name: string, type: string, urn: string): pulumi.Resource => {
switch (type) {
+ case "azure-native:keyvault:AccessPolicy":
+ return new AccessPolicy(name, undefined, { urn })
case "azure-native:keyvault:Key":
return new Key(name, undefined, { urn })
case "azure-native:keyvault:MHSMPrivateEndpointConnection":
diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json
index 20cf39dd5039..452e43930da7 100644
--- a/sdk/nodejs/tsconfig.json
+++ b/sdk/nodejs/tsconfig.json
@@ -7814,6 +7814,7 @@
"iotoperationsorchestrator/v20231004preview/instance.ts",
"iotoperationsorchestrator/v20231004preview/solution.ts",
"iotoperationsorchestrator/v20231004preview/target.ts",
+ "keyvault/accessPolicy.ts",
"keyvault/getKey.ts",
"keyvault/getMHSMPrivateEndpointConnection.ts",
"keyvault/getManagedHsm.ts",
diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts
index 0acb362c1a9e..ffb24c575f04 100644
--- a/sdk/nodejs/types/input.ts
+++ b/sdk/nodejs/types/input.ts
@@ -258317,6 +258317,7 @@ export namespace keyvault {
export interface VaultPropertiesArgs {
/**
* An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
*/
accessPolicies?: pulumi.Input[]>;
/**
@@ -258835,6 +258836,7 @@ export namespace keyvault {
export interface VaultPropertiesArgs {
/**
* An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
*/
accessPolicies?: pulumi.Input[]>;
/**
@@ -259369,6 +259371,7 @@ export namespace keyvault {
export interface VaultPropertiesArgs {
/**
* An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
*/
accessPolicies?: pulumi.Input[]>;
/**
diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts
index d9f067223b26..616d78ebe91f 100644
--- a/sdk/nodejs/types/output.ts
+++ b/sdk/nodejs/types/output.ts
@@ -353292,6 +353292,28 @@ export namespace iotoperationsorchestrator {
}
export namespace keyvault {
+ /**
+ * An identity that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID.
+ */
+ export interface AccessPolicyEntry {
+ /**
+ * Application ID of the client making request on behalf of a principal
+ */
+ applicationId?: string;
+ /**
+ * The object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies.
+ */
+ objectId: string;
+ /**
+ * Permissions the identity has for keys, secrets and certificates.
+ */
+ permissions: outputs.keyvault.Permissions;
+ /**
+ * The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
+ */
+ tenantId: string;
+ }
+
/**
* An identity that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID.
*/
@@ -353658,6 +353680,28 @@ export namespace keyvault {
virtualNetworkRules?: outputs.keyvault.VirtualNetworkRuleResponse[];
}
+ /**
+ * Permissions the identity has for keys, secrets, certificates and storage.
+ */
+ export interface Permissions {
+ /**
+ * Permissions to certificates
+ */
+ certificates?: (string | enums.keyvault.CertificatePermissions)[];
+ /**
+ * Permissions to keys
+ */
+ keys?: (string | enums.keyvault.KeyPermissions)[];
+ /**
+ * Permissions to secrets
+ */
+ secrets?: (string | enums.keyvault.SecretPermissions)[];
+ /**
+ * Permissions to storage accounts
+ */
+ storage?: (string | enums.keyvault.StoragePermissions)[];
+ }
+
/**
* Permissions the identity has for keys, secrets, certificates and storage.
*/
@@ -353858,6 +353902,7 @@ export namespace keyvault {
export interface VaultPropertiesResponse {
/**
* An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
*/
accessPolicies?: outputs.keyvault.AccessPolicyEntryResponse[];
/**
@@ -354515,6 +354560,7 @@ export namespace keyvault {
export interface VaultPropertiesResponse {
/**
* An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
*/
accessPolicies?: outputs.keyvault.v20230201.AccessPolicyEntryResponse[];
/**
@@ -355210,6 +355256,7 @@ export namespace keyvault {
export interface VaultPropertiesResponse {
/**
* An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
*/
accessPolicies?: outputs.keyvault.v20230701.AccessPolicyEntryResponse[];
/**
diff --git a/sdk/python/pulumi_azure_native/__init__.py b/sdk/python/pulumi_azure_native/__init__.py
index eb382e8ccb25..d958395760f7 100644
--- a/sdk/python/pulumi_azure_native/__init__.py
+++ b/sdk/python/pulumi_azure_native/__init__.py
@@ -7829,6 +7829,7 @@
"mod": "keyvault",
"fqn": "pulumi_azure_native.keyvault",
"classes": {
+ "azure-native:keyvault:AccessPolicy": "AccessPolicy",
"azure-native:keyvault:Key": "Key",
"azure-native:keyvault:MHSMPrivateEndpointConnection": "MHSMPrivateEndpointConnection",
"azure-native:keyvault:ManagedHsm": "ManagedHsm",
diff --git a/sdk/python/pulumi_azure_native/keyvault/__init__.py b/sdk/python/pulumi_azure_native/keyvault/__init__.py
index d630861115a4..7c9ee830b978 100644
--- a/sdk/python/pulumi_azure_native/keyvault/__init__.py
+++ b/sdk/python/pulumi_azure_native/keyvault/__init__.py
@@ -6,6 +6,7 @@
import typing
# Export this package's modules as members:
from ._enums import *
+from .access_policy import *
from .get_key import *
from .get_managed_hsm import *
from .get_mhsm_private_endpoint_connection import *
diff --git a/sdk/python/pulumi_azure_native/keyvault/_inputs.py b/sdk/python/pulumi_azure_native/keyvault/_inputs.py
index 14c5e5cb05e3..a4f2970e807a 100644
--- a/sdk/python/pulumi_azure_native/keyvault/_inputs.py
+++ b/sdk/python/pulumi_azure_native/keyvault/_inputs.py
@@ -1309,6 +1309,7 @@ def __init__(__self__, *,
:param pulumi.Input['SkuArgs'] sku: SKU details
:param pulumi.Input[str] tenant_id: The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
:param pulumi.Input[Sequence[pulumi.Input['AccessPolicyEntryArgs']]] access_policies: An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
:param pulumi.Input['CreateMode'] create_mode: The vault's create mode to indicate whether the vault need to be recovered or not.
:param pulumi.Input[bool] enable_purge_protection: Property specifying whether protection against purge is enabled for this vault. Setting this property to true activates protection against purge for this vault and its content - only the Key Vault service may initiate a hard, irrecoverable deletion. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible - that is, the property does not accept false as its value.
:param pulumi.Input[bool] enable_rbac_authorization: Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored. When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the vault is created with the default value of false. Note that management actions are always authorized with RBAC.
@@ -1388,6 +1389,7 @@ def tenant_id(self, value: pulumi.Input[str]):
def access_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AccessPolicyEntryArgs']]]]:
"""
An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
"""
return pulumi.get(self, "access_policies")
diff --git a/sdk/python/pulumi_azure_native/keyvault/access_policy.py b/sdk/python/pulumi_azure_native/keyvault/access_policy.py
new file mode 100644
index 000000000000..ef899ccc8b1f
--- /dev/null
+++ b/sdk/python/pulumi_azure_native/keyvault/access_policy.py
@@ -0,0 +1,183 @@
+# coding=utf-8
+# *** WARNING: this file was generated by pulumi-language-python. ***
+# *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+import copy
+import warnings
+import pulumi
+import pulumi.runtime
+from typing import Any, Mapping, Optional, Sequence, Union, overload
+from .. import _utilities
+from . import outputs
+from ._enums import *
+from ._inputs import *
+
+__all__ = ['AccessPolicyArgs', 'AccessPolicy']
+
+@pulumi.input_type
+class AccessPolicyArgs:
+ def __init__(__self__, *,
+ policy: pulumi.Input['AccessPolicyEntryArgs'],
+ resource_group_name: pulumi.Input[str],
+ vault_name: pulumi.Input[str]):
+ """
+ The set of arguments for constructing a AccessPolicy resource.
+ :param pulumi.Input['AccessPolicyEntryArgs'] policy: The definition of the access policy.
+ :param pulumi.Input[str] resource_group_name: Name of the resource group that contains the vault.
+ :param pulumi.Input[str] vault_name: Name of the Key Vault.
+ """
+ pulumi.set(__self__, "policy", policy)
+ pulumi.set(__self__, "resource_group_name", resource_group_name)
+ pulumi.set(__self__, "vault_name", vault_name)
+
+ @property
+ @pulumi.getter
+ def policy(self) -> pulumi.Input['AccessPolicyEntryArgs']:
+ """
+ The definition of the access policy.
+ """
+ return pulumi.get(self, "policy")
+
+ @policy.setter
+ def policy(self, value: pulumi.Input['AccessPolicyEntryArgs']):
+ pulumi.set(self, "policy", value)
+
+ @property
+ @pulumi.getter(name="resourceGroupName")
+ def resource_group_name(self) -> pulumi.Input[str]:
+ """
+ Name of the resource group that contains the vault.
+ """
+ return pulumi.get(self, "resource_group_name")
+
+ @resource_group_name.setter
+ def resource_group_name(self, value: pulumi.Input[str]):
+ pulumi.set(self, "resource_group_name", value)
+
+ @property
+ @pulumi.getter(name="vaultName")
+ def vault_name(self) -> pulumi.Input[str]:
+ """
+ Name of the Key Vault.
+ """
+ return pulumi.get(self, "vault_name")
+
+ @vault_name.setter
+ def vault_name(self, value: pulumi.Input[str]):
+ pulumi.set(self, "vault_name", value)
+
+
+class AccessPolicy(pulumi.CustomResource):
+ @overload
+ def __init__(__self__,
+ resource_name: str,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ policy: Optional[pulumi.Input[pulumi.InputType['AccessPolicyEntryArgs']]] = None,
+ resource_group_name: Optional[pulumi.Input[str]] = None,
+ vault_name: Optional[pulumi.Input[str]] = None,
+ __props__=None):
+ """
+ Key Vault Access Policy for managing policies on existing vaults.
+
+ :param str resource_name: The name of the resource.
+ :param pulumi.ResourceOptions opts: Options for the resource.
+ :param pulumi.Input[pulumi.InputType['AccessPolicyEntryArgs']] policy: The definition of the access policy.
+ :param pulumi.Input[str] resource_group_name: Name of the resource group that contains the vault.
+ :param pulumi.Input[str] vault_name: Name of the Key Vault.
+ """
+ ...
+ @overload
+ def __init__(__self__,
+ resource_name: str,
+ args: AccessPolicyArgs,
+ opts: Optional[pulumi.ResourceOptions] = None):
+ """
+ Key Vault Access Policy for managing policies on existing vaults.
+
+ :param str resource_name: The name of the resource.
+ :param AccessPolicyArgs args: The arguments to use to populate this resource's properties.
+ :param pulumi.ResourceOptions opts: Options for the resource.
+ """
+ ...
+ def __init__(__self__, resource_name: str, *args, **kwargs):
+ resource_args, opts = _utilities.get_resource_args_opts(AccessPolicyArgs, pulumi.ResourceOptions, *args, **kwargs)
+ if resource_args is not None:
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
+ else:
+ __self__._internal_init(resource_name, *args, **kwargs)
+
+ def _internal_init(__self__,
+ resource_name: str,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ policy: Optional[pulumi.Input[pulumi.InputType['AccessPolicyEntryArgs']]] = None,
+ resource_group_name: Optional[pulumi.Input[str]] = None,
+ vault_name: Optional[pulumi.Input[str]] = None,
+ __props__=None):
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
+ if not isinstance(opts, pulumi.ResourceOptions):
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
+ if opts.id is None:
+ if __props__ is not None:
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
+ __props__ = AccessPolicyArgs.__new__(AccessPolicyArgs)
+
+ if policy is None and not opts.urn:
+ raise TypeError("Missing required property 'policy'")
+ __props__.__dict__["policy"] = policy
+ if resource_group_name is None and not opts.urn:
+ raise TypeError("Missing required property 'resource_group_name'")
+ __props__.__dict__["resource_group_name"] = resource_group_name
+ if vault_name is None and not opts.urn:
+ raise TypeError("Missing required property 'vault_name'")
+ __props__.__dict__["vault_name"] = vault_name
+ super(AccessPolicy, __self__).__init__(
+ 'azure-native:keyvault:AccessPolicy',
+ resource_name,
+ __props__,
+ opts)
+
+ @staticmethod
+ def get(resource_name: str,
+ id: pulumi.Input[str],
+ opts: Optional[pulumi.ResourceOptions] = None) -> 'AccessPolicy':
+ """
+ Get an existing AccessPolicy resource's state with the given name, id, and optional extra
+ properties used to qualify the lookup.
+
+ :param str resource_name: The unique name of the resulting resource.
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
+ :param pulumi.ResourceOptions opts: Options for the resource.
+ """
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
+
+ __props__ = AccessPolicyArgs.__new__(AccessPolicyArgs)
+
+ __props__.__dict__["policy"] = None
+ __props__.__dict__["resource_group_name"] = None
+ __props__.__dict__["vault_name"] = None
+ return AccessPolicy(resource_name, opts=opts, __props__=__props__)
+
+ @property
+ @pulumi.getter
+ def policy(self) -> pulumi.Output[Optional['outputs.AccessPolicyEntry']]:
+ """
+ The definition of the access policy.
+ """
+ return pulumi.get(self, "policy")
+
+ @property
+ @pulumi.getter(name="resourceGroupName")
+ def resource_group_name(self) -> pulumi.Output[Optional[str]]:
+ """
+ Name of the resource group that contains the vault.
+ """
+ return pulumi.get(self, "resource_group_name")
+
+ @property
+ @pulumi.getter(name="vaultName")
+ def vault_name(self) -> pulumi.Output[Optional[str]]:
+ """
+ Name of the Key Vault.
+ """
+ return pulumi.get(self, "vault_name")
+
diff --git a/sdk/python/pulumi_azure_native/keyvault/outputs.py b/sdk/python/pulumi_azure_native/keyvault/outputs.py
index d11148e444d4..76cbca795c23 100644
--- a/sdk/python/pulumi_azure_native/keyvault/outputs.py
+++ b/sdk/python/pulumi_azure_native/keyvault/outputs.py
@@ -12,6 +12,7 @@
from ._enums import *
__all__ = [
+ 'AccessPolicyEntry',
'AccessPolicyEntryResponse',
'ActionResponse',
'IPRuleResponse',
@@ -30,6 +31,7 @@
'ManagedHsmPropertiesResponse',
'ManagedHsmSkuResponse',
'NetworkRuleSetResponse',
+ 'Permissions',
'PermissionsResponse',
'PrivateEndpointConnectionItemResponse',
'PrivateEndpointResponse',
@@ -44,6 +46,83 @@
'VirtualNetworkRuleResponse',
]
+@pulumi.output_type
+class AccessPolicyEntry(dict):
+ """
+ An identity that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID.
+ """
+ @staticmethod
+ def __key_warning(key: str):
+ suggest = None
+ if key == "objectId":
+ suggest = "object_id"
+ elif key == "tenantId":
+ suggest = "tenant_id"
+ elif key == "applicationId":
+ suggest = "application_id"
+
+ if suggest:
+ pulumi.log.warn(f"Key '{key}' not found in AccessPolicyEntry. Access the value via the '{suggest}' property getter instead.")
+
+ def __getitem__(self, key: str) -> Any:
+ AccessPolicyEntry.__key_warning(key)
+ return super().__getitem__(key)
+
+ def get(self, key: str, default = None) -> Any:
+ AccessPolicyEntry.__key_warning(key)
+ return super().get(key, default)
+
+ def __init__(__self__, *,
+ object_id: str,
+ permissions: 'outputs.Permissions',
+ tenant_id: str,
+ application_id: Optional[str] = None):
+ """
+ An identity that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID.
+ :param str object_id: The object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies.
+ :param 'Permissions' permissions: Permissions the identity has for keys, secrets and certificates.
+ :param str tenant_id: The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
+ :param str application_id: Application ID of the client making request on behalf of a principal
+ """
+ pulumi.set(__self__, "object_id", object_id)
+ pulumi.set(__self__, "permissions", permissions)
+ pulumi.set(__self__, "tenant_id", tenant_id)
+ if application_id is not None:
+ pulumi.set(__self__, "application_id", application_id)
+
+ @property
+ @pulumi.getter(name="objectId")
+ def object_id(self) -> str:
+ """
+ The object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies.
+ """
+ return pulumi.get(self, "object_id")
+
+ @property
+ @pulumi.getter
+ def permissions(self) -> 'outputs.Permissions':
+ """
+ Permissions the identity has for keys, secrets and certificates.
+ """
+ return pulumi.get(self, "permissions")
+
+ @property
+ @pulumi.getter(name="tenantId")
+ def tenant_id(self) -> str:
+ """
+ The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
+ """
+ return pulumi.get(self, "tenant_id")
+
+ @property
+ @pulumi.getter(name="applicationId")
+ def application_id(self) -> Optional[str]:
+ """
+ Application ID of the client making request on behalf of a principal
+ """
+ return pulumi.get(self, "application_id")
+
+
@pulumi.output_type
class AccessPolicyEntryResponse(dict):
"""
@@ -1167,6 +1246,65 @@ def virtual_network_rules(self) -> Optional[Sequence['outputs.VirtualNetworkRule
return pulumi.get(self, "virtual_network_rules")
+@pulumi.output_type
+class Permissions(dict):
+ """
+ Permissions the identity has for keys, secrets, certificates and storage.
+ """
+ def __init__(__self__, *,
+ certificates: Optional[Sequence[str]] = None,
+ keys: Optional[Sequence[str]] = None,
+ secrets: Optional[Sequence[str]] = None,
+ storage: Optional[Sequence[str]] = None):
+ """
+ Permissions the identity has for keys, secrets, certificates and storage.
+ :param Sequence[Union[str, 'CertificatePermissions']] certificates: Permissions to certificates
+ :param Sequence[Union[str, 'KeyPermissions']] keys: Permissions to keys
+ :param Sequence[Union[str, 'SecretPermissions']] secrets: Permissions to secrets
+ :param Sequence[Union[str, 'StoragePermissions']] storage: Permissions to storage accounts
+ """
+ if certificates is not None:
+ pulumi.set(__self__, "certificates", certificates)
+ if keys is not None:
+ pulumi.set(__self__, "keys", keys)
+ if secrets is not None:
+ pulumi.set(__self__, "secrets", secrets)
+ if storage is not None:
+ pulumi.set(__self__, "storage", storage)
+
+ @property
+ @pulumi.getter
+ def certificates(self) -> Optional[Sequence[str]]:
+ """
+ Permissions to certificates
+ """
+ return pulumi.get(self, "certificates")
+
+ @property
+ @pulumi.getter
+ def keys(self) -> Optional[Sequence[str]]:
+ """
+ Permissions to keys
+ """
+ return pulumi.get(self, "keys")
+
+ @property
+ @pulumi.getter
+ def secrets(self) -> Optional[Sequence[str]]:
+ """
+ Permissions to secrets
+ """
+ return pulumi.get(self, "secrets")
+
+ @property
+ @pulumi.getter
+ def storage(self) -> Optional[Sequence[str]]:
+ """
+ Permissions to storage accounts
+ """
+ return pulumi.get(self, "storage")
+
+
@pulumi.output_type
class PermissionsResponse(dict):
"""
@@ -1894,6 +2032,7 @@ def __init__(__self__, *,
:param 'SkuResponse' sku: SKU details
:param str tenant_id: The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
:param Sequence['AccessPolicyEntryResponse'] access_policies: An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
:param bool enable_purge_protection: Property specifying whether protection against purge is enabled for this vault. Setting this property to true activates protection against purge for this vault and its content - only the Key Vault service may initiate a hard, irrecoverable deletion. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible - that is, the property does not accept false as its value.
:param bool enable_rbac_authorization: Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored. When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the vault is created with the default value of false. Note that management actions are always authorized with RBAC.
:param bool enable_soft_delete: Property to specify whether the 'soft delete' functionality is enabled for this key vault. If it's not set to any value(true or false) when creating new key vault, it will be set to true by default. Once set to true, it cannot be reverted to false.
@@ -1980,6 +2119,7 @@ def tenant_id(self) -> str:
def access_policies(self) -> Optional[Sequence['outputs.AccessPolicyEntryResponse']]:
"""
An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
"""
return pulumi.get(self, "access_policies")
diff --git a/sdk/python/pulumi_azure_native/keyvault/v20230201/_inputs.py b/sdk/python/pulumi_azure_native/keyvault/v20230201/_inputs.py
index 41f1edde50fe..819cf7d1cf7f 100644
--- a/sdk/python/pulumi_azure_native/keyvault/v20230201/_inputs.py
+++ b/sdk/python/pulumi_azure_native/keyvault/v20230201/_inputs.py
@@ -1309,6 +1309,7 @@ def __init__(__self__, *,
:param pulumi.Input['SkuArgs'] sku: SKU details
:param pulumi.Input[str] tenant_id: The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
:param pulumi.Input[Sequence[pulumi.Input['AccessPolicyEntryArgs']]] access_policies: An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
:param pulumi.Input['CreateMode'] create_mode: The vault's create mode to indicate whether the vault need to be recovered or not.
:param pulumi.Input[bool] enable_purge_protection: Property specifying whether protection against purge is enabled for this vault. Setting this property to true activates protection against purge for this vault and its content - only the Key Vault service may initiate a hard, irrecoverable deletion. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible - that is, the property does not accept false as its value.
:param pulumi.Input[bool] enable_rbac_authorization: Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored. When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the vault is created with the default value of false. Note that management actions are always authorized with RBAC.
@@ -1388,6 +1389,7 @@ def tenant_id(self, value: pulumi.Input[str]):
def access_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AccessPolicyEntryArgs']]]]:
"""
An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
"""
return pulumi.get(self, "access_policies")
diff --git a/sdk/python/pulumi_azure_native/keyvault/v20230201/outputs.py b/sdk/python/pulumi_azure_native/keyvault/v20230201/outputs.py
index 52963e530f61..e4a7954d2c92 100644
--- a/sdk/python/pulumi_azure_native/keyvault/v20230201/outputs.py
+++ b/sdk/python/pulumi_azure_native/keyvault/v20230201/outputs.py
@@ -1894,6 +1894,7 @@ def __init__(__self__, *,
:param 'SkuResponse' sku: SKU details
:param str tenant_id: The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
:param Sequence['AccessPolicyEntryResponse'] access_policies: An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
:param bool enable_purge_protection: Property specifying whether protection against purge is enabled for this vault. Setting this property to true activates protection against purge for this vault and its content - only the Key Vault service may initiate a hard, irrecoverable deletion. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible - that is, the property does not accept false as its value.
:param bool enable_rbac_authorization: Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored. When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the vault is created with the default value of false. Note that management actions are always authorized with RBAC.
:param bool enable_soft_delete: Property to specify whether the 'soft delete' functionality is enabled for this key vault. If it's not set to any value(true or false) when creating new key vault, it will be set to true by default. Once set to true, it cannot be reverted to false.
@@ -1980,6 +1981,7 @@ def tenant_id(self) -> str:
def access_policies(self) -> Optional[Sequence['outputs.AccessPolicyEntryResponse']]:
"""
An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
"""
return pulumi.get(self, "access_policies")
diff --git a/sdk/python/pulumi_azure_native/keyvault/v20230701/_inputs.py b/sdk/python/pulumi_azure_native/keyvault/v20230701/_inputs.py
index 35623b4584f4..ba0c30ad8084 100644
--- a/sdk/python/pulumi_azure_native/keyvault/v20230701/_inputs.py
+++ b/sdk/python/pulumi_azure_native/keyvault/v20230701/_inputs.py
@@ -1349,6 +1349,7 @@ def __init__(__self__, *,
:param pulumi.Input['SkuArgs'] sku: SKU details
:param pulumi.Input[str] tenant_id: The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
:param pulumi.Input[Sequence[pulumi.Input['AccessPolicyEntryArgs']]] access_policies: An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
:param pulumi.Input['CreateMode'] create_mode: The vault's create mode to indicate whether the vault need to be recovered or not.
:param pulumi.Input[bool] enable_purge_protection: Property specifying whether protection against purge is enabled for this vault. Setting this property to true activates protection against purge for this vault and its content - only the Key Vault service may initiate a hard, irrecoverable deletion. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible - that is, the property does not accept false as its value.
:param pulumi.Input[bool] enable_rbac_authorization: Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored. When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the vault is created with the default value of false. Note that management actions are always authorized with RBAC.
@@ -1428,6 +1429,7 @@ def tenant_id(self, value: pulumi.Input[str]):
def access_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AccessPolicyEntryArgs']]]]:
"""
An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
"""
return pulumi.get(self, "access_policies")
diff --git a/sdk/python/pulumi_azure_native/keyvault/v20230701/outputs.py b/sdk/python/pulumi_azure_native/keyvault/v20230701/outputs.py
index 3f8ef627cef5..58d93a9b3e74 100644
--- a/sdk/python/pulumi_azure_native/keyvault/v20230701/outputs.py
+++ b/sdk/python/pulumi_azure_native/keyvault/v20230701/outputs.py
@@ -2025,6 +2025,7 @@ def __init__(__self__, *,
:param 'SkuResponse' sku: SKU details
:param str tenant_id: The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
:param Sequence['AccessPolicyEntryResponse'] access_policies: An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
:param bool enable_purge_protection: Property specifying whether protection against purge is enabled for this vault. Setting this property to true activates protection against purge for this vault and its content - only the Key Vault service may initiate a hard, irrecoverable deletion. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible - that is, the property does not accept false as its value.
:param bool enable_rbac_authorization: Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored. When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the vault is created with the default value of false. Note that management actions are always authorized with RBAC.
:param bool enable_soft_delete: Property to specify whether the 'soft delete' functionality is enabled for this key vault. If it's not set to any value(true or false) when creating new key vault, it will be set to true by default. Once set to true, it cannot be reverted to false.
@@ -2111,6 +2112,7 @@ def tenant_id(self) -> str:
def access_policies(self) -> Optional[Sequence['outputs.AccessPolicyEntryResponse']]:
"""
An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required.
+ These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
"""
return pulumi.get(self, "access_policies")