diff --git a/examples/go.mod b/examples/go.mod index 375359cdec..d1cdb12aa1 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -194,3 +194,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect lukechampine.com/frand v1.4.2 // indirect ) + +replace github.com/pulumi/pulumi/pkg/v3 => github.com/pulumi/pulumi/pkg/v3 v3.112.1-0.20240417083406-47ebee5854a0 + +replace github.com/pulumi/pulumi/sdk/v3 => github.com/pulumi/pulumi/sdk/v3 v3.112.1-0.20240417083406-47ebee5854a0 diff --git a/examples/go.sum b/examples/go.sum index e97b9de05e..4a357724d1 100644 --- a/examples/go.sum +++ b/examples/go.sum @@ -1477,10 +1477,10 @@ github.com/pulumi/esc v0.6.2 h1:+z+l8cuwIauLSwXQS0uoI3rqB+YG4SzsZYtHfNoXBvw= github.com/pulumi/esc v0.6.2/go.mod h1:jNnYNjzsOgVTjCp0LL24NsCk8ZJxq4IoLQdCT0X7l8k= github.com/pulumi/pulumi-gcp/sdk/v6 v6.67.0 h1:toKDTQrGp11iU3FQsxqFN+1fgxx4GQFvsmLbUe9++B8= github.com/pulumi/pulumi-gcp/sdk/v6 v6.67.0/go.mod h1:0H6CtMuOB754n2Yzu6XqHqeU99fmH/fsBUKLsMic2OY= -github.com/pulumi/pulumi/pkg/v3 v3.112.0 h1:vhoM6sx1eegJntIeUZENtck3VeMtK1zBiQ2E3EPOnHw= -github.com/pulumi/pulumi/pkg/v3 v3.112.0/go.mod h1:GQhNr0v5E8TACF8j0p6UQqyr7mZreUpoMfVjLeu6eY0= -github.com/pulumi/pulumi/sdk/v3 v3.112.0 h1:cq2x5N6iuYhSLdeOdRs+LIq0EneB0Cb54WOlD/VaX3E= -github.com/pulumi/pulumi/sdk/v3 v3.112.0/go.mod h1:JWSzKBoHd8rlncC1DhXLf7YdV+Bk/Qf+hSZOOQh0WwQ= +github.com/pulumi/pulumi/pkg/v3 v3.112.1-0.20240417083406-47ebee5854a0 h1:6mvJKdvZLYKKXaJRaBGNfBZPHstPHWiEccDeGxmyzvQ= +github.com/pulumi/pulumi/pkg/v3 v3.112.1-0.20240417083406-47ebee5854a0/go.mod h1:GQhNr0v5E8TACF8j0p6UQqyr7mZreUpoMfVjLeu6eY0= +github.com/pulumi/pulumi/sdk/v3 v3.112.1-0.20240417083406-47ebee5854a0 h1:d6FFBvnyD5jE99oei5tNSL1AWcezTZC2tyMRyiWzVYA= +github.com/pulumi/pulumi/sdk/v3 v3.112.1-0.20240417083406-47ebee5854a0/go.mod h1:JWSzKBoHd8rlncC1DhXLf7YdV+Bk/Qf+hSZOOQh0WwQ= github.com/rakyll/embedmd v0.0.0-20171029212350-c8060a0752a2/go.mod h1:7jOTMgqac46PZcF54q6l2hkLEG8op93fZu61KmxWDV4= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= diff --git a/provider/cmd/pulumi-resource-gcp/schema.json b/provider/cmd/pulumi-resource-gcp/schema.json index a40af5fada..b1eaac6fda 100644 --- a/provider/cmd/pulumi-resource-gcp/schema.json +++ b/provider/cmd/pulumi-resource-gcp/schema.json @@ -112401,7 +112401,7 @@ } }, "gcp:apphub/workload:Workload": { - "description": "Workload represents a binary deployment (such as Managed Instance Groups (MIGs), GKE deployments, etc.) that performs the smallest logical subset of business functionality. It registers identified workload to the Application.\n\n\n\n## Example Usage\n\n### Apphub Workload Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as std from \"@pulumi/std\";\nimport * as time from \"@pulumi/time\";\n\nconst application = new gcp.apphub.Application(\"application\", {\n location: \"us-central1\",\n applicationId: \"example-application-1\",\n scope: {\n type: \"REGIONAL\",\n },\n});\nconst serviceProject = new gcp.organizations.Project(\"service_project\", {\n projectId: \"project-1\",\n name: \"Service Project\",\n orgId: \"123456789\",\n billingAccount: \"000000-0000000-0000000-000000\",\n});\n// Enable Compute API\nconst computeServiceProject = new gcp.projects.Service(\"compute_service_project\", {\n project: serviceProject.projectId,\n service: \"compute.googleapis.com\",\n});\nconst wait120s = new time.index.Sleep(\"wait_120s\", {createDuration: \"120s\"});\nconst serviceProjectAttachment = new gcp.apphub.ServiceProjectAttachment(\"service_project_attachment\", {serviceProjectAttachmentId: serviceProject.projectId});\n// VPC network\nconst ilbNetwork = new gcp.compute.Network(\"ilb_network\", {\n name: \"l7-ilb-network\",\n project: serviceProject.projectId,\n autoCreateSubnetworks: false,\n});\n// backend subnet\nconst ilbSubnet = new gcp.compute.Subnetwork(\"ilb_subnet\", {\n name: \"l7-ilb-subnet\",\n project: serviceProject.projectId,\n ipCidrRange: \"10.0.1.0/24\",\n region: \"us-central1\",\n network: ilbNetwork.id,\n});\n// instance template\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n }],\n name: \"l7-ilb-mig-template\",\n project: serviceProject.projectId,\n machineType: \"e2-small\",\n tags: [\"http-server\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\nconst mig = new gcp.compute.RegionInstanceGroupManager(\"mig\", {\n name: \"l7-ilb-mig1\",\n project: serviceProject.projectId,\n region: \"us-central1\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// Discovered workload\nconst catalog-workload = std.replaceOutput({\n text: mig.instanceGroup,\n search: \"https://www.googleapis.com/compute/v1\",\n replace: \"//compute.googleapis.com\",\n}).apply(invoke =\u003e gcp.apphub.getDiscoveredWorkloadOutput({\n location: \"us-central1\",\n workloadUri: invoke.result,\n}));\nconst wait120sForResourceIngestion = new time.index.Sleep(\"wait_120s_for_resource_ingestion\", {createDuration: \"120s\"});\nconst example = new gcp.apphub.Workload(\"example\", {\n location: \"us-central1\",\n applicationId: application.applicationId,\n workloadId: mig.name,\n discoveredWorkload: catalog_workload.apply(catalog_workload =\u003e catalog_workload.name),\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_std as std\nimport pulumi_time as time\n\napplication = gcp.apphub.Application(\"application\",\n location=\"us-central1\",\n application_id=\"example-application-1\",\n scope=gcp.apphub.ApplicationScopeArgs(\n type=\"REGIONAL\",\n ))\nservice_project = gcp.organizations.Project(\"service_project\",\n project_id=\"project-1\",\n name=\"Service Project\",\n org_id=\"123456789\",\n billing_account=\"000000-0000000-0000000-000000\")\n# Enable Compute API\ncompute_service_project = gcp.projects.Service(\"compute_service_project\",\n project=service_project.project_id,\n service=\"compute.googleapis.com\")\nwait120s = time.index.Sleep(\"wait_120s\", create_duration=120s)\nservice_project_attachment = gcp.apphub.ServiceProjectAttachment(\"service_project_attachment\", service_project_attachment_id=service_project.project_id)\n# VPC network\nilb_network = gcp.compute.Network(\"ilb_network\",\n name=\"l7-ilb-network\",\n project=service_project.project_id,\n auto_create_subnetworks=False)\n# backend subnet\nilb_subnet = gcp.compute.Subnetwork(\"ilb_subnet\",\n name=\"l7-ilb-subnet\",\n project=service_project.project_id,\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"us-central1\",\n network=ilb_network.id)\n# instance template\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=ilb_network.id,\n subnetwork=ilb_subnet.id,\n )],\n name=\"l7-ilb-mig-template\",\n project=service_project.project_id,\n machine_type=\"e2-small\",\n tags=[\"http-server\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\nmig = gcp.compute.RegionInstanceGroupManager(\"mig\",\n name=\"l7-ilb-mig1\",\n project=service_project.project_id,\n region=\"us-central1\",\n versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# Discovered workload\ncatalog_workload = std.replace_output(text=mig.instance_group,\n search=\"https://www.googleapis.com/compute/v1\",\n replace=\"//compute.googleapis.com\").apply(lambda invoke: gcp.apphub.get_discovered_workload_output(location=\"us-central1\",\n workload_uri=invoke.result))\nwait120s_for_resource_ingestion = time.index.Sleep(\"wait_120s_for_resource_ingestion\", create_duration=120s)\nexample = gcp.apphub.Workload(\"example\",\n location=\"us-central1\",\n application_id=application.application_id,\n workload_id=mig.name,\n discovered_workload=catalog_workload.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Std = Pulumi.Std;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var application = new Gcp.Apphub.Application(\"application\", new()\n {\n Location = \"us-central1\",\n ApplicationId = \"example-application-1\",\n Scope = new Gcp.Apphub.Inputs.ApplicationScopeArgs\n {\n Type = \"REGIONAL\",\n },\n });\n\n var serviceProject = new Gcp.Organizations.Project(\"service_project\", new()\n {\n ProjectId = \"project-1\",\n Name = \"Service Project\",\n OrgId = \"123456789\",\n BillingAccount = \"000000-0000000-0000000-000000\",\n });\n\n // Enable Compute API\n var computeServiceProject = new Gcp.Projects.Service(\"compute_service_project\", new()\n {\n Project = serviceProject.ProjectId,\n ServiceName = \"compute.googleapis.com\",\n });\n\n var wait120s = new Time.Index.Sleep(\"wait_120s\", new()\n {\n CreateDuration = \"120s\",\n });\n\n var serviceProjectAttachment = new Gcp.Apphub.ServiceProjectAttachment(\"service_project_attachment\", new()\n {\n ServiceProjectAttachmentId = serviceProject.ProjectId,\n });\n\n // VPC network\n var ilbNetwork = new Gcp.Compute.Network(\"ilb_network\", new()\n {\n Name = \"l7-ilb-network\",\n Project = serviceProject.ProjectId,\n AutoCreateSubnetworks = false,\n });\n\n // backend subnet\n var ilbSubnet = new Gcp.Compute.Subnetwork(\"ilb_subnet\", new()\n {\n Name = \"l7-ilb-subnet\",\n Project = serviceProject.ProjectId,\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"us-central1\",\n Network = ilbNetwork.Id,\n });\n\n // instance template\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n },\n },\n Name = \"l7-ilb-mig-template\",\n Project = serviceProject.ProjectId,\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"http-server\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n var mig = new Gcp.Compute.RegionInstanceGroupManager(\"mig\", new()\n {\n Name = \"l7-ilb-mig1\",\n Project = serviceProject.ProjectId,\n Region = \"us-central1\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // Discovered workload\n var catalog_workload = Gcp.Apphub.GetDiscoveredWorkload.Invoke(new()\n {\n Location = \"us-central1\",\n WorkloadUri = Std.Replace.Invoke(new()\n {\n Text = mig.InstanceGroup,\n Search = \"https://www.googleapis.com/compute/v1\",\n Replace = \"//compute.googleapis.com\",\n }).Result,\n });\n\n var wait120sForResourceIngestion = new Time.Index.Sleep(\"wait_120s_for_resource_ingestion\", new()\n {\n CreateDuration = \"120s\",\n });\n\n var example = new Gcp.Apphub.Workload(\"example\", new()\n {\n Location = \"us-central1\",\n ApplicationId = application.ApplicationId,\n WorkloadId = mig.Name,\n DiscoveredWorkload = catalog_workload.Apply(catalog_workload =\u003e catalog_workload.Apply(getDiscoveredWorkloadResult =\u003e getDiscoveredWorkloadResult.Name)),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apphub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapplication, err := apphub.NewApplication(ctx, \"application\", \u0026apphub.ApplicationArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tApplicationId: pulumi.String(\"example-application-1\"),\n\t\t\tScope: \u0026apphub.ApplicationScopeArgs{\n\t\t\t\tType: pulumi.String(\"REGIONAL\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserviceProject, err := organizations.NewProject(ctx, \"service_project\", \u0026organizations.ProjectArgs{\n\t\t\tProjectId: pulumi.String(\"project-1\"),\n\t\t\tName: pulumi.String(\"Service Project\"),\n\t\t\tOrgId: pulumi.String(\"123456789\"),\n\t\t\tBillingAccount: pulumi.String(\"000000-0000000-0000000-000000\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Enable Compute API\n\t\t_, err = projects.NewService(ctx, \"compute_service_project\", \u0026projects.ServiceArgs{\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tService: pulumi.String(\"compute.googleapis.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = time.NewSleep(ctx, \"wait_120s\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"120s\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apphub.NewServiceProjectAttachment(ctx, \"service_project_attachment\", \u0026apphub.ServiceProjectAttachmentArgs{\n\t\t\tServiceProjectAttachmentId: serviceProject.ProjectId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// VPC network\n\t\tilbNetwork, err := compute.NewNetwork(ctx, \"ilb_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-network\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend subnet\n\t\tilbSubnet, err := compute.NewSubnetwork(ctx, \"ilb_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-subnet\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"l7-ilb-mig-template\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmig, err := compute.NewRegionInstanceGroupManager(ctx, \"mig\", \u0026compute.RegionInstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-mig1\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tVersions: compute.RegionInstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Discovered workload\n\t\tcatalog_workload := std.ReplaceOutput(ctx, std.ReplaceOutputArgs{\n\t\t\tText: mig.InstanceGroup,\n\t\t\tSearch: pulumi.String(\"https://www.googleapis.com/compute/v1\"),\n\t\t\tReplace: pulumi.String(\"//compute.googleapis.com\"),\n\t\t}, nil).ApplyT(func(invoke std.ReplaceResult) (apphub.GetDiscoveredWorkloadResult, error) {\n\t\t\treturn apphub.GetDiscoveredWorkloadOutput(ctx, apphub.GetDiscoveredWorkloadOutputArgs{\n\t\t\t\tLocation: \"us-central1\",\n\t\t\t\tWorkloadUri: invoke.Result,\n\t\t\t}, nil), nil\n\t\t}).(apphub.GetDiscoveredWorkloadResultOutput)\n\t\t_, err = time.NewSleep(ctx, \"wait_120s_for_resource_ingestion\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"120s\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apphub.NewWorkload(ctx, \"example\", \u0026apphub.WorkloadArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tApplicationId: application.ApplicationId,\n\t\t\tWorkloadId: mig.Name,\n\t\t\tDiscoveredWorkload: catalog_workload.ApplyT(func(catalog_workload apphub.GetDiscoveredWorkloadResult) (*string, error) {\n\t\t\t\treturn \u0026catalog_workload.Name, nil\n\t\t\t}).(pulumi.StringPtrOutput),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.apphub.Application;\nimport com.pulumi.gcp.apphub.ApplicationArgs;\nimport com.pulumi.gcp.apphub.inputs.ApplicationScopeArgs;\nimport com.pulumi.gcp.organizations.Project;\nimport com.pulumi.gcp.organizations.ProjectArgs;\nimport com.pulumi.gcp.projects.Service;\nimport com.pulumi.gcp.projects.ServiceArgs;\nimport com.pulumi.time.sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.gcp.apphub.ServiceProjectAttachment;\nimport com.pulumi.gcp.apphub.ServiceProjectAttachmentArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManager;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.apphub.ApphubFunctions;\nimport com.pulumi.gcp.apphub.inputs.GetDiscoveredWorkloadArgs;\nimport com.pulumi.gcp.apphub.Workload;\nimport com.pulumi.gcp.apphub.WorkloadArgs;\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 application = new Application(\"application\", ApplicationArgs.builder() \n .location(\"us-central1\")\n .applicationId(\"example-application-1\")\n .scope(ApplicationScopeArgs.builder()\n .type(\"REGIONAL\")\n .build())\n .build());\n\n var serviceProject = new Project(\"serviceProject\", ProjectArgs.builder() \n .projectId(\"project-1\")\n .name(\"Service Project\")\n .orgId(\"123456789\")\n .billingAccount(\"000000-0000000-0000000-000000\")\n .build());\n\n // Enable Compute API\n var computeServiceProject = new Service(\"computeServiceProject\", ServiceArgs.builder() \n .project(serviceProject.projectId())\n .service(\"compute.googleapis.com\")\n .build());\n\n var wait120s = new Sleep(\"wait120s\", SleepArgs.builder() \n .createDuration(\"120s\")\n .build());\n\n var serviceProjectAttachment = new ServiceProjectAttachment(\"serviceProjectAttachment\", ServiceProjectAttachmentArgs.builder() \n .serviceProjectAttachmentId(serviceProject.projectId())\n .build());\n\n // VPC network\n var ilbNetwork = new Network(\"ilbNetwork\", NetworkArgs.builder() \n .name(\"l7-ilb-network\")\n .project(serviceProject.projectId())\n .autoCreateSubnetworks(false)\n .build());\n\n // backend subnet\n var ilbSubnet = new Subnetwork(\"ilbSubnet\", SubnetworkArgs.builder() \n .name(\"l7-ilb-subnet\")\n .project(serviceProject.projectId())\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"us-central1\")\n .network(ilbNetwork.id())\n .build());\n\n // instance template\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .build())\n .name(\"l7-ilb-mig-template\")\n .project(serviceProject.projectId())\n .machineType(\"e2-small\")\n .tags(\"http-server\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n var mig = new RegionInstanceGroupManager(\"mig\", RegionInstanceGroupManagerArgs.builder() \n .name(\"l7-ilb-mig1\")\n .project(serviceProject.projectId())\n .region(\"us-central1\")\n .versions(RegionInstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // Discovered workload\n final var catalog-workload = ApphubFunctions.getDiscoveredWorkload(GetDiscoveredWorkloadArgs.builder()\n .location(\"us-central1\")\n .workloadUri(StdFunctions.replace().applyValue(invoke -\u003e invoke.result()))\n .build());\n\n var wait120sForResourceIngestion = new Sleep(\"wait120sForResourceIngestion\", SleepArgs.builder() \n .createDuration(\"120s\")\n .build());\n\n var example = new Workload(\"example\", WorkloadArgs.builder() \n .location(\"us-central1\")\n .applicationId(application.applicationId())\n .workloadId(mig.name())\n .discoveredWorkload(catalog_workload.applyValue(catalog_workload -\u003e catalog_workload.name()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n application:\n type: gcp:apphub:Application\n properties:\n location: us-central1\n applicationId: example-application-1\n scope:\n type: REGIONAL\n serviceProject:\n type: gcp:organizations:Project\n name: service_project\n properties:\n projectId: project-1\n name: Service Project\n orgId: '123456789'\n billingAccount: 000000-0000000-0000000-000000\n # Enable Compute API\n computeServiceProject:\n type: gcp:projects:Service\n name: compute_service_project\n properties:\n project: ${serviceProject.projectId}\n service: compute.googleapis.com\n wait120s:\n type: time:sleep\n name: wait_120s\n properties:\n createDuration: 120s\n serviceProjectAttachment:\n type: gcp:apphub:ServiceProjectAttachment\n name: service_project_attachment\n properties:\n serviceProjectAttachmentId: ${serviceProject.projectId}\n wait120sForResourceIngestion:\n type: time:sleep\n name: wait_120s_for_resource_ingestion\n properties:\n createDuration: 120s\n example:\n type: gcp:apphub:Workload\n properties:\n location: us-central1\n applicationId: ${application.applicationId}\n workloadId: ${mig.name}\n discoveredWorkload: ${[\"catalog-workload\"].name}\n # VPC network\n ilbNetwork:\n type: gcp:compute:Network\n name: ilb_network\n properties:\n name: l7-ilb-network\n project: ${serviceProject.projectId}\n autoCreateSubnetworks: false\n # backend subnet\n ilbSubnet:\n type: gcp:compute:Subnetwork\n name: ilb_subnet\n properties:\n name: l7-ilb-subnet\n project: ${serviceProject.projectId}\n ipCidrRange: 10.0.1.0/24\n region: us-central1\n network: ${ilbNetwork.id}\n # instance template\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n name: l7-ilb-mig-template\n project: ${serviceProject.projectId}\n machineType: e2-small\n tags:\n - http-server\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n mig:\n type: gcp:compute:RegionInstanceGroupManager\n properties:\n name: l7-ilb-mig1\n project: ${serviceProject.projectId}\n region: us-central1\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\nvariables:\n # Discovered workload\n catalog-workload:\n fn::invoke:\n Function: gcp:apphub:getDiscoveredWorkload\n Arguments:\n location: us-central1\n workloadUri:\n fn::invoke:\n Function: std:replace\n Arguments:\n text: ${mig.instanceGroup}\n search: https://www.googleapis.com/compute/v1\n replace: //compute.googleapis.com\n Return: result\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Apphub Workload Full\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as std from \"@pulumi/std\";\nimport * as time from \"@pulumi/time\";\n\nconst application = new gcp.apphub.Application(\"application\", {\n location: \"us-central1\",\n applicationId: \"example-application-1\",\n scope: {\n type: \"REGIONAL\",\n },\n});\nconst serviceProject = new gcp.organizations.Project(\"service_project\", {\n projectId: \"project-1\",\n name: \"Service Project\",\n orgId: \"123456789\",\n billingAccount: \"000000-0000000-0000000-000000\",\n});\n// Enable Compute API\nconst computeServiceProject = new gcp.projects.Service(\"compute_service_project\", {\n project: serviceProject.projectId,\n service: \"compute.googleapis.com\",\n});\nconst wait120s = new time.index.Sleep(\"wait_120s\", {createDuration: \"120s\"});\nconst serviceProjectAttachment = new gcp.apphub.ServiceProjectAttachment(\"service_project_attachment\", {serviceProjectAttachmentId: serviceProject.projectId});\n// VPC network\nconst ilbNetwork = new gcp.compute.Network(\"ilb_network\", {\n name: \"l7-ilb-network\",\n project: serviceProject.projectId,\n autoCreateSubnetworks: false,\n});\n// backend subnet\nconst ilbSubnet = new gcp.compute.Subnetwork(\"ilb_subnet\", {\n name: \"l7-ilb-subnet\",\n project: serviceProject.projectId,\n ipCidrRange: \"10.0.1.0/24\",\n region: \"us-central1\",\n network: ilbNetwork.id,\n});\n// instance template\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n }],\n name: \"l7-ilb-mig-template\",\n project: serviceProject.projectId,\n machineType: \"e2-small\",\n tags: [\"http-server\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\nconst mig = new gcp.compute.RegionInstanceGroupManager(\"mig\", {\n name: \"l7-ilb-mig1\",\n project: serviceProject.projectId,\n region: \"us-central1\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// Discovered workload \nconst catalog-workload = std.replaceOutput({\n text: mig.instanceGroup,\n search: \"https://www.googleapis.com/compute/v1\",\n replace: \"//compute.googleapis.com\",\n}).apply(invoke =\u003e gcp.apphub.getDiscoveredWorkloadOutput({\n location: \"us-central1\",\n workloadUri: invoke.result,\n}));\nconst wait120sForResourceIngestion = new time.index.Sleep(\"wait_120s_for_resource_ingestion\", {createDuration: \"120s\"});\nconst example = new gcp.apphub.Workload(\"example\", {\n location: \"us-central1\",\n applicationId: application.applicationId,\n workloadId: mig.name,\n discoveredWorkload: catalog_workload.apply(catalog_workload =\u003e catalog_workload.name),\n displayName: \"Example Service Full\",\n description: \"Register service for testing\",\n attributes: {\n environment: {\n type: \"STAGING\",\n },\n criticality: {\n type: \"MISSION_CRITICAL\",\n },\n businessOwners: [{\n displayName: \"Alice\",\n email: \"alice@google.com\",\n }],\n developerOwners: [{\n displayName: \"Bob\",\n email: \"bob@google.com\",\n }],\n operatorOwners: [{\n displayName: \"Charlie\",\n email: \"charlie@google.com\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_std as std\nimport pulumi_time as time\n\napplication = gcp.apphub.Application(\"application\",\n location=\"us-central1\",\n application_id=\"example-application-1\",\n scope=gcp.apphub.ApplicationScopeArgs(\n type=\"REGIONAL\",\n ))\nservice_project = gcp.organizations.Project(\"service_project\",\n project_id=\"project-1\",\n name=\"Service Project\",\n org_id=\"123456789\",\n billing_account=\"000000-0000000-0000000-000000\")\n# Enable Compute API\ncompute_service_project = gcp.projects.Service(\"compute_service_project\",\n project=service_project.project_id,\n service=\"compute.googleapis.com\")\nwait120s = time.index.Sleep(\"wait_120s\", create_duration=120s)\nservice_project_attachment = gcp.apphub.ServiceProjectAttachment(\"service_project_attachment\", service_project_attachment_id=service_project.project_id)\n# VPC network\nilb_network = gcp.compute.Network(\"ilb_network\",\n name=\"l7-ilb-network\",\n project=service_project.project_id,\n auto_create_subnetworks=False)\n# backend subnet\nilb_subnet = gcp.compute.Subnetwork(\"ilb_subnet\",\n name=\"l7-ilb-subnet\",\n project=service_project.project_id,\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"us-central1\",\n network=ilb_network.id)\n# instance template\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=ilb_network.id,\n subnetwork=ilb_subnet.id,\n )],\n name=\"l7-ilb-mig-template\",\n project=service_project.project_id,\n machine_type=\"e2-small\",\n tags=[\"http-server\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\nmig = gcp.compute.RegionInstanceGroupManager(\"mig\",\n name=\"l7-ilb-mig1\",\n project=service_project.project_id,\n region=\"us-central1\",\n versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# Discovered workload \ncatalog_workload = std.replace_output(text=mig.instance_group,\n search=\"https://www.googleapis.com/compute/v1\",\n replace=\"//compute.googleapis.com\").apply(lambda invoke: gcp.apphub.get_discovered_workload_output(location=\"us-central1\",\n workload_uri=invoke.result))\nwait120s_for_resource_ingestion = time.index.Sleep(\"wait_120s_for_resource_ingestion\", create_duration=120s)\nexample = gcp.apphub.Workload(\"example\",\n location=\"us-central1\",\n application_id=application.application_id,\n workload_id=mig.name,\n discovered_workload=catalog_workload.name,\n display_name=\"Example Service Full\",\n description=\"Register service for testing\",\n attributes=gcp.apphub.WorkloadAttributesArgs(\n environment=gcp.apphub.WorkloadAttributesEnvironmentArgs(\n type=\"STAGING\",\n ),\n criticality=gcp.apphub.WorkloadAttributesCriticalityArgs(\n type=\"MISSION_CRITICAL\",\n ),\n business_owners=[gcp.apphub.WorkloadAttributesBusinessOwnerArgs(\n display_name=\"Alice\",\n email=\"alice@google.com\",\n )],\n developer_owners=[gcp.apphub.WorkloadAttributesDeveloperOwnerArgs(\n display_name=\"Bob\",\n email=\"bob@google.com\",\n )],\n operator_owners=[gcp.apphub.WorkloadAttributesOperatorOwnerArgs(\n display_name=\"Charlie\",\n email=\"charlie@google.com\",\n )],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Std = Pulumi.Std;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var application = new Gcp.Apphub.Application(\"application\", new()\n {\n Location = \"us-central1\",\n ApplicationId = \"example-application-1\",\n Scope = new Gcp.Apphub.Inputs.ApplicationScopeArgs\n {\n Type = \"REGIONAL\",\n },\n });\n\n var serviceProject = new Gcp.Organizations.Project(\"service_project\", new()\n {\n ProjectId = \"project-1\",\n Name = \"Service Project\",\n OrgId = \"123456789\",\n BillingAccount = \"000000-0000000-0000000-000000\",\n });\n\n // Enable Compute API\n var computeServiceProject = new Gcp.Projects.Service(\"compute_service_project\", new()\n {\n Project = serviceProject.ProjectId,\n ServiceName = \"compute.googleapis.com\",\n });\n\n var wait120s = new Time.Index.Sleep(\"wait_120s\", new()\n {\n CreateDuration = \"120s\",\n });\n\n var serviceProjectAttachment = new Gcp.Apphub.ServiceProjectAttachment(\"service_project_attachment\", new()\n {\n ServiceProjectAttachmentId = serviceProject.ProjectId,\n });\n\n // VPC network\n var ilbNetwork = new Gcp.Compute.Network(\"ilb_network\", new()\n {\n Name = \"l7-ilb-network\",\n Project = serviceProject.ProjectId,\n AutoCreateSubnetworks = false,\n });\n\n // backend subnet\n var ilbSubnet = new Gcp.Compute.Subnetwork(\"ilb_subnet\", new()\n {\n Name = \"l7-ilb-subnet\",\n Project = serviceProject.ProjectId,\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"us-central1\",\n Network = ilbNetwork.Id,\n });\n\n // instance template\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n },\n },\n Name = \"l7-ilb-mig-template\",\n Project = serviceProject.ProjectId,\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"http-server\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n var mig = new Gcp.Compute.RegionInstanceGroupManager(\"mig\", new()\n {\n Name = \"l7-ilb-mig1\",\n Project = serviceProject.ProjectId,\n Region = \"us-central1\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // Discovered workload \n var catalog_workload = Gcp.Apphub.GetDiscoveredWorkload.Invoke(new()\n {\n Location = \"us-central1\",\n WorkloadUri = Std.Replace.Invoke(new()\n {\n Text = mig.InstanceGroup,\n Search = \"https://www.googleapis.com/compute/v1\",\n Replace = \"//compute.googleapis.com\",\n }).Result,\n });\n\n var wait120sForResourceIngestion = new Time.Index.Sleep(\"wait_120s_for_resource_ingestion\", new()\n {\n CreateDuration = \"120s\",\n });\n\n var example = new Gcp.Apphub.Workload(\"example\", new()\n {\n Location = \"us-central1\",\n ApplicationId = application.ApplicationId,\n WorkloadId = mig.Name,\n DiscoveredWorkload = catalog_workload.Apply(catalog_workload =\u003e catalog_workload.Apply(getDiscoveredWorkloadResult =\u003e getDiscoveredWorkloadResult.Name)),\n DisplayName = \"Example Service Full\",\n Description = \"Register service for testing\",\n Attributes = new Gcp.Apphub.Inputs.WorkloadAttributesArgs\n {\n Environment = new Gcp.Apphub.Inputs.WorkloadAttributesEnvironmentArgs\n {\n Type = \"STAGING\",\n },\n Criticality = new Gcp.Apphub.Inputs.WorkloadAttributesCriticalityArgs\n {\n Type = \"MISSION_CRITICAL\",\n },\n BusinessOwners = new[]\n {\n new Gcp.Apphub.Inputs.WorkloadAttributesBusinessOwnerArgs\n {\n DisplayName = \"Alice\",\n Email = \"alice@google.com\",\n },\n },\n DeveloperOwners = new[]\n {\n new Gcp.Apphub.Inputs.WorkloadAttributesDeveloperOwnerArgs\n {\n DisplayName = \"Bob\",\n Email = \"bob@google.com\",\n },\n },\n OperatorOwners = new[]\n {\n new Gcp.Apphub.Inputs.WorkloadAttributesOperatorOwnerArgs\n {\n DisplayName = \"Charlie\",\n Email = \"charlie@google.com\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apphub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapplication, err := apphub.NewApplication(ctx, \"application\", \u0026apphub.ApplicationArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tApplicationId: pulumi.String(\"example-application-1\"),\n\t\t\tScope: \u0026apphub.ApplicationScopeArgs{\n\t\t\t\tType: pulumi.String(\"REGIONAL\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserviceProject, err := organizations.NewProject(ctx, \"service_project\", \u0026organizations.ProjectArgs{\n\t\t\tProjectId: pulumi.String(\"project-1\"),\n\t\t\tName: pulumi.String(\"Service Project\"),\n\t\t\tOrgId: pulumi.String(\"123456789\"),\n\t\t\tBillingAccount: pulumi.String(\"000000-0000000-0000000-000000\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Enable Compute API\n\t\t_, err = projects.NewService(ctx, \"compute_service_project\", \u0026projects.ServiceArgs{\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tService: pulumi.String(\"compute.googleapis.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = time.NewSleep(ctx, \"wait_120s\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"120s\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apphub.NewServiceProjectAttachment(ctx, \"service_project_attachment\", \u0026apphub.ServiceProjectAttachmentArgs{\n\t\t\tServiceProjectAttachmentId: serviceProject.ProjectId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// VPC network\n\t\tilbNetwork, err := compute.NewNetwork(ctx, \"ilb_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-network\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend subnet\n\t\tilbSubnet, err := compute.NewSubnetwork(ctx, \"ilb_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-subnet\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"l7-ilb-mig-template\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmig, err := compute.NewRegionInstanceGroupManager(ctx, \"mig\", \u0026compute.RegionInstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-mig1\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tVersions: compute.RegionInstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Discovered workload\n\t\tcatalog_workload := std.ReplaceOutput(ctx, std.ReplaceOutputArgs{\n\t\t\tText: mig.InstanceGroup,\n\t\t\tSearch: pulumi.String(\"https://www.googleapis.com/compute/v1\"),\n\t\t\tReplace: pulumi.String(\"//compute.googleapis.com\"),\n\t\t}, nil).ApplyT(func(invoke std.ReplaceResult) (apphub.GetDiscoveredWorkloadResult, error) {\n\t\t\treturn apphub.GetDiscoveredWorkloadOutput(ctx, apphub.GetDiscoveredWorkloadOutputArgs{\n\t\t\t\tLocation: \"us-central1\",\n\t\t\t\tWorkloadUri: invoke.Result,\n\t\t\t}, nil), nil\n\t\t}).(apphub.GetDiscoveredWorkloadResultOutput)\n\t\t_, err = time.NewSleep(ctx, \"wait_120s_for_resource_ingestion\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"120s\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apphub.NewWorkload(ctx, \"example\", \u0026apphub.WorkloadArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tApplicationId: application.ApplicationId,\n\t\t\tWorkloadId: mig.Name,\n\t\t\tDiscoveredWorkload: catalog_workload.ApplyT(func(catalog_workload apphub.GetDiscoveredWorkloadResult) (*string, error) {\n\t\t\t\treturn \u0026catalog_workload.Name, nil\n\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\tDisplayName: pulumi.String(\"Example Service Full\"),\n\t\t\tDescription: pulumi.String(\"Register service for testing\"),\n\t\t\tAttributes: \u0026apphub.WorkloadAttributesArgs{\n\t\t\t\tEnvironment: \u0026apphub.WorkloadAttributesEnvironmentArgs{\n\t\t\t\t\tType: pulumi.String(\"STAGING\"),\n\t\t\t\t},\n\t\t\t\tCriticality: \u0026apphub.WorkloadAttributesCriticalityArgs{\n\t\t\t\t\tType: pulumi.String(\"MISSION_CRITICAL\"),\n\t\t\t\t},\n\t\t\t\tBusinessOwners: apphub.WorkloadAttributesBusinessOwnerArray{\n\t\t\t\t\t\u0026apphub.WorkloadAttributesBusinessOwnerArgs{\n\t\t\t\t\t\tDisplayName: pulumi.String(\"Alice\"),\n\t\t\t\t\t\tEmail: pulumi.String(\"alice@google.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tDeveloperOwners: apphub.WorkloadAttributesDeveloperOwnerArray{\n\t\t\t\t\t\u0026apphub.WorkloadAttributesDeveloperOwnerArgs{\n\t\t\t\t\t\tDisplayName: pulumi.String(\"Bob\"),\n\t\t\t\t\t\tEmail: pulumi.String(\"bob@google.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tOperatorOwners: apphub.WorkloadAttributesOperatorOwnerArray{\n\t\t\t\t\t\u0026apphub.WorkloadAttributesOperatorOwnerArgs{\n\t\t\t\t\t\tDisplayName: pulumi.String(\"Charlie\"),\n\t\t\t\t\t\tEmail: pulumi.String(\"charlie@google.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.apphub.Application;\nimport com.pulumi.gcp.apphub.ApplicationArgs;\nimport com.pulumi.gcp.apphub.inputs.ApplicationScopeArgs;\nimport com.pulumi.gcp.organizations.Project;\nimport com.pulumi.gcp.organizations.ProjectArgs;\nimport com.pulumi.gcp.projects.Service;\nimport com.pulumi.gcp.projects.ServiceArgs;\nimport com.pulumi.time.sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.gcp.apphub.ServiceProjectAttachment;\nimport com.pulumi.gcp.apphub.ServiceProjectAttachmentArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManager;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.apphub.ApphubFunctions;\nimport com.pulumi.gcp.apphub.inputs.GetDiscoveredWorkloadArgs;\nimport com.pulumi.gcp.apphub.Workload;\nimport com.pulumi.gcp.apphub.WorkloadArgs;\nimport com.pulumi.gcp.apphub.inputs.WorkloadAttributesArgs;\nimport com.pulumi.gcp.apphub.inputs.WorkloadAttributesEnvironmentArgs;\nimport com.pulumi.gcp.apphub.inputs.WorkloadAttributesCriticalityArgs;\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 application = new Application(\"application\", ApplicationArgs.builder() \n .location(\"us-central1\")\n .applicationId(\"example-application-1\")\n .scope(ApplicationScopeArgs.builder()\n .type(\"REGIONAL\")\n .build())\n .build());\n\n var serviceProject = new Project(\"serviceProject\", ProjectArgs.builder() \n .projectId(\"project-1\")\n .name(\"Service Project\")\n .orgId(\"123456789\")\n .billingAccount(\"000000-0000000-0000000-000000\")\n .build());\n\n // Enable Compute API\n var computeServiceProject = new Service(\"computeServiceProject\", ServiceArgs.builder() \n .project(serviceProject.projectId())\n .service(\"compute.googleapis.com\")\n .build());\n\n var wait120s = new Sleep(\"wait120s\", SleepArgs.builder() \n .createDuration(\"120s\")\n .build());\n\n var serviceProjectAttachment = new ServiceProjectAttachment(\"serviceProjectAttachment\", ServiceProjectAttachmentArgs.builder() \n .serviceProjectAttachmentId(serviceProject.projectId())\n .build());\n\n // VPC network\n var ilbNetwork = new Network(\"ilbNetwork\", NetworkArgs.builder() \n .name(\"l7-ilb-network\")\n .project(serviceProject.projectId())\n .autoCreateSubnetworks(false)\n .build());\n\n // backend subnet\n var ilbSubnet = new Subnetwork(\"ilbSubnet\", SubnetworkArgs.builder() \n .name(\"l7-ilb-subnet\")\n .project(serviceProject.projectId())\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"us-central1\")\n .network(ilbNetwork.id())\n .build());\n\n // instance template\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .build())\n .name(\"l7-ilb-mig-template\")\n .project(serviceProject.projectId())\n .machineType(\"e2-small\")\n .tags(\"http-server\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n var mig = new RegionInstanceGroupManager(\"mig\", RegionInstanceGroupManagerArgs.builder() \n .name(\"l7-ilb-mig1\")\n .project(serviceProject.projectId())\n .region(\"us-central1\")\n .versions(RegionInstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // Discovered workload \n final var catalog-workload = ApphubFunctions.getDiscoveredWorkload(GetDiscoveredWorkloadArgs.builder()\n .location(\"us-central1\")\n .workloadUri(StdFunctions.replace().applyValue(invoke -\u003e invoke.result()))\n .build());\n\n var wait120sForResourceIngestion = new Sleep(\"wait120sForResourceIngestion\", SleepArgs.builder() \n .createDuration(\"120s\")\n .build());\n\n var example = new Workload(\"example\", WorkloadArgs.builder() \n .location(\"us-central1\")\n .applicationId(application.applicationId())\n .workloadId(mig.name())\n .discoveredWorkload(catalog_workload.applyValue(catalog_workload -\u003e catalog_workload.name()))\n .displayName(\"Example Service Full\")\n .description(\"Register service for testing\")\n .attributes(WorkloadAttributesArgs.builder()\n .environment(WorkloadAttributesEnvironmentArgs.builder()\n .type(\"STAGING\")\n .build())\n .criticality(WorkloadAttributesCriticalityArgs.builder()\n .type(\"MISSION_CRITICAL\")\n .build())\n .businessOwners(WorkloadAttributesBusinessOwnerArgs.builder()\n .displayName(\"Alice\")\n .email(\"alice@google.com\")\n .build())\n .developerOwners(WorkloadAttributesDeveloperOwnerArgs.builder()\n .displayName(\"Bob\")\n .email(\"bob@google.com\")\n .build())\n .operatorOwners(WorkloadAttributesOperatorOwnerArgs.builder()\n .displayName(\"Charlie\")\n .email(\"charlie@google.com\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n application:\n type: gcp:apphub:Application\n properties:\n location: us-central1\n applicationId: example-application-1\n scope:\n type: REGIONAL\n serviceProject:\n type: gcp:organizations:Project\n name: service_project\n properties:\n projectId: project-1\n name: Service Project\n orgId: '123456789'\n billingAccount: 000000-0000000-0000000-000000\n # Enable Compute API\n computeServiceProject:\n type: gcp:projects:Service\n name: compute_service_project\n properties:\n project: ${serviceProject.projectId}\n service: compute.googleapis.com\n wait120s:\n type: time:sleep\n name: wait_120s\n properties:\n createDuration: 120s\n serviceProjectAttachment:\n type: gcp:apphub:ServiceProjectAttachment\n name: service_project_attachment\n properties:\n serviceProjectAttachmentId: ${serviceProject.projectId}\n wait120sForResourceIngestion:\n type: time:sleep\n name: wait_120s_for_resource_ingestion\n properties:\n createDuration: 120s\n example:\n type: gcp:apphub:Workload\n properties:\n location: us-central1\n applicationId: ${application.applicationId}\n workloadId: ${mig.name}\n discoveredWorkload: ${[\"catalog-workload\"].name}\n displayName: Example Service Full\n description: Register service for testing\n attributes:\n environment:\n type: STAGING\n criticality:\n type: MISSION_CRITICAL\n businessOwners:\n - displayName: Alice\n email: alice@google.com\n developerOwners:\n - displayName: Bob\n email: bob@google.com\n operatorOwners:\n - displayName: Charlie\n email: charlie@google.com\n # VPC network\n ilbNetwork:\n type: gcp:compute:Network\n name: ilb_network\n properties:\n name: l7-ilb-network\n project: ${serviceProject.projectId}\n autoCreateSubnetworks: false\n # backend subnet\n ilbSubnet:\n type: gcp:compute:Subnetwork\n name: ilb_subnet\n properties:\n name: l7-ilb-subnet\n project: ${serviceProject.projectId}\n ipCidrRange: 10.0.1.0/24\n region: us-central1\n network: ${ilbNetwork.id}\n # instance template\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n name: l7-ilb-mig-template\n project: ${serviceProject.projectId}\n machineType: e2-small\n tags:\n - http-server\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n mig:\n type: gcp:compute:RegionInstanceGroupManager\n properties:\n name: l7-ilb-mig1\n project: ${serviceProject.projectId}\n region: us-central1\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\nvariables:\n # Discovered workload\n catalog-workload:\n fn::invoke:\n Function: gcp:apphub:getDiscoveredWorkload\n Arguments:\n location: us-central1\n workloadUri:\n fn::invoke:\n Function: std:replace\n Arguments:\n text: ${mig.instanceGroup}\n search: https://www.googleapis.com/compute/v1\n replace: //compute.googleapis.com\n Return: result\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nWorkload can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/applications/{{application_id}}/workloads/{{workload_id}}`\n\n* `{{project}}/{{location}}/{{application_id}}/{{workload_id}}`\n\n* `{{location}}/{{application_id}}/{{workload_id}}`\n\nWhen using the `pulumi import` command, Workload can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:apphub/workload:Workload default projects/{{project}}/locations/{{location}}/applications/{{application_id}}/workloads/{{workload_id}}\n```\n\n```sh\n$ pulumi import gcp:apphub/workload:Workload default {{project}}/{{location}}/{{application_id}}/{{workload_id}}\n```\n\n```sh\n$ pulumi import gcp:apphub/workload:Workload default {{location}}/{{application_id}}/{{workload_id}}\n```\n\n", + "description": "Workload represents a binary deployment (such as Managed Instance Groups (MIGs), GKE deployments, etc.) that performs the smallest logical subset of business functionality. It registers identified workload to the Application.\n\n\n\n## Example Usage\n\n### Apphub Workload Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as std from \"@pulumi/std\";\nimport * as time from \"@pulumi/time\";\n\nconst application = new gcp.apphub.Application(\"application\", {\n location: \"us-central1\",\n applicationId: \"example-application-1\",\n scope: {\n type: \"REGIONAL\",\n },\n});\nconst serviceProject = new gcp.organizations.Project(\"service_project\", {\n projectId: \"project-1\",\n name: \"Service Project\",\n orgId: \"123456789\",\n billingAccount: \"000000-0000000-0000000-000000\",\n});\n// Enable Compute API\nconst computeServiceProject = new gcp.projects.Service(\"compute_service_project\", {\n project: serviceProject.projectId,\n service: \"compute.googleapis.com\",\n});\nconst wait120s = new time.index.Sleep(\"wait_120s\", {createDuration: \"120s\"});\nconst serviceProjectAttachment = new gcp.apphub.ServiceProjectAttachment(\"service_project_attachment\", {serviceProjectAttachmentId: serviceProject.projectId});\n// VPC network\nconst ilbNetwork = new gcp.compute.Network(\"ilb_network\", {\n name: \"l7-ilb-network\",\n project: serviceProject.projectId,\n autoCreateSubnetworks: false,\n});\n// backend subnet\nconst ilbSubnet = new gcp.compute.Subnetwork(\"ilb_subnet\", {\n name: \"l7-ilb-subnet\",\n project: serviceProject.projectId,\n ipCidrRange: \"10.0.1.0/24\",\n region: \"us-central1\",\n network: ilbNetwork.id,\n});\n// instance template\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n }],\n name: \"l7-ilb-mig-template\",\n project: serviceProject.projectId,\n machineType: \"e2-small\",\n tags: [\"http-server\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: NAME\nIP: IP\nMetadata: METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\nconst mig = new gcp.compute.RegionInstanceGroupManager(\"mig\", {\n name: \"l7-ilb-mig1\",\n project: serviceProject.projectId,\n region: \"us-central1\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// Discovered workload\nconst catalog-workload = std.replaceOutput({\n text: mig.instanceGroup,\n search: \"https://www.googleapis.com/compute/v1\",\n replace: \"//compute.googleapis.com\",\n}).apply(invoke =\u003e gcp.apphub.getDiscoveredWorkloadOutput({\n location: \"us-central1\",\n workloadUri: invoke.result,\n}));\nconst wait120sForResourceIngestion = new time.index.Sleep(\"wait_120s_for_resource_ingestion\", {createDuration: \"120s\"});\nconst example = new gcp.apphub.Workload(\"example\", {\n location: \"us-central1\",\n applicationId: application.applicationId,\n workloadId: mig.name,\n discoveredWorkload: catalog_workload.apply(catalog_workload =\u003e catalog_workload.name),\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_std as std\nimport pulumi_time as time\n\napplication = gcp.apphub.Application(\"application\",\n location=\"us-central1\",\n application_id=\"example-application-1\",\n scope=gcp.apphub.ApplicationScopeArgs(\n type=\"REGIONAL\",\n ))\nservice_project = gcp.organizations.Project(\"service_project\",\n project_id=\"project-1\",\n name=\"Service Project\",\n org_id=\"123456789\",\n billing_account=\"000000-0000000-0000000-000000\")\n# Enable Compute API\ncompute_service_project = gcp.projects.Service(\"compute_service_project\",\n project=service_project.project_id,\n service=\"compute.googleapis.com\")\nwait120s = time.index.Sleep(\"wait_120s\", create_duration=120s)\nservice_project_attachment = gcp.apphub.ServiceProjectAttachment(\"service_project_attachment\", service_project_attachment_id=service_project.project_id)\n# VPC network\nilb_network = gcp.compute.Network(\"ilb_network\",\n name=\"l7-ilb-network\",\n project=service_project.project_id,\n auto_create_subnetworks=False)\n# backend subnet\nilb_subnet = gcp.compute.Subnetwork(\"ilb_subnet\",\n name=\"l7-ilb-subnet\",\n project=service_project.project_id,\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"us-central1\",\n network=ilb_network.id)\n# instance template\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=ilb_network.id,\n subnetwork=ilb_subnet.id,\n )],\n name=\"l7-ilb-mig-template\",\n project=service_project.project_id,\n machine_type=\"e2-small\",\n tags=[\"http-server\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\nmig = gcp.compute.RegionInstanceGroupManager(\"mig\",\n name=\"l7-ilb-mig1\",\n project=service_project.project_id,\n region=\"us-central1\",\n versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# Discovered workload\ncatalog_workload = std.replace_output(text=mig.instance_group,\n search=\"https://www.googleapis.com/compute/v1\",\n replace=\"//compute.googleapis.com\").apply(lambda invoke: gcp.apphub.get_discovered_workload_output(location=\"us-central1\",\n workload_uri=invoke.result))\nwait120s_for_resource_ingestion = time.index.Sleep(\"wait_120s_for_resource_ingestion\", create_duration=120s)\nexample = gcp.apphub.Workload(\"example\",\n location=\"us-central1\",\n application_id=application.application_id,\n workload_id=mig.name,\n discovered_workload=catalog_workload.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Std = Pulumi.Std;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var application = new Gcp.Apphub.Application(\"application\", new()\n {\n Location = \"us-central1\",\n ApplicationId = \"example-application-1\",\n Scope = new Gcp.Apphub.Inputs.ApplicationScopeArgs\n {\n Type = \"REGIONAL\",\n },\n });\n\n var serviceProject = new Gcp.Organizations.Project(\"service_project\", new()\n {\n ProjectId = \"project-1\",\n Name = \"Service Project\",\n OrgId = \"123456789\",\n BillingAccount = \"000000-0000000-0000000-000000\",\n });\n\n // Enable Compute API\n var computeServiceProject = new Gcp.Projects.Service(\"compute_service_project\", new()\n {\n Project = serviceProject.ProjectId,\n ServiceName = \"compute.googleapis.com\",\n });\n\n var wait120s = new Time.Index.Sleep(\"wait_120s\", new()\n {\n CreateDuration = \"120s\",\n });\n\n var serviceProjectAttachment = new Gcp.Apphub.ServiceProjectAttachment(\"service_project_attachment\", new()\n {\n ServiceProjectAttachmentId = serviceProject.ProjectId,\n });\n\n // VPC network\n var ilbNetwork = new Gcp.Compute.Network(\"ilb_network\", new()\n {\n Name = \"l7-ilb-network\",\n Project = serviceProject.ProjectId,\n AutoCreateSubnetworks = false,\n });\n\n // backend subnet\n var ilbSubnet = new Gcp.Compute.Subnetwork(\"ilb_subnet\", new()\n {\n Name = \"l7-ilb-subnet\",\n Project = serviceProject.ProjectId,\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"us-central1\",\n Network = ilbNetwork.Id,\n });\n\n // instance template\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n },\n },\n Name = \"l7-ilb-mig-template\",\n Project = serviceProject.ProjectId,\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"http-server\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n var mig = new Gcp.Compute.RegionInstanceGroupManager(\"mig\", new()\n {\n Name = \"l7-ilb-mig1\",\n Project = serviceProject.ProjectId,\n Region = \"us-central1\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // Discovered workload\n var catalog_workload = Gcp.Apphub.GetDiscoveredWorkload.Invoke(new()\n {\n Location = \"us-central1\",\n WorkloadUri = Std.Replace.Invoke(new()\n {\n Text = mig.InstanceGroup,\n Search = \"https://www.googleapis.com/compute/v1\",\n Replace = \"//compute.googleapis.com\",\n }).Result,\n });\n\n var wait120sForResourceIngestion = new Time.Index.Sleep(\"wait_120s_for_resource_ingestion\", new()\n {\n CreateDuration = \"120s\",\n });\n\n var example = new Gcp.Apphub.Workload(\"example\", new()\n {\n Location = \"us-central1\",\n ApplicationId = application.ApplicationId,\n WorkloadId = mig.Name,\n DiscoveredWorkload = catalog_workload.Apply(catalog_workload =\u003e catalog_workload.Apply(getDiscoveredWorkloadResult =\u003e getDiscoveredWorkloadResult.Name)),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apphub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapplication, err := apphub.NewApplication(ctx, \"application\", \u0026apphub.ApplicationArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tApplicationId: pulumi.String(\"example-application-1\"),\n\t\t\tScope: \u0026apphub.ApplicationScopeArgs{\n\t\t\t\tType: pulumi.String(\"REGIONAL\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserviceProject, err := organizations.NewProject(ctx, \"service_project\", \u0026organizations.ProjectArgs{\n\t\t\tProjectId: pulumi.String(\"project-1\"),\n\t\t\tName: pulumi.String(\"Service Project\"),\n\t\t\tOrgId: pulumi.String(\"123456789\"),\n\t\t\tBillingAccount: pulumi.String(\"000000-0000000-0000000-000000\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Enable Compute API\n\t\t_, err = projects.NewService(ctx, \"compute_service_project\", \u0026projects.ServiceArgs{\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tService: pulumi.String(\"compute.googleapis.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = time.NewSleep(ctx, \"wait_120s\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"120s\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apphub.NewServiceProjectAttachment(ctx, \"service_project_attachment\", \u0026apphub.ServiceProjectAttachmentArgs{\n\t\t\tServiceProjectAttachmentId: serviceProject.ProjectId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// VPC network\n\t\tilbNetwork, err := compute.NewNetwork(ctx, \"ilb_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-network\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend subnet\n\t\tilbSubnet, err := compute.NewSubnetwork(ctx, \"ilb_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-subnet\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"l7-ilb-mig-template\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmig, err := compute.NewRegionInstanceGroupManager(ctx, \"mig\", \u0026compute.RegionInstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-mig1\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tVersions: compute.RegionInstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Discovered workload\n\t\tcatalog_workload := std.ReplaceOutput(ctx, std.ReplaceOutputArgs{\n\t\t\tText: mig.InstanceGroup,\n\t\t\tSearch: pulumi.String(\"https://www.googleapis.com/compute/v1\"),\n\t\t\tReplace: pulumi.String(\"//compute.googleapis.com\"),\n\t\t}, nil).ApplyT(func(invoke std.ReplaceResult) (apphub.GetDiscoveredWorkloadResult, error) {\n\t\t\treturn apphub.GetDiscoveredWorkloadOutput(ctx, apphub.GetDiscoveredWorkloadOutputArgs{\n\t\t\t\tLocation: \"us-central1\",\n\t\t\t\tWorkloadUri: invoke.Result,\n\t\t\t}, nil), nil\n\t\t}).(apphub.GetDiscoveredWorkloadResultOutput)\n\t\t_, err = time.NewSleep(ctx, \"wait_120s_for_resource_ingestion\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"120s\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apphub.NewWorkload(ctx, \"example\", \u0026apphub.WorkloadArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tApplicationId: application.ApplicationId,\n\t\t\tWorkloadId: mig.Name,\n\t\t\tDiscoveredWorkload: catalog_workload.ApplyT(func(catalog_workload apphub.GetDiscoveredWorkloadResult) (*string, error) {\n\t\t\t\treturn \u0026catalog_workload.Name, nil\n\t\t\t}).(pulumi.StringPtrOutput),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.apphub.Application;\nimport com.pulumi.gcp.apphub.ApplicationArgs;\nimport com.pulumi.gcp.apphub.inputs.ApplicationScopeArgs;\nimport com.pulumi.gcp.organizations.Project;\nimport com.pulumi.gcp.organizations.ProjectArgs;\nimport com.pulumi.gcp.projects.Service;\nimport com.pulumi.gcp.projects.ServiceArgs;\nimport com.pulumi.time.sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.gcp.apphub.ServiceProjectAttachment;\nimport com.pulumi.gcp.apphub.ServiceProjectAttachmentArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManager;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.apphub.ApphubFunctions;\nimport com.pulumi.gcp.apphub.inputs.GetDiscoveredWorkloadArgs;\nimport com.pulumi.gcp.apphub.Workload;\nimport com.pulumi.gcp.apphub.WorkloadArgs;\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 application = new Application(\"application\", ApplicationArgs.builder() \n .location(\"us-central1\")\n .applicationId(\"example-application-1\")\n .scope(ApplicationScopeArgs.builder()\n .type(\"REGIONAL\")\n .build())\n .build());\n\n var serviceProject = new Project(\"serviceProject\", ProjectArgs.builder() \n .projectId(\"project-1\")\n .name(\"Service Project\")\n .orgId(\"123456789\")\n .billingAccount(\"000000-0000000-0000000-000000\")\n .build());\n\n // Enable Compute API\n var computeServiceProject = new Service(\"computeServiceProject\", ServiceArgs.builder() \n .project(serviceProject.projectId())\n .service(\"compute.googleapis.com\")\n .build());\n\n var wait120s = new Sleep(\"wait120s\", SleepArgs.builder() \n .createDuration(\"120s\")\n .build());\n\n var serviceProjectAttachment = new ServiceProjectAttachment(\"serviceProjectAttachment\", ServiceProjectAttachmentArgs.builder() \n .serviceProjectAttachmentId(serviceProject.projectId())\n .build());\n\n // VPC network\n var ilbNetwork = new Network(\"ilbNetwork\", NetworkArgs.builder() \n .name(\"l7-ilb-network\")\n .project(serviceProject.projectId())\n .autoCreateSubnetworks(false)\n .build());\n\n // backend subnet\n var ilbSubnet = new Subnetwork(\"ilbSubnet\", SubnetworkArgs.builder() \n .name(\"l7-ilb-subnet\")\n .project(serviceProject.projectId())\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"us-central1\")\n .network(ilbNetwork.id())\n .build());\n\n // instance template\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .build())\n .name(\"l7-ilb-mig-template\")\n .project(serviceProject.projectId())\n .machineType(\"e2-small\")\n .tags(\"http-server\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n var mig = new RegionInstanceGroupManager(\"mig\", RegionInstanceGroupManagerArgs.builder() \n .name(\"l7-ilb-mig1\")\n .project(serviceProject.projectId())\n .region(\"us-central1\")\n .versions(RegionInstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // Discovered workload\n final var catalog-workload = ApphubFunctions.getDiscoveredWorkload(GetDiscoveredWorkloadArgs.builder()\n .location(\"us-central1\")\n .workloadUri(StdFunctions.replace().applyValue(invoke -\u003e invoke.result()))\n .build());\n\n var wait120sForResourceIngestion = new Sleep(\"wait120sForResourceIngestion\", SleepArgs.builder() \n .createDuration(\"120s\")\n .build());\n\n var example = new Workload(\"example\", WorkloadArgs.builder() \n .location(\"us-central1\")\n .applicationId(application.applicationId())\n .workloadId(mig.name())\n .discoveredWorkload(catalog_workload.applyValue(catalog_workload -\u003e catalog_workload.name()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n application:\n type: gcp:apphub:Application\n properties:\n location: us-central1\n applicationId: example-application-1\n scope:\n type: REGIONAL\n serviceProject:\n type: gcp:organizations:Project\n name: service_project\n properties:\n projectId: project-1\n name: Service Project\n orgId: '123456789'\n billingAccount: 000000-0000000-0000000-000000\n # Enable Compute API\n computeServiceProject:\n type: gcp:projects:Service\n name: compute_service_project\n properties:\n project: ${serviceProject.projectId}\n service: compute.googleapis.com\n wait120s:\n type: time:sleep\n name: wait_120s\n properties:\n createDuration: 120s\n serviceProjectAttachment:\n type: gcp:apphub:ServiceProjectAttachment\n name: service_project_attachment\n properties:\n serviceProjectAttachmentId: ${serviceProject.projectId}\n wait120sForResourceIngestion:\n type: time:sleep\n name: wait_120s_for_resource_ingestion\n properties:\n createDuration: 120s\n example:\n type: gcp:apphub:Workload\n properties:\n location: us-central1\n applicationId: ${application.applicationId}\n workloadId: ${mig.name}\n discoveredWorkload: ${[\"catalog-workload\"].name}\n # VPC network\n ilbNetwork:\n type: gcp:compute:Network\n name: ilb_network\n properties:\n name: l7-ilb-network\n project: ${serviceProject.projectId}\n autoCreateSubnetworks: false\n # backend subnet\n ilbSubnet:\n type: gcp:compute:Subnetwork\n name: ilb_subnet\n properties:\n name: l7-ilb-subnet\n project: ${serviceProject.projectId}\n ipCidrRange: 10.0.1.0/24\n region: us-central1\n network: ${ilbNetwork.id}\n # instance template\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n name: l7-ilb-mig-template\n project: ${serviceProject.projectId}\n machineType: e2-small\n tags:\n - http-server\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n mig:\n type: gcp:compute:RegionInstanceGroupManager\n properties:\n name: l7-ilb-mig1\n project: ${serviceProject.projectId}\n region: us-central1\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\nvariables:\n # Discovered workload\n catalog-workload:\n fn::invoke:\n Function: gcp:apphub:getDiscoveredWorkload\n Arguments:\n location: us-central1\n workloadUri:\n fn::invoke:\n Function: std:replace\n Arguments:\n text: ${mig.instanceGroup}\n search: https://www.googleapis.com/compute/v1\n replace: //compute.googleapis.com\n Return: result\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Apphub Workload Full\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as std from \"@pulumi/std\";\nimport * as time from \"@pulumi/time\";\n\nconst application = new gcp.apphub.Application(\"application\", {\n location: \"us-central1\",\n applicationId: \"example-application-1\",\n scope: {\n type: \"REGIONAL\",\n },\n});\nconst serviceProject = new gcp.organizations.Project(\"service_project\", {\n projectId: \"project-1\",\n name: \"Service Project\",\n orgId: \"123456789\",\n billingAccount: \"000000-0000000-0000000-000000\",\n});\n// Enable Compute API\nconst computeServiceProject = new gcp.projects.Service(\"compute_service_project\", {\n project: serviceProject.projectId,\n service: \"compute.googleapis.com\",\n});\nconst wait120s = new time.index.Sleep(\"wait_120s\", {createDuration: \"120s\"});\nconst serviceProjectAttachment = new gcp.apphub.ServiceProjectAttachment(\"service_project_attachment\", {serviceProjectAttachmentId: serviceProject.projectId});\n// VPC network\nconst ilbNetwork = new gcp.compute.Network(\"ilb_network\", {\n name: \"l7-ilb-network\",\n project: serviceProject.projectId,\n autoCreateSubnetworks: false,\n});\n// backend subnet\nconst ilbSubnet = new gcp.compute.Subnetwork(\"ilb_subnet\", {\n name: \"l7-ilb-subnet\",\n project: serviceProject.projectId,\n ipCidrRange: \"10.0.1.0/24\",\n region: \"us-central1\",\n network: ilbNetwork.id,\n});\n// instance template\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n }],\n name: \"l7-ilb-mig-template\",\n project: serviceProject.projectId,\n machineType: \"e2-small\",\n tags: [\"http-server\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: NAME\nIP: IP\nMetadata: METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\nconst mig = new gcp.compute.RegionInstanceGroupManager(\"mig\", {\n name: \"l7-ilb-mig1\",\n project: serviceProject.projectId,\n region: \"us-central1\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// Discovered workload \nconst catalog-workload = std.replaceOutput({\n text: mig.instanceGroup,\n search: \"https://www.googleapis.com/compute/v1\",\n replace: \"//compute.googleapis.com\",\n}).apply(invoke =\u003e gcp.apphub.getDiscoveredWorkloadOutput({\n location: \"us-central1\",\n workloadUri: invoke.result,\n}));\nconst wait120sForResourceIngestion = new time.index.Sleep(\"wait_120s_for_resource_ingestion\", {createDuration: \"120s\"});\nconst example = new gcp.apphub.Workload(\"example\", {\n location: \"us-central1\",\n applicationId: application.applicationId,\n workloadId: mig.name,\n discoveredWorkload: catalog_workload.apply(catalog_workload =\u003e catalog_workload.name),\n displayName: \"Example Service Full\",\n description: \"Register service for testing\",\n attributes: {\n environment: {\n type: \"STAGING\",\n },\n criticality: {\n type: \"MISSION_CRITICAL\",\n },\n businessOwners: [{\n displayName: \"Alice\",\n email: \"alice@google.com\",\n }],\n developerOwners: [{\n displayName: \"Bob\",\n email: \"bob@google.com\",\n }],\n operatorOwners: [{\n displayName: \"Charlie\",\n email: \"charlie@google.com\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_std as std\nimport pulumi_time as time\n\napplication = gcp.apphub.Application(\"application\",\n location=\"us-central1\",\n application_id=\"example-application-1\",\n scope=gcp.apphub.ApplicationScopeArgs(\n type=\"REGIONAL\",\n ))\nservice_project = gcp.organizations.Project(\"service_project\",\n project_id=\"project-1\",\n name=\"Service Project\",\n org_id=\"123456789\",\n billing_account=\"000000-0000000-0000000-000000\")\n# Enable Compute API\ncompute_service_project = gcp.projects.Service(\"compute_service_project\",\n project=service_project.project_id,\n service=\"compute.googleapis.com\")\nwait120s = time.index.Sleep(\"wait_120s\", create_duration=120s)\nservice_project_attachment = gcp.apphub.ServiceProjectAttachment(\"service_project_attachment\", service_project_attachment_id=service_project.project_id)\n# VPC network\nilb_network = gcp.compute.Network(\"ilb_network\",\n name=\"l7-ilb-network\",\n project=service_project.project_id,\n auto_create_subnetworks=False)\n# backend subnet\nilb_subnet = gcp.compute.Subnetwork(\"ilb_subnet\",\n name=\"l7-ilb-subnet\",\n project=service_project.project_id,\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"us-central1\",\n network=ilb_network.id)\n# instance template\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=ilb_network.id,\n subnetwork=ilb_subnet.id,\n )],\n name=\"l7-ilb-mig-template\",\n project=service_project.project_id,\n machine_type=\"e2-small\",\n tags=[\"http-server\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\nmig = gcp.compute.RegionInstanceGroupManager(\"mig\",\n name=\"l7-ilb-mig1\",\n project=service_project.project_id,\n region=\"us-central1\",\n versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# Discovered workload \ncatalog_workload = std.replace_output(text=mig.instance_group,\n search=\"https://www.googleapis.com/compute/v1\",\n replace=\"//compute.googleapis.com\").apply(lambda invoke: gcp.apphub.get_discovered_workload_output(location=\"us-central1\",\n workload_uri=invoke.result))\nwait120s_for_resource_ingestion = time.index.Sleep(\"wait_120s_for_resource_ingestion\", create_duration=120s)\nexample = gcp.apphub.Workload(\"example\",\n location=\"us-central1\",\n application_id=application.application_id,\n workload_id=mig.name,\n discovered_workload=catalog_workload.name,\n display_name=\"Example Service Full\",\n description=\"Register service for testing\",\n attributes=gcp.apphub.WorkloadAttributesArgs(\n environment=gcp.apphub.WorkloadAttributesEnvironmentArgs(\n type=\"STAGING\",\n ),\n criticality=gcp.apphub.WorkloadAttributesCriticalityArgs(\n type=\"MISSION_CRITICAL\",\n ),\n business_owners=[gcp.apphub.WorkloadAttributesBusinessOwnerArgs(\n display_name=\"Alice\",\n email=\"alice@google.com\",\n )],\n developer_owners=[gcp.apphub.WorkloadAttributesDeveloperOwnerArgs(\n display_name=\"Bob\",\n email=\"bob@google.com\",\n )],\n operator_owners=[gcp.apphub.WorkloadAttributesOperatorOwnerArgs(\n display_name=\"Charlie\",\n email=\"charlie@google.com\",\n )],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Std = Pulumi.Std;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var application = new Gcp.Apphub.Application(\"application\", new()\n {\n Location = \"us-central1\",\n ApplicationId = \"example-application-1\",\n Scope = new Gcp.Apphub.Inputs.ApplicationScopeArgs\n {\n Type = \"REGIONAL\",\n },\n });\n\n var serviceProject = new Gcp.Organizations.Project(\"service_project\", new()\n {\n ProjectId = \"project-1\",\n Name = \"Service Project\",\n OrgId = \"123456789\",\n BillingAccount = \"000000-0000000-0000000-000000\",\n });\n\n // Enable Compute API\n var computeServiceProject = new Gcp.Projects.Service(\"compute_service_project\", new()\n {\n Project = serviceProject.ProjectId,\n ServiceName = \"compute.googleapis.com\",\n });\n\n var wait120s = new Time.Index.Sleep(\"wait_120s\", new()\n {\n CreateDuration = \"120s\",\n });\n\n var serviceProjectAttachment = new Gcp.Apphub.ServiceProjectAttachment(\"service_project_attachment\", new()\n {\n ServiceProjectAttachmentId = serviceProject.ProjectId,\n });\n\n // VPC network\n var ilbNetwork = new Gcp.Compute.Network(\"ilb_network\", new()\n {\n Name = \"l7-ilb-network\",\n Project = serviceProject.ProjectId,\n AutoCreateSubnetworks = false,\n });\n\n // backend subnet\n var ilbSubnet = new Gcp.Compute.Subnetwork(\"ilb_subnet\", new()\n {\n Name = \"l7-ilb-subnet\",\n Project = serviceProject.ProjectId,\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"us-central1\",\n Network = ilbNetwork.Id,\n });\n\n // instance template\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n },\n },\n Name = \"l7-ilb-mig-template\",\n Project = serviceProject.ProjectId,\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"http-server\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n var mig = new Gcp.Compute.RegionInstanceGroupManager(\"mig\", new()\n {\n Name = \"l7-ilb-mig1\",\n Project = serviceProject.ProjectId,\n Region = \"us-central1\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // Discovered workload \n var catalog_workload = Gcp.Apphub.GetDiscoveredWorkload.Invoke(new()\n {\n Location = \"us-central1\",\n WorkloadUri = Std.Replace.Invoke(new()\n {\n Text = mig.InstanceGroup,\n Search = \"https://www.googleapis.com/compute/v1\",\n Replace = \"//compute.googleapis.com\",\n }).Result,\n });\n\n var wait120sForResourceIngestion = new Time.Index.Sleep(\"wait_120s_for_resource_ingestion\", new()\n {\n CreateDuration = \"120s\",\n });\n\n var example = new Gcp.Apphub.Workload(\"example\", new()\n {\n Location = \"us-central1\",\n ApplicationId = application.ApplicationId,\n WorkloadId = mig.Name,\n DiscoveredWorkload = catalog_workload.Apply(catalog_workload =\u003e catalog_workload.Apply(getDiscoveredWorkloadResult =\u003e getDiscoveredWorkloadResult.Name)),\n DisplayName = \"Example Service Full\",\n Description = \"Register service for testing\",\n Attributes = new Gcp.Apphub.Inputs.WorkloadAttributesArgs\n {\n Environment = new Gcp.Apphub.Inputs.WorkloadAttributesEnvironmentArgs\n {\n Type = \"STAGING\",\n },\n Criticality = new Gcp.Apphub.Inputs.WorkloadAttributesCriticalityArgs\n {\n Type = \"MISSION_CRITICAL\",\n },\n BusinessOwners = new[]\n {\n new Gcp.Apphub.Inputs.WorkloadAttributesBusinessOwnerArgs\n {\n DisplayName = \"Alice\",\n Email = \"alice@google.com\",\n },\n },\n DeveloperOwners = new[]\n {\n new Gcp.Apphub.Inputs.WorkloadAttributesDeveloperOwnerArgs\n {\n DisplayName = \"Bob\",\n Email = \"bob@google.com\",\n },\n },\n OperatorOwners = new[]\n {\n new Gcp.Apphub.Inputs.WorkloadAttributesOperatorOwnerArgs\n {\n DisplayName = \"Charlie\",\n Email = \"charlie@google.com\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apphub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapplication, err := apphub.NewApplication(ctx, \"application\", \u0026apphub.ApplicationArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tApplicationId: pulumi.String(\"example-application-1\"),\n\t\t\tScope: \u0026apphub.ApplicationScopeArgs{\n\t\t\t\tType: pulumi.String(\"REGIONAL\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserviceProject, err := organizations.NewProject(ctx, \"service_project\", \u0026organizations.ProjectArgs{\n\t\t\tProjectId: pulumi.String(\"project-1\"),\n\t\t\tName: pulumi.String(\"Service Project\"),\n\t\t\tOrgId: pulumi.String(\"123456789\"),\n\t\t\tBillingAccount: pulumi.String(\"000000-0000000-0000000-000000\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Enable Compute API\n\t\t_, err = projects.NewService(ctx, \"compute_service_project\", \u0026projects.ServiceArgs{\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tService: pulumi.String(\"compute.googleapis.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = time.NewSleep(ctx, \"wait_120s\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"120s\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apphub.NewServiceProjectAttachment(ctx, \"service_project_attachment\", \u0026apphub.ServiceProjectAttachmentArgs{\n\t\t\tServiceProjectAttachmentId: serviceProject.ProjectId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// VPC network\n\t\tilbNetwork, err := compute.NewNetwork(ctx, \"ilb_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-network\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend subnet\n\t\tilbSubnet, err := compute.NewSubnetwork(ctx, \"ilb_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-subnet\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"l7-ilb-mig-template\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmig, err := compute.NewRegionInstanceGroupManager(ctx, \"mig\", \u0026compute.RegionInstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-mig1\"),\n\t\t\tProject: serviceProject.ProjectId,\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tVersions: compute.RegionInstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Discovered workload\n\t\tcatalog_workload := std.ReplaceOutput(ctx, std.ReplaceOutputArgs{\n\t\t\tText: mig.InstanceGroup,\n\t\t\tSearch: pulumi.String(\"https://www.googleapis.com/compute/v1\"),\n\t\t\tReplace: pulumi.String(\"//compute.googleapis.com\"),\n\t\t}, nil).ApplyT(func(invoke std.ReplaceResult) (apphub.GetDiscoveredWorkloadResult, error) {\n\t\t\treturn apphub.GetDiscoveredWorkloadOutput(ctx, apphub.GetDiscoveredWorkloadOutputArgs{\n\t\t\t\tLocation: \"us-central1\",\n\t\t\t\tWorkloadUri: invoke.Result,\n\t\t\t}, nil), nil\n\t\t}).(apphub.GetDiscoveredWorkloadResultOutput)\n\t\t_, err = time.NewSleep(ctx, \"wait_120s_for_resource_ingestion\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"120s\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apphub.NewWorkload(ctx, \"example\", \u0026apphub.WorkloadArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tApplicationId: application.ApplicationId,\n\t\t\tWorkloadId: mig.Name,\n\t\t\tDiscoveredWorkload: catalog_workload.ApplyT(func(catalog_workload apphub.GetDiscoveredWorkloadResult) (*string, error) {\n\t\t\t\treturn \u0026catalog_workload.Name, nil\n\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\tDisplayName: pulumi.String(\"Example Service Full\"),\n\t\t\tDescription: pulumi.String(\"Register service for testing\"),\n\t\t\tAttributes: \u0026apphub.WorkloadAttributesArgs{\n\t\t\t\tEnvironment: \u0026apphub.WorkloadAttributesEnvironmentArgs{\n\t\t\t\t\tType: pulumi.String(\"STAGING\"),\n\t\t\t\t},\n\t\t\t\tCriticality: \u0026apphub.WorkloadAttributesCriticalityArgs{\n\t\t\t\t\tType: pulumi.String(\"MISSION_CRITICAL\"),\n\t\t\t\t},\n\t\t\t\tBusinessOwners: apphub.WorkloadAttributesBusinessOwnerArray{\n\t\t\t\t\t\u0026apphub.WorkloadAttributesBusinessOwnerArgs{\n\t\t\t\t\t\tDisplayName: pulumi.String(\"Alice\"),\n\t\t\t\t\t\tEmail: pulumi.String(\"alice@google.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tDeveloperOwners: apphub.WorkloadAttributesDeveloperOwnerArray{\n\t\t\t\t\t\u0026apphub.WorkloadAttributesDeveloperOwnerArgs{\n\t\t\t\t\t\tDisplayName: pulumi.String(\"Bob\"),\n\t\t\t\t\t\tEmail: pulumi.String(\"bob@google.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tOperatorOwners: apphub.WorkloadAttributesOperatorOwnerArray{\n\t\t\t\t\t\u0026apphub.WorkloadAttributesOperatorOwnerArgs{\n\t\t\t\t\t\tDisplayName: pulumi.String(\"Charlie\"),\n\t\t\t\t\t\tEmail: pulumi.String(\"charlie@google.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.apphub.Application;\nimport com.pulumi.gcp.apphub.ApplicationArgs;\nimport com.pulumi.gcp.apphub.inputs.ApplicationScopeArgs;\nimport com.pulumi.gcp.organizations.Project;\nimport com.pulumi.gcp.organizations.ProjectArgs;\nimport com.pulumi.gcp.projects.Service;\nimport com.pulumi.gcp.projects.ServiceArgs;\nimport com.pulumi.time.sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.gcp.apphub.ServiceProjectAttachment;\nimport com.pulumi.gcp.apphub.ServiceProjectAttachmentArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManager;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.apphub.ApphubFunctions;\nimport com.pulumi.gcp.apphub.inputs.GetDiscoveredWorkloadArgs;\nimport com.pulumi.gcp.apphub.Workload;\nimport com.pulumi.gcp.apphub.WorkloadArgs;\nimport com.pulumi.gcp.apphub.inputs.WorkloadAttributesArgs;\nimport com.pulumi.gcp.apphub.inputs.WorkloadAttributesEnvironmentArgs;\nimport com.pulumi.gcp.apphub.inputs.WorkloadAttributesCriticalityArgs;\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 application = new Application(\"application\", ApplicationArgs.builder() \n .location(\"us-central1\")\n .applicationId(\"example-application-1\")\n .scope(ApplicationScopeArgs.builder()\n .type(\"REGIONAL\")\n .build())\n .build());\n\n var serviceProject = new Project(\"serviceProject\", ProjectArgs.builder() \n .projectId(\"project-1\")\n .name(\"Service Project\")\n .orgId(\"123456789\")\n .billingAccount(\"000000-0000000-0000000-000000\")\n .build());\n\n // Enable Compute API\n var computeServiceProject = new Service(\"computeServiceProject\", ServiceArgs.builder() \n .project(serviceProject.projectId())\n .service(\"compute.googleapis.com\")\n .build());\n\n var wait120s = new Sleep(\"wait120s\", SleepArgs.builder() \n .createDuration(\"120s\")\n .build());\n\n var serviceProjectAttachment = new ServiceProjectAttachment(\"serviceProjectAttachment\", ServiceProjectAttachmentArgs.builder() \n .serviceProjectAttachmentId(serviceProject.projectId())\n .build());\n\n // VPC network\n var ilbNetwork = new Network(\"ilbNetwork\", NetworkArgs.builder() \n .name(\"l7-ilb-network\")\n .project(serviceProject.projectId())\n .autoCreateSubnetworks(false)\n .build());\n\n // backend subnet\n var ilbSubnet = new Subnetwork(\"ilbSubnet\", SubnetworkArgs.builder() \n .name(\"l7-ilb-subnet\")\n .project(serviceProject.projectId())\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"us-central1\")\n .network(ilbNetwork.id())\n .build());\n\n // instance template\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .build())\n .name(\"l7-ilb-mig-template\")\n .project(serviceProject.projectId())\n .machineType(\"e2-small\")\n .tags(\"http-server\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n var mig = new RegionInstanceGroupManager(\"mig\", RegionInstanceGroupManagerArgs.builder() \n .name(\"l7-ilb-mig1\")\n .project(serviceProject.projectId())\n .region(\"us-central1\")\n .versions(RegionInstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // Discovered workload \n final var catalog-workload = ApphubFunctions.getDiscoveredWorkload(GetDiscoveredWorkloadArgs.builder()\n .location(\"us-central1\")\n .workloadUri(StdFunctions.replace().applyValue(invoke -\u003e invoke.result()))\n .build());\n\n var wait120sForResourceIngestion = new Sleep(\"wait120sForResourceIngestion\", SleepArgs.builder() \n .createDuration(\"120s\")\n .build());\n\n var example = new Workload(\"example\", WorkloadArgs.builder() \n .location(\"us-central1\")\n .applicationId(application.applicationId())\n .workloadId(mig.name())\n .discoveredWorkload(catalog_workload.applyValue(catalog_workload -\u003e catalog_workload.name()))\n .displayName(\"Example Service Full\")\n .description(\"Register service for testing\")\n .attributes(WorkloadAttributesArgs.builder()\n .environment(WorkloadAttributesEnvironmentArgs.builder()\n .type(\"STAGING\")\n .build())\n .criticality(WorkloadAttributesCriticalityArgs.builder()\n .type(\"MISSION_CRITICAL\")\n .build())\n .businessOwners(WorkloadAttributesBusinessOwnerArgs.builder()\n .displayName(\"Alice\")\n .email(\"alice@google.com\")\n .build())\n .developerOwners(WorkloadAttributesDeveloperOwnerArgs.builder()\n .displayName(\"Bob\")\n .email(\"bob@google.com\")\n .build())\n .operatorOwners(WorkloadAttributesOperatorOwnerArgs.builder()\n .displayName(\"Charlie\")\n .email(\"charlie@google.com\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n application:\n type: gcp:apphub:Application\n properties:\n location: us-central1\n applicationId: example-application-1\n scope:\n type: REGIONAL\n serviceProject:\n type: gcp:organizations:Project\n name: service_project\n properties:\n projectId: project-1\n name: Service Project\n orgId: '123456789'\n billingAccount: 000000-0000000-0000000-000000\n # Enable Compute API\n computeServiceProject:\n type: gcp:projects:Service\n name: compute_service_project\n properties:\n project: ${serviceProject.projectId}\n service: compute.googleapis.com\n wait120s:\n type: time:sleep\n name: wait_120s\n properties:\n createDuration: 120s\n serviceProjectAttachment:\n type: gcp:apphub:ServiceProjectAttachment\n name: service_project_attachment\n properties:\n serviceProjectAttachmentId: ${serviceProject.projectId}\n wait120sForResourceIngestion:\n type: time:sleep\n name: wait_120s_for_resource_ingestion\n properties:\n createDuration: 120s\n example:\n type: gcp:apphub:Workload\n properties:\n location: us-central1\n applicationId: ${application.applicationId}\n workloadId: ${mig.name}\n discoveredWorkload: ${[\"catalog-workload\"].name}\n displayName: Example Service Full\n description: Register service for testing\n attributes:\n environment:\n type: STAGING\n criticality:\n type: MISSION_CRITICAL\n businessOwners:\n - displayName: Alice\n email: alice@google.com\n developerOwners:\n - displayName: Bob\n email: bob@google.com\n operatorOwners:\n - displayName: Charlie\n email: charlie@google.com\n # VPC network\n ilbNetwork:\n type: gcp:compute:Network\n name: ilb_network\n properties:\n name: l7-ilb-network\n project: ${serviceProject.projectId}\n autoCreateSubnetworks: false\n # backend subnet\n ilbSubnet:\n type: gcp:compute:Subnetwork\n name: ilb_subnet\n properties:\n name: l7-ilb-subnet\n project: ${serviceProject.projectId}\n ipCidrRange: 10.0.1.0/24\n region: us-central1\n network: ${ilbNetwork.id}\n # instance template\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n name: l7-ilb-mig-template\n project: ${serviceProject.projectId}\n machineType: e2-small\n tags:\n - http-server\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n mig:\n type: gcp:compute:RegionInstanceGroupManager\n properties:\n name: l7-ilb-mig1\n project: ${serviceProject.projectId}\n region: us-central1\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\nvariables:\n # Discovered workload\n catalog-workload:\n fn::invoke:\n Function: gcp:apphub:getDiscoveredWorkload\n Arguments:\n location: us-central1\n workloadUri:\n fn::invoke:\n Function: std:replace\n Arguments:\n text: ${mig.instanceGroup}\n search: https://www.googleapis.com/compute/v1\n replace: //compute.googleapis.com\n Return: result\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nWorkload can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/applications/{{application_id}}/workloads/{{workload_id}}`\n\n* `{{project}}/{{location}}/{{application_id}}/{{workload_id}}`\n\n* `{{location}}/{{application_id}}/{{workload_id}}`\n\nWhen using the `pulumi import` command, Workload can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:apphub/workload:Workload default projects/{{project}}/locations/{{location}}/applications/{{application_id}}/workloads/{{workload_id}}\n```\n\n```sh\n$ pulumi import gcp:apphub/workload:Workload default {{project}}/{{location}}/{{application_id}}/{{workload_id}}\n```\n\n```sh\n$ pulumi import gcp:apphub/workload:Workload default {{location}}/{{application_id}}/{{workload_id}}\n```\n\n", "properties": { "applicationId": { "type": "string", @@ -137031,7 +137031,7 @@ } }, "gcp:compute/forwardingRule:ForwardingRule": { - "description": "A ForwardingRule resource. A ForwardingRule resource specifies which pool\nof target virtual machines to forward a packet to if it matches the given\n[IPAddress, IPProtocol, portRange] tuple.\n\n\nTo get more information about ForwardingRule, see:\n\n* [API documentation](https://cloud.google.com/compute/docs/reference/v1/forwardingRules)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/compute/docs/load-balancing/network/forwarding-rules)\n\n## Example Usage\n\n### Internal Http Lb With Mig Backend\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\n// Internal HTTP load balancer with a managed instance group backend\n// VPC network\nconst ilbNetwork = new gcp.compute.Network(\"ilb_network\", {\n name: \"l7-ilb-network\",\n autoCreateSubnetworks: false,\n});\n// proxy-only subnet\nconst proxySubnet = new gcp.compute.Subnetwork(\"proxy_subnet\", {\n name: \"l7-ilb-proxy-subnet\",\n ipCidrRange: \"10.0.0.0/24\",\n region: \"europe-west1\",\n purpose: \"REGIONAL_MANAGED_PROXY\",\n role: \"ACTIVE\",\n network: ilbNetwork.id,\n});\n// backend subnet\nconst ilbSubnet = new gcp.compute.Subnetwork(\"ilb_subnet\", {\n name: \"l7-ilb-subnet\",\n ipCidrRange: \"10.0.1.0/24\",\n region: \"europe-west1\",\n network: ilbNetwork.id,\n});\n// health check\nconst defaultRegionHealthCheck = new gcp.compute.RegionHealthCheck(\"default\", {\n name: \"l7-ilb-hc\",\n region: \"europe-west1\",\n httpHealthCheck: {\n portSpecification: \"USE_SERVING_PORT\",\n },\n});\n// instance template\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n }],\n name: \"l7-ilb-mig-template\",\n machineType: \"e2-small\",\n tags: [\"http-server\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\n// MIG\nconst mig = new gcp.compute.RegionInstanceGroupManager(\"mig\", {\n name: \"l7-ilb-mig1\",\n region: \"europe-west1\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// backend service\nconst defaultRegionBackendService = new gcp.compute.RegionBackendService(\"default\", {\n name: \"l7-ilb-backend-subnet\",\n region: \"europe-west1\",\n protocol: \"HTTP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n timeoutSec: 10,\n healthChecks: defaultRegionHealthCheck.id,\n backends: [{\n group: mig.instanceGroup,\n balancingMode: \"UTILIZATION\",\n capacityScaler: 1,\n }],\n});\n// URL map\nconst defaultRegionUrlMap = new gcp.compute.RegionUrlMap(\"default\", {\n name: \"l7-ilb-regional-url-map\",\n region: \"europe-west1\",\n defaultService: defaultRegionBackendService.id,\n});\n// HTTP target proxy\nconst _default = new gcp.compute.RegionTargetHttpProxy(\"default\", {\n name: \"l7-ilb-target-http-proxy\",\n region: \"europe-west1\",\n urlMap: defaultRegionUrlMap.id,\n});\n// forwarding rule\nconst googleComputeForwardingRule = new gcp.compute.ForwardingRule(\"google_compute_forwarding_rule\", {\n name: \"l7-ilb-forwarding-rule\",\n region: \"europe-west1\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n portRange: \"80\",\n target: _default.id,\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n networkTier: \"PREMIUM\",\n});\n// allow all access from IAP and health check ranges\nconst fw_iap = new gcp.compute.Firewall(\"fw-iap\", {\n name: \"l7-ilb-fw-allow-iap-hc\",\n direction: \"INGRESS\",\n network: ilbNetwork.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n});\n// allow http from proxy subnet to backends\nconst fw_ilb_to_backends = new gcp.compute.Firewall(\"fw-ilb-to-backends\", {\n name: \"l7-ilb-fw-allow-ilb-to-backends\",\n direction: \"INGRESS\",\n network: ilbNetwork.id,\n sourceRanges: [\"10.0.0.0/24\"],\n targetTags: [\"http-server\"],\n allows: [{\n protocol: \"tcp\",\n ports: [\n \"80\",\n \"443\",\n \"8080\",\n ],\n }],\n});\n// test instance\nconst vm_test = new gcp.compute.Instance(\"vm-test\", {\n name: \"l7-ilb-test-vm\",\n zone: \"europe-west1-b\",\n machineType: \"e2-small\",\n networkInterfaces: [{\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n }],\n bootDisk: {\n initializeParams: {\n image: \"debian-cloud/debian-10\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\n# Internal HTTP load balancer with a managed instance group backend\n# VPC network\nilb_network = gcp.compute.Network(\"ilb_network\",\n name=\"l7-ilb-network\",\n auto_create_subnetworks=False)\n# proxy-only subnet\nproxy_subnet = gcp.compute.Subnetwork(\"proxy_subnet\",\n name=\"l7-ilb-proxy-subnet\",\n ip_cidr_range=\"10.0.0.0/24\",\n region=\"europe-west1\",\n purpose=\"REGIONAL_MANAGED_PROXY\",\n role=\"ACTIVE\",\n network=ilb_network.id)\n# backend subnet\nilb_subnet = gcp.compute.Subnetwork(\"ilb_subnet\",\n name=\"l7-ilb-subnet\",\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"europe-west1\",\n network=ilb_network.id)\n# health check\ndefault_region_health_check = gcp.compute.RegionHealthCheck(\"default\",\n name=\"l7-ilb-hc\",\n region=\"europe-west1\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port_specification=\"USE_SERVING_PORT\",\n ))\n# instance template\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=ilb_network.id,\n subnetwork=ilb_subnet.id,\n )],\n name=\"l7-ilb-mig-template\",\n machine_type=\"e2-small\",\n tags=[\"http-server\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\n# MIG\nmig = gcp.compute.RegionInstanceGroupManager(\"mig\",\n name=\"l7-ilb-mig1\",\n region=\"europe-west1\",\n versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# backend service\ndefault_region_backend_service = gcp.compute.RegionBackendService(\"default\",\n name=\"l7-ilb-backend-subnet\",\n region=\"europe-west1\",\n protocol=\"HTTP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n timeout_sec=10,\n health_checks=default_region_health_check.id,\n backends=[gcp.compute.RegionBackendServiceBackendArgs(\n group=mig.instance_group,\n balancing_mode=\"UTILIZATION\",\n capacity_scaler=1,\n )])\n# URL map\ndefault_region_url_map = gcp.compute.RegionUrlMap(\"default\",\n name=\"l7-ilb-regional-url-map\",\n region=\"europe-west1\",\n default_service=default_region_backend_service.id)\n# HTTP target proxy\ndefault = gcp.compute.RegionTargetHttpProxy(\"default\",\n name=\"l7-ilb-target-http-proxy\",\n region=\"europe-west1\",\n url_map=default_region_url_map.id)\n# forwarding rule\ngoogle_compute_forwarding_rule = gcp.compute.ForwardingRule(\"google_compute_forwarding_rule\",\n name=\"l7-ilb-forwarding-rule\",\n region=\"europe-west1\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n port_range=\"80\",\n target=default.id,\n network=ilb_network.id,\n subnetwork=ilb_subnet.id,\n network_tier=\"PREMIUM\")\n# allow all access from IAP and health check ranges\nfw_iap = gcp.compute.Firewall(\"fw-iap\",\n name=\"l7-ilb-fw-allow-iap-hc\",\n direction=\"INGRESS\",\n network=ilb_network.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )])\n# allow http from proxy subnet to backends\nfw_ilb_to_backends = gcp.compute.Firewall(\"fw-ilb-to-backends\",\n name=\"l7-ilb-fw-allow-ilb-to-backends\",\n direction=\"INGRESS\",\n network=ilb_network.id,\n source_ranges=[\"10.0.0.0/24\"],\n target_tags=[\"http-server\"],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\n \"80\",\n \"443\",\n \"8080\",\n ],\n )])\n# test instance\nvm_test = gcp.compute.Instance(\"vm-test\",\n name=\"l7-ilb-test-vm\",\n zone=\"europe-west1-b\",\n machine_type=\"e2-small\",\n network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(\n network=ilb_network.id,\n subnetwork=ilb_subnet.id,\n )],\n boot_disk=gcp.compute.InstanceBootDiskArgs(\n initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(\n image=\"debian-cloud/debian-10\",\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Internal HTTP load balancer with a managed instance group backend\n // VPC network\n var ilbNetwork = new Gcp.Compute.Network(\"ilb_network\", new()\n {\n Name = \"l7-ilb-network\",\n AutoCreateSubnetworks = false,\n });\n\n // proxy-only subnet\n var proxySubnet = new Gcp.Compute.Subnetwork(\"proxy_subnet\", new()\n {\n Name = \"l7-ilb-proxy-subnet\",\n IpCidrRange = \"10.0.0.0/24\",\n Region = \"europe-west1\",\n Purpose = \"REGIONAL_MANAGED_PROXY\",\n Role = \"ACTIVE\",\n Network = ilbNetwork.Id,\n });\n\n // backend subnet\n var ilbSubnet = new Gcp.Compute.Subnetwork(\"ilb_subnet\", new()\n {\n Name = \"l7-ilb-subnet\",\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"europe-west1\",\n Network = ilbNetwork.Id,\n });\n\n // health check\n var defaultRegionHealthCheck = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Name = \"l7-ilb-hc\",\n Region = \"europe-west1\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n PortSpecification = \"USE_SERVING_PORT\",\n },\n });\n\n // instance template\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n },\n },\n Name = \"l7-ilb-mig-template\",\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"http-server\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n // MIG\n var mig = new Gcp.Compute.RegionInstanceGroupManager(\"mig\", new()\n {\n Name = \"l7-ilb-mig1\",\n Region = \"europe-west1\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // backend service\n var defaultRegionBackendService = new Gcp.Compute.RegionBackendService(\"default\", new()\n {\n Name = \"l7-ilb-backend-subnet\",\n Region = \"europe-west1\",\n Protocol = \"HTTP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n TimeoutSec = 10,\n HealthChecks = defaultRegionHealthCheck.Id,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.RegionBackendServiceBackendArgs\n {\n Group = mig.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n CapacityScaler = 1,\n },\n },\n });\n\n // URL map\n var defaultRegionUrlMap = new Gcp.Compute.RegionUrlMap(\"default\", new()\n {\n Name = \"l7-ilb-regional-url-map\",\n Region = \"europe-west1\",\n DefaultService = defaultRegionBackendService.Id,\n });\n\n // HTTP target proxy\n var @default = new Gcp.Compute.RegionTargetHttpProxy(\"default\", new()\n {\n Name = \"l7-ilb-target-http-proxy\",\n Region = \"europe-west1\",\n UrlMap = defaultRegionUrlMap.Id,\n });\n\n // forwarding rule\n var googleComputeForwardingRule = new Gcp.Compute.ForwardingRule(\"google_compute_forwarding_rule\", new()\n {\n Name = \"l7-ilb-forwarding-rule\",\n Region = \"europe-west1\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n PortRange = \"80\",\n Target = @default.Id,\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n NetworkTier = \"PREMIUM\",\n });\n\n // allow all access from IAP and health check ranges\n var fw_iap = new Gcp.Compute.Firewall(\"fw-iap\", new()\n {\n Name = \"l7-ilb-fw-allow-iap-hc\",\n Direction = \"INGRESS\",\n Network = ilbNetwork.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n });\n\n // allow http from proxy subnet to backends\n var fw_ilb_to_backends = new Gcp.Compute.Firewall(\"fw-ilb-to-backends\", new()\n {\n Name = \"l7-ilb-fw-allow-ilb-to-backends\",\n Direction = \"INGRESS\",\n Network = ilbNetwork.Id,\n SourceRanges = new[]\n {\n \"10.0.0.0/24\",\n },\n TargetTags = new[]\n {\n \"http-server\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"80\",\n \"443\",\n \"8080\",\n },\n },\n },\n });\n\n // test instance\n var vm_test = new Gcp.Compute.Instance(\"vm-test\", new()\n {\n Name = \"l7-ilb-test-vm\",\n Zone = \"europe-west1-b\",\n MachineType = \"e2-small\",\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs\n {\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n },\n },\n BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs\n {\n InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs\n {\n Image = \"debian-cloud/debian-10\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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// Internal HTTP load balancer with a managed instance group backend\n\t\t// VPC network\n\t\tilbNetwork, err := compute.NewNetwork(ctx, \"ilb_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// proxy-only subnet\n\t\t_, err = compute.NewSubnetwork(ctx, \"proxy_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-proxy-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/24\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tPurpose: pulumi.String(\"REGIONAL_MANAGED_PROXY\"),\n\t\t\tRole: pulumi.String(\"ACTIVE\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend subnet\n\t\tilbSubnet, err := compute.NewSubnetwork(ctx, \"ilb_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// health check\n\t\tdefaultRegionHealthCheck, err := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-hc\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPortSpecification: pulumi.String(\"USE_SERVING_PORT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"l7-ilb-mig-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// MIG\n\t\tmig, err := compute.NewRegionInstanceGroupManager(ctx, \"mig\", \u0026compute.RegionInstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-mig1\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tVersions: compute.RegionInstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend service\n\t\tdefaultRegionBackendService, err := compute.NewRegionBackendService(ctx, \"default\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-backend-subnet\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultRegionHealthCheck.ID(),\n\t\t\tBackends: compute.RegionBackendServiceBackendArray{\n\t\t\t\t\u0026compute.RegionBackendServiceBackendArgs{\n\t\t\t\t\tGroup: mig.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// URL map\n\t\tdefaultRegionUrlMap, err := compute.NewRegionUrlMap(ctx, \"default\", \u0026compute.RegionUrlMapArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-regional-url-map\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tDefaultService: defaultRegionBackendService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// HTTP target proxy\n\t\t_, err = compute.NewRegionTargetHttpProxy(ctx, \"default\", \u0026compute.RegionTargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-target-http-proxy\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tUrlMap: defaultRegionUrlMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// forwarding rule\n\t\t_, err = compute.NewForwardingRule(ctx, \"google_compute_forwarding_rule\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tTarget: _default.ID(),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t\tNetworkTier: pulumi.String(\"PREMIUM\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow all access from IAP and health check ranges\n\t\t_, err = compute.NewFirewall(ctx, \"fw-iap\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-fw-allow-iap-hc\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t\tpulumi.String(\"35.235.240.0/20\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow http from proxy subnet to backends\n\t\t_, err = compute.NewFirewall(ctx, \"fw-ilb-to-backends\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-fw-allow-ilb-to-backends\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/24\"),\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"80\"),\n\t\t\t\t\t\tpulumi.String(\"443\"),\n\t\t\t\t\t\tpulumi.String(\"8080\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// test instance\n\t\t_, err = compute.NewInstance(ctx, \"vm-test\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-test-vm\"),\n\t\t\tZone: pulumi.String(\"europe-west1-b\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tNetworkInterfaces: compute.InstanceNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBootDisk: \u0026compute.InstanceBootDiskArgs{\n\t\t\t\tInitializeParams: \u0026compute.InstanceBootDiskInitializeParamsArgs{\n\t\t\t\t\tImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManager;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.RegionBackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxy;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\nimport com.pulumi.gcp.compute.Instance;\nimport com.pulumi.gcp.compute.InstanceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;\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 // Internal HTTP load balancer with a managed instance group backend\n // VPC network\n var ilbNetwork = new Network(\"ilbNetwork\", NetworkArgs.builder() \n .name(\"l7-ilb-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n // proxy-only subnet\n var proxySubnet = new Subnetwork(\"proxySubnet\", SubnetworkArgs.builder() \n .name(\"l7-ilb-proxy-subnet\")\n .ipCidrRange(\"10.0.0.0/24\")\n .region(\"europe-west1\")\n .purpose(\"REGIONAL_MANAGED_PROXY\")\n .role(\"ACTIVE\")\n .network(ilbNetwork.id())\n .build());\n\n // backend subnet\n var ilbSubnet = new Subnetwork(\"ilbSubnet\", SubnetworkArgs.builder() \n .name(\"l7-ilb-subnet\")\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"europe-west1\")\n .network(ilbNetwork.id())\n .build());\n\n // health check\n var defaultRegionHealthCheck = new RegionHealthCheck(\"defaultRegionHealthCheck\", RegionHealthCheckArgs.builder() \n .name(\"l7-ilb-hc\")\n .region(\"europe-west1\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .portSpecification(\"USE_SERVING_PORT\")\n .build())\n .build());\n\n // instance template\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .build())\n .name(\"l7-ilb-mig-template\")\n .machineType(\"e2-small\")\n .tags(\"http-server\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n // MIG\n var mig = new RegionInstanceGroupManager(\"mig\", RegionInstanceGroupManagerArgs.builder() \n .name(\"l7-ilb-mig1\")\n .region(\"europe-west1\")\n .versions(RegionInstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // backend service\n var defaultRegionBackendService = new RegionBackendService(\"defaultRegionBackendService\", RegionBackendServiceArgs.builder() \n .name(\"l7-ilb-backend-subnet\")\n .region(\"europe-west1\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(defaultRegionHealthCheck.id())\n .backends(RegionBackendServiceBackendArgs.builder()\n .group(mig.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .capacityScaler(1)\n .build())\n .build());\n\n // URL map\n var defaultRegionUrlMap = new RegionUrlMap(\"defaultRegionUrlMap\", RegionUrlMapArgs.builder() \n .name(\"l7-ilb-regional-url-map\")\n .region(\"europe-west1\")\n .defaultService(defaultRegionBackendService.id())\n .build());\n\n // HTTP target proxy\n var default_ = new RegionTargetHttpProxy(\"default\", RegionTargetHttpProxyArgs.builder() \n .name(\"l7-ilb-target-http-proxy\")\n .region(\"europe-west1\")\n .urlMap(defaultRegionUrlMap.id())\n .build());\n\n // forwarding rule\n var googleComputeForwardingRule = new ForwardingRule(\"googleComputeForwardingRule\", ForwardingRuleArgs.builder() \n .name(\"l7-ilb-forwarding-rule\")\n .region(\"europe-west1\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .portRange(\"80\")\n .target(default_.id())\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .networkTier(\"PREMIUM\")\n .build());\n\n // allow all access from IAP and health check ranges\n var fw_iap = new Firewall(\"fw-iap\", FirewallArgs.builder() \n .name(\"l7-ilb-fw-allow-iap-hc\")\n .direction(\"INGRESS\")\n .network(ilbNetwork.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .build());\n\n // allow http from proxy subnet to backends\n var fw_ilb_to_backends = new Firewall(\"fw-ilb-to-backends\", FirewallArgs.builder() \n .name(\"l7-ilb-fw-allow-ilb-to-backends\")\n .direction(\"INGRESS\")\n .network(ilbNetwork.id())\n .sourceRanges(\"10.0.0.0/24\")\n .targetTags(\"http-server\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports( \n \"80\",\n \"443\",\n \"8080\")\n .build())\n .build());\n\n // test instance\n var vm_test = new Instance(\"vm-test\", InstanceArgs.builder() \n .name(\"l7-ilb-test-vm\")\n .zone(\"europe-west1-b\")\n .machineType(\"e2-small\")\n .networkInterfaces(InstanceNetworkInterfaceArgs.builder()\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .build())\n .bootDisk(InstanceBootDiskArgs.builder()\n .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()\n .image(\"debian-cloud/debian-10\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Internal HTTP load balancer with a managed instance group backend\n\n # VPC network\n ilbNetwork:\n type: gcp:compute:Network\n name: ilb_network\n properties:\n name: l7-ilb-network\n autoCreateSubnetworks: false\n # proxy-only subnet\n proxySubnet:\n type: gcp:compute:Subnetwork\n name: proxy_subnet\n properties:\n name: l7-ilb-proxy-subnet\n ipCidrRange: 10.0.0.0/24\n region: europe-west1\n purpose: REGIONAL_MANAGED_PROXY\n role: ACTIVE\n network: ${ilbNetwork.id}\n # backend subnet\n ilbSubnet:\n type: gcp:compute:Subnetwork\n name: ilb_subnet\n properties:\n name: l7-ilb-subnet\n ipCidrRange: 10.0.1.0/24\n region: europe-west1\n network: ${ilbNetwork.id}\n # forwarding rule\n googleComputeForwardingRule:\n type: gcp:compute:ForwardingRule\n name: google_compute_forwarding_rule\n properties:\n name: l7-ilb-forwarding-rule\n region: europe-west1\n ipProtocol: TCP\n loadBalancingScheme: INTERNAL_MANAGED\n portRange: '80'\n target: ${default.id}\n network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n networkTier: PREMIUM\n # HTTP target proxy\n default:\n type: gcp:compute:RegionTargetHttpProxy\n properties:\n name: l7-ilb-target-http-proxy\n region: europe-west1\n urlMap: ${defaultRegionUrlMap.id}\n # URL map\n defaultRegionUrlMap:\n type: gcp:compute:RegionUrlMap\n name: default\n properties:\n name: l7-ilb-regional-url-map\n region: europe-west1\n defaultService: ${defaultRegionBackendService.id}\n # backend service\n defaultRegionBackendService:\n type: gcp:compute:RegionBackendService\n name: default\n properties:\n name: l7-ilb-backend-subnet\n region: europe-west1\n protocol: HTTP\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks: ${defaultRegionHealthCheck.id}\n backends:\n - group: ${mig.instanceGroup}\n balancingMode: UTILIZATION\n capacityScaler: 1\n # instance template\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n name: l7-ilb-mig-template\n machineType: e2-small\n tags:\n - http-server\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n # health check\n defaultRegionHealthCheck:\n type: gcp:compute:RegionHealthCheck\n name: default\n properties:\n name: l7-ilb-hc\n region: europe-west1\n httpHealthCheck:\n portSpecification: USE_SERVING_PORT\n # MIG\n mig:\n type: gcp:compute:RegionInstanceGroupManager\n properties:\n name: l7-ilb-mig1\n region: europe-west1\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\n # allow all access from IAP and health check ranges\n fw-iap:\n type: gcp:compute:Firewall\n properties:\n name: l7-ilb-fw-allow-iap-hc\n direction: INGRESS\n network: ${ilbNetwork.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n - 35.235.240.0/20\n allows:\n - protocol: tcp\n # allow http from proxy subnet to backends\n fw-ilb-to-backends:\n type: gcp:compute:Firewall\n properties:\n name: l7-ilb-fw-allow-ilb-to-backends\n direction: INGRESS\n network: ${ilbNetwork.id}\n sourceRanges:\n - 10.0.0.0/24\n targetTags:\n - http-server\n allows:\n - protocol: tcp\n ports:\n - '80'\n - '443'\n - '8080'\n # test instance\n vm-test:\n type: gcp:compute:Instance\n properties:\n name: l7-ilb-test-vm\n zone: europe-west1-b\n machineType: e2-small\n networkInterfaces:\n - network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n bootDisk:\n initializeParams:\n image: debian-cloud/debian-10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Internal Tcp Udp Lb With Mig Backend\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\n// Internal TCP/UDP load balancer with a managed instance group backend\n// VPC\nconst ilbNetwork = new gcp.compute.Network(\"ilb_network\", {\n name: \"l4-ilb-network\",\n autoCreateSubnetworks: false,\n});\n// backed subnet\nconst ilbSubnet = new gcp.compute.Subnetwork(\"ilb_subnet\", {\n name: \"l4-ilb-subnet\",\n ipCidrRange: \"10.0.1.0/24\",\n region: \"europe-west1\",\n network: ilbNetwork.id,\n});\n// health check\nconst defaultRegionHealthCheck = new gcp.compute.RegionHealthCheck(\"default\", {\n name: \"l4-ilb-hc\",\n region: \"europe-west1\",\n httpHealthCheck: {\n port: 80,\n },\n});\n// instance template\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n }],\n name: \"l4-ilb-mig-template\",\n machineType: \"e2-small\",\n tags: [\n \"allow-ssh\",\n \"allow-health-check\",\n ],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\n// MIG\nconst mig = new gcp.compute.RegionInstanceGroupManager(\"mig\", {\n name: \"l4-ilb-mig1\",\n region: \"europe-west1\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// backend service\nconst _default = new gcp.compute.RegionBackendService(\"default\", {\n name: \"l4-ilb-backend-subnet\",\n region: \"europe-west1\",\n protocol: \"TCP\",\n loadBalancingScheme: \"INTERNAL\",\n healthChecks: defaultRegionHealthCheck.id,\n backends: [{\n group: mig.instanceGroup,\n balancingMode: \"CONNECTION\",\n }],\n});\n// forwarding rule\nconst googleComputeForwardingRule = new gcp.compute.ForwardingRule(\"google_compute_forwarding_rule\", {\n name: \"l4-ilb-forwarding-rule\",\n backendService: _default.id,\n region: \"europe-west1\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"INTERNAL\",\n allPorts: true,\n allowGlobalAccess: true,\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n});\n// allow all access from health check ranges\nconst fwHc = new gcp.compute.Firewall(\"fw_hc\", {\n name: \"l4-ilb-fw-allow-hc\",\n direction: \"INGRESS\",\n network: ilbNetwork.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n targetTags: [\"allow-health-check\"],\n});\n// allow communication within the subnet \nconst fwIlbToBackends = new gcp.compute.Firewall(\"fw_ilb_to_backends\", {\n name: \"l4-ilb-fw-allow-ilb-to-backends\",\n direction: \"INGRESS\",\n network: ilbNetwork.id,\n sourceRanges: [\"10.0.1.0/24\"],\n allows: [\n {\n protocol: \"tcp\",\n },\n {\n protocol: \"udp\",\n },\n {\n protocol: \"icmp\",\n },\n ],\n});\n// allow SSH\nconst fwIlbSsh = new gcp.compute.Firewall(\"fw_ilb_ssh\", {\n name: \"l4-ilb-fw-ssh\",\n direction: \"INGRESS\",\n network: ilbNetwork.id,\n allows: [{\n protocol: \"tcp\",\n ports: [\"22\"],\n }],\n targetTags: [\"allow-ssh\"],\n sourceRanges: [\"0.0.0.0/0\"],\n});\n// test instance\nconst vmTest = new gcp.compute.Instance(\"vm_test\", {\n name: \"l4-ilb-test-vm\",\n zone: \"europe-west1-b\",\n machineType: \"e2-small\",\n networkInterfaces: [{\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n }],\n bootDisk: {\n initializeParams: {\n image: \"debian-cloud/debian-10\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\n# Internal TCP/UDP load balancer with a managed instance group backend\n# VPC\nilb_network = gcp.compute.Network(\"ilb_network\",\n name=\"l4-ilb-network\",\n auto_create_subnetworks=False)\n# backed subnet\nilb_subnet = gcp.compute.Subnetwork(\"ilb_subnet\",\n name=\"l4-ilb-subnet\",\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"europe-west1\",\n network=ilb_network.id)\n# health check\ndefault_region_health_check = gcp.compute.RegionHealthCheck(\"default\",\n name=\"l4-ilb-hc\",\n region=\"europe-west1\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n ))\n# instance template\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=ilb_network.id,\n subnetwork=ilb_subnet.id,\n )],\n name=\"l4-ilb-mig-template\",\n machine_type=\"e2-small\",\n tags=[\n \"allow-ssh\",\n \"allow-health-check\",\n ],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\n# MIG\nmig = gcp.compute.RegionInstanceGroupManager(\"mig\",\n name=\"l4-ilb-mig1\",\n region=\"europe-west1\",\n versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# backend service\ndefault = gcp.compute.RegionBackendService(\"default\",\n name=\"l4-ilb-backend-subnet\",\n region=\"europe-west1\",\n protocol=\"TCP\",\n load_balancing_scheme=\"INTERNAL\",\n health_checks=default_region_health_check.id,\n backends=[gcp.compute.RegionBackendServiceBackendArgs(\n group=mig.instance_group,\n balancing_mode=\"CONNECTION\",\n )])\n# forwarding rule\ngoogle_compute_forwarding_rule = gcp.compute.ForwardingRule(\"google_compute_forwarding_rule\",\n name=\"l4-ilb-forwarding-rule\",\n backend_service=default.id,\n region=\"europe-west1\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"INTERNAL\",\n all_ports=True,\n allow_global_access=True,\n network=ilb_network.id,\n subnetwork=ilb_subnet.id)\n# allow all access from health check ranges\nfw_hc = gcp.compute.Firewall(\"fw_hc\",\n name=\"l4-ilb-fw-allow-hc\",\n direction=\"INGRESS\",\n network=ilb_network.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )],\n target_tags=[\"allow-health-check\"])\n# allow communication within the subnet \nfw_ilb_to_backends = gcp.compute.Firewall(\"fw_ilb_to_backends\",\n name=\"l4-ilb-fw-allow-ilb-to-backends\",\n direction=\"INGRESS\",\n network=ilb_network.id,\n source_ranges=[\"10.0.1.0/24\"],\n allows=[\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"udp\",\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"icmp\",\n ),\n ])\n# allow SSH\nfw_ilb_ssh = gcp.compute.Firewall(\"fw_ilb_ssh\",\n name=\"l4-ilb-fw-ssh\",\n direction=\"INGRESS\",\n network=ilb_network.id,\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"22\"],\n )],\n target_tags=[\"allow-ssh\"],\n source_ranges=[\"0.0.0.0/0\"])\n# test instance\nvm_test = gcp.compute.Instance(\"vm_test\",\n name=\"l4-ilb-test-vm\",\n zone=\"europe-west1-b\",\n machine_type=\"e2-small\",\n network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(\n network=ilb_network.id,\n subnetwork=ilb_subnet.id,\n )],\n boot_disk=gcp.compute.InstanceBootDiskArgs(\n initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(\n image=\"debian-cloud/debian-10\",\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Internal TCP/UDP load balancer with a managed instance group backend\n // VPC\n var ilbNetwork = new Gcp.Compute.Network(\"ilb_network\", new()\n {\n Name = \"l4-ilb-network\",\n AutoCreateSubnetworks = false,\n });\n\n // backed subnet\n var ilbSubnet = new Gcp.Compute.Subnetwork(\"ilb_subnet\", new()\n {\n Name = \"l4-ilb-subnet\",\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"europe-west1\",\n Network = ilbNetwork.Id,\n });\n\n // health check\n var defaultRegionHealthCheck = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Name = \"l4-ilb-hc\",\n Region = \"europe-west1\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n // instance template\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n },\n },\n Name = \"l4-ilb-mig-template\",\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"allow-ssh\",\n \"allow-health-check\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n // MIG\n var mig = new Gcp.Compute.RegionInstanceGroupManager(\"mig\", new()\n {\n Name = \"l4-ilb-mig1\",\n Region = \"europe-west1\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // backend service\n var @default = new Gcp.Compute.RegionBackendService(\"default\", new()\n {\n Name = \"l4-ilb-backend-subnet\",\n Region = \"europe-west1\",\n Protocol = \"TCP\",\n LoadBalancingScheme = \"INTERNAL\",\n HealthChecks = defaultRegionHealthCheck.Id,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.RegionBackendServiceBackendArgs\n {\n Group = mig.InstanceGroup,\n BalancingMode = \"CONNECTION\",\n },\n },\n });\n\n // forwarding rule\n var googleComputeForwardingRule = new Gcp.Compute.ForwardingRule(\"google_compute_forwarding_rule\", new()\n {\n Name = \"l4-ilb-forwarding-rule\",\n BackendService = @default.Id,\n Region = \"europe-west1\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"INTERNAL\",\n AllPorts = true,\n AllowGlobalAccess = true,\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n });\n\n // allow all access from health check ranges\n var fwHc = new Gcp.Compute.Firewall(\"fw_hc\", new()\n {\n Name = \"l4-ilb-fw-allow-hc\",\n Direction = \"INGRESS\",\n Network = ilbNetwork.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n TargetTags = new[]\n {\n \"allow-health-check\",\n },\n });\n\n // allow communication within the subnet \n var fwIlbToBackends = new Gcp.Compute.Firewall(\"fw_ilb_to_backends\", new()\n {\n Name = \"l4-ilb-fw-allow-ilb-to-backends\",\n Direction = \"INGRESS\",\n Network = ilbNetwork.Id,\n SourceRanges = new[]\n {\n \"10.0.1.0/24\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"udp\",\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"icmp\",\n },\n },\n });\n\n // allow SSH\n var fwIlbSsh = new Gcp.Compute.Firewall(\"fw_ilb_ssh\", new()\n {\n Name = \"l4-ilb-fw-ssh\",\n Direction = \"INGRESS\",\n Network = ilbNetwork.Id,\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"22\",\n },\n },\n },\n TargetTags = new[]\n {\n \"allow-ssh\",\n },\n SourceRanges = new[]\n {\n \"0.0.0.0/0\",\n },\n });\n\n // test instance\n var vmTest = new Gcp.Compute.Instance(\"vm_test\", new()\n {\n Name = \"l4-ilb-test-vm\",\n Zone = \"europe-west1-b\",\n MachineType = \"e2-small\",\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs\n {\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n },\n },\n BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs\n {\n InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs\n {\n Image = \"debian-cloud/debian-10\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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// Internal TCP/UDP load balancer with a managed instance group backend\n\t\t// VPC\n\t\tilbNetwork, err := compute.NewNetwork(ctx, \"ilb_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backed subnet\n\t\tilbSubnet, err := compute.NewSubnetwork(ctx, \"ilb_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// health check\n\t\tdefaultRegionHealthCheck, err := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-hc\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"l4-ilb-mig-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-ssh\"),\n\t\t\t\tpulumi.String(\"allow-health-check\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// MIG\n\t\tmig, err := compute.NewRegionInstanceGroupManager(ctx, \"mig\", \u0026compute.RegionInstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-mig1\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tVersions: compute.RegionInstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend service\n\t\t_, err = compute.NewRegionBackendService(ctx, \"default\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-backend-subnet\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL\"),\n\t\t\tHealthChecks: defaultRegionHealthCheck.ID(),\n\t\t\tBackends: compute.RegionBackendServiceBackendArray{\n\t\t\t\t\u0026compute.RegionBackendServiceBackendArgs{\n\t\t\t\t\tGroup: mig.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"CONNECTION\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// forwarding rule\n\t\t_, err = compute.NewForwardingRule(ctx, \"google_compute_forwarding_rule\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-forwarding-rule\"),\n\t\t\tBackendService: _default.ID(),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL\"),\n\t\t\tAllPorts: pulumi.Bool(true),\n\t\t\tAllowGlobalAccess: pulumi.Bool(true),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow all access from health check ranges\n\t\t_, err = compute.NewFirewall(ctx, \"fw_hc\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-fw-allow-hc\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t\tpulumi.String(\"35.235.240.0/20\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-health-check\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow communication within the subnet\n\t\t_, err = compute.NewFirewall(ctx, \"fw_ilb_to_backends\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-fw-allow-ilb-to-backends\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"udp\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"icmp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow SSH\n\t\t_, err = compute.NewFirewall(ctx, \"fw_ilb_ssh\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-fw-ssh\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"22\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-ssh\"),\n\t\t\t},\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// test instance\n\t\t_, err = compute.NewInstance(ctx, \"vm_test\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-test-vm\"),\n\t\t\tZone: pulumi.String(\"europe-west1-b\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tNetworkInterfaces: compute.InstanceNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBootDisk: \u0026compute.InstanceBootDiskArgs{\n\t\t\t\tInitializeParams: \u0026compute.InstanceBootDiskInitializeParamsArgs{\n\t\t\t\t\tImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManager;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.RegionBackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\nimport com.pulumi.gcp.compute.Instance;\nimport com.pulumi.gcp.compute.InstanceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;\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 // Internal TCP/UDP load balancer with a managed instance group backend\n // VPC\n var ilbNetwork = new Network(\"ilbNetwork\", NetworkArgs.builder() \n .name(\"l4-ilb-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n // backed subnet\n var ilbSubnet = new Subnetwork(\"ilbSubnet\", SubnetworkArgs.builder() \n .name(\"l4-ilb-subnet\")\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"europe-west1\")\n .network(ilbNetwork.id())\n .build());\n\n // health check\n var defaultRegionHealthCheck = new RegionHealthCheck(\"defaultRegionHealthCheck\", RegionHealthCheckArgs.builder() \n .name(\"l4-ilb-hc\")\n .region(\"europe-west1\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n // instance template\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .build())\n .name(\"l4-ilb-mig-template\")\n .machineType(\"e2-small\")\n .tags( \n \"allow-ssh\",\n \"allow-health-check\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n // MIG\n var mig = new RegionInstanceGroupManager(\"mig\", RegionInstanceGroupManagerArgs.builder() \n .name(\"l4-ilb-mig1\")\n .region(\"europe-west1\")\n .versions(RegionInstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // backend service\n var default_ = new RegionBackendService(\"default\", RegionBackendServiceArgs.builder() \n .name(\"l4-ilb-backend-subnet\")\n .region(\"europe-west1\")\n .protocol(\"TCP\")\n .loadBalancingScheme(\"INTERNAL\")\n .healthChecks(defaultRegionHealthCheck.id())\n .backends(RegionBackendServiceBackendArgs.builder()\n .group(mig.instanceGroup())\n .balancingMode(\"CONNECTION\")\n .build())\n .build());\n\n // forwarding rule\n var googleComputeForwardingRule = new ForwardingRule(\"googleComputeForwardingRule\", ForwardingRuleArgs.builder() \n .name(\"l4-ilb-forwarding-rule\")\n .backendService(default_.id())\n .region(\"europe-west1\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"INTERNAL\")\n .allPorts(true)\n .allowGlobalAccess(true)\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .build());\n\n // allow all access from health check ranges\n var fwHc = new Firewall(\"fwHc\", FirewallArgs.builder() \n .name(\"l4-ilb-fw-allow-hc\")\n .direction(\"INGRESS\")\n .network(ilbNetwork.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .targetTags(\"allow-health-check\")\n .build());\n\n // allow communication within the subnet \n var fwIlbToBackends = new Firewall(\"fwIlbToBackends\", FirewallArgs.builder() \n .name(\"l4-ilb-fw-allow-ilb-to-backends\")\n .direction(\"INGRESS\")\n .network(ilbNetwork.id())\n .sourceRanges(\"10.0.1.0/24\")\n .allows( \n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"udp\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"icmp\")\n .build())\n .build());\n\n // allow SSH\n var fwIlbSsh = new Firewall(\"fwIlbSsh\", FirewallArgs.builder() \n .name(\"l4-ilb-fw-ssh\")\n .direction(\"INGRESS\")\n .network(ilbNetwork.id())\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"22\")\n .build())\n .targetTags(\"allow-ssh\")\n .sourceRanges(\"0.0.0.0/0\")\n .build());\n\n // test instance\n var vmTest = new Instance(\"vmTest\", InstanceArgs.builder() \n .name(\"l4-ilb-test-vm\")\n .zone(\"europe-west1-b\")\n .machineType(\"e2-small\")\n .networkInterfaces(InstanceNetworkInterfaceArgs.builder()\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .build())\n .bootDisk(InstanceBootDiskArgs.builder()\n .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()\n .image(\"debian-cloud/debian-10\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Internal TCP/UDP load balancer with a managed instance group backend\n\n # VPC\n ilbNetwork:\n type: gcp:compute:Network\n name: ilb_network\n properties:\n name: l4-ilb-network\n autoCreateSubnetworks: false\n # backed subnet\n ilbSubnet:\n type: gcp:compute:Subnetwork\n name: ilb_subnet\n properties:\n name: l4-ilb-subnet\n ipCidrRange: 10.0.1.0/24\n region: europe-west1\n network: ${ilbNetwork.id}\n # forwarding rule\n googleComputeForwardingRule:\n type: gcp:compute:ForwardingRule\n name: google_compute_forwarding_rule\n properties:\n name: l4-ilb-forwarding-rule\n backendService: ${default.id}\n region: europe-west1\n ipProtocol: TCP\n loadBalancingScheme: INTERNAL\n allPorts: true\n allowGlobalAccess: true\n network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n # backend service\n default:\n type: gcp:compute:RegionBackendService\n properties:\n name: l4-ilb-backend-subnet\n region: europe-west1\n protocol: TCP\n loadBalancingScheme: INTERNAL\n healthChecks: ${defaultRegionHealthCheck.id}\n backends:\n - group: ${mig.instanceGroup}\n balancingMode: CONNECTION\n # instance template\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n name: l4-ilb-mig-template\n machineType: e2-small\n tags:\n - allow-ssh\n - allow-health-check\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n # health check\n defaultRegionHealthCheck:\n type: gcp:compute:RegionHealthCheck\n name: default\n properties:\n name: l4-ilb-hc\n region: europe-west1\n httpHealthCheck:\n port: '80'\n # MIG\n mig:\n type: gcp:compute:RegionInstanceGroupManager\n properties:\n name: l4-ilb-mig1\n region: europe-west1\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\n # allow all access from health check ranges\n fwHc:\n type: gcp:compute:Firewall\n name: fw_hc\n properties:\n name: l4-ilb-fw-allow-hc\n direction: INGRESS\n network: ${ilbNetwork.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n - 35.235.240.0/20\n allows:\n - protocol: tcp\n targetTags:\n - allow-health-check\n # allow communication within the subnet\n fwIlbToBackends:\n type: gcp:compute:Firewall\n name: fw_ilb_to_backends\n properties:\n name: l4-ilb-fw-allow-ilb-to-backends\n direction: INGRESS\n network: ${ilbNetwork.id}\n sourceRanges:\n - 10.0.1.0/24\n allows:\n - protocol: tcp\n - protocol: udp\n - protocol: icmp\n # allow SSH\n fwIlbSsh:\n type: gcp:compute:Firewall\n name: fw_ilb_ssh\n properties:\n name: l4-ilb-fw-ssh\n direction: INGRESS\n network: ${ilbNetwork.id}\n allows:\n - protocol: tcp\n ports:\n - '22'\n targetTags:\n - allow-ssh\n sourceRanges:\n - 0.0.0.0/0\n # test instance\n vmTest:\n type: gcp:compute:Instance\n name: vm_test\n properties:\n name: l4-ilb-test-vm\n zone: europe-west1-b\n machineType: e2-small\n networkInterfaces:\n - network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n bootDisk:\n initializeParams:\n image: debian-cloud/debian-10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Externallb\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst hc = new gcp.compute.RegionHealthCheck(\"hc\", {\n name: \"check-website-backend\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n region: \"us-central1\",\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst backend = new gcp.compute.RegionBackendService(\"backend\", {\n name: \"website-backend\",\n region: \"us-central1\",\n loadBalancingScheme: \"EXTERNAL\",\n healthChecks: hc.id,\n});\n// Forwarding rule for External Network Load Balancing using Backend Services\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"website-forwarding-rule\",\n region: \"us-central1\",\n portRange: \"80\",\n backendService: backend.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhc = gcp.compute.RegionHealthCheck(\"hc\",\n name=\"check-website-backend\",\n check_interval_sec=1,\n timeout_sec=1,\n region=\"us-central1\",\n tcp_health_check=gcp.compute.RegionHealthCheckTcpHealthCheckArgs(\n port=80,\n ))\nbackend = gcp.compute.RegionBackendService(\"backend\",\n name=\"website-backend\",\n region=\"us-central1\",\n load_balancing_scheme=\"EXTERNAL\",\n health_checks=hc.id)\n# Forwarding rule for External Network Load Balancing using Backend Services\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"website-forwarding-rule\",\n region=\"us-central1\",\n port_range=\"80\",\n backend_service=backend.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var hc = new Gcp.Compute.RegionHealthCheck(\"hc\", new()\n {\n Name = \"check-website-backend\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n Region = \"us-central1\",\n TcpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var backend = new Gcp.Compute.RegionBackendService(\"backend\", new()\n {\n Name = \"website-backend\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"EXTERNAL\",\n HealthChecks = hc.Id,\n });\n\n // Forwarding rule for External Network Load Balancing using Backend Services\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"website-forwarding-rule\",\n Region = \"us-central1\",\n PortRange = \"80\",\n BackendService = backend.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thc, err := compute.NewRegionHealthCheck(ctx, \"hc\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"check-website-backend\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tTcpHealthCheck: \u0026compute.RegionHealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbackend, err := compute.NewRegionBackendService(ctx, \"backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"website-backend\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tHealthChecks: hc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Forwarding rule for External Network Load Balancing using Backend Services\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"website-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tBackendService: backend.ID(),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\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 hc = new RegionHealthCheck(\"hc\", RegionHealthCheckArgs.builder() \n .name(\"check-website-backend\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .region(\"us-central1\")\n .tcpHealthCheck(RegionHealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n var backend = new RegionBackendService(\"backend\", RegionBackendServiceArgs.builder() \n .name(\"website-backend\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"EXTERNAL\")\n .healthChecks(hc.id())\n .build());\n\n // Forwarding rule for External Network Load Balancing using Backend Services\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"website-forwarding-rule\")\n .region(\"us-central1\")\n .portRange(80)\n .backendService(backend.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Forwarding rule for External Network Load Balancing using Backend Services\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: website-forwarding-rule\n region: us-central1\n portRange: 80\n backendService: ${backend.id}\n backend:\n type: gcp:compute:RegionBackendService\n properties:\n name: website-backend\n region: us-central1\n loadBalancingScheme: EXTERNAL\n healthChecks: ${hc.id}\n hc:\n type: gcp:compute:RegionHealthCheck\n properties:\n name: check-website-backend\n checkIntervalSec: 1\n timeoutSec: 1\n region: us-central1\n tcpHealthCheck:\n port: '80'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Global Internallb\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst hc = new gcp.compute.HealthCheck(\"hc\", {\n name: \"check-website-backend\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst backend = new gcp.compute.RegionBackendService(\"backend\", {\n name: \"website-backend\",\n region: \"us-central1\",\n healthChecks: hc.id,\n});\nconst defaultNetwork = new gcp.compute.Network(\"default\", {\n name: \"website-net\",\n autoCreateSubnetworks: false,\n});\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"website-net\",\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n network: defaultNetwork.id,\n});\n// Forwarding rule for Internal Load Balancing\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"website-forwarding-rule\",\n region: \"us-central1\",\n loadBalancingScheme: \"INTERNAL\",\n backendService: backend.id,\n allPorts: true,\n allowGlobalAccess: true,\n network: defaultNetwork.name,\n subnetwork: defaultSubnetwork.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhc = gcp.compute.HealthCheck(\"hc\",\n name=\"check-website-backend\",\n check_interval_sec=1,\n timeout_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\nbackend = gcp.compute.RegionBackendService(\"backend\",\n name=\"website-backend\",\n region=\"us-central1\",\n health_checks=hc.id)\ndefault_network = gcp.compute.Network(\"default\",\n name=\"website-net\",\n auto_create_subnetworks=False)\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"website-net\",\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\",\n network=default_network.id)\n# Forwarding rule for Internal Load Balancing\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"website-forwarding-rule\",\n region=\"us-central1\",\n load_balancing_scheme=\"INTERNAL\",\n backend_service=backend.id,\n all_ports=True,\n allow_global_access=True,\n network=default_network.name,\n subnetwork=default_subnetwork.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var hc = new Gcp.Compute.HealthCheck(\"hc\", new()\n {\n Name = \"check-website-backend\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var backend = new Gcp.Compute.RegionBackendService(\"backend\", new()\n {\n Name = \"website-backend\",\n Region = \"us-central1\",\n HealthChecks = hc.Id,\n });\n\n var defaultNetwork = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"website-net\",\n AutoCreateSubnetworks = false,\n });\n\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"website-net\",\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n Network = defaultNetwork.Id,\n });\n\n // Forwarding rule for Internal Load Balancing\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"website-forwarding-rule\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"INTERNAL\",\n BackendService = backend.Id,\n AllPorts = true,\n AllowGlobalAccess = true,\n Network = defaultNetwork.Name,\n Subnetwork = defaultSubnetwork.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thc, err := compute.NewHealthCheck(ctx, \"hc\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"check-website-backend\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbackend, err := compute.NewRegionBackendService(ctx, \"backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"website-backend\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tHealthChecks: hc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"website-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"website-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Forwarding rule for Internal Load Balancing\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"website-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL\"),\n\t\t\tBackendService: backend.ID(),\n\t\t\tAllPorts: pulumi.Bool(true),\n\t\t\tAllowGlobalAccess: pulumi.Bool(true),\n\t\t\tNetwork: defaultNetwork.Name,\n\t\t\tSubnetwork: defaultSubnetwork.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\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 hc = new HealthCheck(\"hc\", HealthCheckArgs.builder() \n .name(\"check-website-backend\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n var backend = new RegionBackendService(\"backend\", RegionBackendServiceArgs.builder() \n .name(\"website-backend\")\n .region(\"us-central1\")\n .healthChecks(hc.id())\n .build());\n\n var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder() \n .name(\"website-net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"website-net\")\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .network(defaultNetwork.id())\n .build());\n\n // Forwarding rule for Internal Load Balancing\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"website-forwarding-rule\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"INTERNAL\")\n .backendService(backend.id())\n .allPorts(true)\n .allowGlobalAccess(true)\n .network(defaultNetwork.name())\n .subnetwork(defaultSubnetwork.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Forwarding rule for Internal Load Balancing\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: website-forwarding-rule\n region: us-central1\n loadBalancingScheme: INTERNAL\n backendService: ${backend.id}\n allPorts: true\n allowGlobalAccess: true\n network: ${defaultNetwork.name}\n subnetwork: ${defaultSubnetwork.name}\n backend:\n type: gcp:compute:RegionBackendService\n properties:\n name: website-backend\n region: us-central1\n healthChecks: ${hc.id}\n hc:\n type: gcp:compute:HealthCheck\n properties:\n name: check-website-backend\n checkIntervalSec: 1\n timeoutSec: 1\n tcpHealthCheck:\n port: '80'\n defaultNetwork:\n type: gcp:compute:Network\n name: default\n properties:\n name: website-net\n autoCreateSubnetworks: false\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: website-net\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n network: ${defaultNetwork.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultTargetPool = new gcp.compute.TargetPool(\"default\", {name: \"website-target-pool\"});\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"website-forwarding-rule\",\n target: defaultTargetPool.id,\n portRange: \"80\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_target_pool = gcp.compute.TargetPool(\"default\", name=\"website-target-pool\")\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"website-forwarding-rule\",\n target=default_target_pool.id,\n port_range=\"80\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultTargetPool = new Gcp.Compute.TargetPool(\"default\", new()\n {\n Name = \"website-target-pool\",\n });\n\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"website-forwarding-rule\",\n Target = defaultTargetPool.Id,\n PortRange = \"80\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultTargetPool, err := compute.NewTargetPool(ctx, \"default\", \u0026compute.TargetPoolArgs{\n\t\t\tName: pulumi.String(\"website-target-pool\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"website-forwarding-rule\"),\n\t\t\tTarget: defaultTargetPool.ID(),\n\t\t\tPortRange: pulumi.String(\"80\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.TargetPool;\nimport com.pulumi.gcp.compute.TargetPoolArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\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 defaultTargetPool = new TargetPool(\"defaultTargetPool\", TargetPoolArgs.builder() \n .name(\"website-target-pool\")\n .build());\n\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"website-forwarding-rule\")\n .target(defaultTargetPool.id())\n .portRange(\"80\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: website-forwarding-rule\n target: ${defaultTargetPool.id}\n portRange: '80'\n defaultTargetPool:\n type: gcp:compute:TargetPool\n name: default\n properties:\n name: website-target-pool\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule L3 Default\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst healthCheck = new gcp.compute.RegionHealthCheck(\"health_check\", {\n name: \"health-check\",\n region: \"us-central1\",\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst service = new gcp.compute.RegionBackendService(\"service\", {\n region: \"us-central1\",\n name: \"service\",\n healthChecks: healthCheck.id,\n protocol: \"UNSPECIFIED\",\n loadBalancingScheme: \"EXTERNAL\",\n});\nconst fwdRule = new gcp.compute.ForwardingRule(\"fwd_rule\", {\n name: \"l3-forwarding-rule\",\n backendService: service.id,\n ipProtocol: \"L3_DEFAULT\",\n allPorts: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhealth_check = gcp.compute.RegionHealthCheck(\"health_check\",\n name=\"health-check\",\n region=\"us-central1\",\n tcp_health_check=gcp.compute.RegionHealthCheckTcpHealthCheckArgs(\n port=80,\n ))\nservice = gcp.compute.RegionBackendService(\"service\",\n region=\"us-central1\",\n name=\"service\",\n health_checks=health_check.id,\n protocol=\"UNSPECIFIED\",\n load_balancing_scheme=\"EXTERNAL\")\nfwd_rule = gcp.compute.ForwardingRule(\"fwd_rule\",\n name=\"l3-forwarding-rule\",\n backend_service=service.id,\n ip_protocol=\"L3_DEFAULT\",\n all_ports=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var healthCheck = new Gcp.Compute.RegionHealthCheck(\"health_check\", new()\n {\n Name = \"health-check\",\n Region = \"us-central1\",\n TcpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var service = new Gcp.Compute.RegionBackendService(\"service\", new()\n {\n Region = \"us-central1\",\n Name = \"service\",\n HealthChecks = healthCheck.Id,\n Protocol = \"UNSPECIFIED\",\n LoadBalancingScheme = \"EXTERNAL\",\n });\n\n var fwdRule = new Gcp.Compute.ForwardingRule(\"fwd_rule\", new()\n {\n Name = \"l3-forwarding-rule\",\n BackendService = service.Id,\n IpProtocol = \"L3_DEFAULT\",\n AllPorts = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thealthCheck, err := compute.NewRegionHealthCheck(ctx, \"health_check\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tTcpHealthCheck: \u0026compute.RegionHealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tservice, err := compute.NewRegionBackendService(ctx, \"service\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"service\"),\n\t\t\tHealthChecks: healthCheck.ID(),\n\t\t\tProtocol: pulumi.String(\"UNSPECIFIED\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewForwardingRule(ctx, \"fwd_rule\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"l3-forwarding-rule\"),\n\t\t\tBackendService: service.ID(),\n\t\t\tIpProtocol: pulumi.String(\"L3_DEFAULT\"),\n\t\t\tAllPorts: pulumi.Bool(true),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\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 healthCheck = new RegionHealthCheck(\"healthCheck\", RegionHealthCheckArgs.builder() \n .name(\"health-check\")\n .region(\"us-central1\")\n .tcpHealthCheck(RegionHealthCheckTcpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var service = new RegionBackendService(\"service\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"service\")\n .healthChecks(healthCheck.id())\n .protocol(\"UNSPECIFIED\")\n .loadBalancingScheme(\"EXTERNAL\")\n .build());\n\n var fwdRule = new ForwardingRule(\"fwdRule\", ForwardingRuleArgs.builder() \n .name(\"l3-forwarding-rule\")\n .backendService(service.id())\n .ipProtocol(\"L3_DEFAULT\")\n .allPorts(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fwdRule:\n type: gcp:compute:ForwardingRule\n name: fwd_rule\n properties:\n name: l3-forwarding-rule\n backendService: ${service.id}\n ipProtocol: L3_DEFAULT\n allPorts: true\n service:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: service\n healthChecks: ${healthCheck.id}\n protocol: UNSPECIFIED\n loadBalancingScheme: EXTERNAL\n healthCheck:\n type: gcp:compute:RegionHealthCheck\n name: health_check\n properties:\n name: health-check\n region: us-central1\n tcpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Internallb\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst hc = new gcp.compute.HealthCheck(\"hc\", {\n name: \"check-website-backend\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst backend = new gcp.compute.RegionBackendService(\"backend\", {\n name: \"website-backend\",\n region: \"us-central1\",\n healthChecks: hc.id,\n});\nconst defaultNetwork = new gcp.compute.Network(\"default\", {\n name: \"website-net\",\n autoCreateSubnetworks: false,\n});\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"website-net\",\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n network: defaultNetwork.id,\n});\n// Forwarding rule for Internal Load Balancing\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"website-forwarding-rule\",\n region: \"us-central1\",\n loadBalancingScheme: \"INTERNAL\",\n backendService: backend.id,\n allPorts: true,\n network: defaultNetwork.name,\n subnetwork: defaultSubnetwork.name,\n ipVersion: \"IPV4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhc = gcp.compute.HealthCheck(\"hc\",\n name=\"check-website-backend\",\n check_interval_sec=1,\n timeout_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\nbackend = gcp.compute.RegionBackendService(\"backend\",\n name=\"website-backend\",\n region=\"us-central1\",\n health_checks=hc.id)\ndefault_network = gcp.compute.Network(\"default\",\n name=\"website-net\",\n auto_create_subnetworks=False)\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"website-net\",\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\",\n network=default_network.id)\n# Forwarding rule for Internal Load Balancing\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"website-forwarding-rule\",\n region=\"us-central1\",\n load_balancing_scheme=\"INTERNAL\",\n backend_service=backend.id,\n all_ports=True,\n network=default_network.name,\n subnetwork=default_subnetwork.name,\n ip_version=\"IPV4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var hc = new Gcp.Compute.HealthCheck(\"hc\", new()\n {\n Name = \"check-website-backend\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var backend = new Gcp.Compute.RegionBackendService(\"backend\", new()\n {\n Name = \"website-backend\",\n Region = \"us-central1\",\n HealthChecks = hc.Id,\n });\n\n var defaultNetwork = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"website-net\",\n AutoCreateSubnetworks = false,\n });\n\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"website-net\",\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n Network = defaultNetwork.Id,\n });\n\n // Forwarding rule for Internal Load Balancing\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"website-forwarding-rule\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"INTERNAL\",\n BackendService = backend.Id,\n AllPorts = true,\n Network = defaultNetwork.Name,\n Subnetwork = defaultSubnetwork.Name,\n IpVersion = \"IPV4\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thc, err := compute.NewHealthCheck(ctx, \"hc\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"check-website-backend\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbackend, err := compute.NewRegionBackendService(ctx, \"backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"website-backend\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tHealthChecks: hc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"website-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"website-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Forwarding rule for Internal Load Balancing\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"website-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL\"),\n\t\t\tBackendService: backend.ID(),\n\t\t\tAllPorts: pulumi.Bool(true),\n\t\t\tNetwork: defaultNetwork.Name,\n\t\t\tSubnetwork: defaultSubnetwork.Name,\n\t\t\tIpVersion: pulumi.String(\"IPV4\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\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 hc = new HealthCheck(\"hc\", HealthCheckArgs.builder() \n .name(\"check-website-backend\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n var backend = new RegionBackendService(\"backend\", RegionBackendServiceArgs.builder() \n .name(\"website-backend\")\n .region(\"us-central1\")\n .healthChecks(hc.id())\n .build());\n\n var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder() \n .name(\"website-net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"website-net\")\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .network(defaultNetwork.id())\n .build());\n\n // Forwarding rule for Internal Load Balancing\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"website-forwarding-rule\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"INTERNAL\")\n .backendService(backend.id())\n .allPorts(true)\n .network(defaultNetwork.name())\n .subnetwork(defaultSubnetwork.name())\n .ipVersion(\"IPV4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Forwarding rule for Internal Load Balancing\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: website-forwarding-rule\n region: us-central1\n loadBalancingScheme: INTERNAL\n backendService: ${backend.id}\n allPorts: true\n network: ${defaultNetwork.name}\n subnetwork: ${defaultSubnetwork.name}\n ipVersion: IPV4\n backend:\n type: gcp:compute:RegionBackendService\n properties:\n name: website-backend\n region: us-central1\n healthChecks: ${hc.id}\n hc:\n type: gcp:compute:HealthCheck\n properties:\n name: check-website-backend\n checkIntervalSec: 1\n timeoutSec: 1\n tcpHealthCheck:\n port: '80'\n defaultNetwork:\n type: gcp:compute:Network\n name: default\n properties:\n name: website-net\n autoCreateSubnetworks: false\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: website-net\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n network: ${defaultNetwork.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Http Lb\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst debianImage = gcp.compute.getImage({\n family: \"debian-11\",\n project: \"debian-cloud\",\n});\nconst defaultNetwork = new gcp.compute.Network(\"default\", {\n name: \"website-net\",\n autoCreateSubnetworks: false,\n routingMode: \"REGIONAL\",\n});\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"website-net-default\",\n ipCidrRange: \"10.1.2.0/24\",\n region: \"us-central1\",\n network: defaultNetwork.id,\n});\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n name: \"template-website-backend\",\n machineType: \"e2-medium\",\n networkInterfaces: [{\n network: defaultNetwork.id,\n subnetwork: defaultSubnetwork.id,\n }],\n disks: [{\n sourceImage: debianImage.then(debianImage =\u003e debianImage.selfLink),\n autoDelete: true,\n boot: true,\n }],\n tags: [\n \"allow-ssh\",\n \"load-balanced-backend\",\n ],\n});\nconst rigm = new gcp.compute.RegionInstanceGroupManager(\"rigm\", {\n region: \"us-central1\",\n name: \"website-rigm\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"internal-glb\",\n targetSize: 1,\n});\nconst defaultRegionHealthCheck = new gcp.compute.RegionHealthCheck(\"default\", {\n region: \"us-central1\",\n name: \"website-hc\",\n httpHealthCheck: {\n portSpecification: \"USE_SERVING_PORT\",\n },\n});\nconst defaultRegionBackendService = new gcp.compute.RegionBackendService(\"default\", {\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n backends: [{\n group: rigm.instanceGroup,\n balancingMode: \"UTILIZATION\",\n capacityScaler: 1,\n }],\n region: \"us-central1\",\n name: \"website-backend\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n healthChecks: defaultRegionHealthCheck.id,\n});\nconst defaultRegionUrlMap = new gcp.compute.RegionUrlMap(\"default\", {\n region: \"us-central1\",\n name: \"website-map\",\n defaultService: defaultRegionBackendService.id,\n});\nconst defaultRegionTargetHttpProxy = new gcp.compute.RegionTargetHttpProxy(\"default\", {\n region: \"us-central1\",\n name: \"website-proxy\",\n urlMap: defaultRegionUrlMap.id,\n});\n// Forwarding rule for Internal Load Balancing\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"website-forwarding-rule\",\n region: \"us-central1\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n portRange: \"80\",\n target: defaultRegionTargetHttpProxy.id,\n network: defaultNetwork.id,\n subnetwork: defaultSubnetwork.id,\n networkTier: \"PREMIUM\",\n});\nconst fw1 = new gcp.compute.Firewall(\"fw1\", {\n name: \"website-fw-1\",\n network: defaultNetwork.id,\n sourceRanges: [\"10.1.2.0/24\"],\n allows: [\n {\n protocol: \"tcp\",\n },\n {\n protocol: \"udp\",\n },\n {\n protocol: \"icmp\",\n },\n ],\n direction: \"INGRESS\",\n});\nconst fw2 = new gcp.compute.Firewall(\"fw2\", {\n name: \"website-fw-2\",\n network: defaultNetwork.id,\n sourceRanges: [\"0.0.0.0/0\"],\n allows: [{\n protocol: \"tcp\",\n ports: [\"22\"],\n }],\n targetTags: [\"allow-ssh\"],\n direction: \"INGRESS\",\n});\nconst fw3 = new gcp.compute.Firewall(\"fw3\", {\n name: \"website-fw-3\",\n network: defaultNetwork.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n targetTags: [\"load-balanced-backend\"],\n direction: \"INGRESS\",\n});\nconst fw4 = new gcp.compute.Firewall(\"fw4\", {\n name: \"website-fw-4\",\n network: defaultNetwork.id,\n sourceRanges: [\"10.129.0.0/26\"],\n targetTags: [\"load-balanced-backend\"],\n allows: [\n {\n protocol: \"tcp\",\n ports: [\"80\"],\n },\n {\n protocol: \"tcp\",\n ports: [\"443\"],\n },\n {\n protocol: \"tcp\",\n ports: [\"8000\"],\n },\n ],\n direction: \"INGRESS\",\n});\nconst proxy = new gcp.compute.Subnetwork(\"proxy\", {\n name: \"website-net-proxy\",\n ipCidrRange: \"10.129.0.0/26\",\n region: \"us-central1\",\n network: defaultNetwork.id,\n purpose: \"REGIONAL_MANAGED_PROXY\",\n role: \"ACTIVE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndebian_image = gcp.compute.get_image(family=\"debian-11\",\n project=\"debian-cloud\")\ndefault_network = gcp.compute.Network(\"default\",\n name=\"website-net\",\n auto_create_subnetworks=False,\n routing_mode=\"REGIONAL\")\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"website-net-default\",\n ip_cidr_range=\"10.1.2.0/24\",\n region=\"us-central1\",\n network=default_network.id)\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n name=\"template-website-backend\",\n machine_type=\"e2-medium\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n network=default_network.id,\n subnetwork=default_subnetwork.id,\n )],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=debian_image.self_link,\n auto_delete=True,\n boot=True,\n )],\n tags=[\n \"allow-ssh\",\n \"load-balanced-backend\",\n ])\nrigm = gcp.compute.RegionInstanceGroupManager(\"rigm\",\n region=\"us-central1\",\n name=\"website-rigm\",\n versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"internal-glb\",\n target_size=1)\ndefault_region_health_check = gcp.compute.RegionHealthCheck(\"default\",\n region=\"us-central1\",\n name=\"website-hc\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port_specification=\"USE_SERVING_PORT\",\n ))\ndefault_region_backend_service = gcp.compute.RegionBackendService(\"default\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n backends=[gcp.compute.RegionBackendServiceBackendArgs(\n group=rigm.instance_group,\n balancing_mode=\"UTILIZATION\",\n capacity_scaler=1,\n )],\n region=\"us-central1\",\n name=\"website-backend\",\n protocol=\"HTTP\",\n timeout_sec=10,\n health_checks=default_region_health_check.id)\ndefault_region_url_map = gcp.compute.RegionUrlMap(\"default\",\n region=\"us-central1\",\n name=\"website-map\",\n default_service=default_region_backend_service.id)\ndefault_region_target_http_proxy = gcp.compute.RegionTargetHttpProxy(\"default\",\n region=\"us-central1\",\n name=\"website-proxy\",\n url_map=default_region_url_map.id)\n# Forwarding rule for Internal Load Balancing\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"website-forwarding-rule\",\n region=\"us-central1\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n port_range=\"80\",\n target=default_region_target_http_proxy.id,\n network=default_network.id,\n subnetwork=default_subnetwork.id,\n network_tier=\"PREMIUM\")\nfw1 = gcp.compute.Firewall(\"fw1\",\n name=\"website-fw-1\",\n network=default_network.id,\n source_ranges=[\"10.1.2.0/24\"],\n allows=[\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"udp\",\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"icmp\",\n ),\n ],\n direction=\"INGRESS\")\nfw2 = gcp.compute.Firewall(\"fw2\",\n name=\"website-fw-2\",\n network=default_network.id,\n source_ranges=[\"0.0.0.0/0\"],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"22\"],\n )],\n target_tags=[\"allow-ssh\"],\n direction=\"INGRESS\")\nfw3 = gcp.compute.Firewall(\"fw3\",\n name=\"website-fw-3\",\n network=default_network.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )],\n target_tags=[\"load-balanced-backend\"],\n direction=\"INGRESS\")\nfw4 = gcp.compute.Firewall(\"fw4\",\n name=\"website-fw-4\",\n network=default_network.id,\n source_ranges=[\"10.129.0.0/26\"],\n target_tags=[\"load-balanced-backend\"],\n allows=[\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"80\"],\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"443\"],\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"8000\"],\n ),\n ],\n direction=\"INGRESS\")\nproxy = gcp.compute.Subnetwork(\"proxy\",\n name=\"website-net-proxy\",\n ip_cidr_range=\"10.129.0.0/26\",\n region=\"us-central1\",\n network=default_network.id,\n purpose=\"REGIONAL_MANAGED_PROXY\",\n role=\"ACTIVE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var debianImage = Gcp.Compute.GetImage.Invoke(new()\n {\n Family = \"debian-11\",\n Project = \"debian-cloud\",\n });\n\n var defaultNetwork = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"website-net\",\n AutoCreateSubnetworks = false,\n RoutingMode = \"REGIONAL\",\n });\n\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"website-net-default\",\n IpCidrRange = \"10.1.2.0/24\",\n Region = \"us-central1\",\n Network = defaultNetwork.Id,\n });\n\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n Name = \"template-website-backend\",\n MachineType = \"e2-medium\",\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n Network = defaultNetwork.Id,\n Subnetwork = defaultSubnetwork.Id,\n },\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = debianImage.Apply(getImageResult =\u003e getImageResult.SelfLink),\n AutoDelete = true,\n Boot = true,\n },\n },\n Tags = new[]\n {\n \"allow-ssh\",\n \"load-balanced-backend\",\n },\n });\n\n var rigm = new Gcp.Compute.RegionInstanceGroupManager(\"rigm\", new()\n {\n Region = \"us-central1\",\n Name = \"website-rigm\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"internal-glb\",\n TargetSize = 1,\n });\n\n var defaultRegionHealthCheck = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"website-hc\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n PortSpecification = \"USE_SERVING_PORT\",\n },\n });\n\n var defaultRegionBackendService = new Gcp.Compute.RegionBackendService(\"default\", new()\n {\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n Backends = new[]\n {\n new Gcp.Compute.Inputs.RegionBackendServiceBackendArgs\n {\n Group = rigm.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n CapacityScaler = 1,\n },\n },\n Region = \"us-central1\",\n Name = \"website-backend\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n HealthChecks = defaultRegionHealthCheck.Id,\n });\n\n var defaultRegionUrlMap = new Gcp.Compute.RegionUrlMap(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"website-map\",\n DefaultService = defaultRegionBackendService.Id,\n });\n\n var defaultRegionTargetHttpProxy = new Gcp.Compute.RegionTargetHttpProxy(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"website-proxy\",\n UrlMap = defaultRegionUrlMap.Id,\n });\n\n // Forwarding rule for Internal Load Balancing\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"website-forwarding-rule\",\n Region = \"us-central1\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n PortRange = \"80\",\n Target = defaultRegionTargetHttpProxy.Id,\n Network = defaultNetwork.Id,\n Subnetwork = defaultSubnetwork.Id,\n NetworkTier = \"PREMIUM\",\n });\n\n var fw1 = new Gcp.Compute.Firewall(\"fw1\", new()\n {\n Name = \"website-fw-1\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"10.1.2.0/24\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"udp\",\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"icmp\",\n },\n },\n Direction = \"INGRESS\",\n });\n\n var fw2 = new Gcp.Compute.Firewall(\"fw2\", new()\n {\n Name = \"website-fw-2\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"0.0.0.0/0\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"22\",\n },\n },\n },\n TargetTags = new[]\n {\n \"allow-ssh\",\n },\n Direction = \"INGRESS\",\n });\n\n var fw3 = new Gcp.Compute.Firewall(\"fw3\", new()\n {\n Name = \"website-fw-3\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n TargetTags = new[]\n {\n \"load-balanced-backend\",\n },\n Direction = \"INGRESS\",\n });\n\n var fw4 = new Gcp.Compute.Firewall(\"fw4\", new()\n {\n Name = \"website-fw-4\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"10.129.0.0/26\",\n },\n TargetTags = new[]\n {\n \"load-balanced-backend\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"80\",\n },\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"443\",\n },\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"8000\",\n },\n },\n },\n Direction = \"INGRESS\",\n });\n\n var proxy = new Gcp.Compute.Subnetwork(\"proxy\", new()\n {\n Name = \"website-net-proxy\",\n IpCidrRange = \"10.129.0.0/26\",\n Region = \"us-central1\",\n Network = defaultNetwork.Id,\n Purpose = \"REGIONAL_MANAGED_PROXY\",\n Role = \"ACTIVE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdebianImage, err := compute.LookupImage(ctx, \u0026compute.LookupImageArgs{\n\t\t\tFamily: pulumi.StringRef(\"debian-11\"),\n\t\t\tProject: pulumi.StringRef(\"debian-cloud\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"website-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t\tRoutingMode: pulumi.String(\"REGIONAL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"website-net-default\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.1.2.0/24\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tName: pulumi.String(\"template-website-backend\"),\n\t\t\tMachineType: pulumi.String(\"e2-medium\"),\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(debianImage.SelfLink),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-ssh\"),\n\t\t\t\tpulumi.String(\"load-balanced-backend\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trigm, err := compute.NewRegionInstanceGroupManager(ctx, \"rigm\", \u0026compute.RegionInstanceGroupManagerArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-rigm\"),\n\t\t\tVersions: compute.RegionInstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"internal-glb\"),\n\t\t\tTargetSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionHealthCheck, err := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-hc\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPortSpecification: pulumi.String(\"USE_SERVING_PORT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionBackendService, err := compute.NewRegionBackendService(ctx, \"default\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tBackends: compute.RegionBackendServiceBackendArray{\n\t\t\t\t\u0026compute.RegionBackendServiceBackendArgs{\n\t\t\t\t\tGroup: rigm.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-backend\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultRegionHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionUrlMap, err := compute.NewRegionUrlMap(ctx, \"default\", \u0026compute.RegionUrlMapArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-map\"),\n\t\t\tDefaultService: defaultRegionBackendService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionTargetHttpProxy, err := compute.NewRegionTargetHttpProxy(ctx, \"default\", \u0026compute.RegionTargetHttpProxyArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-proxy\"),\n\t\t\tUrlMap: defaultRegionUrlMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Forwarding rule for Internal Load Balancing\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"website-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tTarget: defaultRegionTargetHttpProxy.ID(),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\tNetworkTier: pulumi.String(\"PREMIUM\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw1\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.2.0/24\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"udp\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"icmp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw2\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-2\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"22\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-ssh\"),\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw3\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-3\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"load-balanced-backend\"),\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw4\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-4\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.129.0.0/26\"),\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"load-balanced-backend\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"80\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"443\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"8000\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewSubnetwork(ctx, \"proxy\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"website-net-proxy\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.129.0.0/26\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tPurpose: pulumi.String(\"REGIONAL_MANAGED_PROXY\"),\n\t\t\tRole: pulumi.String(\"ACTIVE\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetImageArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManager;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.RegionBackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxy;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\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 final var debianImage = ComputeFunctions.getImage(GetImageArgs.builder()\n .family(\"debian-11\")\n .project(\"debian-cloud\")\n .build());\n\n var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder() \n .name(\"website-net\")\n .autoCreateSubnetworks(false)\n .routingMode(\"REGIONAL\")\n .build());\n\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"website-net-default\")\n .ipCidrRange(\"10.1.2.0/24\")\n .region(\"us-central1\")\n .network(defaultNetwork.id())\n .build());\n\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .name(\"template-website-backend\")\n .machineType(\"e2-medium\")\n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .network(defaultNetwork.id())\n .subnetwork(defaultSubnetwork.id())\n .build())\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(debianImage.applyValue(getImageResult -\u003e getImageResult.selfLink()))\n .autoDelete(true)\n .boot(true)\n .build())\n .tags( \n \"allow-ssh\",\n \"load-balanced-backend\")\n .build());\n\n var rigm = new RegionInstanceGroupManager(\"rigm\", RegionInstanceGroupManagerArgs.builder() \n .region(\"us-central1\")\n .name(\"website-rigm\")\n .versions(RegionInstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"internal-glb\")\n .targetSize(1)\n .build());\n\n var defaultRegionHealthCheck = new RegionHealthCheck(\"defaultRegionHealthCheck\", RegionHealthCheckArgs.builder() \n .region(\"us-central1\")\n .name(\"website-hc\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .portSpecification(\"USE_SERVING_PORT\")\n .build())\n .build());\n\n var defaultRegionBackendService = new RegionBackendService(\"defaultRegionBackendService\", RegionBackendServiceArgs.builder() \n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .backends(RegionBackendServiceBackendArgs.builder()\n .group(rigm.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .capacityScaler(1)\n .build())\n .region(\"us-central1\")\n .name(\"website-backend\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(defaultRegionHealthCheck.id())\n .build());\n\n var defaultRegionUrlMap = new RegionUrlMap(\"defaultRegionUrlMap\", RegionUrlMapArgs.builder() \n .region(\"us-central1\")\n .name(\"website-map\")\n .defaultService(defaultRegionBackendService.id())\n .build());\n\n var defaultRegionTargetHttpProxy = new RegionTargetHttpProxy(\"defaultRegionTargetHttpProxy\", RegionTargetHttpProxyArgs.builder() \n .region(\"us-central1\")\n .name(\"website-proxy\")\n .urlMap(defaultRegionUrlMap.id())\n .build());\n\n // Forwarding rule for Internal Load Balancing\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"website-forwarding-rule\")\n .region(\"us-central1\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .portRange(\"80\")\n .target(defaultRegionTargetHttpProxy.id())\n .network(defaultNetwork.id())\n .subnetwork(defaultSubnetwork.id())\n .networkTier(\"PREMIUM\")\n .build());\n\n var fw1 = new Firewall(\"fw1\", FirewallArgs.builder() \n .name(\"website-fw-1\")\n .network(defaultNetwork.id())\n .sourceRanges(\"10.1.2.0/24\")\n .allows( \n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"udp\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"icmp\")\n .build())\n .direction(\"INGRESS\")\n .build());\n\n var fw2 = new Firewall(\"fw2\", FirewallArgs.builder() \n .name(\"website-fw-2\")\n .network(defaultNetwork.id())\n .sourceRanges(\"0.0.0.0/0\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"22\")\n .build())\n .targetTags(\"allow-ssh\")\n .direction(\"INGRESS\")\n .build());\n\n var fw3 = new Firewall(\"fw3\", FirewallArgs.builder() \n .name(\"website-fw-3\")\n .network(defaultNetwork.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .targetTags(\"load-balanced-backend\")\n .direction(\"INGRESS\")\n .build());\n\n var fw4 = new Firewall(\"fw4\", FirewallArgs.builder() \n .name(\"website-fw-4\")\n .network(defaultNetwork.id())\n .sourceRanges(\"10.129.0.0/26\")\n .targetTags(\"load-balanced-backend\")\n .allows( \n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"80\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"443\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"8000\")\n .build())\n .direction(\"INGRESS\")\n .build());\n\n var proxy = new Subnetwork(\"proxy\", SubnetworkArgs.builder() \n .name(\"website-net-proxy\")\n .ipCidrRange(\"10.129.0.0/26\")\n .region(\"us-central1\")\n .network(defaultNetwork.id())\n .purpose(\"REGIONAL_MANAGED_PROXY\")\n .role(\"ACTIVE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Forwarding rule for Internal Load Balancing\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: website-forwarding-rule\n region: us-central1\n ipProtocol: TCP\n loadBalancingScheme: INTERNAL_MANAGED\n portRange: '80'\n target: ${defaultRegionTargetHttpProxy.id}\n network: ${defaultNetwork.id}\n subnetwork: ${defaultSubnetwork.id}\n networkTier: PREMIUM\n defaultRegionTargetHttpProxy:\n type: gcp:compute:RegionTargetHttpProxy\n name: default\n properties:\n region: us-central1\n name: website-proxy\n urlMap: ${defaultRegionUrlMap.id}\n defaultRegionUrlMap:\n type: gcp:compute:RegionUrlMap\n name: default\n properties:\n region: us-central1\n name: website-map\n defaultService: ${defaultRegionBackendService.id}\n defaultRegionBackendService:\n type: gcp:compute:RegionBackendService\n name: default\n properties:\n loadBalancingScheme: INTERNAL_MANAGED\n backends:\n - group: ${rigm.instanceGroup}\n balancingMode: UTILIZATION\n capacityScaler: 1\n region: us-central1\n name: website-backend\n protocol: HTTP\n timeoutSec: 10\n healthChecks: ${defaultRegionHealthCheck.id}\n rigm:\n type: gcp:compute:RegionInstanceGroupManager\n properties:\n region: us-central1\n name: website-rigm\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: internal-glb\n targetSize: 1\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n name: template-website-backend\n machineType: e2-medium\n networkInterfaces:\n - network: ${defaultNetwork.id}\n subnetwork: ${defaultSubnetwork.id}\n disks:\n - sourceImage: ${debianImage.selfLink}\n autoDelete: true\n boot: true\n tags:\n - allow-ssh\n - load-balanced-backend\n defaultRegionHealthCheck:\n type: gcp:compute:RegionHealthCheck\n name: default\n properties:\n region: us-central1\n name: website-hc\n httpHealthCheck:\n portSpecification: USE_SERVING_PORT\n fw1:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-1\n network: ${defaultNetwork.id}\n sourceRanges:\n - 10.1.2.0/24\n allows:\n - protocol: tcp\n - protocol: udp\n - protocol: icmp\n direction: INGRESS\n fw2:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-2\n network: ${defaultNetwork.id}\n sourceRanges:\n - 0.0.0.0/0\n allows:\n - protocol: tcp\n ports:\n - '22'\n targetTags:\n - allow-ssh\n direction: INGRESS\n fw3:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-3\n network: ${defaultNetwork.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n allows:\n - protocol: tcp\n targetTags:\n - load-balanced-backend\n direction: INGRESS\n fw4:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-4\n network: ${defaultNetwork.id}\n sourceRanges:\n - 10.129.0.0/26\n targetTags:\n - load-balanced-backend\n allows:\n - protocol: tcp\n ports:\n - '80'\n - protocol: tcp\n ports:\n - '443'\n - protocol: tcp\n ports:\n - '8000'\n direction: INGRESS\n defaultNetwork:\n type: gcp:compute:Network\n name: default\n properties:\n name: website-net\n autoCreateSubnetworks: false\n routingMode: REGIONAL\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: website-net-default\n ipCidrRange: 10.1.2.0/24\n region: us-central1\n network: ${defaultNetwork.id}\n proxy:\n type: gcp:compute:Subnetwork\n properties:\n name: website-net-proxy\n ipCidrRange: 10.129.0.0/26\n region: us-central1\n network: ${defaultNetwork.id}\n purpose: REGIONAL_MANAGED_PROXY\n role: ACTIVE\nvariables:\n debianImage:\n fn::invoke:\n Function: gcp:compute:getImage\n Arguments:\n family: debian-11\n project: debian-cloud\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Regional Http Xlb\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst debianImage = gcp.compute.getImage({\n family: \"debian-11\",\n project: \"debian-cloud\",\n});\nconst defaultNetwork = new gcp.compute.Network(\"default\", {\n name: \"website-net\",\n autoCreateSubnetworks: false,\n routingMode: \"REGIONAL\",\n});\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"website-net-default\",\n ipCidrRange: \"10.1.2.0/24\",\n region: \"us-central1\",\n network: defaultNetwork.id,\n});\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n name: \"template-website-backend\",\n machineType: \"e2-medium\",\n networkInterfaces: [{\n network: defaultNetwork.id,\n subnetwork: defaultSubnetwork.id,\n }],\n disks: [{\n sourceImage: debianImage.then(debianImage =\u003e debianImage.selfLink),\n autoDelete: true,\n boot: true,\n }],\n tags: [\n \"allow-ssh\",\n \"load-balanced-backend\",\n ],\n});\nconst rigm = new gcp.compute.RegionInstanceGroupManager(\"rigm\", {\n region: \"us-central1\",\n name: \"website-rigm\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"internal-glb\",\n targetSize: 1,\n});\nconst defaultRegionHealthCheck = new gcp.compute.RegionHealthCheck(\"default\", {\n region: \"us-central1\",\n name: \"website-hc\",\n httpHealthCheck: {\n portSpecification: \"USE_SERVING_PORT\",\n },\n});\nconst defaultRegionBackendService = new gcp.compute.RegionBackendService(\"default\", {\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n backends: [{\n group: rigm.instanceGroup,\n balancingMode: \"UTILIZATION\",\n capacityScaler: 1,\n }],\n region: \"us-central1\",\n name: \"website-backend\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n healthChecks: defaultRegionHealthCheck.id,\n});\nconst defaultRegionUrlMap = new gcp.compute.RegionUrlMap(\"default\", {\n region: \"us-central1\",\n name: \"website-map\",\n defaultService: defaultRegionBackendService.id,\n});\nconst defaultRegionTargetHttpProxy = new gcp.compute.RegionTargetHttpProxy(\"default\", {\n region: \"us-central1\",\n name: \"website-proxy\",\n urlMap: defaultRegionUrlMap.id,\n});\nconst defaultAddress = new gcp.compute.Address(\"default\", {\n name: \"website-ip-1\",\n region: \"us-central1\",\n networkTier: \"STANDARD\",\n});\n// Forwarding rule for Regional External Load Balancing\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"website-forwarding-rule\",\n region: \"us-central1\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n portRange: \"80\",\n target: defaultRegionTargetHttpProxy.id,\n network: defaultNetwork.id,\n ipAddress: defaultAddress.id,\n networkTier: \"STANDARD\",\n});\nconst fw1 = new gcp.compute.Firewall(\"fw1\", {\n name: \"website-fw-1\",\n network: defaultNetwork.id,\n sourceRanges: [\"10.1.2.0/24\"],\n allows: [\n {\n protocol: \"tcp\",\n },\n {\n protocol: \"udp\",\n },\n {\n protocol: \"icmp\",\n },\n ],\n direction: \"INGRESS\",\n});\nconst fw2 = new gcp.compute.Firewall(\"fw2\", {\n name: \"website-fw-2\",\n network: defaultNetwork.id,\n sourceRanges: [\"0.0.0.0/0\"],\n allows: [{\n protocol: \"tcp\",\n ports: [\"22\"],\n }],\n targetTags: [\"allow-ssh\"],\n direction: \"INGRESS\",\n});\nconst fw3 = new gcp.compute.Firewall(\"fw3\", {\n name: \"website-fw-3\",\n network: defaultNetwork.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n targetTags: [\"load-balanced-backend\"],\n direction: \"INGRESS\",\n});\nconst fw4 = new gcp.compute.Firewall(\"fw4\", {\n name: \"website-fw-4\",\n network: defaultNetwork.id,\n sourceRanges: [\"10.129.0.0/26\"],\n targetTags: [\"load-balanced-backend\"],\n allows: [\n {\n protocol: \"tcp\",\n ports: [\"80\"],\n },\n {\n protocol: \"tcp\",\n ports: [\"443\"],\n },\n {\n protocol: \"tcp\",\n ports: [\"8000\"],\n },\n ],\n direction: \"INGRESS\",\n});\nconst proxy = new gcp.compute.Subnetwork(\"proxy\", {\n name: \"website-net-proxy\",\n ipCidrRange: \"10.129.0.0/26\",\n region: \"us-central1\",\n network: defaultNetwork.id,\n purpose: \"REGIONAL_MANAGED_PROXY\",\n role: \"ACTIVE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndebian_image = gcp.compute.get_image(family=\"debian-11\",\n project=\"debian-cloud\")\ndefault_network = gcp.compute.Network(\"default\",\n name=\"website-net\",\n auto_create_subnetworks=False,\n routing_mode=\"REGIONAL\")\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"website-net-default\",\n ip_cidr_range=\"10.1.2.0/24\",\n region=\"us-central1\",\n network=default_network.id)\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n name=\"template-website-backend\",\n machine_type=\"e2-medium\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n network=default_network.id,\n subnetwork=default_subnetwork.id,\n )],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=debian_image.self_link,\n auto_delete=True,\n boot=True,\n )],\n tags=[\n \"allow-ssh\",\n \"load-balanced-backend\",\n ])\nrigm = gcp.compute.RegionInstanceGroupManager(\"rigm\",\n region=\"us-central1\",\n name=\"website-rigm\",\n versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"internal-glb\",\n target_size=1)\ndefault_region_health_check = gcp.compute.RegionHealthCheck(\"default\",\n region=\"us-central1\",\n name=\"website-hc\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port_specification=\"USE_SERVING_PORT\",\n ))\ndefault_region_backend_service = gcp.compute.RegionBackendService(\"default\",\n load_balancing_scheme=\"EXTERNAL_MANAGED\",\n backends=[gcp.compute.RegionBackendServiceBackendArgs(\n group=rigm.instance_group,\n balancing_mode=\"UTILIZATION\",\n capacity_scaler=1,\n )],\n region=\"us-central1\",\n name=\"website-backend\",\n protocol=\"HTTP\",\n timeout_sec=10,\n health_checks=default_region_health_check.id)\ndefault_region_url_map = gcp.compute.RegionUrlMap(\"default\",\n region=\"us-central1\",\n name=\"website-map\",\n default_service=default_region_backend_service.id)\ndefault_region_target_http_proxy = gcp.compute.RegionTargetHttpProxy(\"default\",\n region=\"us-central1\",\n name=\"website-proxy\",\n url_map=default_region_url_map.id)\ndefault_address = gcp.compute.Address(\"default\",\n name=\"website-ip-1\",\n region=\"us-central1\",\n network_tier=\"STANDARD\")\n# Forwarding rule for Regional External Load Balancing\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"website-forwarding-rule\",\n region=\"us-central1\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"EXTERNAL_MANAGED\",\n port_range=\"80\",\n target=default_region_target_http_proxy.id,\n network=default_network.id,\n ip_address=default_address.id,\n network_tier=\"STANDARD\")\nfw1 = gcp.compute.Firewall(\"fw1\",\n name=\"website-fw-1\",\n network=default_network.id,\n source_ranges=[\"10.1.2.0/24\"],\n allows=[\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"udp\",\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"icmp\",\n ),\n ],\n direction=\"INGRESS\")\nfw2 = gcp.compute.Firewall(\"fw2\",\n name=\"website-fw-2\",\n network=default_network.id,\n source_ranges=[\"0.0.0.0/0\"],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"22\"],\n )],\n target_tags=[\"allow-ssh\"],\n direction=\"INGRESS\")\nfw3 = gcp.compute.Firewall(\"fw3\",\n name=\"website-fw-3\",\n network=default_network.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )],\n target_tags=[\"load-balanced-backend\"],\n direction=\"INGRESS\")\nfw4 = gcp.compute.Firewall(\"fw4\",\n name=\"website-fw-4\",\n network=default_network.id,\n source_ranges=[\"10.129.0.0/26\"],\n target_tags=[\"load-balanced-backend\"],\n allows=[\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"80\"],\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"443\"],\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"8000\"],\n ),\n ],\n direction=\"INGRESS\")\nproxy = gcp.compute.Subnetwork(\"proxy\",\n name=\"website-net-proxy\",\n ip_cidr_range=\"10.129.0.0/26\",\n region=\"us-central1\",\n network=default_network.id,\n purpose=\"REGIONAL_MANAGED_PROXY\",\n role=\"ACTIVE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var debianImage = Gcp.Compute.GetImage.Invoke(new()\n {\n Family = \"debian-11\",\n Project = \"debian-cloud\",\n });\n\n var defaultNetwork = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"website-net\",\n AutoCreateSubnetworks = false,\n RoutingMode = \"REGIONAL\",\n });\n\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"website-net-default\",\n IpCidrRange = \"10.1.2.0/24\",\n Region = \"us-central1\",\n Network = defaultNetwork.Id,\n });\n\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n Name = \"template-website-backend\",\n MachineType = \"e2-medium\",\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n Network = defaultNetwork.Id,\n Subnetwork = defaultSubnetwork.Id,\n },\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = debianImage.Apply(getImageResult =\u003e getImageResult.SelfLink),\n AutoDelete = true,\n Boot = true,\n },\n },\n Tags = new[]\n {\n \"allow-ssh\",\n \"load-balanced-backend\",\n },\n });\n\n var rigm = new Gcp.Compute.RegionInstanceGroupManager(\"rigm\", new()\n {\n Region = \"us-central1\",\n Name = \"website-rigm\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"internal-glb\",\n TargetSize = 1,\n });\n\n var defaultRegionHealthCheck = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"website-hc\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n PortSpecification = \"USE_SERVING_PORT\",\n },\n });\n\n var defaultRegionBackendService = new Gcp.Compute.RegionBackendService(\"default\", new()\n {\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n Backends = new[]\n {\n new Gcp.Compute.Inputs.RegionBackendServiceBackendArgs\n {\n Group = rigm.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n CapacityScaler = 1,\n },\n },\n Region = \"us-central1\",\n Name = \"website-backend\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n HealthChecks = defaultRegionHealthCheck.Id,\n });\n\n var defaultRegionUrlMap = new Gcp.Compute.RegionUrlMap(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"website-map\",\n DefaultService = defaultRegionBackendService.Id,\n });\n\n var defaultRegionTargetHttpProxy = new Gcp.Compute.RegionTargetHttpProxy(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"website-proxy\",\n UrlMap = defaultRegionUrlMap.Id,\n });\n\n var defaultAddress = new Gcp.Compute.Address(\"default\", new()\n {\n Name = \"website-ip-1\",\n Region = \"us-central1\",\n NetworkTier = \"STANDARD\",\n });\n\n // Forwarding rule for Regional External Load Balancing\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"website-forwarding-rule\",\n Region = \"us-central1\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n PortRange = \"80\",\n Target = defaultRegionTargetHttpProxy.Id,\n Network = defaultNetwork.Id,\n IpAddress = defaultAddress.Id,\n NetworkTier = \"STANDARD\",\n });\n\n var fw1 = new Gcp.Compute.Firewall(\"fw1\", new()\n {\n Name = \"website-fw-1\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"10.1.2.0/24\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"udp\",\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"icmp\",\n },\n },\n Direction = \"INGRESS\",\n });\n\n var fw2 = new Gcp.Compute.Firewall(\"fw2\", new()\n {\n Name = \"website-fw-2\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"0.0.0.0/0\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"22\",\n },\n },\n },\n TargetTags = new[]\n {\n \"allow-ssh\",\n },\n Direction = \"INGRESS\",\n });\n\n var fw3 = new Gcp.Compute.Firewall(\"fw3\", new()\n {\n Name = \"website-fw-3\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n TargetTags = new[]\n {\n \"load-balanced-backend\",\n },\n Direction = \"INGRESS\",\n });\n\n var fw4 = new Gcp.Compute.Firewall(\"fw4\", new()\n {\n Name = \"website-fw-4\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"10.129.0.0/26\",\n },\n TargetTags = new[]\n {\n \"load-balanced-backend\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"80\",\n },\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"443\",\n },\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"8000\",\n },\n },\n },\n Direction = \"INGRESS\",\n });\n\n var proxy = new Gcp.Compute.Subnetwork(\"proxy\", new()\n {\n Name = \"website-net-proxy\",\n IpCidrRange = \"10.129.0.0/26\",\n Region = \"us-central1\",\n Network = defaultNetwork.Id,\n Purpose = \"REGIONAL_MANAGED_PROXY\",\n Role = \"ACTIVE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdebianImage, err := compute.LookupImage(ctx, \u0026compute.LookupImageArgs{\n\t\t\tFamily: pulumi.StringRef(\"debian-11\"),\n\t\t\tProject: pulumi.StringRef(\"debian-cloud\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"website-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t\tRoutingMode: pulumi.String(\"REGIONAL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"website-net-default\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.1.2.0/24\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tName: pulumi.String(\"template-website-backend\"),\n\t\t\tMachineType: pulumi.String(\"e2-medium\"),\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(debianImage.SelfLink),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-ssh\"),\n\t\t\t\tpulumi.String(\"load-balanced-backend\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trigm, err := compute.NewRegionInstanceGroupManager(ctx, \"rigm\", \u0026compute.RegionInstanceGroupManagerArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-rigm\"),\n\t\t\tVersions: compute.RegionInstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"internal-glb\"),\n\t\t\tTargetSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionHealthCheck, err := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-hc\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPortSpecification: pulumi.String(\"USE_SERVING_PORT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionBackendService, err := compute.NewRegionBackendService(ctx, \"default\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\n\t\t\tBackends: compute.RegionBackendServiceBackendArray{\n\t\t\t\t\u0026compute.RegionBackendServiceBackendArgs{\n\t\t\t\t\tGroup: rigm.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-backend\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultRegionHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionUrlMap, err := compute.NewRegionUrlMap(ctx, \"default\", \u0026compute.RegionUrlMapArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-map\"),\n\t\t\tDefaultService: defaultRegionBackendService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionTargetHttpProxy, err := compute.NewRegionTargetHttpProxy(ctx, \"default\", \u0026compute.RegionTargetHttpProxyArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-proxy\"),\n\t\t\tUrlMap: defaultRegionUrlMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAddress, err := compute.NewAddress(ctx, \"default\", \u0026compute.AddressArgs{\n\t\t\tName: pulumi.String(\"website-ip-1\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetworkTier: pulumi.String(\"STANDARD\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Forwarding rule for Regional External Load Balancing\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"website-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tTarget: defaultRegionTargetHttpProxy.ID(),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tIpAddress: defaultAddress.ID(),\n\t\t\tNetworkTier: pulumi.String(\"STANDARD\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw1\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.2.0/24\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"udp\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"icmp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw2\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-2\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"22\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-ssh\"),\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw3\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-3\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"load-balanced-backend\"),\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw4\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-4\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.129.0.0/26\"),\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"load-balanced-backend\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"80\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"443\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"8000\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewSubnetwork(ctx, \"proxy\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"website-net-proxy\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.129.0.0/26\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tPurpose: pulumi.String(\"REGIONAL_MANAGED_PROXY\"),\n\t\t\tRole: pulumi.String(\"ACTIVE\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetImageArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManager;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.RegionBackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxy;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.Address;\nimport com.pulumi.gcp.compute.AddressArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\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 final var debianImage = ComputeFunctions.getImage(GetImageArgs.builder()\n .family(\"debian-11\")\n .project(\"debian-cloud\")\n .build());\n\n var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder() \n .name(\"website-net\")\n .autoCreateSubnetworks(false)\n .routingMode(\"REGIONAL\")\n .build());\n\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"website-net-default\")\n .ipCidrRange(\"10.1.2.0/24\")\n .region(\"us-central1\")\n .network(defaultNetwork.id())\n .build());\n\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .name(\"template-website-backend\")\n .machineType(\"e2-medium\")\n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .network(defaultNetwork.id())\n .subnetwork(defaultSubnetwork.id())\n .build())\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(debianImage.applyValue(getImageResult -\u003e getImageResult.selfLink()))\n .autoDelete(true)\n .boot(true)\n .build())\n .tags( \n \"allow-ssh\",\n \"load-balanced-backend\")\n .build());\n\n var rigm = new RegionInstanceGroupManager(\"rigm\", RegionInstanceGroupManagerArgs.builder() \n .region(\"us-central1\")\n .name(\"website-rigm\")\n .versions(RegionInstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"internal-glb\")\n .targetSize(1)\n .build());\n\n var defaultRegionHealthCheck = new RegionHealthCheck(\"defaultRegionHealthCheck\", RegionHealthCheckArgs.builder() \n .region(\"us-central1\")\n .name(\"website-hc\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .portSpecification(\"USE_SERVING_PORT\")\n .build())\n .build());\n\n var defaultRegionBackendService = new RegionBackendService(\"defaultRegionBackendService\", RegionBackendServiceArgs.builder() \n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .backends(RegionBackendServiceBackendArgs.builder()\n .group(rigm.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .capacityScaler(1)\n .build())\n .region(\"us-central1\")\n .name(\"website-backend\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(defaultRegionHealthCheck.id())\n .build());\n\n var defaultRegionUrlMap = new RegionUrlMap(\"defaultRegionUrlMap\", RegionUrlMapArgs.builder() \n .region(\"us-central1\")\n .name(\"website-map\")\n .defaultService(defaultRegionBackendService.id())\n .build());\n\n var defaultRegionTargetHttpProxy = new RegionTargetHttpProxy(\"defaultRegionTargetHttpProxy\", RegionTargetHttpProxyArgs.builder() \n .region(\"us-central1\")\n .name(\"website-proxy\")\n .urlMap(defaultRegionUrlMap.id())\n .build());\n\n var defaultAddress = new Address(\"defaultAddress\", AddressArgs.builder() \n .name(\"website-ip-1\")\n .region(\"us-central1\")\n .networkTier(\"STANDARD\")\n .build());\n\n // Forwarding rule for Regional External Load Balancing\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"website-forwarding-rule\")\n .region(\"us-central1\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .portRange(\"80\")\n .target(defaultRegionTargetHttpProxy.id())\n .network(defaultNetwork.id())\n .ipAddress(defaultAddress.id())\n .networkTier(\"STANDARD\")\n .build());\n\n var fw1 = new Firewall(\"fw1\", FirewallArgs.builder() \n .name(\"website-fw-1\")\n .network(defaultNetwork.id())\n .sourceRanges(\"10.1.2.0/24\")\n .allows( \n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"udp\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"icmp\")\n .build())\n .direction(\"INGRESS\")\n .build());\n\n var fw2 = new Firewall(\"fw2\", FirewallArgs.builder() \n .name(\"website-fw-2\")\n .network(defaultNetwork.id())\n .sourceRanges(\"0.0.0.0/0\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"22\")\n .build())\n .targetTags(\"allow-ssh\")\n .direction(\"INGRESS\")\n .build());\n\n var fw3 = new Firewall(\"fw3\", FirewallArgs.builder() \n .name(\"website-fw-3\")\n .network(defaultNetwork.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .targetTags(\"load-balanced-backend\")\n .direction(\"INGRESS\")\n .build());\n\n var fw4 = new Firewall(\"fw4\", FirewallArgs.builder() \n .name(\"website-fw-4\")\n .network(defaultNetwork.id())\n .sourceRanges(\"10.129.0.0/26\")\n .targetTags(\"load-balanced-backend\")\n .allows( \n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"80\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"443\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"8000\")\n .build())\n .direction(\"INGRESS\")\n .build());\n\n var proxy = new Subnetwork(\"proxy\", SubnetworkArgs.builder() \n .name(\"website-net-proxy\")\n .ipCidrRange(\"10.129.0.0/26\")\n .region(\"us-central1\")\n .network(defaultNetwork.id())\n .purpose(\"REGIONAL_MANAGED_PROXY\")\n .role(\"ACTIVE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Forwarding rule for Regional External Load Balancing\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: website-forwarding-rule\n region: us-central1\n ipProtocol: TCP\n loadBalancingScheme: EXTERNAL_MANAGED\n portRange: '80'\n target: ${defaultRegionTargetHttpProxy.id}\n network: ${defaultNetwork.id}\n ipAddress: ${defaultAddress.id}\n networkTier: STANDARD\n defaultRegionTargetHttpProxy:\n type: gcp:compute:RegionTargetHttpProxy\n name: default\n properties:\n region: us-central1\n name: website-proxy\n urlMap: ${defaultRegionUrlMap.id}\n defaultRegionUrlMap:\n type: gcp:compute:RegionUrlMap\n name: default\n properties:\n region: us-central1\n name: website-map\n defaultService: ${defaultRegionBackendService.id}\n defaultRegionBackendService:\n type: gcp:compute:RegionBackendService\n name: default\n properties:\n loadBalancingScheme: EXTERNAL_MANAGED\n backends:\n - group: ${rigm.instanceGroup}\n balancingMode: UTILIZATION\n capacityScaler: 1\n region: us-central1\n name: website-backend\n protocol: HTTP\n timeoutSec: 10\n healthChecks: ${defaultRegionHealthCheck.id}\n rigm:\n type: gcp:compute:RegionInstanceGroupManager\n properties:\n region: us-central1\n name: website-rigm\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: internal-glb\n targetSize: 1\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n name: template-website-backend\n machineType: e2-medium\n networkInterfaces:\n - network: ${defaultNetwork.id}\n subnetwork: ${defaultSubnetwork.id}\n disks:\n - sourceImage: ${debianImage.selfLink}\n autoDelete: true\n boot: true\n tags:\n - allow-ssh\n - load-balanced-backend\n defaultRegionHealthCheck:\n type: gcp:compute:RegionHealthCheck\n name: default\n properties:\n region: us-central1\n name: website-hc\n httpHealthCheck:\n portSpecification: USE_SERVING_PORT\n defaultAddress:\n type: gcp:compute:Address\n name: default\n properties:\n name: website-ip-1\n region: us-central1\n networkTier: STANDARD\n fw1:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-1\n network: ${defaultNetwork.id}\n sourceRanges:\n - 10.1.2.0/24\n allows:\n - protocol: tcp\n - protocol: udp\n - protocol: icmp\n direction: INGRESS\n fw2:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-2\n network: ${defaultNetwork.id}\n sourceRanges:\n - 0.0.0.0/0\n allows:\n - protocol: tcp\n ports:\n - '22'\n targetTags:\n - allow-ssh\n direction: INGRESS\n fw3:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-3\n network: ${defaultNetwork.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n allows:\n - protocol: tcp\n targetTags:\n - load-balanced-backend\n direction: INGRESS\n fw4:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-4\n network: ${defaultNetwork.id}\n sourceRanges:\n - 10.129.0.0/26\n targetTags:\n - load-balanced-backend\n allows:\n - protocol: tcp\n ports:\n - '80'\n - protocol: tcp\n ports:\n - '443'\n - protocol: tcp\n ports:\n - '8000'\n direction: INGRESS\n defaultNetwork:\n type: gcp:compute:Network\n name: default\n properties:\n name: website-net\n autoCreateSubnetworks: false\n routingMode: REGIONAL\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: website-net-default\n ipCidrRange: 10.1.2.0/24\n region: us-central1\n network: ${defaultNetwork.id}\n proxy:\n type: gcp:compute:Subnetwork\n properties:\n name: website-net-proxy\n ipCidrRange: 10.129.0.0/26\n region: us-central1\n network: ${defaultNetwork.id}\n purpose: REGIONAL_MANAGED_PROXY\n role: ACTIVE\nvariables:\n debianImage:\n fn::invoke:\n Function: gcp:compute:getImage\n Arguments:\n family: debian-11\n project: debian-cloud\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Vpc Psc\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\n// Consumer service endpoint\nconst consumerNet = new gcp.compute.Network(\"consumer_net\", {\n name: \"consumer-net\",\n autoCreateSubnetworks: false,\n});\nconst consumerSubnet = new gcp.compute.Subnetwork(\"consumer_subnet\", {\n name: \"consumer-net\",\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n network: consumerNet.id,\n});\nconst consumerAddress = new gcp.compute.Address(\"consumer_address\", {\n name: \"website-ip-1\",\n region: \"us-central1\",\n subnetwork: consumerSubnet.id,\n addressType: \"INTERNAL\",\n});\n// Producer service attachment\nconst producerNet = new gcp.compute.Network(\"producer_net\", {\n name: \"producer-net\",\n autoCreateSubnetworks: false,\n});\nconst pscProducerSubnet = new gcp.compute.Subnetwork(\"psc_producer_subnet\", {\n name: \"producer-psc-net\",\n ipCidrRange: \"10.1.0.0/16\",\n region: \"us-central1\",\n purpose: \"PRIVATE_SERVICE_CONNECT\",\n network: producerNet.id,\n});\nconst producerSubnet = new gcp.compute.Subnetwork(\"producer_subnet\", {\n name: \"producer-net\",\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n network: producerNet.id,\n});\nconst producerServiceHealthCheck = new gcp.compute.HealthCheck(\"producer_service_health_check\", {\n name: \"producer-service-health-check\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst producerServiceBackend = new gcp.compute.RegionBackendService(\"producer_service_backend\", {\n name: \"producer-service-backend\",\n region: \"us-central1\",\n healthChecks: producerServiceHealthCheck.id,\n});\nconst producerTargetService = new gcp.compute.ForwardingRule(\"producer_target_service\", {\n name: \"producer-forwarding-rule\",\n region: \"us-central1\",\n loadBalancingScheme: \"INTERNAL\",\n backendService: producerServiceBackend.id,\n allPorts: true,\n network: producerNet.name,\n subnetwork: producerSubnet.name,\n});\nconst producerServiceAttachment = new gcp.compute.ServiceAttachment(\"producer_service_attachment\", {\n name: \"producer-service\",\n region: \"us-central1\",\n description: \"A service attachment configured with Terraform\",\n enableProxyProtocol: true,\n connectionPreference: \"ACCEPT_AUTOMATIC\",\n natSubnets: [pscProducerSubnet.name],\n targetService: producerTargetService.id,\n});\n// Forwarding rule for VPC private service connect\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"psc-endpoint\",\n region: \"us-central1\",\n loadBalancingScheme: \"\",\n target: producerServiceAttachment.id,\n network: consumerNet.name,\n ipAddress: consumerAddress.id,\n allowPscGlobalAccess: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\n# Consumer service endpoint\nconsumer_net = gcp.compute.Network(\"consumer_net\",\n name=\"consumer-net\",\n auto_create_subnetworks=False)\nconsumer_subnet = gcp.compute.Subnetwork(\"consumer_subnet\",\n name=\"consumer-net\",\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\",\n network=consumer_net.id)\nconsumer_address = gcp.compute.Address(\"consumer_address\",\n name=\"website-ip-1\",\n region=\"us-central1\",\n subnetwork=consumer_subnet.id,\n address_type=\"INTERNAL\")\n# Producer service attachment\nproducer_net = gcp.compute.Network(\"producer_net\",\n name=\"producer-net\",\n auto_create_subnetworks=False)\npsc_producer_subnet = gcp.compute.Subnetwork(\"psc_producer_subnet\",\n name=\"producer-psc-net\",\n ip_cidr_range=\"10.1.0.0/16\",\n region=\"us-central1\",\n purpose=\"PRIVATE_SERVICE_CONNECT\",\n network=producer_net.id)\nproducer_subnet = gcp.compute.Subnetwork(\"producer_subnet\",\n name=\"producer-net\",\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\",\n network=producer_net.id)\nproducer_service_health_check = gcp.compute.HealthCheck(\"producer_service_health_check\",\n name=\"producer-service-health-check\",\n check_interval_sec=1,\n timeout_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\nproducer_service_backend = gcp.compute.RegionBackendService(\"producer_service_backend\",\n name=\"producer-service-backend\",\n region=\"us-central1\",\n health_checks=producer_service_health_check.id)\nproducer_target_service = gcp.compute.ForwardingRule(\"producer_target_service\",\n name=\"producer-forwarding-rule\",\n region=\"us-central1\",\n load_balancing_scheme=\"INTERNAL\",\n backend_service=producer_service_backend.id,\n all_ports=True,\n network=producer_net.name,\n subnetwork=producer_subnet.name)\nproducer_service_attachment = gcp.compute.ServiceAttachment(\"producer_service_attachment\",\n name=\"producer-service\",\n region=\"us-central1\",\n description=\"A service attachment configured with Terraform\",\n enable_proxy_protocol=True,\n connection_preference=\"ACCEPT_AUTOMATIC\",\n nat_subnets=[psc_producer_subnet.name],\n target_service=producer_target_service.id)\n# Forwarding rule for VPC private service connect\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"psc-endpoint\",\n region=\"us-central1\",\n load_balancing_scheme=\"\",\n target=producer_service_attachment.id,\n network=consumer_net.name,\n ip_address=consumer_address.id,\n allow_psc_global_access=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Consumer service endpoint\n var consumerNet = new Gcp.Compute.Network(\"consumer_net\", new()\n {\n Name = \"consumer-net\",\n AutoCreateSubnetworks = false,\n });\n\n var consumerSubnet = new Gcp.Compute.Subnetwork(\"consumer_subnet\", new()\n {\n Name = \"consumer-net\",\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n Network = consumerNet.Id,\n });\n\n var consumerAddress = new Gcp.Compute.Address(\"consumer_address\", new()\n {\n Name = \"website-ip-1\",\n Region = \"us-central1\",\n Subnetwork = consumerSubnet.Id,\n AddressType = \"INTERNAL\",\n });\n\n // Producer service attachment\n var producerNet = new Gcp.Compute.Network(\"producer_net\", new()\n {\n Name = \"producer-net\",\n AutoCreateSubnetworks = false,\n });\n\n var pscProducerSubnet = new Gcp.Compute.Subnetwork(\"psc_producer_subnet\", new()\n {\n Name = \"producer-psc-net\",\n IpCidrRange = \"10.1.0.0/16\",\n Region = \"us-central1\",\n Purpose = \"PRIVATE_SERVICE_CONNECT\",\n Network = producerNet.Id,\n });\n\n var producerSubnet = new Gcp.Compute.Subnetwork(\"producer_subnet\", new()\n {\n Name = \"producer-net\",\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n Network = producerNet.Id,\n });\n\n var producerServiceHealthCheck = new Gcp.Compute.HealthCheck(\"producer_service_health_check\", new()\n {\n Name = \"producer-service-health-check\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var producerServiceBackend = new Gcp.Compute.RegionBackendService(\"producer_service_backend\", new()\n {\n Name = \"producer-service-backend\",\n Region = \"us-central1\",\n HealthChecks = producerServiceHealthCheck.Id,\n });\n\n var producerTargetService = new Gcp.Compute.ForwardingRule(\"producer_target_service\", new()\n {\n Name = \"producer-forwarding-rule\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"INTERNAL\",\n BackendService = producerServiceBackend.Id,\n AllPorts = true,\n Network = producerNet.Name,\n Subnetwork = producerSubnet.Name,\n });\n\n var producerServiceAttachment = new Gcp.Compute.ServiceAttachment(\"producer_service_attachment\", new()\n {\n Name = \"producer-service\",\n Region = \"us-central1\",\n Description = \"A service attachment configured with Terraform\",\n EnableProxyProtocol = true,\n ConnectionPreference = \"ACCEPT_AUTOMATIC\",\n NatSubnets = new[]\n {\n pscProducerSubnet.Name,\n },\n TargetService = producerTargetService.Id,\n });\n\n // Forwarding rule for VPC private service connect\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"psc-endpoint\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"\",\n Target = producerServiceAttachment.Id,\n Network = consumerNet.Name,\n IpAddress = consumerAddress.Id,\n AllowPscGlobalAccess = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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// Consumer service endpoint\n\t\tconsumerNet, err := compute.NewNetwork(ctx, \"consumer_net\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"consumer-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconsumerSubnet, err := compute.NewSubnetwork(ctx, \"consumer_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"consumer-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: consumerNet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconsumerAddress, err := compute.NewAddress(ctx, \"consumer_address\", \u0026compute.AddressArgs{\n\t\t\tName: pulumi.String(\"website-ip-1\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSubnetwork: consumerSubnet.ID(),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Producer service attachment\n\t\tproducerNet, err := compute.NewNetwork(ctx, \"producer_net\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"producer-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpscProducerSubnet, err := compute.NewSubnetwork(ctx, \"psc_producer_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"producer-psc-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.1.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPurpose: pulumi.String(\"PRIVATE_SERVICE_CONNECT\"),\n\t\t\tNetwork: producerNet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerSubnet, err := compute.NewSubnetwork(ctx, \"producer_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"producer-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: producerNet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerServiceHealthCheck, err := compute.NewHealthCheck(ctx, \"producer_service_health_check\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"producer-service-health-check\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerServiceBackend, err := compute.NewRegionBackendService(ctx, \"producer_service_backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"producer-service-backend\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tHealthChecks: producerServiceHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerTargetService, err := compute.NewForwardingRule(ctx, \"producer_target_service\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"producer-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL\"),\n\t\t\tBackendService: producerServiceBackend.ID(),\n\t\t\tAllPorts: pulumi.Bool(true),\n\t\t\tNetwork: producerNet.Name,\n\t\t\tSubnetwork: producerSubnet.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerServiceAttachment, err := compute.NewServiceAttachment(ctx, \"producer_service_attachment\", \u0026compute.ServiceAttachmentArgs{\n\t\t\tName: pulumi.String(\"producer-service\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"A service attachment configured with Terraform\"),\n\t\t\tEnableProxyProtocol: pulumi.Bool(true),\n\t\t\tConnectionPreference: pulumi.String(\"ACCEPT_AUTOMATIC\"),\n\t\t\tNatSubnets: pulumi.StringArray{\n\t\t\t\tpscProducerSubnet.Name,\n\t\t\t},\n\t\t\tTargetService: producerTargetService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Forwarding rule for VPC private service connect\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"psc-endpoint\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"\"),\n\t\t\tTarget: producerServiceAttachment.ID(),\n\t\t\tNetwork: consumerNet.Name,\n\t\t\tIpAddress: consumerAddress.ID(),\n\t\t\tAllowPscGlobalAccess: pulumi.Bool(true),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.Address;\nimport com.pulumi.gcp.compute.AddressArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.compute.ServiceAttachment;\nimport com.pulumi.gcp.compute.ServiceAttachmentArgs;\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 // Consumer service endpoint\n var consumerNet = new Network(\"consumerNet\", NetworkArgs.builder() \n .name(\"consumer-net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var consumerSubnet = new Subnetwork(\"consumerSubnet\", SubnetworkArgs.builder() \n .name(\"consumer-net\")\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .network(consumerNet.id())\n .build());\n\n var consumerAddress = new Address(\"consumerAddress\", AddressArgs.builder() \n .name(\"website-ip-1\")\n .region(\"us-central1\")\n .subnetwork(consumerSubnet.id())\n .addressType(\"INTERNAL\")\n .build());\n\n // Producer service attachment\n var producerNet = new Network(\"producerNet\", NetworkArgs.builder() \n .name(\"producer-net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var pscProducerSubnet = new Subnetwork(\"pscProducerSubnet\", SubnetworkArgs.builder() \n .name(\"producer-psc-net\")\n .ipCidrRange(\"10.1.0.0/16\")\n .region(\"us-central1\")\n .purpose(\"PRIVATE_SERVICE_CONNECT\")\n .network(producerNet.id())\n .build());\n\n var producerSubnet = new Subnetwork(\"producerSubnet\", SubnetworkArgs.builder() \n .name(\"producer-net\")\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .network(producerNet.id())\n .build());\n\n var producerServiceHealthCheck = new HealthCheck(\"producerServiceHealthCheck\", HealthCheckArgs.builder() \n .name(\"producer-service-health-check\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n var producerServiceBackend = new RegionBackendService(\"producerServiceBackend\", RegionBackendServiceArgs.builder() \n .name(\"producer-service-backend\")\n .region(\"us-central1\")\n .healthChecks(producerServiceHealthCheck.id())\n .build());\n\n var producerTargetService = new ForwardingRule(\"producerTargetService\", ForwardingRuleArgs.builder() \n .name(\"producer-forwarding-rule\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"INTERNAL\")\n .backendService(producerServiceBackend.id())\n .allPorts(true)\n .network(producerNet.name())\n .subnetwork(producerSubnet.name())\n .build());\n\n var producerServiceAttachment = new ServiceAttachment(\"producerServiceAttachment\", ServiceAttachmentArgs.builder() \n .name(\"producer-service\")\n .region(\"us-central1\")\n .description(\"A service attachment configured with Terraform\")\n .enableProxyProtocol(true)\n .connectionPreference(\"ACCEPT_AUTOMATIC\")\n .natSubnets(pscProducerSubnet.name())\n .targetService(producerTargetService.id())\n .build());\n\n // Forwarding rule for VPC private service connect\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"psc-endpoint\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"\")\n .target(producerServiceAttachment.id())\n .network(consumerNet.name())\n .ipAddress(consumerAddress.id())\n .allowPscGlobalAccess(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Forwarding rule for VPC private service connect\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: psc-endpoint\n region: us-central1\n loadBalancingScheme:\n target: ${producerServiceAttachment.id}\n network: ${consumerNet.name}\n ipAddress: ${consumerAddress.id}\n allowPscGlobalAccess: true\n # Consumer service endpoint\n consumerNet:\n type: gcp:compute:Network\n name: consumer_net\n properties:\n name: consumer-net\n autoCreateSubnetworks: false\n consumerSubnet:\n type: gcp:compute:Subnetwork\n name: consumer_subnet\n properties:\n name: consumer-net\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n network: ${consumerNet.id}\n consumerAddress:\n type: gcp:compute:Address\n name: consumer_address\n properties:\n name: website-ip-1\n region: us-central1\n subnetwork: ${consumerSubnet.id}\n addressType: INTERNAL\n # Producer service attachment\n producerNet:\n type: gcp:compute:Network\n name: producer_net\n properties:\n name: producer-net\n autoCreateSubnetworks: false\n producerSubnet:\n type: gcp:compute:Subnetwork\n name: producer_subnet\n properties:\n name: producer-net\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n network: ${producerNet.id}\n pscProducerSubnet:\n type: gcp:compute:Subnetwork\n name: psc_producer_subnet\n properties:\n name: producer-psc-net\n ipCidrRange: 10.1.0.0/16\n region: us-central1\n purpose: PRIVATE_SERVICE_CONNECT\n network: ${producerNet.id}\n producerServiceAttachment:\n type: gcp:compute:ServiceAttachment\n name: producer_service_attachment\n properties:\n name: producer-service\n region: us-central1\n description: A service attachment configured with Terraform\n enableProxyProtocol: true\n connectionPreference: ACCEPT_AUTOMATIC\n natSubnets:\n - ${pscProducerSubnet.name}\n targetService: ${producerTargetService.id}\n producerTargetService:\n type: gcp:compute:ForwardingRule\n name: producer_target_service\n properties:\n name: producer-forwarding-rule\n region: us-central1\n loadBalancingScheme: INTERNAL\n backendService: ${producerServiceBackend.id}\n allPorts: true\n network: ${producerNet.name}\n subnetwork: ${producerSubnet.name}\n producerServiceBackend:\n type: gcp:compute:RegionBackendService\n name: producer_service_backend\n properties:\n name: producer-service-backend\n region: us-central1\n healthChecks: ${producerServiceHealthCheck.id}\n producerServiceHealthCheck:\n type: gcp:compute:HealthCheck\n name: producer_service_health_check\n properties:\n name: producer-service-health-check\n checkIntervalSec: 1\n timeoutSec: 1\n tcpHealthCheck:\n port: '80'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Vpc Psc No Automate Dns\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst consumerNet = new gcp.compute.Network(\"consumer_net\", {\n name: \"consumer-net\",\n autoCreateSubnetworks: false,\n});\nconst consumerSubnet = new gcp.compute.Subnetwork(\"consumer_subnet\", {\n name: \"consumer-net\",\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n network: consumerNet.id,\n});\nconst consumerAddress = new gcp.compute.Address(\"consumer_address\", {\n name: \"website-ip-1\",\n region: \"us-central1\",\n subnetwork: consumerSubnet.id,\n addressType: \"INTERNAL\",\n});\nconst producerNet = new gcp.compute.Network(\"producer_net\", {\n name: \"producer-net\",\n autoCreateSubnetworks: false,\n});\nconst pscProducerSubnet = new gcp.compute.Subnetwork(\"psc_producer_subnet\", {\n name: \"producer-psc-net\",\n ipCidrRange: \"10.1.0.0/16\",\n region: \"us-central1\",\n purpose: \"PRIVATE_SERVICE_CONNECT\",\n network: producerNet.id,\n});\nconst producerSubnet = new gcp.compute.Subnetwork(\"producer_subnet\", {\n name: \"producer-net\",\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n network: producerNet.id,\n});\nconst producerServiceHealthCheck = new gcp.compute.HealthCheck(\"producer_service_health_check\", {\n name: \"producer-service-health-check\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst producerServiceBackend = new gcp.compute.RegionBackendService(\"producer_service_backend\", {\n name: \"producer-service-backend\",\n region: \"us-central1\",\n healthChecks: producerServiceHealthCheck.id,\n});\nconst producerTargetService = new gcp.compute.ForwardingRule(\"producer_target_service\", {\n name: \"producer-forwarding-rule\",\n region: \"us-central1\",\n loadBalancingScheme: \"INTERNAL\",\n backendService: producerServiceBackend.id,\n allPorts: true,\n network: producerNet.name,\n subnetwork: producerSubnet.name,\n});\nconst producerServiceAttachment = new gcp.compute.ServiceAttachment(\"producer_service_attachment\", {\n name: \"producer-service\",\n region: \"us-central1\",\n description: \"A service attachment configured with Terraform\",\n enableProxyProtocol: true,\n connectionPreference: \"ACCEPT_AUTOMATIC\",\n natSubnets: [pscProducerSubnet.name],\n targetService: producerTargetService.id,\n});\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"psc-endpoint\",\n region: \"us-central1\",\n loadBalancingScheme: \"\",\n target: producerServiceAttachment.id,\n network: consumerNet.name,\n ipAddress: consumerAddress.id,\n allowPscGlobalAccess: true,\n noAutomateDnsZone: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nconsumer_net = gcp.compute.Network(\"consumer_net\",\n name=\"consumer-net\",\n auto_create_subnetworks=False)\nconsumer_subnet = gcp.compute.Subnetwork(\"consumer_subnet\",\n name=\"consumer-net\",\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\",\n network=consumer_net.id)\nconsumer_address = gcp.compute.Address(\"consumer_address\",\n name=\"website-ip-1\",\n region=\"us-central1\",\n subnetwork=consumer_subnet.id,\n address_type=\"INTERNAL\")\nproducer_net = gcp.compute.Network(\"producer_net\",\n name=\"producer-net\",\n auto_create_subnetworks=False)\npsc_producer_subnet = gcp.compute.Subnetwork(\"psc_producer_subnet\",\n name=\"producer-psc-net\",\n ip_cidr_range=\"10.1.0.0/16\",\n region=\"us-central1\",\n purpose=\"PRIVATE_SERVICE_CONNECT\",\n network=producer_net.id)\nproducer_subnet = gcp.compute.Subnetwork(\"producer_subnet\",\n name=\"producer-net\",\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\",\n network=producer_net.id)\nproducer_service_health_check = gcp.compute.HealthCheck(\"producer_service_health_check\",\n name=\"producer-service-health-check\",\n check_interval_sec=1,\n timeout_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\nproducer_service_backend = gcp.compute.RegionBackendService(\"producer_service_backend\",\n name=\"producer-service-backend\",\n region=\"us-central1\",\n health_checks=producer_service_health_check.id)\nproducer_target_service = gcp.compute.ForwardingRule(\"producer_target_service\",\n name=\"producer-forwarding-rule\",\n region=\"us-central1\",\n load_balancing_scheme=\"INTERNAL\",\n backend_service=producer_service_backend.id,\n all_ports=True,\n network=producer_net.name,\n subnetwork=producer_subnet.name)\nproducer_service_attachment = gcp.compute.ServiceAttachment(\"producer_service_attachment\",\n name=\"producer-service\",\n region=\"us-central1\",\n description=\"A service attachment configured with Terraform\",\n enable_proxy_protocol=True,\n connection_preference=\"ACCEPT_AUTOMATIC\",\n nat_subnets=[psc_producer_subnet.name],\n target_service=producer_target_service.id)\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"psc-endpoint\",\n region=\"us-central1\",\n load_balancing_scheme=\"\",\n target=producer_service_attachment.id,\n network=consumer_net.name,\n ip_address=consumer_address.id,\n allow_psc_global_access=True,\n no_automate_dns_zone=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var consumerNet = new Gcp.Compute.Network(\"consumer_net\", new()\n {\n Name = \"consumer-net\",\n AutoCreateSubnetworks = false,\n });\n\n var consumerSubnet = new Gcp.Compute.Subnetwork(\"consumer_subnet\", new()\n {\n Name = \"consumer-net\",\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n Network = consumerNet.Id,\n });\n\n var consumerAddress = new Gcp.Compute.Address(\"consumer_address\", new()\n {\n Name = \"website-ip-1\",\n Region = \"us-central1\",\n Subnetwork = consumerSubnet.Id,\n AddressType = \"INTERNAL\",\n });\n\n var producerNet = new Gcp.Compute.Network(\"producer_net\", new()\n {\n Name = \"producer-net\",\n AutoCreateSubnetworks = false,\n });\n\n var pscProducerSubnet = new Gcp.Compute.Subnetwork(\"psc_producer_subnet\", new()\n {\n Name = \"producer-psc-net\",\n IpCidrRange = \"10.1.0.0/16\",\n Region = \"us-central1\",\n Purpose = \"PRIVATE_SERVICE_CONNECT\",\n Network = producerNet.Id,\n });\n\n var producerSubnet = new Gcp.Compute.Subnetwork(\"producer_subnet\", new()\n {\n Name = \"producer-net\",\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n Network = producerNet.Id,\n });\n\n var producerServiceHealthCheck = new Gcp.Compute.HealthCheck(\"producer_service_health_check\", new()\n {\n Name = \"producer-service-health-check\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var producerServiceBackend = new Gcp.Compute.RegionBackendService(\"producer_service_backend\", new()\n {\n Name = \"producer-service-backend\",\n Region = \"us-central1\",\n HealthChecks = producerServiceHealthCheck.Id,\n });\n\n var producerTargetService = new Gcp.Compute.ForwardingRule(\"producer_target_service\", new()\n {\n Name = \"producer-forwarding-rule\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"INTERNAL\",\n BackendService = producerServiceBackend.Id,\n AllPorts = true,\n Network = producerNet.Name,\n Subnetwork = producerSubnet.Name,\n });\n\n var producerServiceAttachment = new Gcp.Compute.ServiceAttachment(\"producer_service_attachment\", new()\n {\n Name = \"producer-service\",\n Region = \"us-central1\",\n Description = \"A service attachment configured with Terraform\",\n EnableProxyProtocol = true,\n ConnectionPreference = \"ACCEPT_AUTOMATIC\",\n NatSubnets = new[]\n {\n pscProducerSubnet.Name,\n },\n TargetService = producerTargetService.Id,\n });\n\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"psc-endpoint\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"\",\n Target = producerServiceAttachment.Id,\n Network = consumerNet.Name,\n IpAddress = consumerAddress.Id,\n AllowPscGlobalAccess = true,\n NoAutomateDnsZone = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tconsumerNet, err := compute.NewNetwork(ctx, \"consumer_net\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"consumer-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconsumerSubnet, err := compute.NewSubnetwork(ctx, \"consumer_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"consumer-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: consumerNet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconsumerAddress, err := compute.NewAddress(ctx, \"consumer_address\", \u0026compute.AddressArgs{\n\t\t\tName: pulumi.String(\"website-ip-1\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSubnetwork: consumerSubnet.ID(),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerNet, err := compute.NewNetwork(ctx, \"producer_net\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"producer-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpscProducerSubnet, err := compute.NewSubnetwork(ctx, \"psc_producer_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"producer-psc-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.1.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPurpose: pulumi.String(\"PRIVATE_SERVICE_CONNECT\"),\n\t\t\tNetwork: producerNet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerSubnet, err := compute.NewSubnetwork(ctx, \"producer_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"producer-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: producerNet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerServiceHealthCheck, err := compute.NewHealthCheck(ctx, \"producer_service_health_check\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"producer-service-health-check\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerServiceBackend, err := compute.NewRegionBackendService(ctx, \"producer_service_backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"producer-service-backend\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tHealthChecks: producerServiceHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerTargetService, err := compute.NewForwardingRule(ctx, \"producer_target_service\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"producer-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL\"),\n\t\t\tBackendService: producerServiceBackend.ID(),\n\t\t\tAllPorts: pulumi.Bool(true),\n\t\t\tNetwork: producerNet.Name,\n\t\t\tSubnetwork: producerSubnet.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerServiceAttachment, err := compute.NewServiceAttachment(ctx, \"producer_service_attachment\", \u0026compute.ServiceAttachmentArgs{\n\t\t\tName: pulumi.String(\"producer-service\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"A service attachment configured with Terraform\"),\n\t\t\tEnableProxyProtocol: pulumi.Bool(true),\n\t\t\tConnectionPreference: pulumi.String(\"ACCEPT_AUTOMATIC\"),\n\t\t\tNatSubnets: pulumi.StringArray{\n\t\t\t\tpscProducerSubnet.Name,\n\t\t\t},\n\t\t\tTargetService: producerTargetService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"psc-endpoint\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"\"),\n\t\t\tTarget: producerServiceAttachment.ID(),\n\t\t\tNetwork: consumerNet.Name,\n\t\t\tIpAddress: consumerAddress.ID(),\n\t\t\tAllowPscGlobalAccess: pulumi.Bool(true),\n\t\t\tNoAutomateDnsZone: pulumi.Bool(true),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.Address;\nimport com.pulumi.gcp.compute.AddressArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.compute.ServiceAttachment;\nimport com.pulumi.gcp.compute.ServiceAttachmentArgs;\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 consumerNet = new Network(\"consumerNet\", NetworkArgs.builder() \n .name(\"consumer-net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var consumerSubnet = new Subnetwork(\"consumerSubnet\", SubnetworkArgs.builder() \n .name(\"consumer-net\")\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .network(consumerNet.id())\n .build());\n\n var consumerAddress = new Address(\"consumerAddress\", AddressArgs.builder() \n .name(\"website-ip-1\")\n .region(\"us-central1\")\n .subnetwork(consumerSubnet.id())\n .addressType(\"INTERNAL\")\n .build());\n\n var producerNet = new Network(\"producerNet\", NetworkArgs.builder() \n .name(\"producer-net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var pscProducerSubnet = new Subnetwork(\"pscProducerSubnet\", SubnetworkArgs.builder() \n .name(\"producer-psc-net\")\n .ipCidrRange(\"10.1.0.0/16\")\n .region(\"us-central1\")\n .purpose(\"PRIVATE_SERVICE_CONNECT\")\n .network(producerNet.id())\n .build());\n\n var producerSubnet = new Subnetwork(\"producerSubnet\", SubnetworkArgs.builder() \n .name(\"producer-net\")\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .network(producerNet.id())\n .build());\n\n var producerServiceHealthCheck = new HealthCheck(\"producerServiceHealthCheck\", HealthCheckArgs.builder() \n .name(\"producer-service-health-check\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n var producerServiceBackend = new RegionBackendService(\"producerServiceBackend\", RegionBackendServiceArgs.builder() \n .name(\"producer-service-backend\")\n .region(\"us-central1\")\n .healthChecks(producerServiceHealthCheck.id())\n .build());\n\n var producerTargetService = new ForwardingRule(\"producerTargetService\", ForwardingRuleArgs.builder() \n .name(\"producer-forwarding-rule\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"INTERNAL\")\n .backendService(producerServiceBackend.id())\n .allPorts(true)\n .network(producerNet.name())\n .subnetwork(producerSubnet.name())\n .build());\n\n var producerServiceAttachment = new ServiceAttachment(\"producerServiceAttachment\", ServiceAttachmentArgs.builder() \n .name(\"producer-service\")\n .region(\"us-central1\")\n .description(\"A service attachment configured with Terraform\")\n .enableProxyProtocol(true)\n .connectionPreference(\"ACCEPT_AUTOMATIC\")\n .natSubnets(pscProducerSubnet.name())\n .targetService(producerTargetService.id())\n .build());\n\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"psc-endpoint\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"\")\n .target(producerServiceAttachment.id())\n .network(consumerNet.name())\n .ipAddress(consumerAddress.id())\n .allowPscGlobalAccess(true)\n .noAutomateDnsZone(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: psc-endpoint\n region: us-central1\n loadBalancingScheme:\n target: ${producerServiceAttachment.id}\n network: ${consumerNet.name}\n ipAddress: ${consumerAddress.id}\n allowPscGlobalAccess: true\n noAutomateDnsZone: true\n consumerNet:\n type: gcp:compute:Network\n name: consumer_net\n properties:\n name: consumer-net\n autoCreateSubnetworks: false\n consumerSubnet:\n type: gcp:compute:Subnetwork\n name: consumer_subnet\n properties:\n name: consumer-net\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n network: ${consumerNet.id}\n consumerAddress:\n type: gcp:compute:Address\n name: consumer_address\n properties:\n name: website-ip-1\n region: us-central1\n subnetwork: ${consumerSubnet.id}\n addressType: INTERNAL\n producerNet:\n type: gcp:compute:Network\n name: producer_net\n properties:\n name: producer-net\n autoCreateSubnetworks: false\n producerSubnet:\n type: gcp:compute:Subnetwork\n name: producer_subnet\n properties:\n name: producer-net\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n network: ${producerNet.id}\n pscProducerSubnet:\n type: gcp:compute:Subnetwork\n name: psc_producer_subnet\n properties:\n name: producer-psc-net\n ipCidrRange: 10.1.0.0/16\n region: us-central1\n purpose: PRIVATE_SERVICE_CONNECT\n network: ${producerNet.id}\n producerServiceAttachment:\n type: gcp:compute:ServiceAttachment\n name: producer_service_attachment\n properties:\n name: producer-service\n region: us-central1\n description: A service attachment configured with Terraform\n enableProxyProtocol: true\n connectionPreference: ACCEPT_AUTOMATIC\n natSubnets:\n - ${pscProducerSubnet.name}\n targetService: ${producerTargetService.id}\n producerTargetService:\n type: gcp:compute:ForwardingRule\n name: producer_target_service\n properties:\n name: producer-forwarding-rule\n region: us-central1\n loadBalancingScheme: INTERNAL\n backendService: ${producerServiceBackend.id}\n allPorts: true\n network: ${producerNet.name}\n subnetwork: ${producerSubnet.name}\n producerServiceBackend:\n type: gcp:compute:RegionBackendService\n name: producer_service_backend\n properties:\n name: producer-service-backend\n region: us-central1\n healthChecks: ${producerServiceHealthCheck.id}\n producerServiceHealthCheck:\n type: gcp:compute:HealthCheck\n name: producer_service_health_check\n properties:\n name: producer-service-health-check\n checkIntervalSec: 1\n timeoutSec: 1\n tcpHealthCheck:\n port: '80'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Regional Steering\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basic = new gcp.compute.Address(\"basic\", {\n name: \"website-ip\",\n region: \"us-central1\",\n});\nconst external = new gcp.compute.RegionBackendService(\"external\", {\n name: \"service-backend\",\n region: \"us-central1\",\n loadBalancingScheme: \"EXTERNAL\",\n});\nconst steering = new gcp.compute.ForwardingRule(\"steering\", {\n name: \"steering-rule\",\n region: \"us-central1\",\n ipAddress: basic.selfLink,\n backendService: external.selfLink,\n loadBalancingScheme: \"EXTERNAL\",\n sourceIpRanges: [\n \"34.121.88.0/24\",\n \"35.187.239.137\",\n ],\n});\nconst externalForwardingRule = new gcp.compute.ForwardingRule(\"external\", {\n name: \"external-forwarding-rule\",\n region: \"us-central1\",\n ipAddress: basic.selfLink,\n backendService: external.selfLink,\n loadBalancingScheme: \"EXTERNAL\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic = gcp.compute.Address(\"basic\",\n name=\"website-ip\",\n region=\"us-central1\")\nexternal = gcp.compute.RegionBackendService(\"external\",\n name=\"service-backend\",\n region=\"us-central1\",\n load_balancing_scheme=\"EXTERNAL\")\nsteering = gcp.compute.ForwardingRule(\"steering\",\n name=\"steering-rule\",\n region=\"us-central1\",\n ip_address=basic.self_link,\n backend_service=external.self_link,\n load_balancing_scheme=\"EXTERNAL\",\n source_ip_ranges=[\n \"34.121.88.0/24\",\n \"35.187.239.137\",\n ])\nexternal_forwarding_rule = gcp.compute.ForwardingRule(\"external\",\n name=\"external-forwarding-rule\",\n region=\"us-central1\",\n ip_address=basic.self_link,\n backend_service=external.self_link,\n load_balancing_scheme=\"EXTERNAL\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basic = new Gcp.Compute.Address(\"basic\", new()\n {\n Name = \"website-ip\",\n Region = \"us-central1\",\n });\n\n var external = new Gcp.Compute.RegionBackendService(\"external\", new()\n {\n Name = \"service-backend\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"EXTERNAL\",\n });\n\n var steering = new Gcp.Compute.ForwardingRule(\"steering\", new()\n {\n Name = \"steering-rule\",\n Region = \"us-central1\",\n IpAddress = basic.SelfLink,\n BackendService = external.SelfLink,\n LoadBalancingScheme = \"EXTERNAL\",\n SourceIpRanges = new[]\n {\n \"34.121.88.0/24\",\n \"35.187.239.137\",\n },\n });\n\n var externalForwardingRule = new Gcp.Compute.ForwardingRule(\"external\", new()\n {\n Name = \"external-forwarding-rule\",\n Region = \"us-central1\",\n IpAddress = basic.SelfLink,\n BackendService = external.SelfLink,\n LoadBalancingScheme = \"EXTERNAL\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbasic, err := compute.NewAddress(ctx, \"basic\", \u0026compute.AddressArgs{\n\t\t\tName: pulumi.String(\"website-ip\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texternal, err := compute.NewRegionBackendService(ctx, \"external\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"service-backend\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewForwardingRule(ctx, \"steering\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"steering-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tIpAddress: basic.SelfLink,\n\t\t\tBackendService: external.SelfLink,\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tSourceIpRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"34.121.88.0/24\"),\n\t\t\t\tpulumi.String(\"35.187.239.137\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewForwardingRule(ctx, \"external\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"external-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tIpAddress: basic.SelfLink,\n\t\t\tBackendService: external.SelfLink,\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Address;\nimport com.pulumi.gcp.compute.AddressArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\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 basic = new Address(\"basic\", AddressArgs.builder() \n .name(\"website-ip\")\n .region(\"us-central1\")\n .build());\n\n var external = new RegionBackendService(\"external\", RegionBackendServiceArgs.builder() \n .name(\"service-backend\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"EXTERNAL\")\n .build());\n\n var steering = new ForwardingRule(\"steering\", ForwardingRuleArgs.builder() \n .name(\"steering-rule\")\n .region(\"us-central1\")\n .ipAddress(basic.selfLink())\n .backendService(external.selfLink())\n .loadBalancingScheme(\"EXTERNAL\")\n .sourceIpRanges( \n \"34.121.88.0/24\",\n \"35.187.239.137\")\n .build());\n\n var externalForwardingRule = new ForwardingRule(\"externalForwardingRule\", ForwardingRuleArgs.builder() \n .name(\"external-forwarding-rule\")\n .region(\"us-central1\")\n .ipAddress(basic.selfLink())\n .backendService(external.selfLink())\n .loadBalancingScheme(\"EXTERNAL\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n steering:\n type: gcp:compute:ForwardingRule\n properties:\n name: steering-rule\n region: us-central1\n ipAddress: ${basic.selfLink}\n backendService: ${external.selfLink}\n loadBalancingScheme: EXTERNAL\n sourceIpRanges:\n - 34.121.88.0/24\n - 35.187.239.137\n basic:\n type: gcp:compute:Address\n properties:\n name: website-ip\n region: us-central1\n external:\n type: gcp:compute:RegionBackendService\n properties:\n name: service-backend\n region: us-central1\n loadBalancingScheme: EXTERNAL\n externalForwardingRule:\n type: gcp:compute:ForwardingRule\n name: external\n properties:\n name: external-forwarding-rule\n region: us-central1\n ipAddress: ${basic.selfLink}\n backendService: ${external.selfLink}\n loadBalancingScheme: EXTERNAL\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Internallb Ipv6\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst hc = new gcp.compute.HealthCheck(\"hc\", {\n name: \"check-ilb-ipv6-backend\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst backend = new gcp.compute.RegionBackendService(\"backend\", {\n name: \"ilb-ipv6-backend\",\n region: \"us-central1\",\n healthChecks: hc.id,\n});\nconst defaultNetwork = new gcp.compute.Network(\"default\", {\n name: \"net-ipv6\",\n autoCreateSubnetworks: false,\n enableUlaInternalIpv6: true,\n});\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"subnet-internal-ipv6\",\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n stackType: \"IPV4_IPV6\",\n ipv6AccessType: \"INTERNAL\",\n network: defaultNetwork.id,\n});\n// Forwarding rule for Internal Load Balancing\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"ilb-ipv6-forwarding-rule\",\n region: \"us-central1\",\n loadBalancingScheme: \"INTERNAL\",\n backendService: backend.id,\n allPorts: true,\n network: defaultNetwork.name,\n subnetwork: defaultSubnetwork.name,\n ipVersion: \"IPV6\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhc = gcp.compute.HealthCheck(\"hc\",\n name=\"check-ilb-ipv6-backend\",\n check_interval_sec=1,\n timeout_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\nbackend = gcp.compute.RegionBackendService(\"backend\",\n name=\"ilb-ipv6-backend\",\n region=\"us-central1\",\n health_checks=hc.id)\ndefault_network = gcp.compute.Network(\"default\",\n name=\"net-ipv6\",\n auto_create_subnetworks=False,\n enable_ula_internal_ipv6=True)\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"subnet-internal-ipv6\",\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\",\n stack_type=\"IPV4_IPV6\",\n ipv6_access_type=\"INTERNAL\",\n network=default_network.id)\n# Forwarding rule for Internal Load Balancing\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"ilb-ipv6-forwarding-rule\",\n region=\"us-central1\",\n load_balancing_scheme=\"INTERNAL\",\n backend_service=backend.id,\n all_ports=True,\n network=default_network.name,\n subnetwork=default_subnetwork.name,\n ip_version=\"IPV6\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var hc = new Gcp.Compute.HealthCheck(\"hc\", new()\n {\n Name = \"check-ilb-ipv6-backend\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var backend = new Gcp.Compute.RegionBackendService(\"backend\", new()\n {\n Name = \"ilb-ipv6-backend\",\n Region = \"us-central1\",\n HealthChecks = hc.Id,\n });\n\n var defaultNetwork = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"net-ipv6\",\n AutoCreateSubnetworks = false,\n EnableUlaInternalIpv6 = true,\n });\n\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"subnet-internal-ipv6\",\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n StackType = \"IPV4_IPV6\",\n Ipv6AccessType = \"INTERNAL\",\n Network = defaultNetwork.Id,\n });\n\n // Forwarding rule for Internal Load Balancing\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"ilb-ipv6-forwarding-rule\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"INTERNAL\",\n BackendService = backend.Id,\n AllPorts = true,\n Network = defaultNetwork.Name,\n Subnetwork = defaultSubnetwork.Name,\n IpVersion = \"IPV6\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thc, err := compute.NewHealthCheck(ctx, \"hc\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"check-ilb-ipv6-backend\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbackend, err := compute.NewRegionBackendService(ctx, \"backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"ilb-ipv6-backend\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tHealthChecks: hc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"net-ipv6\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t\tEnableUlaInternalIpv6: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"subnet-internal-ipv6\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tStackType: pulumi.String(\"IPV4_IPV6\"),\n\t\t\tIpv6AccessType: pulumi.String(\"INTERNAL\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Forwarding rule for Internal Load Balancing\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"ilb-ipv6-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL\"),\n\t\t\tBackendService: backend.ID(),\n\t\t\tAllPorts: pulumi.Bool(true),\n\t\t\tNetwork: defaultNetwork.Name,\n\t\t\tSubnetwork: defaultSubnetwork.Name,\n\t\t\tIpVersion: pulumi.String(\"IPV6\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\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 hc = new HealthCheck(\"hc\", HealthCheckArgs.builder() \n .name(\"check-ilb-ipv6-backend\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n var backend = new RegionBackendService(\"backend\", RegionBackendServiceArgs.builder() \n .name(\"ilb-ipv6-backend\")\n .region(\"us-central1\")\n .healthChecks(hc.id())\n .build());\n\n var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder() \n .name(\"net-ipv6\")\n .autoCreateSubnetworks(false)\n .enableUlaInternalIpv6(true)\n .build());\n\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"subnet-internal-ipv6\")\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .stackType(\"IPV4_IPV6\")\n .ipv6AccessType(\"INTERNAL\")\n .network(defaultNetwork.id())\n .build());\n\n // Forwarding rule for Internal Load Balancing\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"ilb-ipv6-forwarding-rule\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"INTERNAL\")\n .backendService(backend.id())\n .allPorts(true)\n .network(defaultNetwork.name())\n .subnetwork(defaultSubnetwork.name())\n .ipVersion(\"IPV6\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Forwarding rule for Internal Load Balancing\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: ilb-ipv6-forwarding-rule\n region: us-central1\n loadBalancingScheme: INTERNAL\n backendService: ${backend.id}\n allPorts: true\n network: ${defaultNetwork.name}\n subnetwork: ${defaultSubnetwork.name}\n ipVersion: IPV6\n backend:\n type: gcp:compute:RegionBackendService\n properties:\n name: ilb-ipv6-backend\n region: us-central1\n healthChecks: ${hc.id}\n hc:\n type: gcp:compute:HealthCheck\n properties:\n name: check-ilb-ipv6-backend\n checkIntervalSec: 1\n timeoutSec: 1\n tcpHealthCheck:\n port: '80'\n defaultNetwork:\n type: gcp:compute:Network\n name: default\n properties:\n name: net-ipv6\n autoCreateSubnetworks: false\n enableUlaInternalIpv6: true\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: subnet-internal-ipv6\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n stackType: IPV4_IPV6\n ipv6AccessType: INTERNAL\n network: ${defaultNetwork.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nForwardingRule can be imported using any of these accepted formats:\n\n* `projects/{{project}}/regions/{{region}}/forwardingRules/{{name}}`\n\n* `{{project}}/{{region}}/{{name}}`\n\n* `{{region}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, ForwardingRule can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/forwardingRule:ForwardingRule default projects/{{project}}/regions/{{region}}/forwardingRules/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/forwardingRule:ForwardingRule default {{project}}/{{region}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/forwardingRule:ForwardingRule default {{region}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/forwardingRule:ForwardingRule default {{name}}\n```\n\n", + "description": "A ForwardingRule resource. A ForwardingRule resource specifies which pool\nof target virtual machines to forward a packet to if it matches the given\n[IPAddress, IPProtocol, portRange] tuple.\n\n\nTo get more information about ForwardingRule, see:\n\n* [API documentation](https://cloud.google.com/compute/docs/reference/v1/forwardingRules)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/compute/docs/load-balancing/network/forwarding-rules)\n\n## Example Usage\n\n### Internal Http Lb With Mig Backend\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\n// Internal HTTP load balancer with a managed instance group backend\n// VPC network\nconst ilbNetwork = new gcp.compute.Network(\"ilb_network\", {\n name: \"l7-ilb-network\",\n autoCreateSubnetworks: false,\n});\n// proxy-only subnet\nconst proxySubnet = new gcp.compute.Subnetwork(\"proxy_subnet\", {\n name: \"l7-ilb-proxy-subnet\",\n ipCidrRange: \"10.0.0.0/24\",\n region: \"europe-west1\",\n purpose: \"REGIONAL_MANAGED_PROXY\",\n role: \"ACTIVE\",\n network: ilbNetwork.id,\n});\n// backend subnet\nconst ilbSubnet = new gcp.compute.Subnetwork(\"ilb_subnet\", {\n name: \"l7-ilb-subnet\",\n ipCidrRange: \"10.0.1.0/24\",\n region: \"europe-west1\",\n network: ilbNetwork.id,\n});\n// health check\nconst defaultRegionHealthCheck = new gcp.compute.RegionHealthCheck(\"default\", {\n name: \"l7-ilb-hc\",\n region: \"europe-west1\",\n httpHealthCheck: {\n portSpecification: \"USE_SERVING_PORT\",\n },\n});\n// instance template\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n }],\n name: \"l7-ilb-mig-template\",\n machineType: \"e2-small\",\n tags: [\"http-server\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: NAME\nIP: IP\nMetadata: METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\n// MIG\nconst mig = new gcp.compute.RegionInstanceGroupManager(\"mig\", {\n name: \"l7-ilb-mig1\",\n region: \"europe-west1\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// backend service\nconst defaultRegionBackendService = new gcp.compute.RegionBackendService(\"default\", {\n name: \"l7-ilb-backend-subnet\",\n region: \"europe-west1\",\n protocol: \"HTTP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n timeoutSec: 10,\n healthChecks: defaultRegionHealthCheck.id,\n backends: [{\n group: mig.instanceGroup,\n balancingMode: \"UTILIZATION\",\n capacityScaler: 1,\n }],\n});\n// URL map\nconst defaultRegionUrlMap = new gcp.compute.RegionUrlMap(\"default\", {\n name: \"l7-ilb-regional-url-map\",\n region: \"europe-west1\",\n defaultService: defaultRegionBackendService.id,\n});\n// HTTP target proxy\nconst _default = new gcp.compute.RegionTargetHttpProxy(\"default\", {\n name: \"l7-ilb-target-http-proxy\",\n region: \"europe-west1\",\n urlMap: defaultRegionUrlMap.id,\n});\n// forwarding rule\nconst googleComputeForwardingRule = new gcp.compute.ForwardingRule(\"google_compute_forwarding_rule\", {\n name: \"l7-ilb-forwarding-rule\",\n region: \"europe-west1\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n portRange: \"80\",\n target: _default.id,\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n networkTier: \"PREMIUM\",\n});\n// allow all access from IAP and health check ranges\nconst fw_iap = new gcp.compute.Firewall(\"fw-iap\", {\n name: \"l7-ilb-fw-allow-iap-hc\",\n direction: \"INGRESS\",\n network: ilbNetwork.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n});\n// allow http from proxy subnet to backends\nconst fw_ilb_to_backends = new gcp.compute.Firewall(\"fw-ilb-to-backends\", {\n name: \"l7-ilb-fw-allow-ilb-to-backends\",\n direction: \"INGRESS\",\n network: ilbNetwork.id,\n sourceRanges: [\"10.0.0.0/24\"],\n targetTags: [\"http-server\"],\n allows: [{\n protocol: \"tcp\",\n ports: [\n \"80\",\n \"443\",\n \"8080\",\n ],\n }],\n});\n// test instance\nconst vm_test = new gcp.compute.Instance(\"vm-test\", {\n name: \"l7-ilb-test-vm\",\n zone: \"europe-west1-b\",\n machineType: \"e2-small\",\n networkInterfaces: [{\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n }],\n bootDisk: {\n initializeParams: {\n image: \"debian-cloud/debian-10\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\n# Internal HTTP load balancer with a managed instance group backend\n# VPC network\nilb_network = gcp.compute.Network(\"ilb_network\",\n name=\"l7-ilb-network\",\n auto_create_subnetworks=False)\n# proxy-only subnet\nproxy_subnet = gcp.compute.Subnetwork(\"proxy_subnet\",\n name=\"l7-ilb-proxy-subnet\",\n ip_cidr_range=\"10.0.0.0/24\",\n region=\"europe-west1\",\n purpose=\"REGIONAL_MANAGED_PROXY\",\n role=\"ACTIVE\",\n network=ilb_network.id)\n# backend subnet\nilb_subnet = gcp.compute.Subnetwork(\"ilb_subnet\",\n name=\"l7-ilb-subnet\",\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"europe-west1\",\n network=ilb_network.id)\n# health check\ndefault_region_health_check = gcp.compute.RegionHealthCheck(\"default\",\n name=\"l7-ilb-hc\",\n region=\"europe-west1\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port_specification=\"USE_SERVING_PORT\",\n ))\n# instance template\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=ilb_network.id,\n subnetwork=ilb_subnet.id,\n )],\n name=\"l7-ilb-mig-template\",\n machine_type=\"e2-small\",\n tags=[\"http-server\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\n# MIG\nmig = gcp.compute.RegionInstanceGroupManager(\"mig\",\n name=\"l7-ilb-mig1\",\n region=\"europe-west1\",\n versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# backend service\ndefault_region_backend_service = gcp.compute.RegionBackendService(\"default\",\n name=\"l7-ilb-backend-subnet\",\n region=\"europe-west1\",\n protocol=\"HTTP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n timeout_sec=10,\n health_checks=default_region_health_check.id,\n backends=[gcp.compute.RegionBackendServiceBackendArgs(\n group=mig.instance_group,\n balancing_mode=\"UTILIZATION\",\n capacity_scaler=1,\n )])\n# URL map\ndefault_region_url_map = gcp.compute.RegionUrlMap(\"default\",\n name=\"l7-ilb-regional-url-map\",\n region=\"europe-west1\",\n default_service=default_region_backend_service.id)\n# HTTP target proxy\ndefault = gcp.compute.RegionTargetHttpProxy(\"default\",\n name=\"l7-ilb-target-http-proxy\",\n region=\"europe-west1\",\n url_map=default_region_url_map.id)\n# forwarding rule\ngoogle_compute_forwarding_rule = gcp.compute.ForwardingRule(\"google_compute_forwarding_rule\",\n name=\"l7-ilb-forwarding-rule\",\n region=\"europe-west1\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n port_range=\"80\",\n target=default.id,\n network=ilb_network.id,\n subnetwork=ilb_subnet.id,\n network_tier=\"PREMIUM\")\n# allow all access from IAP and health check ranges\nfw_iap = gcp.compute.Firewall(\"fw-iap\",\n name=\"l7-ilb-fw-allow-iap-hc\",\n direction=\"INGRESS\",\n network=ilb_network.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )])\n# allow http from proxy subnet to backends\nfw_ilb_to_backends = gcp.compute.Firewall(\"fw-ilb-to-backends\",\n name=\"l7-ilb-fw-allow-ilb-to-backends\",\n direction=\"INGRESS\",\n network=ilb_network.id,\n source_ranges=[\"10.0.0.0/24\"],\n target_tags=[\"http-server\"],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\n \"80\",\n \"443\",\n \"8080\",\n ],\n )])\n# test instance\nvm_test = gcp.compute.Instance(\"vm-test\",\n name=\"l7-ilb-test-vm\",\n zone=\"europe-west1-b\",\n machine_type=\"e2-small\",\n network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(\n network=ilb_network.id,\n subnetwork=ilb_subnet.id,\n )],\n boot_disk=gcp.compute.InstanceBootDiskArgs(\n initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(\n image=\"debian-cloud/debian-10\",\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Internal HTTP load balancer with a managed instance group backend\n // VPC network\n var ilbNetwork = new Gcp.Compute.Network(\"ilb_network\", new()\n {\n Name = \"l7-ilb-network\",\n AutoCreateSubnetworks = false,\n });\n\n // proxy-only subnet\n var proxySubnet = new Gcp.Compute.Subnetwork(\"proxy_subnet\", new()\n {\n Name = \"l7-ilb-proxy-subnet\",\n IpCidrRange = \"10.0.0.0/24\",\n Region = \"europe-west1\",\n Purpose = \"REGIONAL_MANAGED_PROXY\",\n Role = \"ACTIVE\",\n Network = ilbNetwork.Id,\n });\n\n // backend subnet\n var ilbSubnet = new Gcp.Compute.Subnetwork(\"ilb_subnet\", new()\n {\n Name = \"l7-ilb-subnet\",\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"europe-west1\",\n Network = ilbNetwork.Id,\n });\n\n // health check\n var defaultRegionHealthCheck = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Name = \"l7-ilb-hc\",\n Region = \"europe-west1\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n PortSpecification = \"USE_SERVING_PORT\",\n },\n });\n\n // instance template\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n },\n },\n Name = \"l7-ilb-mig-template\",\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"http-server\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n // MIG\n var mig = new Gcp.Compute.RegionInstanceGroupManager(\"mig\", new()\n {\n Name = \"l7-ilb-mig1\",\n Region = \"europe-west1\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // backend service\n var defaultRegionBackendService = new Gcp.Compute.RegionBackendService(\"default\", new()\n {\n Name = \"l7-ilb-backend-subnet\",\n Region = \"europe-west1\",\n Protocol = \"HTTP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n TimeoutSec = 10,\n HealthChecks = defaultRegionHealthCheck.Id,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.RegionBackendServiceBackendArgs\n {\n Group = mig.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n CapacityScaler = 1,\n },\n },\n });\n\n // URL map\n var defaultRegionUrlMap = new Gcp.Compute.RegionUrlMap(\"default\", new()\n {\n Name = \"l7-ilb-regional-url-map\",\n Region = \"europe-west1\",\n DefaultService = defaultRegionBackendService.Id,\n });\n\n // HTTP target proxy\n var @default = new Gcp.Compute.RegionTargetHttpProxy(\"default\", new()\n {\n Name = \"l7-ilb-target-http-proxy\",\n Region = \"europe-west1\",\n UrlMap = defaultRegionUrlMap.Id,\n });\n\n // forwarding rule\n var googleComputeForwardingRule = new Gcp.Compute.ForwardingRule(\"google_compute_forwarding_rule\", new()\n {\n Name = \"l7-ilb-forwarding-rule\",\n Region = \"europe-west1\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n PortRange = \"80\",\n Target = @default.Id,\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n NetworkTier = \"PREMIUM\",\n });\n\n // allow all access from IAP and health check ranges\n var fw_iap = new Gcp.Compute.Firewall(\"fw-iap\", new()\n {\n Name = \"l7-ilb-fw-allow-iap-hc\",\n Direction = \"INGRESS\",\n Network = ilbNetwork.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n });\n\n // allow http from proxy subnet to backends\n var fw_ilb_to_backends = new Gcp.Compute.Firewall(\"fw-ilb-to-backends\", new()\n {\n Name = \"l7-ilb-fw-allow-ilb-to-backends\",\n Direction = \"INGRESS\",\n Network = ilbNetwork.Id,\n SourceRanges = new[]\n {\n \"10.0.0.0/24\",\n },\n TargetTags = new[]\n {\n \"http-server\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"80\",\n \"443\",\n \"8080\",\n },\n },\n },\n });\n\n // test instance\n var vm_test = new Gcp.Compute.Instance(\"vm-test\", new()\n {\n Name = \"l7-ilb-test-vm\",\n Zone = \"europe-west1-b\",\n MachineType = \"e2-small\",\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs\n {\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n },\n },\n BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs\n {\n InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs\n {\n Image = \"debian-cloud/debian-10\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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// Internal HTTP load balancer with a managed instance group backend\n\t\t// VPC network\n\t\tilbNetwork, err := compute.NewNetwork(ctx, \"ilb_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// proxy-only subnet\n\t\t_, err = compute.NewSubnetwork(ctx, \"proxy_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-proxy-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/24\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tPurpose: pulumi.String(\"REGIONAL_MANAGED_PROXY\"),\n\t\t\tRole: pulumi.String(\"ACTIVE\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend subnet\n\t\tilbSubnet, err := compute.NewSubnetwork(ctx, \"ilb_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// health check\n\t\tdefaultRegionHealthCheck, err := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-hc\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPortSpecification: pulumi.String(\"USE_SERVING_PORT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"l7-ilb-mig-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// MIG\n\t\tmig, err := compute.NewRegionInstanceGroupManager(ctx, \"mig\", \u0026compute.RegionInstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-mig1\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tVersions: compute.RegionInstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend service\n\t\tdefaultRegionBackendService, err := compute.NewRegionBackendService(ctx, \"default\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-backend-subnet\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultRegionHealthCheck.ID(),\n\t\t\tBackends: compute.RegionBackendServiceBackendArray{\n\t\t\t\t\u0026compute.RegionBackendServiceBackendArgs{\n\t\t\t\t\tGroup: mig.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// URL map\n\t\tdefaultRegionUrlMap, err := compute.NewRegionUrlMap(ctx, \"default\", \u0026compute.RegionUrlMapArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-regional-url-map\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tDefaultService: defaultRegionBackendService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// HTTP target proxy\n\t\t_, err = compute.NewRegionTargetHttpProxy(ctx, \"default\", \u0026compute.RegionTargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-target-http-proxy\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tUrlMap: defaultRegionUrlMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// forwarding rule\n\t\t_, err = compute.NewForwardingRule(ctx, \"google_compute_forwarding_rule\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tTarget: _default.ID(),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t\tNetworkTier: pulumi.String(\"PREMIUM\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow all access from IAP and health check ranges\n\t\t_, err = compute.NewFirewall(ctx, \"fw-iap\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-fw-allow-iap-hc\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t\tpulumi.String(\"35.235.240.0/20\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow http from proxy subnet to backends\n\t\t_, err = compute.NewFirewall(ctx, \"fw-ilb-to-backends\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-fw-allow-ilb-to-backends\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/24\"),\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"80\"),\n\t\t\t\t\t\tpulumi.String(\"443\"),\n\t\t\t\t\t\tpulumi.String(\"8080\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// test instance\n\t\t_, err = compute.NewInstance(ctx, \"vm-test\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-test-vm\"),\n\t\t\tZone: pulumi.String(\"europe-west1-b\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tNetworkInterfaces: compute.InstanceNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBootDisk: \u0026compute.InstanceBootDiskArgs{\n\t\t\t\tInitializeParams: \u0026compute.InstanceBootDiskInitializeParamsArgs{\n\t\t\t\t\tImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManager;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.RegionBackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxy;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\nimport com.pulumi.gcp.compute.Instance;\nimport com.pulumi.gcp.compute.InstanceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;\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 // Internal HTTP load balancer with a managed instance group backend\n // VPC network\n var ilbNetwork = new Network(\"ilbNetwork\", NetworkArgs.builder() \n .name(\"l7-ilb-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n // proxy-only subnet\n var proxySubnet = new Subnetwork(\"proxySubnet\", SubnetworkArgs.builder() \n .name(\"l7-ilb-proxy-subnet\")\n .ipCidrRange(\"10.0.0.0/24\")\n .region(\"europe-west1\")\n .purpose(\"REGIONAL_MANAGED_PROXY\")\n .role(\"ACTIVE\")\n .network(ilbNetwork.id())\n .build());\n\n // backend subnet\n var ilbSubnet = new Subnetwork(\"ilbSubnet\", SubnetworkArgs.builder() \n .name(\"l7-ilb-subnet\")\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"europe-west1\")\n .network(ilbNetwork.id())\n .build());\n\n // health check\n var defaultRegionHealthCheck = new RegionHealthCheck(\"defaultRegionHealthCheck\", RegionHealthCheckArgs.builder() \n .name(\"l7-ilb-hc\")\n .region(\"europe-west1\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .portSpecification(\"USE_SERVING_PORT\")\n .build())\n .build());\n\n // instance template\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .build())\n .name(\"l7-ilb-mig-template\")\n .machineType(\"e2-small\")\n .tags(\"http-server\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n // MIG\n var mig = new RegionInstanceGroupManager(\"mig\", RegionInstanceGroupManagerArgs.builder() \n .name(\"l7-ilb-mig1\")\n .region(\"europe-west1\")\n .versions(RegionInstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // backend service\n var defaultRegionBackendService = new RegionBackendService(\"defaultRegionBackendService\", RegionBackendServiceArgs.builder() \n .name(\"l7-ilb-backend-subnet\")\n .region(\"europe-west1\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(defaultRegionHealthCheck.id())\n .backends(RegionBackendServiceBackendArgs.builder()\n .group(mig.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .capacityScaler(1)\n .build())\n .build());\n\n // URL map\n var defaultRegionUrlMap = new RegionUrlMap(\"defaultRegionUrlMap\", RegionUrlMapArgs.builder() \n .name(\"l7-ilb-regional-url-map\")\n .region(\"europe-west1\")\n .defaultService(defaultRegionBackendService.id())\n .build());\n\n // HTTP target proxy\n var default_ = new RegionTargetHttpProxy(\"default\", RegionTargetHttpProxyArgs.builder() \n .name(\"l7-ilb-target-http-proxy\")\n .region(\"europe-west1\")\n .urlMap(defaultRegionUrlMap.id())\n .build());\n\n // forwarding rule\n var googleComputeForwardingRule = new ForwardingRule(\"googleComputeForwardingRule\", ForwardingRuleArgs.builder() \n .name(\"l7-ilb-forwarding-rule\")\n .region(\"europe-west1\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .portRange(\"80\")\n .target(default_.id())\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .networkTier(\"PREMIUM\")\n .build());\n\n // allow all access from IAP and health check ranges\n var fw_iap = new Firewall(\"fw-iap\", FirewallArgs.builder() \n .name(\"l7-ilb-fw-allow-iap-hc\")\n .direction(\"INGRESS\")\n .network(ilbNetwork.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .build());\n\n // allow http from proxy subnet to backends\n var fw_ilb_to_backends = new Firewall(\"fw-ilb-to-backends\", FirewallArgs.builder() \n .name(\"l7-ilb-fw-allow-ilb-to-backends\")\n .direction(\"INGRESS\")\n .network(ilbNetwork.id())\n .sourceRanges(\"10.0.0.0/24\")\n .targetTags(\"http-server\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports( \n \"80\",\n \"443\",\n \"8080\")\n .build())\n .build());\n\n // test instance\n var vm_test = new Instance(\"vm-test\", InstanceArgs.builder() \n .name(\"l7-ilb-test-vm\")\n .zone(\"europe-west1-b\")\n .machineType(\"e2-small\")\n .networkInterfaces(InstanceNetworkInterfaceArgs.builder()\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .build())\n .bootDisk(InstanceBootDiskArgs.builder()\n .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()\n .image(\"debian-cloud/debian-10\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Internal HTTP load balancer with a managed instance group backend\n\n # VPC network\n ilbNetwork:\n type: gcp:compute:Network\n name: ilb_network\n properties:\n name: l7-ilb-network\n autoCreateSubnetworks: false\n # proxy-only subnet\n proxySubnet:\n type: gcp:compute:Subnetwork\n name: proxy_subnet\n properties:\n name: l7-ilb-proxy-subnet\n ipCidrRange: 10.0.0.0/24\n region: europe-west1\n purpose: REGIONAL_MANAGED_PROXY\n role: ACTIVE\n network: ${ilbNetwork.id}\n # backend subnet\n ilbSubnet:\n type: gcp:compute:Subnetwork\n name: ilb_subnet\n properties:\n name: l7-ilb-subnet\n ipCidrRange: 10.0.1.0/24\n region: europe-west1\n network: ${ilbNetwork.id}\n # forwarding rule\n googleComputeForwardingRule:\n type: gcp:compute:ForwardingRule\n name: google_compute_forwarding_rule\n properties:\n name: l7-ilb-forwarding-rule\n region: europe-west1\n ipProtocol: TCP\n loadBalancingScheme: INTERNAL_MANAGED\n portRange: '80'\n target: ${default.id}\n network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n networkTier: PREMIUM\n # HTTP target proxy\n default:\n type: gcp:compute:RegionTargetHttpProxy\n properties:\n name: l7-ilb-target-http-proxy\n region: europe-west1\n urlMap: ${defaultRegionUrlMap.id}\n # URL map\n defaultRegionUrlMap:\n type: gcp:compute:RegionUrlMap\n name: default\n properties:\n name: l7-ilb-regional-url-map\n region: europe-west1\n defaultService: ${defaultRegionBackendService.id}\n # backend service\n defaultRegionBackendService:\n type: gcp:compute:RegionBackendService\n name: default\n properties:\n name: l7-ilb-backend-subnet\n region: europe-west1\n protocol: HTTP\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks: ${defaultRegionHealthCheck.id}\n backends:\n - group: ${mig.instanceGroup}\n balancingMode: UTILIZATION\n capacityScaler: 1\n # instance template\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n name: l7-ilb-mig-template\n machineType: e2-small\n tags:\n - http-server\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n # health check\n defaultRegionHealthCheck:\n type: gcp:compute:RegionHealthCheck\n name: default\n properties:\n name: l7-ilb-hc\n region: europe-west1\n httpHealthCheck:\n portSpecification: USE_SERVING_PORT\n # MIG\n mig:\n type: gcp:compute:RegionInstanceGroupManager\n properties:\n name: l7-ilb-mig1\n region: europe-west1\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\n # allow all access from IAP and health check ranges\n fw-iap:\n type: gcp:compute:Firewall\n properties:\n name: l7-ilb-fw-allow-iap-hc\n direction: INGRESS\n network: ${ilbNetwork.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n - 35.235.240.0/20\n allows:\n - protocol: tcp\n # allow http from proxy subnet to backends\n fw-ilb-to-backends:\n type: gcp:compute:Firewall\n properties:\n name: l7-ilb-fw-allow-ilb-to-backends\n direction: INGRESS\n network: ${ilbNetwork.id}\n sourceRanges:\n - 10.0.0.0/24\n targetTags:\n - http-server\n allows:\n - protocol: tcp\n ports:\n - '80'\n - '443'\n - '8080'\n # test instance\n vm-test:\n type: gcp:compute:Instance\n properties:\n name: l7-ilb-test-vm\n zone: europe-west1-b\n machineType: e2-small\n networkInterfaces:\n - network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n bootDisk:\n initializeParams:\n image: debian-cloud/debian-10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Internal Tcp Udp Lb With Mig Backend\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\n// Internal TCP/UDP load balancer with a managed instance group backend\n// VPC\nconst ilbNetwork = new gcp.compute.Network(\"ilb_network\", {\n name: \"l4-ilb-network\",\n autoCreateSubnetworks: false,\n});\n// backed subnet\nconst ilbSubnet = new gcp.compute.Subnetwork(\"ilb_subnet\", {\n name: \"l4-ilb-subnet\",\n ipCidrRange: \"10.0.1.0/24\",\n region: \"europe-west1\",\n network: ilbNetwork.id,\n});\n// health check\nconst defaultRegionHealthCheck = new gcp.compute.RegionHealthCheck(\"default\", {\n name: \"l4-ilb-hc\",\n region: \"europe-west1\",\n httpHealthCheck: {\n port: 80,\n },\n});\n// instance template\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n }],\n name: \"l4-ilb-mig-template\",\n machineType: \"e2-small\",\n tags: [\n \"allow-ssh\",\n \"allow-health-check\",\n ],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: NAME\nIP: IP\nMetadata: METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\n// MIG\nconst mig = new gcp.compute.RegionInstanceGroupManager(\"mig\", {\n name: \"l4-ilb-mig1\",\n region: \"europe-west1\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// backend service\nconst _default = new gcp.compute.RegionBackendService(\"default\", {\n name: \"l4-ilb-backend-subnet\",\n region: \"europe-west1\",\n protocol: \"TCP\",\n loadBalancingScheme: \"INTERNAL\",\n healthChecks: defaultRegionHealthCheck.id,\n backends: [{\n group: mig.instanceGroup,\n balancingMode: \"CONNECTION\",\n }],\n});\n// forwarding rule\nconst googleComputeForwardingRule = new gcp.compute.ForwardingRule(\"google_compute_forwarding_rule\", {\n name: \"l4-ilb-forwarding-rule\",\n backendService: _default.id,\n region: \"europe-west1\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"INTERNAL\",\n allPorts: true,\n allowGlobalAccess: true,\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n});\n// allow all access from health check ranges\nconst fwHc = new gcp.compute.Firewall(\"fw_hc\", {\n name: \"l4-ilb-fw-allow-hc\",\n direction: \"INGRESS\",\n network: ilbNetwork.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n targetTags: [\"allow-health-check\"],\n});\n// allow communication within the subnet \nconst fwIlbToBackends = new gcp.compute.Firewall(\"fw_ilb_to_backends\", {\n name: \"l4-ilb-fw-allow-ilb-to-backends\",\n direction: \"INGRESS\",\n network: ilbNetwork.id,\n sourceRanges: [\"10.0.1.0/24\"],\n allows: [\n {\n protocol: \"tcp\",\n },\n {\n protocol: \"udp\",\n },\n {\n protocol: \"icmp\",\n },\n ],\n});\n// allow SSH\nconst fwIlbSsh = new gcp.compute.Firewall(\"fw_ilb_ssh\", {\n name: \"l4-ilb-fw-ssh\",\n direction: \"INGRESS\",\n network: ilbNetwork.id,\n allows: [{\n protocol: \"tcp\",\n ports: [\"22\"],\n }],\n targetTags: [\"allow-ssh\"],\n sourceRanges: [\"0.0.0.0/0\"],\n});\n// test instance\nconst vmTest = new gcp.compute.Instance(\"vm_test\", {\n name: \"l4-ilb-test-vm\",\n zone: \"europe-west1-b\",\n machineType: \"e2-small\",\n networkInterfaces: [{\n network: ilbNetwork.id,\n subnetwork: ilbSubnet.id,\n }],\n bootDisk: {\n initializeParams: {\n image: \"debian-cloud/debian-10\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\n# Internal TCP/UDP load balancer with a managed instance group backend\n# VPC\nilb_network = gcp.compute.Network(\"ilb_network\",\n name=\"l4-ilb-network\",\n auto_create_subnetworks=False)\n# backed subnet\nilb_subnet = gcp.compute.Subnetwork(\"ilb_subnet\",\n name=\"l4-ilb-subnet\",\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"europe-west1\",\n network=ilb_network.id)\n# health check\ndefault_region_health_check = gcp.compute.RegionHealthCheck(\"default\",\n name=\"l4-ilb-hc\",\n region=\"europe-west1\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n ))\n# instance template\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=ilb_network.id,\n subnetwork=ilb_subnet.id,\n )],\n name=\"l4-ilb-mig-template\",\n machine_type=\"e2-small\",\n tags=[\n \"allow-ssh\",\n \"allow-health-check\",\n ],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\n# MIG\nmig = gcp.compute.RegionInstanceGroupManager(\"mig\",\n name=\"l4-ilb-mig1\",\n region=\"europe-west1\",\n versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# backend service\ndefault = gcp.compute.RegionBackendService(\"default\",\n name=\"l4-ilb-backend-subnet\",\n region=\"europe-west1\",\n protocol=\"TCP\",\n load_balancing_scheme=\"INTERNAL\",\n health_checks=default_region_health_check.id,\n backends=[gcp.compute.RegionBackendServiceBackendArgs(\n group=mig.instance_group,\n balancing_mode=\"CONNECTION\",\n )])\n# forwarding rule\ngoogle_compute_forwarding_rule = gcp.compute.ForwardingRule(\"google_compute_forwarding_rule\",\n name=\"l4-ilb-forwarding-rule\",\n backend_service=default.id,\n region=\"europe-west1\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"INTERNAL\",\n all_ports=True,\n allow_global_access=True,\n network=ilb_network.id,\n subnetwork=ilb_subnet.id)\n# allow all access from health check ranges\nfw_hc = gcp.compute.Firewall(\"fw_hc\",\n name=\"l4-ilb-fw-allow-hc\",\n direction=\"INGRESS\",\n network=ilb_network.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )],\n target_tags=[\"allow-health-check\"])\n# allow communication within the subnet \nfw_ilb_to_backends = gcp.compute.Firewall(\"fw_ilb_to_backends\",\n name=\"l4-ilb-fw-allow-ilb-to-backends\",\n direction=\"INGRESS\",\n network=ilb_network.id,\n source_ranges=[\"10.0.1.0/24\"],\n allows=[\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"udp\",\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"icmp\",\n ),\n ])\n# allow SSH\nfw_ilb_ssh = gcp.compute.Firewall(\"fw_ilb_ssh\",\n name=\"l4-ilb-fw-ssh\",\n direction=\"INGRESS\",\n network=ilb_network.id,\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"22\"],\n )],\n target_tags=[\"allow-ssh\"],\n source_ranges=[\"0.0.0.0/0\"])\n# test instance\nvm_test = gcp.compute.Instance(\"vm_test\",\n name=\"l4-ilb-test-vm\",\n zone=\"europe-west1-b\",\n machine_type=\"e2-small\",\n network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(\n network=ilb_network.id,\n subnetwork=ilb_subnet.id,\n )],\n boot_disk=gcp.compute.InstanceBootDiskArgs(\n initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(\n image=\"debian-cloud/debian-10\",\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Internal TCP/UDP load balancer with a managed instance group backend\n // VPC\n var ilbNetwork = new Gcp.Compute.Network(\"ilb_network\", new()\n {\n Name = \"l4-ilb-network\",\n AutoCreateSubnetworks = false,\n });\n\n // backed subnet\n var ilbSubnet = new Gcp.Compute.Subnetwork(\"ilb_subnet\", new()\n {\n Name = \"l4-ilb-subnet\",\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"europe-west1\",\n Network = ilbNetwork.Id,\n });\n\n // health check\n var defaultRegionHealthCheck = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Name = \"l4-ilb-hc\",\n Region = \"europe-west1\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n // instance template\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n },\n },\n Name = \"l4-ilb-mig-template\",\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"allow-ssh\",\n \"allow-health-check\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n // MIG\n var mig = new Gcp.Compute.RegionInstanceGroupManager(\"mig\", new()\n {\n Name = \"l4-ilb-mig1\",\n Region = \"europe-west1\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // backend service\n var @default = new Gcp.Compute.RegionBackendService(\"default\", new()\n {\n Name = \"l4-ilb-backend-subnet\",\n Region = \"europe-west1\",\n Protocol = \"TCP\",\n LoadBalancingScheme = \"INTERNAL\",\n HealthChecks = defaultRegionHealthCheck.Id,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.RegionBackendServiceBackendArgs\n {\n Group = mig.InstanceGroup,\n BalancingMode = \"CONNECTION\",\n },\n },\n });\n\n // forwarding rule\n var googleComputeForwardingRule = new Gcp.Compute.ForwardingRule(\"google_compute_forwarding_rule\", new()\n {\n Name = \"l4-ilb-forwarding-rule\",\n BackendService = @default.Id,\n Region = \"europe-west1\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"INTERNAL\",\n AllPorts = true,\n AllowGlobalAccess = true,\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n });\n\n // allow all access from health check ranges\n var fwHc = new Gcp.Compute.Firewall(\"fw_hc\", new()\n {\n Name = \"l4-ilb-fw-allow-hc\",\n Direction = \"INGRESS\",\n Network = ilbNetwork.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n TargetTags = new[]\n {\n \"allow-health-check\",\n },\n });\n\n // allow communication within the subnet \n var fwIlbToBackends = new Gcp.Compute.Firewall(\"fw_ilb_to_backends\", new()\n {\n Name = \"l4-ilb-fw-allow-ilb-to-backends\",\n Direction = \"INGRESS\",\n Network = ilbNetwork.Id,\n SourceRanges = new[]\n {\n \"10.0.1.0/24\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"udp\",\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"icmp\",\n },\n },\n });\n\n // allow SSH\n var fwIlbSsh = new Gcp.Compute.Firewall(\"fw_ilb_ssh\", new()\n {\n Name = \"l4-ilb-fw-ssh\",\n Direction = \"INGRESS\",\n Network = ilbNetwork.Id,\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"22\",\n },\n },\n },\n TargetTags = new[]\n {\n \"allow-ssh\",\n },\n SourceRanges = new[]\n {\n \"0.0.0.0/0\",\n },\n });\n\n // test instance\n var vmTest = new Gcp.Compute.Instance(\"vm_test\", new()\n {\n Name = \"l4-ilb-test-vm\",\n Zone = \"europe-west1-b\",\n MachineType = \"e2-small\",\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs\n {\n Network = ilbNetwork.Id,\n Subnetwork = ilbSubnet.Id,\n },\n },\n BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs\n {\n InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs\n {\n Image = \"debian-cloud/debian-10\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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// Internal TCP/UDP load balancer with a managed instance group backend\n\t\t// VPC\n\t\tilbNetwork, err := compute.NewNetwork(ctx, \"ilb_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backed subnet\n\t\tilbSubnet, err := compute.NewSubnetwork(ctx, \"ilb_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// health check\n\t\tdefaultRegionHealthCheck, err := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-hc\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"l4-ilb-mig-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-ssh\"),\n\t\t\t\tpulumi.String(\"allow-health-check\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// MIG\n\t\tmig, err := compute.NewRegionInstanceGroupManager(ctx, \"mig\", \u0026compute.RegionInstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-mig1\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tVersions: compute.RegionInstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend service\n\t\t_, err = compute.NewRegionBackendService(ctx, \"default\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-backend-subnet\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL\"),\n\t\t\tHealthChecks: defaultRegionHealthCheck.ID(),\n\t\t\tBackends: compute.RegionBackendServiceBackendArray{\n\t\t\t\t\u0026compute.RegionBackendServiceBackendArgs{\n\t\t\t\t\tGroup: mig.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"CONNECTION\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// forwarding rule\n\t\t_, err = compute.NewForwardingRule(ctx, \"google_compute_forwarding_rule\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-forwarding-rule\"),\n\t\t\tBackendService: _default.ID(),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL\"),\n\t\t\tAllPorts: pulumi.Bool(true),\n\t\t\tAllowGlobalAccess: pulumi.Bool(true),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow all access from health check ranges\n\t\t_, err = compute.NewFirewall(ctx, \"fw_hc\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-fw-allow-hc\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t\tpulumi.String(\"35.235.240.0/20\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-health-check\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow communication within the subnet\n\t\t_, err = compute.NewFirewall(ctx, \"fw_ilb_to_backends\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-fw-allow-ilb-to-backends\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"udp\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"icmp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow SSH\n\t\t_, err = compute.NewFirewall(ctx, \"fw_ilb_ssh\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-fw-ssh\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"22\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-ssh\"),\n\t\t\t},\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// test instance\n\t\t_, err = compute.NewInstance(ctx, \"vm_test\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"l4-ilb-test-vm\"),\n\t\t\tZone: pulumi.String(\"europe-west1-b\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tNetworkInterfaces: compute.InstanceNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: ilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: ilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBootDisk: \u0026compute.InstanceBootDiskArgs{\n\t\t\t\tInitializeParams: \u0026compute.InstanceBootDiskInitializeParamsArgs{\n\t\t\t\t\tImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManager;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.RegionBackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\nimport com.pulumi.gcp.compute.Instance;\nimport com.pulumi.gcp.compute.InstanceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;\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 // Internal TCP/UDP load balancer with a managed instance group backend\n // VPC\n var ilbNetwork = new Network(\"ilbNetwork\", NetworkArgs.builder() \n .name(\"l4-ilb-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n // backed subnet\n var ilbSubnet = new Subnetwork(\"ilbSubnet\", SubnetworkArgs.builder() \n .name(\"l4-ilb-subnet\")\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"europe-west1\")\n .network(ilbNetwork.id())\n .build());\n\n // health check\n var defaultRegionHealthCheck = new RegionHealthCheck(\"defaultRegionHealthCheck\", RegionHealthCheckArgs.builder() \n .name(\"l4-ilb-hc\")\n .region(\"europe-west1\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n // instance template\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .build())\n .name(\"l4-ilb-mig-template\")\n .machineType(\"e2-small\")\n .tags( \n \"allow-ssh\",\n \"allow-health-check\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n // MIG\n var mig = new RegionInstanceGroupManager(\"mig\", RegionInstanceGroupManagerArgs.builder() \n .name(\"l4-ilb-mig1\")\n .region(\"europe-west1\")\n .versions(RegionInstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // backend service\n var default_ = new RegionBackendService(\"default\", RegionBackendServiceArgs.builder() \n .name(\"l4-ilb-backend-subnet\")\n .region(\"europe-west1\")\n .protocol(\"TCP\")\n .loadBalancingScheme(\"INTERNAL\")\n .healthChecks(defaultRegionHealthCheck.id())\n .backends(RegionBackendServiceBackendArgs.builder()\n .group(mig.instanceGroup())\n .balancingMode(\"CONNECTION\")\n .build())\n .build());\n\n // forwarding rule\n var googleComputeForwardingRule = new ForwardingRule(\"googleComputeForwardingRule\", ForwardingRuleArgs.builder() \n .name(\"l4-ilb-forwarding-rule\")\n .backendService(default_.id())\n .region(\"europe-west1\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"INTERNAL\")\n .allPorts(true)\n .allowGlobalAccess(true)\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .build());\n\n // allow all access from health check ranges\n var fwHc = new Firewall(\"fwHc\", FirewallArgs.builder() \n .name(\"l4-ilb-fw-allow-hc\")\n .direction(\"INGRESS\")\n .network(ilbNetwork.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .targetTags(\"allow-health-check\")\n .build());\n\n // allow communication within the subnet \n var fwIlbToBackends = new Firewall(\"fwIlbToBackends\", FirewallArgs.builder() \n .name(\"l4-ilb-fw-allow-ilb-to-backends\")\n .direction(\"INGRESS\")\n .network(ilbNetwork.id())\n .sourceRanges(\"10.0.1.0/24\")\n .allows( \n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"udp\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"icmp\")\n .build())\n .build());\n\n // allow SSH\n var fwIlbSsh = new Firewall(\"fwIlbSsh\", FirewallArgs.builder() \n .name(\"l4-ilb-fw-ssh\")\n .direction(\"INGRESS\")\n .network(ilbNetwork.id())\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"22\")\n .build())\n .targetTags(\"allow-ssh\")\n .sourceRanges(\"0.0.0.0/0\")\n .build());\n\n // test instance\n var vmTest = new Instance(\"vmTest\", InstanceArgs.builder() \n .name(\"l4-ilb-test-vm\")\n .zone(\"europe-west1-b\")\n .machineType(\"e2-small\")\n .networkInterfaces(InstanceNetworkInterfaceArgs.builder()\n .network(ilbNetwork.id())\n .subnetwork(ilbSubnet.id())\n .build())\n .bootDisk(InstanceBootDiskArgs.builder()\n .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()\n .image(\"debian-cloud/debian-10\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Internal TCP/UDP load balancer with a managed instance group backend\n\n # VPC\n ilbNetwork:\n type: gcp:compute:Network\n name: ilb_network\n properties:\n name: l4-ilb-network\n autoCreateSubnetworks: false\n # backed subnet\n ilbSubnet:\n type: gcp:compute:Subnetwork\n name: ilb_subnet\n properties:\n name: l4-ilb-subnet\n ipCidrRange: 10.0.1.0/24\n region: europe-west1\n network: ${ilbNetwork.id}\n # forwarding rule\n googleComputeForwardingRule:\n type: gcp:compute:ForwardingRule\n name: google_compute_forwarding_rule\n properties:\n name: l4-ilb-forwarding-rule\n backendService: ${default.id}\n region: europe-west1\n ipProtocol: TCP\n loadBalancingScheme: INTERNAL\n allPorts: true\n allowGlobalAccess: true\n network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n # backend service\n default:\n type: gcp:compute:RegionBackendService\n properties:\n name: l4-ilb-backend-subnet\n region: europe-west1\n protocol: TCP\n loadBalancingScheme: INTERNAL\n healthChecks: ${defaultRegionHealthCheck.id}\n backends:\n - group: ${mig.instanceGroup}\n balancingMode: CONNECTION\n # instance template\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n name: l4-ilb-mig-template\n machineType: e2-small\n tags:\n - allow-ssh\n - allow-health-check\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n # health check\n defaultRegionHealthCheck:\n type: gcp:compute:RegionHealthCheck\n name: default\n properties:\n name: l4-ilb-hc\n region: europe-west1\n httpHealthCheck:\n port: '80'\n # MIG\n mig:\n type: gcp:compute:RegionInstanceGroupManager\n properties:\n name: l4-ilb-mig1\n region: europe-west1\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\n # allow all access from health check ranges\n fwHc:\n type: gcp:compute:Firewall\n name: fw_hc\n properties:\n name: l4-ilb-fw-allow-hc\n direction: INGRESS\n network: ${ilbNetwork.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n - 35.235.240.0/20\n allows:\n - protocol: tcp\n targetTags:\n - allow-health-check\n # allow communication within the subnet\n fwIlbToBackends:\n type: gcp:compute:Firewall\n name: fw_ilb_to_backends\n properties:\n name: l4-ilb-fw-allow-ilb-to-backends\n direction: INGRESS\n network: ${ilbNetwork.id}\n sourceRanges:\n - 10.0.1.0/24\n allows:\n - protocol: tcp\n - protocol: udp\n - protocol: icmp\n # allow SSH\n fwIlbSsh:\n type: gcp:compute:Firewall\n name: fw_ilb_ssh\n properties:\n name: l4-ilb-fw-ssh\n direction: INGRESS\n network: ${ilbNetwork.id}\n allows:\n - protocol: tcp\n ports:\n - '22'\n targetTags:\n - allow-ssh\n sourceRanges:\n - 0.0.0.0/0\n # test instance\n vmTest:\n type: gcp:compute:Instance\n name: vm_test\n properties:\n name: l4-ilb-test-vm\n zone: europe-west1-b\n machineType: e2-small\n networkInterfaces:\n - network: ${ilbNetwork.id}\n subnetwork: ${ilbSubnet.id}\n bootDisk:\n initializeParams:\n image: debian-cloud/debian-10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Externallb\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst hc = new gcp.compute.RegionHealthCheck(\"hc\", {\n name: \"check-website-backend\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n region: \"us-central1\",\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst backend = new gcp.compute.RegionBackendService(\"backend\", {\n name: \"website-backend\",\n region: \"us-central1\",\n loadBalancingScheme: \"EXTERNAL\",\n healthChecks: hc.id,\n});\n// Forwarding rule for External Network Load Balancing using Backend Services\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"website-forwarding-rule\",\n region: \"us-central1\",\n portRange: \"80\",\n backendService: backend.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhc = gcp.compute.RegionHealthCheck(\"hc\",\n name=\"check-website-backend\",\n check_interval_sec=1,\n timeout_sec=1,\n region=\"us-central1\",\n tcp_health_check=gcp.compute.RegionHealthCheckTcpHealthCheckArgs(\n port=80,\n ))\nbackend = gcp.compute.RegionBackendService(\"backend\",\n name=\"website-backend\",\n region=\"us-central1\",\n load_balancing_scheme=\"EXTERNAL\",\n health_checks=hc.id)\n# Forwarding rule for External Network Load Balancing using Backend Services\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"website-forwarding-rule\",\n region=\"us-central1\",\n port_range=\"80\",\n backend_service=backend.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var hc = new Gcp.Compute.RegionHealthCheck(\"hc\", new()\n {\n Name = \"check-website-backend\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n Region = \"us-central1\",\n TcpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var backend = new Gcp.Compute.RegionBackendService(\"backend\", new()\n {\n Name = \"website-backend\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"EXTERNAL\",\n HealthChecks = hc.Id,\n });\n\n // Forwarding rule for External Network Load Balancing using Backend Services\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"website-forwarding-rule\",\n Region = \"us-central1\",\n PortRange = \"80\",\n BackendService = backend.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thc, err := compute.NewRegionHealthCheck(ctx, \"hc\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"check-website-backend\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tTcpHealthCheck: \u0026compute.RegionHealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbackend, err := compute.NewRegionBackendService(ctx, \"backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"website-backend\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tHealthChecks: hc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Forwarding rule for External Network Load Balancing using Backend Services\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"website-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tBackendService: backend.ID(),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\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 hc = new RegionHealthCheck(\"hc\", RegionHealthCheckArgs.builder() \n .name(\"check-website-backend\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .region(\"us-central1\")\n .tcpHealthCheck(RegionHealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n var backend = new RegionBackendService(\"backend\", RegionBackendServiceArgs.builder() \n .name(\"website-backend\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"EXTERNAL\")\n .healthChecks(hc.id())\n .build());\n\n // Forwarding rule for External Network Load Balancing using Backend Services\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"website-forwarding-rule\")\n .region(\"us-central1\")\n .portRange(80)\n .backendService(backend.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Forwarding rule for External Network Load Balancing using Backend Services\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: website-forwarding-rule\n region: us-central1\n portRange: 80\n backendService: ${backend.id}\n backend:\n type: gcp:compute:RegionBackendService\n properties:\n name: website-backend\n region: us-central1\n loadBalancingScheme: EXTERNAL\n healthChecks: ${hc.id}\n hc:\n type: gcp:compute:RegionHealthCheck\n properties:\n name: check-website-backend\n checkIntervalSec: 1\n timeoutSec: 1\n region: us-central1\n tcpHealthCheck:\n port: '80'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Global Internallb\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst hc = new gcp.compute.HealthCheck(\"hc\", {\n name: \"check-website-backend\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst backend = new gcp.compute.RegionBackendService(\"backend\", {\n name: \"website-backend\",\n region: \"us-central1\",\n healthChecks: hc.id,\n});\nconst defaultNetwork = new gcp.compute.Network(\"default\", {\n name: \"website-net\",\n autoCreateSubnetworks: false,\n});\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"website-net\",\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n network: defaultNetwork.id,\n});\n// Forwarding rule for Internal Load Balancing\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"website-forwarding-rule\",\n region: \"us-central1\",\n loadBalancingScheme: \"INTERNAL\",\n backendService: backend.id,\n allPorts: true,\n allowGlobalAccess: true,\n network: defaultNetwork.name,\n subnetwork: defaultSubnetwork.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhc = gcp.compute.HealthCheck(\"hc\",\n name=\"check-website-backend\",\n check_interval_sec=1,\n timeout_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\nbackend = gcp.compute.RegionBackendService(\"backend\",\n name=\"website-backend\",\n region=\"us-central1\",\n health_checks=hc.id)\ndefault_network = gcp.compute.Network(\"default\",\n name=\"website-net\",\n auto_create_subnetworks=False)\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"website-net\",\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\",\n network=default_network.id)\n# Forwarding rule for Internal Load Balancing\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"website-forwarding-rule\",\n region=\"us-central1\",\n load_balancing_scheme=\"INTERNAL\",\n backend_service=backend.id,\n all_ports=True,\n allow_global_access=True,\n network=default_network.name,\n subnetwork=default_subnetwork.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var hc = new Gcp.Compute.HealthCheck(\"hc\", new()\n {\n Name = \"check-website-backend\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var backend = new Gcp.Compute.RegionBackendService(\"backend\", new()\n {\n Name = \"website-backend\",\n Region = \"us-central1\",\n HealthChecks = hc.Id,\n });\n\n var defaultNetwork = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"website-net\",\n AutoCreateSubnetworks = false,\n });\n\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"website-net\",\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n Network = defaultNetwork.Id,\n });\n\n // Forwarding rule for Internal Load Balancing\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"website-forwarding-rule\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"INTERNAL\",\n BackendService = backend.Id,\n AllPorts = true,\n AllowGlobalAccess = true,\n Network = defaultNetwork.Name,\n Subnetwork = defaultSubnetwork.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thc, err := compute.NewHealthCheck(ctx, \"hc\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"check-website-backend\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbackend, err := compute.NewRegionBackendService(ctx, \"backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"website-backend\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tHealthChecks: hc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"website-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"website-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Forwarding rule for Internal Load Balancing\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"website-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL\"),\n\t\t\tBackendService: backend.ID(),\n\t\t\tAllPorts: pulumi.Bool(true),\n\t\t\tAllowGlobalAccess: pulumi.Bool(true),\n\t\t\tNetwork: defaultNetwork.Name,\n\t\t\tSubnetwork: defaultSubnetwork.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\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 hc = new HealthCheck(\"hc\", HealthCheckArgs.builder() \n .name(\"check-website-backend\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n var backend = new RegionBackendService(\"backend\", RegionBackendServiceArgs.builder() \n .name(\"website-backend\")\n .region(\"us-central1\")\n .healthChecks(hc.id())\n .build());\n\n var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder() \n .name(\"website-net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"website-net\")\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .network(defaultNetwork.id())\n .build());\n\n // Forwarding rule for Internal Load Balancing\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"website-forwarding-rule\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"INTERNAL\")\n .backendService(backend.id())\n .allPorts(true)\n .allowGlobalAccess(true)\n .network(defaultNetwork.name())\n .subnetwork(defaultSubnetwork.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Forwarding rule for Internal Load Balancing\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: website-forwarding-rule\n region: us-central1\n loadBalancingScheme: INTERNAL\n backendService: ${backend.id}\n allPorts: true\n allowGlobalAccess: true\n network: ${defaultNetwork.name}\n subnetwork: ${defaultSubnetwork.name}\n backend:\n type: gcp:compute:RegionBackendService\n properties:\n name: website-backend\n region: us-central1\n healthChecks: ${hc.id}\n hc:\n type: gcp:compute:HealthCheck\n properties:\n name: check-website-backend\n checkIntervalSec: 1\n timeoutSec: 1\n tcpHealthCheck:\n port: '80'\n defaultNetwork:\n type: gcp:compute:Network\n name: default\n properties:\n name: website-net\n autoCreateSubnetworks: false\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: website-net\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n network: ${defaultNetwork.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultTargetPool = new gcp.compute.TargetPool(\"default\", {name: \"website-target-pool\"});\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"website-forwarding-rule\",\n target: defaultTargetPool.id,\n portRange: \"80\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_target_pool = gcp.compute.TargetPool(\"default\", name=\"website-target-pool\")\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"website-forwarding-rule\",\n target=default_target_pool.id,\n port_range=\"80\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultTargetPool = new Gcp.Compute.TargetPool(\"default\", new()\n {\n Name = \"website-target-pool\",\n });\n\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"website-forwarding-rule\",\n Target = defaultTargetPool.Id,\n PortRange = \"80\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultTargetPool, err := compute.NewTargetPool(ctx, \"default\", \u0026compute.TargetPoolArgs{\n\t\t\tName: pulumi.String(\"website-target-pool\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"website-forwarding-rule\"),\n\t\t\tTarget: defaultTargetPool.ID(),\n\t\t\tPortRange: pulumi.String(\"80\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.TargetPool;\nimport com.pulumi.gcp.compute.TargetPoolArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\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 defaultTargetPool = new TargetPool(\"defaultTargetPool\", TargetPoolArgs.builder() \n .name(\"website-target-pool\")\n .build());\n\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"website-forwarding-rule\")\n .target(defaultTargetPool.id())\n .portRange(\"80\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: website-forwarding-rule\n target: ${defaultTargetPool.id}\n portRange: '80'\n defaultTargetPool:\n type: gcp:compute:TargetPool\n name: default\n properties:\n name: website-target-pool\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule L3 Default\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst healthCheck = new gcp.compute.RegionHealthCheck(\"health_check\", {\n name: \"health-check\",\n region: \"us-central1\",\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst service = new gcp.compute.RegionBackendService(\"service\", {\n region: \"us-central1\",\n name: \"service\",\n healthChecks: healthCheck.id,\n protocol: \"UNSPECIFIED\",\n loadBalancingScheme: \"EXTERNAL\",\n});\nconst fwdRule = new gcp.compute.ForwardingRule(\"fwd_rule\", {\n name: \"l3-forwarding-rule\",\n backendService: service.id,\n ipProtocol: \"L3_DEFAULT\",\n allPorts: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhealth_check = gcp.compute.RegionHealthCheck(\"health_check\",\n name=\"health-check\",\n region=\"us-central1\",\n tcp_health_check=gcp.compute.RegionHealthCheckTcpHealthCheckArgs(\n port=80,\n ))\nservice = gcp.compute.RegionBackendService(\"service\",\n region=\"us-central1\",\n name=\"service\",\n health_checks=health_check.id,\n protocol=\"UNSPECIFIED\",\n load_balancing_scheme=\"EXTERNAL\")\nfwd_rule = gcp.compute.ForwardingRule(\"fwd_rule\",\n name=\"l3-forwarding-rule\",\n backend_service=service.id,\n ip_protocol=\"L3_DEFAULT\",\n all_ports=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var healthCheck = new Gcp.Compute.RegionHealthCheck(\"health_check\", new()\n {\n Name = \"health-check\",\n Region = \"us-central1\",\n TcpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var service = new Gcp.Compute.RegionBackendService(\"service\", new()\n {\n Region = \"us-central1\",\n Name = \"service\",\n HealthChecks = healthCheck.Id,\n Protocol = \"UNSPECIFIED\",\n LoadBalancingScheme = \"EXTERNAL\",\n });\n\n var fwdRule = new Gcp.Compute.ForwardingRule(\"fwd_rule\", new()\n {\n Name = \"l3-forwarding-rule\",\n BackendService = service.Id,\n IpProtocol = \"L3_DEFAULT\",\n AllPorts = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thealthCheck, err := compute.NewRegionHealthCheck(ctx, \"health_check\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tTcpHealthCheck: \u0026compute.RegionHealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tservice, err := compute.NewRegionBackendService(ctx, \"service\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"service\"),\n\t\t\tHealthChecks: healthCheck.ID(),\n\t\t\tProtocol: pulumi.String(\"UNSPECIFIED\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewForwardingRule(ctx, \"fwd_rule\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"l3-forwarding-rule\"),\n\t\t\tBackendService: service.ID(),\n\t\t\tIpProtocol: pulumi.String(\"L3_DEFAULT\"),\n\t\t\tAllPorts: pulumi.Bool(true),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\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 healthCheck = new RegionHealthCheck(\"healthCheck\", RegionHealthCheckArgs.builder() \n .name(\"health-check\")\n .region(\"us-central1\")\n .tcpHealthCheck(RegionHealthCheckTcpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var service = new RegionBackendService(\"service\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"service\")\n .healthChecks(healthCheck.id())\n .protocol(\"UNSPECIFIED\")\n .loadBalancingScheme(\"EXTERNAL\")\n .build());\n\n var fwdRule = new ForwardingRule(\"fwdRule\", ForwardingRuleArgs.builder() \n .name(\"l3-forwarding-rule\")\n .backendService(service.id())\n .ipProtocol(\"L3_DEFAULT\")\n .allPorts(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fwdRule:\n type: gcp:compute:ForwardingRule\n name: fwd_rule\n properties:\n name: l3-forwarding-rule\n backendService: ${service.id}\n ipProtocol: L3_DEFAULT\n allPorts: true\n service:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: service\n healthChecks: ${healthCheck.id}\n protocol: UNSPECIFIED\n loadBalancingScheme: EXTERNAL\n healthCheck:\n type: gcp:compute:RegionHealthCheck\n name: health_check\n properties:\n name: health-check\n region: us-central1\n tcpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Internallb\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst hc = new gcp.compute.HealthCheck(\"hc\", {\n name: \"check-website-backend\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst backend = new gcp.compute.RegionBackendService(\"backend\", {\n name: \"website-backend\",\n region: \"us-central1\",\n healthChecks: hc.id,\n});\nconst defaultNetwork = new gcp.compute.Network(\"default\", {\n name: \"website-net\",\n autoCreateSubnetworks: false,\n});\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"website-net\",\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n network: defaultNetwork.id,\n});\n// Forwarding rule for Internal Load Balancing\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"website-forwarding-rule\",\n region: \"us-central1\",\n loadBalancingScheme: \"INTERNAL\",\n backendService: backend.id,\n allPorts: true,\n network: defaultNetwork.name,\n subnetwork: defaultSubnetwork.name,\n ipVersion: \"IPV4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhc = gcp.compute.HealthCheck(\"hc\",\n name=\"check-website-backend\",\n check_interval_sec=1,\n timeout_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\nbackend = gcp.compute.RegionBackendService(\"backend\",\n name=\"website-backend\",\n region=\"us-central1\",\n health_checks=hc.id)\ndefault_network = gcp.compute.Network(\"default\",\n name=\"website-net\",\n auto_create_subnetworks=False)\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"website-net\",\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\",\n network=default_network.id)\n# Forwarding rule for Internal Load Balancing\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"website-forwarding-rule\",\n region=\"us-central1\",\n load_balancing_scheme=\"INTERNAL\",\n backend_service=backend.id,\n all_ports=True,\n network=default_network.name,\n subnetwork=default_subnetwork.name,\n ip_version=\"IPV4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var hc = new Gcp.Compute.HealthCheck(\"hc\", new()\n {\n Name = \"check-website-backend\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var backend = new Gcp.Compute.RegionBackendService(\"backend\", new()\n {\n Name = \"website-backend\",\n Region = \"us-central1\",\n HealthChecks = hc.Id,\n });\n\n var defaultNetwork = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"website-net\",\n AutoCreateSubnetworks = false,\n });\n\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"website-net\",\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n Network = defaultNetwork.Id,\n });\n\n // Forwarding rule for Internal Load Balancing\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"website-forwarding-rule\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"INTERNAL\",\n BackendService = backend.Id,\n AllPorts = true,\n Network = defaultNetwork.Name,\n Subnetwork = defaultSubnetwork.Name,\n IpVersion = \"IPV4\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thc, err := compute.NewHealthCheck(ctx, \"hc\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"check-website-backend\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbackend, err := compute.NewRegionBackendService(ctx, \"backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"website-backend\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tHealthChecks: hc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"website-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"website-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Forwarding rule for Internal Load Balancing\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"website-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL\"),\n\t\t\tBackendService: backend.ID(),\n\t\t\tAllPorts: pulumi.Bool(true),\n\t\t\tNetwork: defaultNetwork.Name,\n\t\t\tSubnetwork: defaultSubnetwork.Name,\n\t\t\tIpVersion: pulumi.String(\"IPV4\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\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 hc = new HealthCheck(\"hc\", HealthCheckArgs.builder() \n .name(\"check-website-backend\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n var backend = new RegionBackendService(\"backend\", RegionBackendServiceArgs.builder() \n .name(\"website-backend\")\n .region(\"us-central1\")\n .healthChecks(hc.id())\n .build());\n\n var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder() \n .name(\"website-net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"website-net\")\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .network(defaultNetwork.id())\n .build());\n\n // Forwarding rule for Internal Load Balancing\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"website-forwarding-rule\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"INTERNAL\")\n .backendService(backend.id())\n .allPorts(true)\n .network(defaultNetwork.name())\n .subnetwork(defaultSubnetwork.name())\n .ipVersion(\"IPV4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Forwarding rule for Internal Load Balancing\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: website-forwarding-rule\n region: us-central1\n loadBalancingScheme: INTERNAL\n backendService: ${backend.id}\n allPorts: true\n network: ${defaultNetwork.name}\n subnetwork: ${defaultSubnetwork.name}\n ipVersion: IPV4\n backend:\n type: gcp:compute:RegionBackendService\n properties:\n name: website-backend\n region: us-central1\n healthChecks: ${hc.id}\n hc:\n type: gcp:compute:HealthCheck\n properties:\n name: check-website-backend\n checkIntervalSec: 1\n timeoutSec: 1\n tcpHealthCheck:\n port: '80'\n defaultNetwork:\n type: gcp:compute:Network\n name: default\n properties:\n name: website-net\n autoCreateSubnetworks: false\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: website-net\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n network: ${defaultNetwork.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Http Lb\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst debianImage = gcp.compute.getImage({\n family: \"debian-11\",\n project: \"debian-cloud\",\n});\nconst defaultNetwork = new gcp.compute.Network(\"default\", {\n name: \"website-net\",\n autoCreateSubnetworks: false,\n routingMode: \"REGIONAL\",\n});\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"website-net-default\",\n ipCidrRange: \"10.1.2.0/24\",\n region: \"us-central1\",\n network: defaultNetwork.id,\n});\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n name: \"template-website-backend\",\n machineType: \"e2-medium\",\n networkInterfaces: [{\n network: defaultNetwork.id,\n subnetwork: defaultSubnetwork.id,\n }],\n disks: [{\n sourceImage: debianImage.then(debianImage =\u003e debianImage.selfLink),\n autoDelete: true,\n boot: true,\n }],\n tags: [\n \"allow-ssh\",\n \"load-balanced-backend\",\n ],\n});\nconst rigm = new gcp.compute.RegionInstanceGroupManager(\"rigm\", {\n region: \"us-central1\",\n name: \"website-rigm\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"internal-glb\",\n targetSize: 1,\n});\nconst defaultRegionHealthCheck = new gcp.compute.RegionHealthCheck(\"default\", {\n region: \"us-central1\",\n name: \"website-hc\",\n httpHealthCheck: {\n portSpecification: \"USE_SERVING_PORT\",\n },\n});\nconst defaultRegionBackendService = new gcp.compute.RegionBackendService(\"default\", {\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n backends: [{\n group: rigm.instanceGroup,\n balancingMode: \"UTILIZATION\",\n capacityScaler: 1,\n }],\n region: \"us-central1\",\n name: \"website-backend\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n healthChecks: defaultRegionHealthCheck.id,\n});\nconst defaultRegionUrlMap = new gcp.compute.RegionUrlMap(\"default\", {\n region: \"us-central1\",\n name: \"website-map\",\n defaultService: defaultRegionBackendService.id,\n});\nconst defaultRegionTargetHttpProxy = new gcp.compute.RegionTargetHttpProxy(\"default\", {\n region: \"us-central1\",\n name: \"website-proxy\",\n urlMap: defaultRegionUrlMap.id,\n});\n// Forwarding rule for Internal Load Balancing\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"website-forwarding-rule\",\n region: \"us-central1\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n portRange: \"80\",\n target: defaultRegionTargetHttpProxy.id,\n network: defaultNetwork.id,\n subnetwork: defaultSubnetwork.id,\n networkTier: \"PREMIUM\",\n});\nconst fw1 = new gcp.compute.Firewall(\"fw1\", {\n name: \"website-fw-1\",\n network: defaultNetwork.id,\n sourceRanges: [\"10.1.2.0/24\"],\n allows: [\n {\n protocol: \"tcp\",\n },\n {\n protocol: \"udp\",\n },\n {\n protocol: \"icmp\",\n },\n ],\n direction: \"INGRESS\",\n});\nconst fw2 = new gcp.compute.Firewall(\"fw2\", {\n name: \"website-fw-2\",\n network: defaultNetwork.id,\n sourceRanges: [\"0.0.0.0/0\"],\n allows: [{\n protocol: \"tcp\",\n ports: [\"22\"],\n }],\n targetTags: [\"allow-ssh\"],\n direction: \"INGRESS\",\n});\nconst fw3 = new gcp.compute.Firewall(\"fw3\", {\n name: \"website-fw-3\",\n network: defaultNetwork.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n targetTags: [\"load-balanced-backend\"],\n direction: \"INGRESS\",\n});\nconst fw4 = new gcp.compute.Firewall(\"fw4\", {\n name: \"website-fw-4\",\n network: defaultNetwork.id,\n sourceRanges: [\"10.129.0.0/26\"],\n targetTags: [\"load-balanced-backend\"],\n allows: [\n {\n protocol: \"tcp\",\n ports: [\"80\"],\n },\n {\n protocol: \"tcp\",\n ports: [\"443\"],\n },\n {\n protocol: \"tcp\",\n ports: [\"8000\"],\n },\n ],\n direction: \"INGRESS\",\n});\nconst proxy = new gcp.compute.Subnetwork(\"proxy\", {\n name: \"website-net-proxy\",\n ipCidrRange: \"10.129.0.0/26\",\n region: \"us-central1\",\n network: defaultNetwork.id,\n purpose: \"REGIONAL_MANAGED_PROXY\",\n role: \"ACTIVE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndebian_image = gcp.compute.get_image(family=\"debian-11\",\n project=\"debian-cloud\")\ndefault_network = gcp.compute.Network(\"default\",\n name=\"website-net\",\n auto_create_subnetworks=False,\n routing_mode=\"REGIONAL\")\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"website-net-default\",\n ip_cidr_range=\"10.1.2.0/24\",\n region=\"us-central1\",\n network=default_network.id)\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n name=\"template-website-backend\",\n machine_type=\"e2-medium\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n network=default_network.id,\n subnetwork=default_subnetwork.id,\n )],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=debian_image.self_link,\n auto_delete=True,\n boot=True,\n )],\n tags=[\n \"allow-ssh\",\n \"load-balanced-backend\",\n ])\nrigm = gcp.compute.RegionInstanceGroupManager(\"rigm\",\n region=\"us-central1\",\n name=\"website-rigm\",\n versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"internal-glb\",\n target_size=1)\ndefault_region_health_check = gcp.compute.RegionHealthCheck(\"default\",\n region=\"us-central1\",\n name=\"website-hc\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port_specification=\"USE_SERVING_PORT\",\n ))\ndefault_region_backend_service = gcp.compute.RegionBackendService(\"default\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n backends=[gcp.compute.RegionBackendServiceBackendArgs(\n group=rigm.instance_group,\n balancing_mode=\"UTILIZATION\",\n capacity_scaler=1,\n )],\n region=\"us-central1\",\n name=\"website-backend\",\n protocol=\"HTTP\",\n timeout_sec=10,\n health_checks=default_region_health_check.id)\ndefault_region_url_map = gcp.compute.RegionUrlMap(\"default\",\n region=\"us-central1\",\n name=\"website-map\",\n default_service=default_region_backend_service.id)\ndefault_region_target_http_proxy = gcp.compute.RegionTargetHttpProxy(\"default\",\n region=\"us-central1\",\n name=\"website-proxy\",\n url_map=default_region_url_map.id)\n# Forwarding rule for Internal Load Balancing\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"website-forwarding-rule\",\n region=\"us-central1\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n port_range=\"80\",\n target=default_region_target_http_proxy.id,\n network=default_network.id,\n subnetwork=default_subnetwork.id,\n network_tier=\"PREMIUM\")\nfw1 = gcp.compute.Firewall(\"fw1\",\n name=\"website-fw-1\",\n network=default_network.id,\n source_ranges=[\"10.1.2.0/24\"],\n allows=[\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"udp\",\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"icmp\",\n ),\n ],\n direction=\"INGRESS\")\nfw2 = gcp.compute.Firewall(\"fw2\",\n name=\"website-fw-2\",\n network=default_network.id,\n source_ranges=[\"0.0.0.0/0\"],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"22\"],\n )],\n target_tags=[\"allow-ssh\"],\n direction=\"INGRESS\")\nfw3 = gcp.compute.Firewall(\"fw3\",\n name=\"website-fw-3\",\n network=default_network.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )],\n target_tags=[\"load-balanced-backend\"],\n direction=\"INGRESS\")\nfw4 = gcp.compute.Firewall(\"fw4\",\n name=\"website-fw-4\",\n network=default_network.id,\n source_ranges=[\"10.129.0.0/26\"],\n target_tags=[\"load-balanced-backend\"],\n allows=[\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"80\"],\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"443\"],\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"8000\"],\n ),\n ],\n direction=\"INGRESS\")\nproxy = gcp.compute.Subnetwork(\"proxy\",\n name=\"website-net-proxy\",\n ip_cidr_range=\"10.129.0.0/26\",\n region=\"us-central1\",\n network=default_network.id,\n purpose=\"REGIONAL_MANAGED_PROXY\",\n role=\"ACTIVE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var debianImage = Gcp.Compute.GetImage.Invoke(new()\n {\n Family = \"debian-11\",\n Project = \"debian-cloud\",\n });\n\n var defaultNetwork = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"website-net\",\n AutoCreateSubnetworks = false,\n RoutingMode = \"REGIONAL\",\n });\n\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"website-net-default\",\n IpCidrRange = \"10.1.2.0/24\",\n Region = \"us-central1\",\n Network = defaultNetwork.Id,\n });\n\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n Name = \"template-website-backend\",\n MachineType = \"e2-medium\",\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n Network = defaultNetwork.Id,\n Subnetwork = defaultSubnetwork.Id,\n },\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = debianImage.Apply(getImageResult =\u003e getImageResult.SelfLink),\n AutoDelete = true,\n Boot = true,\n },\n },\n Tags = new[]\n {\n \"allow-ssh\",\n \"load-balanced-backend\",\n },\n });\n\n var rigm = new Gcp.Compute.RegionInstanceGroupManager(\"rigm\", new()\n {\n Region = \"us-central1\",\n Name = \"website-rigm\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"internal-glb\",\n TargetSize = 1,\n });\n\n var defaultRegionHealthCheck = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"website-hc\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n PortSpecification = \"USE_SERVING_PORT\",\n },\n });\n\n var defaultRegionBackendService = new Gcp.Compute.RegionBackendService(\"default\", new()\n {\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n Backends = new[]\n {\n new Gcp.Compute.Inputs.RegionBackendServiceBackendArgs\n {\n Group = rigm.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n CapacityScaler = 1,\n },\n },\n Region = \"us-central1\",\n Name = \"website-backend\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n HealthChecks = defaultRegionHealthCheck.Id,\n });\n\n var defaultRegionUrlMap = new Gcp.Compute.RegionUrlMap(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"website-map\",\n DefaultService = defaultRegionBackendService.Id,\n });\n\n var defaultRegionTargetHttpProxy = new Gcp.Compute.RegionTargetHttpProxy(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"website-proxy\",\n UrlMap = defaultRegionUrlMap.Id,\n });\n\n // Forwarding rule for Internal Load Balancing\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"website-forwarding-rule\",\n Region = \"us-central1\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n PortRange = \"80\",\n Target = defaultRegionTargetHttpProxy.Id,\n Network = defaultNetwork.Id,\n Subnetwork = defaultSubnetwork.Id,\n NetworkTier = \"PREMIUM\",\n });\n\n var fw1 = new Gcp.Compute.Firewall(\"fw1\", new()\n {\n Name = \"website-fw-1\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"10.1.2.0/24\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"udp\",\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"icmp\",\n },\n },\n Direction = \"INGRESS\",\n });\n\n var fw2 = new Gcp.Compute.Firewall(\"fw2\", new()\n {\n Name = \"website-fw-2\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"0.0.0.0/0\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"22\",\n },\n },\n },\n TargetTags = new[]\n {\n \"allow-ssh\",\n },\n Direction = \"INGRESS\",\n });\n\n var fw3 = new Gcp.Compute.Firewall(\"fw3\", new()\n {\n Name = \"website-fw-3\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n TargetTags = new[]\n {\n \"load-balanced-backend\",\n },\n Direction = \"INGRESS\",\n });\n\n var fw4 = new Gcp.Compute.Firewall(\"fw4\", new()\n {\n Name = \"website-fw-4\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"10.129.0.0/26\",\n },\n TargetTags = new[]\n {\n \"load-balanced-backend\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"80\",\n },\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"443\",\n },\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"8000\",\n },\n },\n },\n Direction = \"INGRESS\",\n });\n\n var proxy = new Gcp.Compute.Subnetwork(\"proxy\", new()\n {\n Name = \"website-net-proxy\",\n IpCidrRange = \"10.129.0.0/26\",\n Region = \"us-central1\",\n Network = defaultNetwork.Id,\n Purpose = \"REGIONAL_MANAGED_PROXY\",\n Role = \"ACTIVE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdebianImage, err := compute.LookupImage(ctx, \u0026compute.LookupImageArgs{\n\t\t\tFamily: pulumi.StringRef(\"debian-11\"),\n\t\t\tProject: pulumi.StringRef(\"debian-cloud\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"website-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t\tRoutingMode: pulumi.String(\"REGIONAL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"website-net-default\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.1.2.0/24\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tName: pulumi.String(\"template-website-backend\"),\n\t\t\tMachineType: pulumi.String(\"e2-medium\"),\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(debianImage.SelfLink),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-ssh\"),\n\t\t\t\tpulumi.String(\"load-balanced-backend\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trigm, err := compute.NewRegionInstanceGroupManager(ctx, \"rigm\", \u0026compute.RegionInstanceGroupManagerArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-rigm\"),\n\t\t\tVersions: compute.RegionInstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"internal-glb\"),\n\t\t\tTargetSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionHealthCheck, err := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-hc\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPortSpecification: pulumi.String(\"USE_SERVING_PORT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionBackendService, err := compute.NewRegionBackendService(ctx, \"default\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tBackends: compute.RegionBackendServiceBackendArray{\n\t\t\t\t\u0026compute.RegionBackendServiceBackendArgs{\n\t\t\t\t\tGroup: rigm.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-backend\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultRegionHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionUrlMap, err := compute.NewRegionUrlMap(ctx, \"default\", \u0026compute.RegionUrlMapArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-map\"),\n\t\t\tDefaultService: defaultRegionBackendService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionTargetHttpProxy, err := compute.NewRegionTargetHttpProxy(ctx, \"default\", \u0026compute.RegionTargetHttpProxyArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-proxy\"),\n\t\t\tUrlMap: defaultRegionUrlMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Forwarding rule for Internal Load Balancing\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"website-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tTarget: defaultRegionTargetHttpProxy.ID(),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\tNetworkTier: pulumi.String(\"PREMIUM\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw1\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.2.0/24\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"udp\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"icmp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw2\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-2\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"22\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-ssh\"),\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw3\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-3\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"load-balanced-backend\"),\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw4\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-4\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.129.0.0/26\"),\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"load-balanced-backend\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"80\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"443\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"8000\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewSubnetwork(ctx, \"proxy\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"website-net-proxy\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.129.0.0/26\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tPurpose: pulumi.String(\"REGIONAL_MANAGED_PROXY\"),\n\t\t\tRole: pulumi.String(\"ACTIVE\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetImageArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManager;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.RegionBackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxy;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\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 final var debianImage = ComputeFunctions.getImage(GetImageArgs.builder()\n .family(\"debian-11\")\n .project(\"debian-cloud\")\n .build());\n\n var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder() \n .name(\"website-net\")\n .autoCreateSubnetworks(false)\n .routingMode(\"REGIONAL\")\n .build());\n\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"website-net-default\")\n .ipCidrRange(\"10.1.2.0/24\")\n .region(\"us-central1\")\n .network(defaultNetwork.id())\n .build());\n\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .name(\"template-website-backend\")\n .machineType(\"e2-medium\")\n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .network(defaultNetwork.id())\n .subnetwork(defaultSubnetwork.id())\n .build())\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(debianImage.applyValue(getImageResult -\u003e getImageResult.selfLink()))\n .autoDelete(true)\n .boot(true)\n .build())\n .tags( \n \"allow-ssh\",\n \"load-balanced-backend\")\n .build());\n\n var rigm = new RegionInstanceGroupManager(\"rigm\", RegionInstanceGroupManagerArgs.builder() \n .region(\"us-central1\")\n .name(\"website-rigm\")\n .versions(RegionInstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"internal-glb\")\n .targetSize(1)\n .build());\n\n var defaultRegionHealthCheck = new RegionHealthCheck(\"defaultRegionHealthCheck\", RegionHealthCheckArgs.builder() \n .region(\"us-central1\")\n .name(\"website-hc\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .portSpecification(\"USE_SERVING_PORT\")\n .build())\n .build());\n\n var defaultRegionBackendService = new RegionBackendService(\"defaultRegionBackendService\", RegionBackendServiceArgs.builder() \n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .backends(RegionBackendServiceBackendArgs.builder()\n .group(rigm.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .capacityScaler(1)\n .build())\n .region(\"us-central1\")\n .name(\"website-backend\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(defaultRegionHealthCheck.id())\n .build());\n\n var defaultRegionUrlMap = new RegionUrlMap(\"defaultRegionUrlMap\", RegionUrlMapArgs.builder() \n .region(\"us-central1\")\n .name(\"website-map\")\n .defaultService(defaultRegionBackendService.id())\n .build());\n\n var defaultRegionTargetHttpProxy = new RegionTargetHttpProxy(\"defaultRegionTargetHttpProxy\", RegionTargetHttpProxyArgs.builder() \n .region(\"us-central1\")\n .name(\"website-proxy\")\n .urlMap(defaultRegionUrlMap.id())\n .build());\n\n // Forwarding rule for Internal Load Balancing\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"website-forwarding-rule\")\n .region(\"us-central1\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .portRange(\"80\")\n .target(defaultRegionTargetHttpProxy.id())\n .network(defaultNetwork.id())\n .subnetwork(defaultSubnetwork.id())\n .networkTier(\"PREMIUM\")\n .build());\n\n var fw1 = new Firewall(\"fw1\", FirewallArgs.builder() \n .name(\"website-fw-1\")\n .network(defaultNetwork.id())\n .sourceRanges(\"10.1.2.0/24\")\n .allows( \n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"udp\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"icmp\")\n .build())\n .direction(\"INGRESS\")\n .build());\n\n var fw2 = new Firewall(\"fw2\", FirewallArgs.builder() \n .name(\"website-fw-2\")\n .network(defaultNetwork.id())\n .sourceRanges(\"0.0.0.0/0\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"22\")\n .build())\n .targetTags(\"allow-ssh\")\n .direction(\"INGRESS\")\n .build());\n\n var fw3 = new Firewall(\"fw3\", FirewallArgs.builder() \n .name(\"website-fw-3\")\n .network(defaultNetwork.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .targetTags(\"load-balanced-backend\")\n .direction(\"INGRESS\")\n .build());\n\n var fw4 = new Firewall(\"fw4\", FirewallArgs.builder() \n .name(\"website-fw-4\")\n .network(defaultNetwork.id())\n .sourceRanges(\"10.129.0.0/26\")\n .targetTags(\"load-balanced-backend\")\n .allows( \n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"80\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"443\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"8000\")\n .build())\n .direction(\"INGRESS\")\n .build());\n\n var proxy = new Subnetwork(\"proxy\", SubnetworkArgs.builder() \n .name(\"website-net-proxy\")\n .ipCidrRange(\"10.129.0.0/26\")\n .region(\"us-central1\")\n .network(defaultNetwork.id())\n .purpose(\"REGIONAL_MANAGED_PROXY\")\n .role(\"ACTIVE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Forwarding rule for Internal Load Balancing\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: website-forwarding-rule\n region: us-central1\n ipProtocol: TCP\n loadBalancingScheme: INTERNAL_MANAGED\n portRange: '80'\n target: ${defaultRegionTargetHttpProxy.id}\n network: ${defaultNetwork.id}\n subnetwork: ${defaultSubnetwork.id}\n networkTier: PREMIUM\n defaultRegionTargetHttpProxy:\n type: gcp:compute:RegionTargetHttpProxy\n name: default\n properties:\n region: us-central1\n name: website-proxy\n urlMap: ${defaultRegionUrlMap.id}\n defaultRegionUrlMap:\n type: gcp:compute:RegionUrlMap\n name: default\n properties:\n region: us-central1\n name: website-map\n defaultService: ${defaultRegionBackendService.id}\n defaultRegionBackendService:\n type: gcp:compute:RegionBackendService\n name: default\n properties:\n loadBalancingScheme: INTERNAL_MANAGED\n backends:\n - group: ${rigm.instanceGroup}\n balancingMode: UTILIZATION\n capacityScaler: 1\n region: us-central1\n name: website-backend\n protocol: HTTP\n timeoutSec: 10\n healthChecks: ${defaultRegionHealthCheck.id}\n rigm:\n type: gcp:compute:RegionInstanceGroupManager\n properties:\n region: us-central1\n name: website-rigm\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: internal-glb\n targetSize: 1\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n name: template-website-backend\n machineType: e2-medium\n networkInterfaces:\n - network: ${defaultNetwork.id}\n subnetwork: ${defaultSubnetwork.id}\n disks:\n - sourceImage: ${debianImage.selfLink}\n autoDelete: true\n boot: true\n tags:\n - allow-ssh\n - load-balanced-backend\n defaultRegionHealthCheck:\n type: gcp:compute:RegionHealthCheck\n name: default\n properties:\n region: us-central1\n name: website-hc\n httpHealthCheck:\n portSpecification: USE_SERVING_PORT\n fw1:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-1\n network: ${defaultNetwork.id}\n sourceRanges:\n - 10.1.2.0/24\n allows:\n - protocol: tcp\n - protocol: udp\n - protocol: icmp\n direction: INGRESS\n fw2:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-2\n network: ${defaultNetwork.id}\n sourceRanges:\n - 0.0.0.0/0\n allows:\n - protocol: tcp\n ports:\n - '22'\n targetTags:\n - allow-ssh\n direction: INGRESS\n fw3:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-3\n network: ${defaultNetwork.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n allows:\n - protocol: tcp\n targetTags:\n - load-balanced-backend\n direction: INGRESS\n fw4:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-4\n network: ${defaultNetwork.id}\n sourceRanges:\n - 10.129.0.0/26\n targetTags:\n - load-balanced-backend\n allows:\n - protocol: tcp\n ports:\n - '80'\n - protocol: tcp\n ports:\n - '443'\n - protocol: tcp\n ports:\n - '8000'\n direction: INGRESS\n defaultNetwork:\n type: gcp:compute:Network\n name: default\n properties:\n name: website-net\n autoCreateSubnetworks: false\n routingMode: REGIONAL\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: website-net-default\n ipCidrRange: 10.1.2.0/24\n region: us-central1\n network: ${defaultNetwork.id}\n proxy:\n type: gcp:compute:Subnetwork\n properties:\n name: website-net-proxy\n ipCidrRange: 10.129.0.0/26\n region: us-central1\n network: ${defaultNetwork.id}\n purpose: REGIONAL_MANAGED_PROXY\n role: ACTIVE\nvariables:\n debianImage:\n fn::invoke:\n Function: gcp:compute:getImage\n Arguments:\n family: debian-11\n project: debian-cloud\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Regional Http Xlb\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst debianImage = gcp.compute.getImage({\n family: \"debian-11\",\n project: \"debian-cloud\",\n});\nconst defaultNetwork = new gcp.compute.Network(\"default\", {\n name: \"website-net\",\n autoCreateSubnetworks: false,\n routingMode: \"REGIONAL\",\n});\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"website-net-default\",\n ipCidrRange: \"10.1.2.0/24\",\n region: \"us-central1\",\n network: defaultNetwork.id,\n});\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n name: \"template-website-backend\",\n machineType: \"e2-medium\",\n networkInterfaces: [{\n network: defaultNetwork.id,\n subnetwork: defaultSubnetwork.id,\n }],\n disks: [{\n sourceImage: debianImage.then(debianImage =\u003e debianImage.selfLink),\n autoDelete: true,\n boot: true,\n }],\n tags: [\n \"allow-ssh\",\n \"load-balanced-backend\",\n ],\n});\nconst rigm = new gcp.compute.RegionInstanceGroupManager(\"rigm\", {\n region: \"us-central1\",\n name: \"website-rigm\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"internal-glb\",\n targetSize: 1,\n});\nconst defaultRegionHealthCheck = new gcp.compute.RegionHealthCheck(\"default\", {\n region: \"us-central1\",\n name: \"website-hc\",\n httpHealthCheck: {\n portSpecification: \"USE_SERVING_PORT\",\n },\n});\nconst defaultRegionBackendService = new gcp.compute.RegionBackendService(\"default\", {\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n backends: [{\n group: rigm.instanceGroup,\n balancingMode: \"UTILIZATION\",\n capacityScaler: 1,\n }],\n region: \"us-central1\",\n name: \"website-backend\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n healthChecks: defaultRegionHealthCheck.id,\n});\nconst defaultRegionUrlMap = new gcp.compute.RegionUrlMap(\"default\", {\n region: \"us-central1\",\n name: \"website-map\",\n defaultService: defaultRegionBackendService.id,\n});\nconst defaultRegionTargetHttpProxy = new gcp.compute.RegionTargetHttpProxy(\"default\", {\n region: \"us-central1\",\n name: \"website-proxy\",\n urlMap: defaultRegionUrlMap.id,\n});\nconst defaultAddress = new gcp.compute.Address(\"default\", {\n name: \"website-ip-1\",\n region: \"us-central1\",\n networkTier: \"STANDARD\",\n});\n// Forwarding rule for Regional External Load Balancing\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"website-forwarding-rule\",\n region: \"us-central1\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n portRange: \"80\",\n target: defaultRegionTargetHttpProxy.id,\n network: defaultNetwork.id,\n ipAddress: defaultAddress.id,\n networkTier: \"STANDARD\",\n});\nconst fw1 = new gcp.compute.Firewall(\"fw1\", {\n name: \"website-fw-1\",\n network: defaultNetwork.id,\n sourceRanges: [\"10.1.2.0/24\"],\n allows: [\n {\n protocol: \"tcp\",\n },\n {\n protocol: \"udp\",\n },\n {\n protocol: \"icmp\",\n },\n ],\n direction: \"INGRESS\",\n});\nconst fw2 = new gcp.compute.Firewall(\"fw2\", {\n name: \"website-fw-2\",\n network: defaultNetwork.id,\n sourceRanges: [\"0.0.0.0/0\"],\n allows: [{\n protocol: \"tcp\",\n ports: [\"22\"],\n }],\n targetTags: [\"allow-ssh\"],\n direction: \"INGRESS\",\n});\nconst fw3 = new gcp.compute.Firewall(\"fw3\", {\n name: \"website-fw-3\",\n network: defaultNetwork.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n targetTags: [\"load-balanced-backend\"],\n direction: \"INGRESS\",\n});\nconst fw4 = new gcp.compute.Firewall(\"fw4\", {\n name: \"website-fw-4\",\n network: defaultNetwork.id,\n sourceRanges: [\"10.129.0.0/26\"],\n targetTags: [\"load-balanced-backend\"],\n allows: [\n {\n protocol: \"tcp\",\n ports: [\"80\"],\n },\n {\n protocol: \"tcp\",\n ports: [\"443\"],\n },\n {\n protocol: \"tcp\",\n ports: [\"8000\"],\n },\n ],\n direction: \"INGRESS\",\n});\nconst proxy = new gcp.compute.Subnetwork(\"proxy\", {\n name: \"website-net-proxy\",\n ipCidrRange: \"10.129.0.0/26\",\n region: \"us-central1\",\n network: defaultNetwork.id,\n purpose: \"REGIONAL_MANAGED_PROXY\",\n role: \"ACTIVE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndebian_image = gcp.compute.get_image(family=\"debian-11\",\n project=\"debian-cloud\")\ndefault_network = gcp.compute.Network(\"default\",\n name=\"website-net\",\n auto_create_subnetworks=False,\n routing_mode=\"REGIONAL\")\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"website-net-default\",\n ip_cidr_range=\"10.1.2.0/24\",\n region=\"us-central1\",\n network=default_network.id)\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n name=\"template-website-backend\",\n machine_type=\"e2-medium\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n network=default_network.id,\n subnetwork=default_subnetwork.id,\n )],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=debian_image.self_link,\n auto_delete=True,\n boot=True,\n )],\n tags=[\n \"allow-ssh\",\n \"load-balanced-backend\",\n ])\nrigm = gcp.compute.RegionInstanceGroupManager(\"rigm\",\n region=\"us-central1\",\n name=\"website-rigm\",\n versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"internal-glb\",\n target_size=1)\ndefault_region_health_check = gcp.compute.RegionHealthCheck(\"default\",\n region=\"us-central1\",\n name=\"website-hc\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port_specification=\"USE_SERVING_PORT\",\n ))\ndefault_region_backend_service = gcp.compute.RegionBackendService(\"default\",\n load_balancing_scheme=\"EXTERNAL_MANAGED\",\n backends=[gcp.compute.RegionBackendServiceBackendArgs(\n group=rigm.instance_group,\n balancing_mode=\"UTILIZATION\",\n capacity_scaler=1,\n )],\n region=\"us-central1\",\n name=\"website-backend\",\n protocol=\"HTTP\",\n timeout_sec=10,\n health_checks=default_region_health_check.id)\ndefault_region_url_map = gcp.compute.RegionUrlMap(\"default\",\n region=\"us-central1\",\n name=\"website-map\",\n default_service=default_region_backend_service.id)\ndefault_region_target_http_proxy = gcp.compute.RegionTargetHttpProxy(\"default\",\n region=\"us-central1\",\n name=\"website-proxy\",\n url_map=default_region_url_map.id)\ndefault_address = gcp.compute.Address(\"default\",\n name=\"website-ip-1\",\n region=\"us-central1\",\n network_tier=\"STANDARD\")\n# Forwarding rule for Regional External Load Balancing\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"website-forwarding-rule\",\n region=\"us-central1\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"EXTERNAL_MANAGED\",\n port_range=\"80\",\n target=default_region_target_http_proxy.id,\n network=default_network.id,\n ip_address=default_address.id,\n network_tier=\"STANDARD\")\nfw1 = gcp.compute.Firewall(\"fw1\",\n name=\"website-fw-1\",\n network=default_network.id,\n source_ranges=[\"10.1.2.0/24\"],\n allows=[\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"udp\",\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"icmp\",\n ),\n ],\n direction=\"INGRESS\")\nfw2 = gcp.compute.Firewall(\"fw2\",\n name=\"website-fw-2\",\n network=default_network.id,\n source_ranges=[\"0.0.0.0/0\"],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"22\"],\n )],\n target_tags=[\"allow-ssh\"],\n direction=\"INGRESS\")\nfw3 = gcp.compute.Firewall(\"fw3\",\n name=\"website-fw-3\",\n network=default_network.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )],\n target_tags=[\"load-balanced-backend\"],\n direction=\"INGRESS\")\nfw4 = gcp.compute.Firewall(\"fw4\",\n name=\"website-fw-4\",\n network=default_network.id,\n source_ranges=[\"10.129.0.0/26\"],\n target_tags=[\"load-balanced-backend\"],\n allows=[\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"80\"],\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"443\"],\n ),\n gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\"8000\"],\n ),\n ],\n direction=\"INGRESS\")\nproxy = gcp.compute.Subnetwork(\"proxy\",\n name=\"website-net-proxy\",\n ip_cidr_range=\"10.129.0.0/26\",\n region=\"us-central1\",\n network=default_network.id,\n purpose=\"REGIONAL_MANAGED_PROXY\",\n role=\"ACTIVE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var debianImage = Gcp.Compute.GetImage.Invoke(new()\n {\n Family = \"debian-11\",\n Project = \"debian-cloud\",\n });\n\n var defaultNetwork = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"website-net\",\n AutoCreateSubnetworks = false,\n RoutingMode = \"REGIONAL\",\n });\n\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"website-net-default\",\n IpCidrRange = \"10.1.2.0/24\",\n Region = \"us-central1\",\n Network = defaultNetwork.Id,\n });\n\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n Name = \"template-website-backend\",\n MachineType = \"e2-medium\",\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n Network = defaultNetwork.Id,\n Subnetwork = defaultSubnetwork.Id,\n },\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = debianImage.Apply(getImageResult =\u003e getImageResult.SelfLink),\n AutoDelete = true,\n Boot = true,\n },\n },\n Tags = new[]\n {\n \"allow-ssh\",\n \"load-balanced-backend\",\n },\n });\n\n var rigm = new Gcp.Compute.RegionInstanceGroupManager(\"rigm\", new()\n {\n Region = \"us-central1\",\n Name = \"website-rigm\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"internal-glb\",\n TargetSize = 1,\n });\n\n var defaultRegionHealthCheck = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"website-hc\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n PortSpecification = \"USE_SERVING_PORT\",\n },\n });\n\n var defaultRegionBackendService = new Gcp.Compute.RegionBackendService(\"default\", new()\n {\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n Backends = new[]\n {\n new Gcp.Compute.Inputs.RegionBackendServiceBackendArgs\n {\n Group = rigm.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n CapacityScaler = 1,\n },\n },\n Region = \"us-central1\",\n Name = \"website-backend\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n HealthChecks = defaultRegionHealthCheck.Id,\n });\n\n var defaultRegionUrlMap = new Gcp.Compute.RegionUrlMap(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"website-map\",\n DefaultService = defaultRegionBackendService.Id,\n });\n\n var defaultRegionTargetHttpProxy = new Gcp.Compute.RegionTargetHttpProxy(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"website-proxy\",\n UrlMap = defaultRegionUrlMap.Id,\n });\n\n var defaultAddress = new Gcp.Compute.Address(\"default\", new()\n {\n Name = \"website-ip-1\",\n Region = \"us-central1\",\n NetworkTier = \"STANDARD\",\n });\n\n // Forwarding rule for Regional External Load Balancing\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"website-forwarding-rule\",\n Region = \"us-central1\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n PortRange = \"80\",\n Target = defaultRegionTargetHttpProxy.Id,\n Network = defaultNetwork.Id,\n IpAddress = defaultAddress.Id,\n NetworkTier = \"STANDARD\",\n });\n\n var fw1 = new Gcp.Compute.Firewall(\"fw1\", new()\n {\n Name = \"website-fw-1\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"10.1.2.0/24\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"udp\",\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"icmp\",\n },\n },\n Direction = \"INGRESS\",\n });\n\n var fw2 = new Gcp.Compute.Firewall(\"fw2\", new()\n {\n Name = \"website-fw-2\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"0.0.0.0/0\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"22\",\n },\n },\n },\n TargetTags = new[]\n {\n \"allow-ssh\",\n },\n Direction = \"INGRESS\",\n });\n\n var fw3 = new Gcp.Compute.Firewall(\"fw3\", new()\n {\n Name = \"website-fw-3\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n TargetTags = new[]\n {\n \"load-balanced-backend\",\n },\n Direction = \"INGRESS\",\n });\n\n var fw4 = new Gcp.Compute.Firewall(\"fw4\", new()\n {\n Name = \"website-fw-4\",\n Network = defaultNetwork.Id,\n SourceRanges = new[]\n {\n \"10.129.0.0/26\",\n },\n TargetTags = new[]\n {\n \"load-balanced-backend\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"80\",\n },\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"443\",\n },\n },\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"8000\",\n },\n },\n },\n Direction = \"INGRESS\",\n });\n\n var proxy = new Gcp.Compute.Subnetwork(\"proxy\", new()\n {\n Name = \"website-net-proxy\",\n IpCidrRange = \"10.129.0.0/26\",\n Region = \"us-central1\",\n Network = defaultNetwork.Id,\n Purpose = \"REGIONAL_MANAGED_PROXY\",\n Role = \"ACTIVE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdebianImage, err := compute.LookupImage(ctx, \u0026compute.LookupImageArgs{\n\t\t\tFamily: pulumi.StringRef(\"debian-11\"),\n\t\t\tProject: pulumi.StringRef(\"debian-cloud\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"website-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t\tRoutingMode: pulumi.String(\"REGIONAL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"website-net-default\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.1.2.0/24\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tName: pulumi.String(\"template-website-backend\"),\n\t\t\tMachineType: pulumi.String(\"e2-medium\"),\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(debianImage.SelfLink),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-ssh\"),\n\t\t\t\tpulumi.String(\"load-balanced-backend\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trigm, err := compute.NewRegionInstanceGroupManager(ctx, \"rigm\", \u0026compute.RegionInstanceGroupManagerArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-rigm\"),\n\t\t\tVersions: compute.RegionInstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"internal-glb\"),\n\t\t\tTargetSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionHealthCheck, err := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-hc\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPortSpecification: pulumi.String(\"USE_SERVING_PORT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionBackendService, err := compute.NewRegionBackendService(ctx, \"default\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\n\t\t\tBackends: compute.RegionBackendServiceBackendArray{\n\t\t\t\t\u0026compute.RegionBackendServiceBackendArgs{\n\t\t\t\t\tGroup: rigm.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-backend\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultRegionHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionUrlMap, err := compute.NewRegionUrlMap(ctx, \"default\", \u0026compute.RegionUrlMapArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-map\"),\n\t\t\tDefaultService: defaultRegionBackendService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionTargetHttpProxy, err := compute.NewRegionTargetHttpProxy(ctx, \"default\", \u0026compute.RegionTargetHttpProxyArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"website-proxy\"),\n\t\t\tUrlMap: defaultRegionUrlMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAddress, err := compute.NewAddress(ctx, \"default\", \u0026compute.AddressArgs{\n\t\t\tName: pulumi.String(\"website-ip-1\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetworkTier: pulumi.String(\"STANDARD\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Forwarding rule for Regional External Load Balancing\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"website-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tTarget: defaultRegionTargetHttpProxy.ID(),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tIpAddress: defaultAddress.ID(),\n\t\t\tNetworkTier: pulumi.String(\"STANDARD\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw1\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.2.0/24\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"udp\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"icmp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw2\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-2\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"22\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-ssh\"),\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw3\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-3\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"load-balanced-backend\"),\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFirewall(ctx, \"fw4\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"website-fw-4\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.129.0.0/26\"),\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"load-balanced-backend\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"80\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"443\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"8000\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewSubnetwork(ctx, \"proxy\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"website-net-proxy\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.129.0.0/26\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tPurpose: pulumi.String(\"REGIONAL_MANAGED_PROXY\"),\n\t\t\tRole: pulumi.String(\"ACTIVE\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetImageArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManager;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.RegionBackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxy;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.Address;\nimport com.pulumi.gcp.compute.AddressArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\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 final var debianImage = ComputeFunctions.getImage(GetImageArgs.builder()\n .family(\"debian-11\")\n .project(\"debian-cloud\")\n .build());\n\n var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder() \n .name(\"website-net\")\n .autoCreateSubnetworks(false)\n .routingMode(\"REGIONAL\")\n .build());\n\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"website-net-default\")\n .ipCidrRange(\"10.1.2.0/24\")\n .region(\"us-central1\")\n .network(defaultNetwork.id())\n .build());\n\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .name(\"template-website-backend\")\n .machineType(\"e2-medium\")\n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .network(defaultNetwork.id())\n .subnetwork(defaultSubnetwork.id())\n .build())\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(debianImage.applyValue(getImageResult -\u003e getImageResult.selfLink()))\n .autoDelete(true)\n .boot(true)\n .build())\n .tags( \n \"allow-ssh\",\n \"load-balanced-backend\")\n .build());\n\n var rigm = new RegionInstanceGroupManager(\"rigm\", RegionInstanceGroupManagerArgs.builder() \n .region(\"us-central1\")\n .name(\"website-rigm\")\n .versions(RegionInstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"internal-glb\")\n .targetSize(1)\n .build());\n\n var defaultRegionHealthCheck = new RegionHealthCheck(\"defaultRegionHealthCheck\", RegionHealthCheckArgs.builder() \n .region(\"us-central1\")\n .name(\"website-hc\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .portSpecification(\"USE_SERVING_PORT\")\n .build())\n .build());\n\n var defaultRegionBackendService = new RegionBackendService(\"defaultRegionBackendService\", RegionBackendServiceArgs.builder() \n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .backends(RegionBackendServiceBackendArgs.builder()\n .group(rigm.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .capacityScaler(1)\n .build())\n .region(\"us-central1\")\n .name(\"website-backend\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(defaultRegionHealthCheck.id())\n .build());\n\n var defaultRegionUrlMap = new RegionUrlMap(\"defaultRegionUrlMap\", RegionUrlMapArgs.builder() \n .region(\"us-central1\")\n .name(\"website-map\")\n .defaultService(defaultRegionBackendService.id())\n .build());\n\n var defaultRegionTargetHttpProxy = new RegionTargetHttpProxy(\"defaultRegionTargetHttpProxy\", RegionTargetHttpProxyArgs.builder() \n .region(\"us-central1\")\n .name(\"website-proxy\")\n .urlMap(defaultRegionUrlMap.id())\n .build());\n\n var defaultAddress = new Address(\"defaultAddress\", AddressArgs.builder() \n .name(\"website-ip-1\")\n .region(\"us-central1\")\n .networkTier(\"STANDARD\")\n .build());\n\n // Forwarding rule for Regional External Load Balancing\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"website-forwarding-rule\")\n .region(\"us-central1\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .portRange(\"80\")\n .target(defaultRegionTargetHttpProxy.id())\n .network(defaultNetwork.id())\n .ipAddress(defaultAddress.id())\n .networkTier(\"STANDARD\")\n .build());\n\n var fw1 = new Firewall(\"fw1\", FirewallArgs.builder() \n .name(\"website-fw-1\")\n .network(defaultNetwork.id())\n .sourceRanges(\"10.1.2.0/24\")\n .allows( \n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"udp\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"icmp\")\n .build())\n .direction(\"INGRESS\")\n .build());\n\n var fw2 = new Firewall(\"fw2\", FirewallArgs.builder() \n .name(\"website-fw-2\")\n .network(defaultNetwork.id())\n .sourceRanges(\"0.0.0.0/0\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"22\")\n .build())\n .targetTags(\"allow-ssh\")\n .direction(\"INGRESS\")\n .build());\n\n var fw3 = new Firewall(\"fw3\", FirewallArgs.builder() \n .name(\"website-fw-3\")\n .network(defaultNetwork.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .targetTags(\"load-balanced-backend\")\n .direction(\"INGRESS\")\n .build());\n\n var fw4 = new Firewall(\"fw4\", FirewallArgs.builder() \n .name(\"website-fw-4\")\n .network(defaultNetwork.id())\n .sourceRanges(\"10.129.0.0/26\")\n .targetTags(\"load-balanced-backend\")\n .allows( \n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"80\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"443\")\n .build(),\n FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports(\"8000\")\n .build())\n .direction(\"INGRESS\")\n .build());\n\n var proxy = new Subnetwork(\"proxy\", SubnetworkArgs.builder() \n .name(\"website-net-proxy\")\n .ipCidrRange(\"10.129.0.0/26\")\n .region(\"us-central1\")\n .network(defaultNetwork.id())\n .purpose(\"REGIONAL_MANAGED_PROXY\")\n .role(\"ACTIVE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Forwarding rule for Regional External Load Balancing\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: website-forwarding-rule\n region: us-central1\n ipProtocol: TCP\n loadBalancingScheme: EXTERNAL_MANAGED\n portRange: '80'\n target: ${defaultRegionTargetHttpProxy.id}\n network: ${defaultNetwork.id}\n ipAddress: ${defaultAddress.id}\n networkTier: STANDARD\n defaultRegionTargetHttpProxy:\n type: gcp:compute:RegionTargetHttpProxy\n name: default\n properties:\n region: us-central1\n name: website-proxy\n urlMap: ${defaultRegionUrlMap.id}\n defaultRegionUrlMap:\n type: gcp:compute:RegionUrlMap\n name: default\n properties:\n region: us-central1\n name: website-map\n defaultService: ${defaultRegionBackendService.id}\n defaultRegionBackendService:\n type: gcp:compute:RegionBackendService\n name: default\n properties:\n loadBalancingScheme: EXTERNAL_MANAGED\n backends:\n - group: ${rigm.instanceGroup}\n balancingMode: UTILIZATION\n capacityScaler: 1\n region: us-central1\n name: website-backend\n protocol: HTTP\n timeoutSec: 10\n healthChecks: ${defaultRegionHealthCheck.id}\n rigm:\n type: gcp:compute:RegionInstanceGroupManager\n properties:\n region: us-central1\n name: website-rigm\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: internal-glb\n targetSize: 1\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n name: template-website-backend\n machineType: e2-medium\n networkInterfaces:\n - network: ${defaultNetwork.id}\n subnetwork: ${defaultSubnetwork.id}\n disks:\n - sourceImage: ${debianImage.selfLink}\n autoDelete: true\n boot: true\n tags:\n - allow-ssh\n - load-balanced-backend\n defaultRegionHealthCheck:\n type: gcp:compute:RegionHealthCheck\n name: default\n properties:\n region: us-central1\n name: website-hc\n httpHealthCheck:\n portSpecification: USE_SERVING_PORT\n defaultAddress:\n type: gcp:compute:Address\n name: default\n properties:\n name: website-ip-1\n region: us-central1\n networkTier: STANDARD\n fw1:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-1\n network: ${defaultNetwork.id}\n sourceRanges:\n - 10.1.2.0/24\n allows:\n - protocol: tcp\n - protocol: udp\n - protocol: icmp\n direction: INGRESS\n fw2:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-2\n network: ${defaultNetwork.id}\n sourceRanges:\n - 0.0.0.0/0\n allows:\n - protocol: tcp\n ports:\n - '22'\n targetTags:\n - allow-ssh\n direction: INGRESS\n fw3:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-3\n network: ${defaultNetwork.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n allows:\n - protocol: tcp\n targetTags:\n - load-balanced-backend\n direction: INGRESS\n fw4:\n type: gcp:compute:Firewall\n properties:\n name: website-fw-4\n network: ${defaultNetwork.id}\n sourceRanges:\n - 10.129.0.0/26\n targetTags:\n - load-balanced-backend\n allows:\n - protocol: tcp\n ports:\n - '80'\n - protocol: tcp\n ports:\n - '443'\n - protocol: tcp\n ports:\n - '8000'\n direction: INGRESS\n defaultNetwork:\n type: gcp:compute:Network\n name: default\n properties:\n name: website-net\n autoCreateSubnetworks: false\n routingMode: REGIONAL\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: website-net-default\n ipCidrRange: 10.1.2.0/24\n region: us-central1\n network: ${defaultNetwork.id}\n proxy:\n type: gcp:compute:Subnetwork\n properties:\n name: website-net-proxy\n ipCidrRange: 10.129.0.0/26\n region: us-central1\n network: ${defaultNetwork.id}\n purpose: REGIONAL_MANAGED_PROXY\n role: ACTIVE\nvariables:\n debianImage:\n fn::invoke:\n Function: gcp:compute:getImage\n Arguments:\n family: debian-11\n project: debian-cloud\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Vpc Psc\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\n// Consumer service endpoint\nconst consumerNet = new gcp.compute.Network(\"consumer_net\", {\n name: \"consumer-net\",\n autoCreateSubnetworks: false,\n});\nconst consumerSubnet = new gcp.compute.Subnetwork(\"consumer_subnet\", {\n name: \"consumer-net\",\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n network: consumerNet.id,\n});\nconst consumerAddress = new gcp.compute.Address(\"consumer_address\", {\n name: \"website-ip-1\",\n region: \"us-central1\",\n subnetwork: consumerSubnet.id,\n addressType: \"INTERNAL\",\n});\n// Producer service attachment\nconst producerNet = new gcp.compute.Network(\"producer_net\", {\n name: \"producer-net\",\n autoCreateSubnetworks: false,\n});\nconst pscProducerSubnet = new gcp.compute.Subnetwork(\"psc_producer_subnet\", {\n name: \"producer-psc-net\",\n ipCidrRange: \"10.1.0.0/16\",\n region: \"us-central1\",\n purpose: \"PRIVATE_SERVICE_CONNECT\",\n network: producerNet.id,\n});\nconst producerSubnet = new gcp.compute.Subnetwork(\"producer_subnet\", {\n name: \"producer-net\",\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n network: producerNet.id,\n});\nconst producerServiceHealthCheck = new gcp.compute.HealthCheck(\"producer_service_health_check\", {\n name: \"producer-service-health-check\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst producerServiceBackend = new gcp.compute.RegionBackendService(\"producer_service_backend\", {\n name: \"producer-service-backend\",\n region: \"us-central1\",\n healthChecks: producerServiceHealthCheck.id,\n});\nconst producerTargetService = new gcp.compute.ForwardingRule(\"producer_target_service\", {\n name: \"producer-forwarding-rule\",\n region: \"us-central1\",\n loadBalancingScheme: \"INTERNAL\",\n backendService: producerServiceBackend.id,\n allPorts: true,\n network: producerNet.name,\n subnetwork: producerSubnet.name,\n});\nconst producerServiceAttachment = new gcp.compute.ServiceAttachment(\"producer_service_attachment\", {\n name: \"producer-service\",\n region: \"us-central1\",\n description: \"A service attachment configured with Terraform\",\n enableProxyProtocol: true,\n connectionPreference: \"ACCEPT_AUTOMATIC\",\n natSubnets: [pscProducerSubnet.name],\n targetService: producerTargetService.id,\n});\n// Forwarding rule for VPC private service connect\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"psc-endpoint\",\n region: \"us-central1\",\n loadBalancingScheme: \"\",\n target: producerServiceAttachment.id,\n network: consumerNet.name,\n ipAddress: consumerAddress.id,\n allowPscGlobalAccess: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\n# Consumer service endpoint\nconsumer_net = gcp.compute.Network(\"consumer_net\",\n name=\"consumer-net\",\n auto_create_subnetworks=False)\nconsumer_subnet = gcp.compute.Subnetwork(\"consumer_subnet\",\n name=\"consumer-net\",\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\",\n network=consumer_net.id)\nconsumer_address = gcp.compute.Address(\"consumer_address\",\n name=\"website-ip-1\",\n region=\"us-central1\",\n subnetwork=consumer_subnet.id,\n address_type=\"INTERNAL\")\n# Producer service attachment\nproducer_net = gcp.compute.Network(\"producer_net\",\n name=\"producer-net\",\n auto_create_subnetworks=False)\npsc_producer_subnet = gcp.compute.Subnetwork(\"psc_producer_subnet\",\n name=\"producer-psc-net\",\n ip_cidr_range=\"10.1.0.0/16\",\n region=\"us-central1\",\n purpose=\"PRIVATE_SERVICE_CONNECT\",\n network=producer_net.id)\nproducer_subnet = gcp.compute.Subnetwork(\"producer_subnet\",\n name=\"producer-net\",\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\",\n network=producer_net.id)\nproducer_service_health_check = gcp.compute.HealthCheck(\"producer_service_health_check\",\n name=\"producer-service-health-check\",\n check_interval_sec=1,\n timeout_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\nproducer_service_backend = gcp.compute.RegionBackendService(\"producer_service_backend\",\n name=\"producer-service-backend\",\n region=\"us-central1\",\n health_checks=producer_service_health_check.id)\nproducer_target_service = gcp.compute.ForwardingRule(\"producer_target_service\",\n name=\"producer-forwarding-rule\",\n region=\"us-central1\",\n load_balancing_scheme=\"INTERNAL\",\n backend_service=producer_service_backend.id,\n all_ports=True,\n network=producer_net.name,\n subnetwork=producer_subnet.name)\nproducer_service_attachment = gcp.compute.ServiceAttachment(\"producer_service_attachment\",\n name=\"producer-service\",\n region=\"us-central1\",\n description=\"A service attachment configured with Terraform\",\n enable_proxy_protocol=True,\n connection_preference=\"ACCEPT_AUTOMATIC\",\n nat_subnets=[psc_producer_subnet.name],\n target_service=producer_target_service.id)\n# Forwarding rule for VPC private service connect\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"psc-endpoint\",\n region=\"us-central1\",\n load_balancing_scheme=\"\",\n target=producer_service_attachment.id,\n network=consumer_net.name,\n ip_address=consumer_address.id,\n allow_psc_global_access=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Consumer service endpoint\n var consumerNet = new Gcp.Compute.Network(\"consumer_net\", new()\n {\n Name = \"consumer-net\",\n AutoCreateSubnetworks = false,\n });\n\n var consumerSubnet = new Gcp.Compute.Subnetwork(\"consumer_subnet\", new()\n {\n Name = \"consumer-net\",\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n Network = consumerNet.Id,\n });\n\n var consumerAddress = new Gcp.Compute.Address(\"consumer_address\", new()\n {\n Name = \"website-ip-1\",\n Region = \"us-central1\",\n Subnetwork = consumerSubnet.Id,\n AddressType = \"INTERNAL\",\n });\n\n // Producer service attachment\n var producerNet = new Gcp.Compute.Network(\"producer_net\", new()\n {\n Name = \"producer-net\",\n AutoCreateSubnetworks = false,\n });\n\n var pscProducerSubnet = new Gcp.Compute.Subnetwork(\"psc_producer_subnet\", new()\n {\n Name = \"producer-psc-net\",\n IpCidrRange = \"10.1.0.0/16\",\n Region = \"us-central1\",\n Purpose = \"PRIVATE_SERVICE_CONNECT\",\n Network = producerNet.Id,\n });\n\n var producerSubnet = new Gcp.Compute.Subnetwork(\"producer_subnet\", new()\n {\n Name = \"producer-net\",\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n Network = producerNet.Id,\n });\n\n var producerServiceHealthCheck = new Gcp.Compute.HealthCheck(\"producer_service_health_check\", new()\n {\n Name = \"producer-service-health-check\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var producerServiceBackend = new Gcp.Compute.RegionBackendService(\"producer_service_backend\", new()\n {\n Name = \"producer-service-backend\",\n Region = \"us-central1\",\n HealthChecks = producerServiceHealthCheck.Id,\n });\n\n var producerTargetService = new Gcp.Compute.ForwardingRule(\"producer_target_service\", new()\n {\n Name = \"producer-forwarding-rule\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"INTERNAL\",\n BackendService = producerServiceBackend.Id,\n AllPorts = true,\n Network = producerNet.Name,\n Subnetwork = producerSubnet.Name,\n });\n\n var producerServiceAttachment = new Gcp.Compute.ServiceAttachment(\"producer_service_attachment\", new()\n {\n Name = \"producer-service\",\n Region = \"us-central1\",\n Description = \"A service attachment configured with Terraform\",\n EnableProxyProtocol = true,\n ConnectionPreference = \"ACCEPT_AUTOMATIC\",\n NatSubnets = new[]\n {\n pscProducerSubnet.Name,\n },\n TargetService = producerTargetService.Id,\n });\n\n // Forwarding rule for VPC private service connect\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"psc-endpoint\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"\",\n Target = producerServiceAttachment.Id,\n Network = consumerNet.Name,\n IpAddress = consumerAddress.Id,\n AllowPscGlobalAccess = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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// Consumer service endpoint\n\t\tconsumerNet, err := compute.NewNetwork(ctx, \"consumer_net\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"consumer-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconsumerSubnet, err := compute.NewSubnetwork(ctx, \"consumer_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"consumer-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: consumerNet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconsumerAddress, err := compute.NewAddress(ctx, \"consumer_address\", \u0026compute.AddressArgs{\n\t\t\tName: pulumi.String(\"website-ip-1\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSubnetwork: consumerSubnet.ID(),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Producer service attachment\n\t\tproducerNet, err := compute.NewNetwork(ctx, \"producer_net\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"producer-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpscProducerSubnet, err := compute.NewSubnetwork(ctx, \"psc_producer_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"producer-psc-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.1.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPurpose: pulumi.String(\"PRIVATE_SERVICE_CONNECT\"),\n\t\t\tNetwork: producerNet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerSubnet, err := compute.NewSubnetwork(ctx, \"producer_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"producer-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: producerNet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerServiceHealthCheck, err := compute.NewHealthCheck(ctx, \"producer_service_health_check\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"producer-service-health-check\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerServiceBackend, err := compute.NewRegionBackendService(ctx, \"producer_service_backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"producer-service-backend\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tHealthChecks: producerServiceHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerTargetService, err := compute.NewForwardingRule(ctx, \"producer_target_service\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"producer-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL\"),\n\t\t\tBackendService: producerServiceBackend.ID(),\n\t\t\tAllPorts: pulumi.Bool(true),\n\t\t\tNetwork: producerNet.Name,\n\t\t\tSubnetwork: producerSubnet.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerServiceAttachment, err := compute.NewServiceAttachment(ctx, \"producer_service_attachment\", \u0026compute.ServiceAttachmentArgs{\n\t\t\tName: pulumi.String(\"producer-service\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"A service attachment configured with Terraform\"),\n\t\t\tEnableProxyProtocol: pulumi.Bool(true),\n\t\t\tConnectionPreference: pulumi.String(\"ACCEPT_AUTOMATIC\"),\n\t\t\tNatSubnets: pulumi.StringArray{\n\t\t\t\tpscProducerSubnet.Name,\n\t\t\t},\n\t\t\tTargetService: producerTargetService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Forwarding rule for VPC private service connect\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"psc-endpoint\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"\"),\n\t\t\tTarget: producerServiceAttachment.ID(),\n\t\t\tNetwork: consumerNet.Name,\n\t\t\tIpAddress: consumerAddress.ID(),\n\t\t\tAllowPscGlobalAccess: pulumi.Bool(true),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.Address;\nimport com.pulumi.gcp.compute.AddressArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.compute.ServiceAttachment;\nimport com.pulumi.gcp.compute.ServiceAttachmentArgs;\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 // Consumer service endpoint\n var consumerNet = new Network(\"consumerNet\", NetworkArgs.builder() \n .name(\"consumer-net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var consumerSubnet = new Subnetwork(\"consumerSubnet\", SubnetworkArgs.builder() \n .name(\"consumer-net\")\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .network(consumerNet.id())\n .build());\n\n var consumerAddress = new Address(\"consumerAddress\", AddressArgs.builder() \n .name(\"website-ip-1\")\n .region(\"us-central1\")\n .subnetwork(consumerSubnet.id())\n .addressType(\"INTERNAL\")\n .build());\n\n // Producer service attachment\n var producerNet = new Network(\"producerNet\", NetworkArgs.builder() \n .name(\"producer-net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var pscProducerSubnet = new Subnetwork(\"pscProducerSubnet\", SubnetworkArgs.builder() \n .name(\"producer-psc-net\")\n .ipCidrRange(\"10.1.0.0/16\")\n .region(\"us-central1\")\n .purpose(\"PRIVATE_SERVICE_CONNECT\")\n .network(producerNet.id())\n .build());\n\n var producerSubnet = new Subnetwork(\"producerSubnet\", SubnetworkArgs.builder() \n .name(\"producer-net\")\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .network(producerNet.id())\n .build());\n\n var producerServiceHealthCheck = new HealthCheck(\"producerServiceHealthCheck\", HealthCheckArgs.builder() \n .name(\"producer-service-health-check\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n var producerServiceBackend = new RegionBackendService(\"producerServiceBackend\", RegionBackendServiceArgs.builder() \n .name(\"producer-service-backend\")\n .region(\"us-central1\")\n .healthChecks(producerServiceHealthCheck.id())\n .build());\n\n var producerTargetService = new ForwardingRule(\"producerTargetService\", ForwardingRuleArgs.builder() \n .name(\"producer-forwarding-rule\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"INTERNAL\")\n .backendService(producerServiceBackend.id())\n .allPorts(true)\n .network(producerNet.name())\n .subnetwork(producerSubnet.name())\n .build());\n\n var producerServiceAttachment = new ServiceAttachment(\"producerServiceAttachment\", ServiceAttachmentArgs.builder() \n .name(\"producer-service\")\n .region(\"us-central1\")\n .description(\"A service attachment configured with Terraform\")\n .enableProxyProtocol(true)\n .connectionPreference(\"ACCEPT_AUTOMATIC\")\n .natSubnets(pscProducerSubnet.name())\n .targetService(producerTargetService.id())\n .build());\n\n // Forwarding rule for VPC private service connect\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"psc-endpoint\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"\")\n .target(producerServiceAttachment.id())\n .network(consumerNet.name())\n .ipAddress(consumerAddress.id())\n .allowPscGlobalAccess(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Forwarding rule for VPC private service connect\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: psc-endpoint\n region: us-central1\n loadBalancingScheme:\n target: ${producerServiceAttachment.id}\n network: ${consumerNet.name}\n ipAddress: ${consumerAddress.id}\n allowPscGlobalAccess: true\n # Consumer service endpoint\n consumerNet:\n type: gcp:compute:Network\n name: consumer_net\n properties:\n name: consumer-net\n autoCreateSubnetworks: false\n consumerSubnet:\n type: gcp:compute:Subnetwork\n name: consumer_subnet\n properties:\n name: consumer-net\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n network: ${consumerNet.id}\n consumerAddress:\n type: gcp:compute:Address\n name: consumer_address\n properties:\n name: website-ip-1\n region: us-central1\n subnetwork: ${consumerSubnet.id}\n addressType: INTERNAL\n # Producer service attachment\n producerNet:\n type: gcp:compute:Network\n name: producer_net\n properties:\n name: producer-net\n autoCreateSubnetworks: false\n producerSubnet:\n type: gcp:compute:Subnetwork\n name: producer_subnet\n properties:\n name: producer-net\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n network: ${producerNet.id}\n pscProducerSubnet:\n type: gcp:compute:Subnetwork\n name: psc_producer_subnet\n properties:\n name: producer-psc-net\n ipCidrRange: 10.1.0.0/16\n region: us-central1\n purpose: PRIVATE_SERVICE_CONNECT\n network: ${producerNet.id}\n producerServiceAttachment:\n type: gcp:compute:ServiceAttachment\n name: producer_service_attachment\n properties:\n name: producer-service\n region: us-central1\n description: A service attachment configured with Terraform\n enableProxyProtocol: true\n connectionPreference: ACCEPT_AUTOMATIC\n natSubnets:\n - ${pscProducerSubnet.name}\n targetService: ${producerTargetService.id}\n producerTargetService:\n type: gcp:compute:ForwardingRule\n name: producer_target_service\n properties:\n name: producer-forwarding-rule\n region: us-central1\n loadBalancingScheme: INTERNAL\n backendService: ${producerServiceBackend.id}\n allPorts: true\n network: ${producerNet.name}\n subnetwork: ${producerSubnet.name}\n producerServiceBackend:\n type: gcp:compute:RegionBackendService\n name: producer_service_backend\n properties:\n name: producer-service-backend\n region: us-central1\n healthChecks: ${producerServiceHealthCheck.id}\n producerServiceHealthCheck:\n type: gcp:compute:HealthCheck\n name: producer_service_health_check\n properties:\n name: producer-service-health-check\n checkIntervalSec: 1\n timeoutSec: 1\n tcpHealthCheck:\n port: '80'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Vpc Psc No Automate Dns\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst consumerNet = new gcp.compute.Network(\"consumer_net\", {\n name: \"consumer-net\",\n autoCreateSubnetworks: false,\n});\nconst consumerSubnet = new gcp.compute.Subnetwork(\"consumer_subnet\", {\n name: \"consumer-net\",\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n network: consumerNet.id,\n});\nconst consumerAddress = new gcp.compute.Address(\"consumer_address\", {\n name: \"website-ip-1\",\n region: \"us-central1\",\n subnetwork: consumerSubnet.id,\n addressType: \"INTERNAL\",\n});\nconst producerNet = new gcp.compute.Network(\"producer_net\", {\n name: \"producer-net\",\n autoCreateSubnetworks: false,\n});\nconst pscProducerSubnet = new gcp.compute.Subnetwork(\"psc_producer_subnet\", {\n name: \"producer-psc-net\",\n ipCidrRange: \"10.1.0.0/16\",\n region: \"us-central1\",\n purpose: \"PRIVATE_SERVICE_CONNECT\",\n network: producerNet.id,\n});\nconst producerSubnet = new gcp.compute.Subnetwork(\"producer_subnet\", {\n name: \"producer-net\",\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n network: producerNet.id,\n});\nconst producerServiceHealthCheck = new gcp.compute.HealthCheck(\"producer_service_health_check\", {\n name: \"producer-service-health-check\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst producerServiceBackend = new gcp.compute.RegionBackendService(\"producer_service_backend\", {\n name: \"producer-service-backend\",\n region: \"us-central1\",\n healthChecks: producerServiceHealthCheck.id,\n});\nconst producerTargetService = new gcp.compute.ForwardingRule(\"producer_target_service\", {\n name: \"producer-forwarding-rule\",\n region: \"us-central1\",\n loadBalancingScheme: \"INTERNAL\",\n backendService: producerServiceBackend.id,\n allPorts: true,\n network: producerNet.name,\n subnetwork: producerSubnet.name,\n});\nconst producerServiceAttachment = new gcp.compute.ServiceAttachment(\"producer_service_attachment\", {\n name: \"producer-service\",\n region: \"us-central1\",\n description: \"A service attachment configured with Terraform\",\n enableProxyProtocol: true,\n connectionPreference: \"ACCEPT_AUTOMATIC\",\n natSubnets: [pscProducerSubnet.name],\n targetService: producerTargetService.id,\n});\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"psc-endpoint\",\n region: \"us-central1\",\n loadBalancingScheme: \"\",\n target: producerServiceAttachment.id,\n network: consumerNet.name,\n ipAddress: consumerAddress.id,\n allowPscGlobalAccess: true,\n noAutomateDnsZone: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nconsumer_net = gcp.compute.Network(\"consumer_net\",\n name=\"consumer-net\",\n auto_create_subnetworks=False)\nconsumer_subnet = gcp.compute.Subnetwork(\"consumer_subnet\",\n name=\"consumer-net\",\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\",\n network=consumer_net.id)\nconsumer_address = gcp.compute.Address(\"consumer_address\",\n name=\"website-ip-1\",\n region=\"us-central1\",\n subnetwork=consumer_subnet.id,\n address_type=\"INTERNAL\")\nproducer_net = gcp.compute.Network(\"producer_net\",\n name=\"producer-net\",\n auto_create_subnetworks=False)\npsc_producer_subnet = gcp.compute.Subnetwork(\"psc_producer_subnet\",\n name=\"producer-psc-net\",\n ip_cidr_range=\"10.1.0.0/16\",\n region=\"us-central1\",\n purpose=\"PRIVATE_SERVICE_CONNECT\",\n network=producer_net.id)\nproducer_subnet = gcp.compute.Subnetwork(\"producer_subnet\",\n name=\"producer-net\",\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\",\n network=producer_net.id)\nproducer_service_health_check = gcp.compute.HealthCheck(\"producer_service_health_check\",\n name=\"producer-service-health-check\",\n check_interval_sec=1,\n timeout_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\nproducer_service_backend = gcp.compute.RegionBackendService(\"producer_service_backend\",\n name=\"producer-service-backend\",\n region=\"us-central1\",\n health_checks=producer_service_health_check.id)\nproducer_target_service = gcp.compute.ForwardingRule(\"producer_target_service\",\n name=\"producer-forwarding-rule\",\n region=\"us-central1\",\n load_balancing_scheme=\"INTERNAL\",\n backend_service=producer_service_backend.id,\n all_ports=True,\n network=producer_net.name,\n subnetwork=producer_subnet.name)\nproducer_service_attachment = gcp.compute.ServiceAttachment(\"producer_service_attachment\",\n name=\"producer-service\",\n region=\"us-central1\",\n description=\"A service attachment configured with Terraform\",\n enable_proxy_protocol=True,\n connection_preference=\"ACCEPT_AUTOMATIC\",\n nat_subnets=[psc_producer_subnet.name],\n target_service=producer_target_service.id)\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"psc-endpoint\",\n region=\"us-central1\",\n load_balancing_scheme=\"\",\n target=producer_service_attachment.id,\n network=consumer_net.name,\n ip_address=consumer_address.id,\n allow_psc_global_access=True,\n no_automate_dns_zone=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var consumerNet = new Gcp.Compute.Network(\"consumer_net\", new()\n {\n Name = \"consumer-net\",\n AutoCreateSubnetworks = false,\n });\n\n var consumerSubnet = new Gcp.Compute.Subnetwork(\"consumer_subnet\", new()\n {\n Name = \"consumer-net\",\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n Network = consumerNet.Id,\n });\n\n var consumerAddress = new Gcp.Compute.Address(\"consumer_address\", new()\n {\n Name = \"website-ip-1\",\n Region = \"us-central1\",\n Subnetwork = consumerSubnet.Id,\n AddressType = \"INTERNAL\",\n });\n\n var producerNet = new Gcp.Compute.Network(\"producer_net\", new()\n {\n Name = \"producer-net\",\n AutoCreateSubnetworks = false,\n });\n\n var pscProducerSubnet = new Gcp.Compute.Subnetwork(\"psc_producer_subnet\", new()\n {\n Name = \"producer-psc-net\",\n IpCidrRange = \"10.1.0.0/16\",\n Region = \"us-central1\",\n Purpose = \"PRIVATE_SERVICE_CONNECT\",\n Network = producerNet.Id,\n });\n\n var producerSubnet = new Gcp.Compute.Subnetwork(\"producer_subnet\", new()\n {\n Name = \"producer-net\",\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n Network = producerNet.Id,\n });\n\n var producerServiceHealthCheck = new Gcp.Compute.HealthCheck(\"producer_service_health_check\", new()\n {\n Name = \"producer-service-health-check\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var producerServiceBackend = new Gcp.Compute.RegionBackendService(\"producer_service_backend\", new()\n {\n Name = \"producer-service-backend\",\n Region = \"us-central1\",\n HealthChecks = producerServiceHealthCheck.Id,\n });\n\n var producerTargetService = new Gcp.Compute.ForwardingRule(\"producer_target_service\", new()\n {\n Name = \"producer-forwarding-rule\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"INTERNAL\",\n BackendService = producerServiceBackend.Id,\n AllPorts = true,\n Network = producerNet.Name,\n Subnetwork = producerSubnet.Name,\n });\n\n var producerServiceAttachment = new Gcp.Compute.ServiceAttachment(\"producer_service_attachment\", new()\n {\n Name = \"producer-service\",\n Region = \"us-central1\",\n Description = \"A service attachment configured with Terraform\",\n EnableProxyProtocol = true,\n ConnectionPreference = \"ACCEPT_AUTOMATIC\",\n NatSubnets = new[]\n {\n pscProducerSubnet.Name,\n },\n TargetService = producerTargetService.Id,\n });\n\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"psc-endpoint\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"\",\n Target = producerServiceAttachment.Id,\n Network = consumerNet.Name,\n IpAddress = consumerAddress.Id,\n AllowPscGlobalAccess = true,\n NoAutomateDnsZone = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tconsumerNet, err := compute.NewNetwork(ctx, \"consumer_net\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"consumer-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconsumerSubnet, err := compute.NewSubnetwork(ctx, \"consumer_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"consumer-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: consumerNet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconsumerAddress, err := compute.NewAddress(ctx, \"consumer_address\", \u0026compute.AddressArgs{\n\t\t\tName: pulumi.String(\"website-ip-1\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSubnetwork: consumerSubnet.ID(),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerNet, err := compute.NewNetwork(ctx, \"producer_net\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"producer-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpscProducerSubnet, err := compute.NewSubnetwork(ctx, \"psc_producer_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"producer-psc-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.1.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPurpose: pulumi.String(\"PRIVATE_SERVICE_CONNECT\"),\n\t\t\tNetwork: producerNet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerSubnet, err := compute.NewSubnetwork(ctx, \"producer_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"producer-net\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: producerNet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerServiceHealthCheck, err := compute.NewHealthCheck(ctx, \"producer_service_health_check\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"producer-service-health-check\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerServiceBackend, err := compute.NewRegionBackendService(ctx, \"producer_service_backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"producer-service-backend\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tHealthChecks: producerServiceHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerTargetService, err := compute.NewForwardingRule(ctx, \"producer_target_service\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"producer-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL\"),\n\t\t\tBackendService: producerServiceBackend.ID(),\n\t\t\tAllPorts: pulumi.Bool(true),\n\t\t\tNetwork: producerNet.Name,\n\t\t\tSubnetwork: producerSubnet.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproducerServiceAttachment, err := compute.NewServiceAttachment(ctx, \"producer_service_attachment\", \u0026compute.ServiceAttachmentArgs{\n\t\t\tName: pulumi.String(\"producer-service\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"A service attachment configured with Terraform\"),\n\t\t\tEnableProxyProtocol: pulumi.Bool(true),\n\t\t\tConnectionPreference: pulumi.String(\"ACCEPT_AUTOMATIC\"),\n\t\t\tNatSubnets: pulumi.StringArray{\n\t\t\t\tpscProducerSubnet.Name,\n\t\t\t},\n\t\t\tTargetService: producerTargetService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"psc-endpoint\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"\"),\n\t\t\tTarget: producerServiceAttachment.ID(),\n\t\t\tNetwork: consumerNet.Name,\n\t\t\tIpAddress: consumerAddress.ID(),\n\t\t\tAllowPscGlobalAccess: pulumi.Bool(true),\n\t\t\tNoAutomateDnsZone: pulumi.Bool(true),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.Address;\nimport com.pulumi.gcp.compute.AddressArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.compute.ServiceAttachment;\nimport com.pulumi.gcp.compute.ServiceAttachmentArgs;\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 consumerNet = new Network(\"consumerNet\", NetworkArgs.builder() \n .name(\"consumer-net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var consumerSubnet = new Subnetwork(\"consumerSubnet\", SubnetworkArgs.builder() \n .name(\"consumer-net\")\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .network(consumerNet.id())\n .build());\n\n var consumerAddress = new Address(\"consumerAddress\", AddressArgs.builder() \n .name(\"website-ip-1\")\n .region(\"us-central1\")\n .subnetwork(consumerSubnet.id())\n .addressType(\"INTERNAL\")\n .build());\n\n var producerNet = new Network(\"producerNet\", NetworkArgs.builder() \n .name(\"producer-net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var pscProducerSubnet = new Subnetwork(\"pscProducerSubnet\", SubnetworkArgs.builder() \n .name(\"producer-psc-net\")\n .ipCidrRange(\"10.1.0.0/16\")\n .region(\"us-central1\")\n .purpose(\"PRIVATE_SERVICE_CONNECT\")\n .network(producerNet.id())\n .build());\n\n var producerSubnet = new Subnetwork(\"producerSubnet\", SubnetworkArgs.builder() \n .name(\"producer-net\")\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .network(producerNet.id())\n .build());\n\n var producerServiceHealthCheck = new HealthCheck(\"producerServiceHealthCheck\", HealthCheckArgs.builder() \n .name(\"producer-service-health-check\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n var producerServiceBackend = new RegionBackendService(\"producerServiceBackend\", RegionBackendServiceArgs.builder() \n .name(\"producer-service-backend\")\n .region(\"us-central1\")\n .healthChecks(producerServiceHealthCheck.id())\n .build());\n\n var producerTargetService = new ForwardingRule(\"producerTargetService\", ForwardingRuleArgs.builder() \n .name(\"producer-forwarding-rule\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"INTERNAL\")\n .backendService(producerServiceBackend.id())\n .allPorts(true)\n .network(producerNet.name())\n .subnetwork(producerSubnet.name())\n .build());\n\n var producerServiceAttachment = new ServiceAttachment(\"producerServiceAttachment\", ServiceAttachmentArgs.builder() \n .name(\"producer-service\")\n .region(\"us-central1\")\n .description(\"A service attachment configured with Terraform\")\n .enableProxyProtocol(true)\n .connectionPreference(\"ACCEPT_AUTOMATIC\")\n .natSubnets(pscProducerSubnet.name())\n .targetService(producerTargetService.id())\n .build());\n\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"psc-endpoint\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"\")\n .target(producerServiceAttachment.id())\n .network(consumerNet.name())\n .ipAddress(consumerAddress.id())\n .allowPscGlobalAccess(true)\n .noAutomateDnsZone(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: psc-endpoint\n region: us-central1\n loadBalancingScheme:\n target: ${producerServiceAttachment.id}\n network: ${consumerNet.name}\n ipAddress: ${consumerAddress.id}\n allowPscGlobalAccess: true\n noAutomateDnsZone: true\n consumerNet:\n type: gcp:compute:Network\n name: consumer_net\n properties:\n name: consumer-net\n autoCreateSubnetworks: false\n consumerSubnet:\n type: gcp:compute:Subnetwork\n name: consumer_subnet\n properties:\n name: consumer-net\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n network: ${consumerNet.id}\n consumerAddress:\n type: gcp:compute:Address\n name: consumer_address\n properties:\n name: website-ip-1\n region: us-central1\n subnetwork: ${consumerSubnet.id}\n addressType: INTERNAL\n producerNet:\n type: gcp:compute:Network\n name: producer_net\n properties:\n name: producer-net\n autoCreateSubnetworks: false\n producerSubnet:\n type: gcp:compute:Subnetwork\n name: producer_subnet\n properties:\n name: producer-net\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n network: ${producerNet.id}\n pscProducerSubnet:\n type: gcp:compute:Subnetwork\n name: psc_producer_subnet\n properties:\n name: producer-psc-net\n ipCidrRange: 10.1.0.0/16\n region: us-central1\n purpose: PRIVATE_SERVICE_CONNECT\n network: ${producerNet.id}\n producerServiceAttachment:\n type: gcp:compute:ServiceAttachment\n name: producer_service_attachment\n properties:\n name: producer-service\n region: us-central1\n description: A service attachment configured with Terraform\n enableProxyProtocol: true\n connectionPreference: ACCEPT_AUTOMATIC\n natSubnets:\n - ${pscProducerSubnet.name}\n targetService: ${producerTargetService.id}\n producerTargetService:\n type: gcp:compute:ForwardingRule\n name: producer_target_service\n properties:\n name: producer-forwarding-rule\n region: us-central1\n loadBalancingScheme: INTERNAL\n backendService: ${producerServiceBackend.id}\n allPorts: true\n network: ${producerNet.name}\n subnetwork: ${producerSubnet.name}\n producerServiceBackend:\n type: gcp:compute:RegionBackendService\n name: producer_service_backend\n properties:\n name: producer-service-backend\n region: us-central1\n healthChecks: ${producerServiceHealthCheck.id}\n producerServiceHealthCheck:\n type: gcp:compute:HealthCheck\n name: producer_service_health_check\n properties:\n name: producer-service-health-check\n checkIntervalSec: 1\n timeoutSec: 1\n tcpHealthCheck:\n port: '80'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Regional Steering\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basic = new gcp.compute.Address(\"basic\", {\n name: \"website-ip\",\n region: \"us-central1\",\n});\nconst external = new gcp.compute.RegionBackendService(\"external\", {\n name: \"service-backend\",\n region: \"us-central1\",\n loadBalancingScheme: \"EXTERNAL\",\n});\nconst steering = new gcp.compute.ForwardingRule(\"steering\", {\n name: \"steering-rule\",\n region: \"us-central1\",\n ipAddress: basic.selfLink,\n backendService: external.selfLink,\n loadBalancingScheme: \"EXTERNAL\",\n sourceIpRanges: [\n \"34.121.88.0/24\",\n \"35.187.239.137\",\n ],\n});\nconst externalForwardingRule = new gcp.compute.ForwardingRule(\"external\", {\n name: \"external-forwarding-rule\",\n region: \"us-central1\",\n ipAddress: basic.selfLink,\n backendService: external.selfLink,\n loadBalancingScheme: \"EXTERNAL\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic = gcp.compute.Address(\"basic\",\n name=\"website-ip\",\n region=\"us-central1\")\nexternal = gcp.compute.RegionBackendService(\"external\",\n name=\"service-backend\",\n region=\"us-central1\",\n load_balancing_scheme=\"EXTERNAL\")\nsteering = gcp.compute.ForwardingRule(\"steering\",\n name=\"steering-rule\",\n region=\"us-central1\",\n ip_address=basic.self_link,\n backend_service=external.self_link,\n load_balancing_scheme=\"EXTERNAL\",\n source_ip_ranges=[\n \"34.121.88.0/24\",\n \"35.187.239.137\",\n ])\nexternal_forwarding_rule = gcp.compute.ForwardingRule(\"external\",\n name=\"external-forwarding-rule\",\n region=\"us-central1\",\n ip_address=basic.self_link,\n backend_service=external.self_link,\n load_balancing_scheme=\"EXTERNAL\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basic = new Gcp.Compute.Address(\"basic\", new()\n {\n Name = \"website-ip\",\n Region = \"us-central1\",\n });\n\n var external = new Gcp.Compute.RegionBackendService(\"external\", new()\n {\n Name = \"service-backend\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"EXTERNAL\",\n });\n\n var steering = new Gcp.Compute.ForwardingRule(\"steering\", new()\n {\n Name = \"steering-rule\",\n Region = \"us-central1\",\n IpAddress = basic.SelfLink,\n BackendService = external.SelfLink,\n LoadBalancingScheme = \"EXTERNAL\",\n SourceIpRanges = new[]\n {\n \"34.121.88.0/24\",\n \"35.187.239.137\",\n },\n });\n\n var externalForwardingRule = new Gcp.Compute.ForwardingRule(\"external\", new()\n {\n Name = \"external-forwarding-rule\",\n Region = \"us-central1\",\n IpAddress = basic.SelfLink,\n BackendService = external.SelfLink,\n LoadBalancingScheme = \"EXTERNAL\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbasic, err := compute.NewAddress(ctx, \"basic\", \u0026compute.AddressArgs{\n\t\t\tName: pulumi.String(\"website-ip\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texternal, err := compute.NewRegionBackendService(ctx, \"external\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"service-backend\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewForwardingRule(ctx, \"steering\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"steering-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tIpAddress: basic.SelfLink,\n\t\t\tBackendService: external.SelfLink,\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tSourceIpRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"34.121.88.0/24\"),\n\t\t\t\tpulumi.String(\"35.187.239.137\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewForwardingRule(ctx, \"external\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"external-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tIpAddress: basic.SelfLink,\n\t\t\tBackendService: external.SelfLink,\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Address;\nimport com.pulumi.gcp.compute.AddressArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\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 basic = new Address(\"basic\", AddressArgs.builder() \n .name(\"website-ip\")\n .region(\"us-central1\")\n .build());\n\n var external = new RegionBackendService(\"external\", RegionBackendServiceArgs.builder() \n .name(\"service-backend\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"EXTERNAL\")\n .build());\n\n var steering = new ForwardingRule(\"steering\", ForwardingRuleArgs.builder() \n .name(\"steering-rule\")\n .region(\"us-central1\")\n .ipAddress(basic.selfLink())\n .backendService(external.selfLink())\n .loadBalancingScheme(\"EXTERNAL\")\n .sourceIpRanges( \n \"34.121.88.0/24\",\n \"35.187.239.137\")\n .build());\n\n var externalForwardingRule = new ForwardingRule(\"externalForwardingRule\", ForwardingRuleArgs.builder() \n .name(\"external-forwarding-rule\")\n .region(\"us-central1\")\n .ipAddress(basic.selfLink())\n .backendService(external.selfLink())\n .loadBalancingScheme(\"EXTERNAL\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n steering:\n type: gcp:compute:ForwardingRule\n properties:\n name: steering-rule\n region: us-central1\n ipAddress: ${basic.selfLink}\n backendService: ${external.selfLink}\n loadBalancingScheme: EXTERNAL\n sourceIpRanges:\n - 34.121.88.0/24\n - 35.187.239.137\n basic:\n type: gcp:compute:Address\n properties:\n name: website-ip\n region: us-central1\n external:\n type: gcp:compute:RegionBackendService\n properties:\n name: service-backend\n region: us-central1\n loadBalancingScheme: EXTERNAL\n externalForwardingRule:\n type: gcp:compute:ForwardingRule\n name: external\n properties:\n name: external-forwarding-rule\n region: us-central1\n ipAddress: ${basic.selfLink}\n backendService: ${external.selfLink}\n loadBalancingScheme: EXTERNAL\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Forwarding Rule Internallb Ipv6\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst hc = new gcp.compute.HealthCheck(\"hc\", {\n name: \"check-ilb-ipv6-backend\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst backend = new gcp.compute.RegionBackendService(\"backend\", {\n name: \"ilb-ipv6-backend\",\n region: \"us-central1\",\n healthChecks: hc.id,\n});\nconst defaultNetwork = new gcp.compute.Network(\"default\", {\n name: \"net-ipv6\",\n autoCreateSubnetworks: false,\n enableUlaInternalIpv6: true,\n});\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"subnet-internal-ipv6\",\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n stackType: \"IPV4_IPV6\",\n ipv6AccessType: \"INTERNAL\",\n network: defaultNetwork.id,\n});\n// Forwarding rule for Internal Load Balancing\nconst _default = new gcp.compute.ForwardingRule(\"default\", {\n name: \"ilb-ipv6-forwarding-rule\",\n region: \"us-central1\",\n loadBalancingScheme: \"INTERNAL\",\n backendService: backend.id,\n allPorts: true,\n network: defaultNetwork.name,\n subnetwork: defaultSubnetwork.name,\n ipVersion: \"IPV6\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhc = gcp.compute.HealthCheck(\"hc\",\n name=\"check-ilb-ipv6-backend\",\n check_interval_sec=1,\n timeout_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\nbackend = gcp.compute.RegionBackendService(\"backend\",\n name=\"ilb-ipv6-backend\",\n region=\"us-central1\",\n health_checks=hc.id)\ndefault_network = gcp.compute.Network(\"default\",\n name=\"net-ipv6\",\n auto_create_subnetworks=False,\n enable_ula_internal_ipv6=True)\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"subnet-internal-ipv6\",\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\",\n stack_type=\"IPV4_IPV6\",\n ipv6_access_type=\"INTERNAL\",\n network=default_network.id)\n# Forwarding rule for Internal Load Balancing\ndefault = gcp.compute.ForwardingRule(\"default\",\n name=\"ilb-ipv6-forwarding-rule\",\n region=\"us-central1\",\n load_balancing_scheme=\"INTERNAL\",\n backend_service=backend.id,\n all_ports=True,\n network=default_network.name,\n subnetwork=default_subnetwork.name,\n ip_version=\"IPV6\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var hc = new Gcp.Compute.HealthCheck(\"hc\", new()\n {\n Name = \"check-ilb-ipv6-backend\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var backend = new Gcp.Compute.RegionBackendService(\"backend\", new()\n {\n Name = \"ilb-ipv6-backend\",\n Region = \"us-central1\",\n HealthChecks = hc.Id,\n });\n\n var defaultNetwork = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"net-ipv6\",\n AutoCreateSubnetworks = false,\n EnableUlaInternalIpv6 = true,\n });\n\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"subnet-internal-ipv6\",\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n StackType = \"IPV4_IPV6\",\n Ipv6AccessType = \"INTERNAL\",\n Network = defaultNetwork.Id,\n });\n\n // Forwarding rule for Internal Load Balancing\n var @default = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"ilb-ipv6-forwarding-rule\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"INTERNAL\",\n BackendService = backend.Id,\n AllPorts = true,\n Network = defaultNetwork.Name,\n Subnetwork = defaultSubnetwork.Name,\n IpVersion = \"IPV6\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thc, err := compute.NewHealthCheck(ctx, \"hc\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"check-ilb-ipv6-backend\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbackend, err := compute.NewRegionBackendService(ctx, \"backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"ilb-ipv6-backend\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tHealthChecks: hc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"net-ipv6\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t\tEnableUlaInternalIpv6: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"subnet-internal-ipv6\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tStackType: pulumi.String(\"IPV4_IPV6\"),\n\t\t\tIpv6AccessType: pulumi.String(\"INTERNAL\"),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Forwarding rule for Internal Load Balancing\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"ilb-ipv6-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL\"),\n\t\t\tBackendService: backend.ID(),\n\t\t\tAllPorts: pulumi.Bool(true),\n\t\t\tNetwork: defaultNetwork.Name,\n\t\t\tSubnetwork: defaultSubnetwork.Name,\n\t\t\tIpVersion: pulumi.String(\"IPV6\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\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 hc = new HealthCheck(\"hc\", HealthCheckArgs.builder() \n .name(\"check-ilb-ipv6-backend\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n var backend = new RegionBackendService(\"backend\", RegionBackendServiceArgs.builder() \n .name(\"ilb-ipv6-backend\")\n .region(\"us-central1\")\n .healthChecks(hc.id())\n .build());\n\n var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder() \n .name(\"net-ipv6\")\n .autoCreateSubnetworks(false)\n .enableUlaInternalIpv6(true)\n .build());\n\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"subnet-internal-ipv6\")\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .stackType(\"IPV4_IPV6\")\n .ipv6AccessType(\"INTERNAL\")\n .network(defaultNetwork.id())\n .build());\n\n // Forwarding rule for Internal Load Balancing\n var default_ = new ForwardingRule(\"default\", ForwardingRuleArgs.builder() \n .name(\"ilb-ipv6-forwarding-rule\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"INTERNAL\")\n .backendService(backend.id())\n .allPorts(true)\n .network(defaultNetwork.name())\n .subnetwork(defaultSubnetwork.name())\n .ipVersion(\"IPV6\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Forwarding rule for Internal Load Balancing\n default:\n type: gcp:compute:ForwardingRule\n properties:\n name: ilb-ipv6-forwarding-rule\n region: us-central1\n loadBalancingScheme: INTERNAL\n backendService: ${backend.id}\n allPorts: true\n network: ${defaultNetwork.name}\n subnetwork: ${defaultSubnetwork.name}\n ipVersion: IPV6\n backend:\n type: gcp:compute:RegionBackendService\n properties:\n name: ilb-ipv6-backend\n region: us-central1\n healthChecks: ${hc.id}\n hc:\n type: gcp:compute:HealthCheck\n properties:\n name: check-ilb-ipv6-backend\n checkIntervalSec: 1\n timeoutSec: 1\n tcpHealthCheck:\n port: '80'\n defaultNetwork:\n type: gcp:compute:Network\n name: default\n properties:\n name: net-ipv6\n autoCreateSubnetworks: false\n enableUlaInternalIpv6: true\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: subnet-internal-ipv6\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n stackType: IPV4_IPV6\n ipv6AccessType: INTERNAL\n network: ${defaultNetwork.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nForwardingRule can be imported using any of these accepted formats:\n\n* `projects/{{project}}/regions/{{region}}/forwardingRules/{{name}}`\n\n* `{{project}}/{{region}}/{{name}}`\n\n* `{{region}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, ForwardingRule can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/forwardingRule:ForwardingRule default projects/{{project}}/regions/{{region}}/forwardingRules/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/forwardingRule:ForwardingRule default {{project}}/{{region}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/forwardingRule:ForwardingRule default {{region}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/forwardingRule:ForwardingRule default {{name}}\n```\n\n", "properties": { "allPorts": { "type": "boolean", @@ -137748,7 +137748,7 @@ } }, "gcp:compute/globalForwardingRule:GlobalForwardingRule": { - "description": "Represents a GlobalForwardingRule resource. Global forwarding rules are\nused to forward traffic to the correct load balancer for HTTP load\nbalancing. Global forwarding rules can only be used for HTTP load\nbalancing.\n\nFor more information, see\nhttps://cloud.google.com/compute/docs/load-balancing/http/\n\n\n\n## Example Usage\n\n### External Ssl Proxy Lb Mig Backend\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as tls from \"@pulumi/tls\";\n\n// External SSL proxy load balancer with managed instance group backend\n// VPC\nconst _default = new gcp.compute.Network(\"default\", {\n name: \"ssl-proxy-xlb-network\",\n autoCreateSubnetworks: false,\n});\n// backend subnet\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"ssl-proxy-xlb-subnet\",\n ipCidrRange: \"10.0.1.0/24\",\n region: \"us-central1\",\n network: _default.id,\n});\n// reserved IP address\nconst defaultGlobalAddress = new gcp.compute.GlobalAddress(\"default\", {name: \"ssl-proxy-xlb-ip\"});\n// Self-signed regional SSL certificate for testing\nconst defaultPrivateKey = new tls.PrivateKey(\"default\", {\n algorithm: \"RSA\",\n rsaBits: 2048,\n});\nconst defaultSelfSignedCert = new tls.SelfSignedCert(\"default\", {\n keyAlgorithm: defaultPrivateKey.algorithm,\n privateKeyPem: defaultPrivateKey.privateKeyPem,\n validityPeriodHours: 12,\n earlyRenewalHours: 3,\n allowedUses: [\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ],\n dnsNames: [\"example.com\"],\n subject: {\n commonName: \"example.com\",\n organization: \"ACME Examples, Inc\",\n },\n});\nconst defaultSSLCertificate = new gcp.compute.SSLCertificate(\"default\", {\n name: \"default-cert\",\n privateKey: defaultPrivateKey.privateKeyPem,\n certificate: defaultSelfSignedCert.certPem,\n});\nconst defaultHealthCheck = new gcp.compute.HealthCheck(\"default\", {\n name: \"ssl-proxy-health-check\",\n timeoutSec: 1,\n checkIntervalSec: 1,\n tcpHealthCheck: {\n port: 443,\n },\n});\n// instance template\nconst defaultInstanceTemplate = new gcp.compute.InstanceTemplate(\"default\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: _default.id,\n subnetwork: defaultSubnetwork.id,\n }],\n name: \"ssl-proxy-xlb-mig-template\",\n machineType: \"e2-small\",\n tags: [\"allow-health-check\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\nsudo apt-get update\nsudo apt-get install -y apache2 jq\nsudo a2ensite default-ssl\nsudo a2enmod ssl\nsudo service apache2 restart\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003ch1\u003eSSL Load Balancer\u003c/h1\u003e\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\n// MIG\nconst defaultInstanceGroupManager = new gcp.compute.InstanceGroupManager(\"default\", {\n name: \"ssl-proxy-xlb-mig1\",\n zone: \"us-central1-c\",\n namedPorts: [{\n name: \"tcp\",\n port: 443,\n }],\n versions: [{\n instanceTemplate: defaultInstanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// backend service\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"ssl-proxy-xlb-backend-service\",\n protocol: \"SSL\",\n portName: \"tcp\",\n loadBalancingScheme: \"EXTERNAL\",\n timeoutSec: 10,\n healthChecks: defaultHealthCheck.id,\n backends: [{\n group: defaultInstanceGroupManager.instanceGroup,\n balancingMode: \"UTILIZATION\",\n maxUtilization: 1,\n capacityScaler: 1,\n }],\n});\nconst defaultTargetSSLProxy = new gcp.compute.TargetSSLProxy(\"default\", {\n name: \"test-proxy\",\n backendService: defaultBackendService.id,\n sslCertificates: [defaultSSLCertificate.id],\n});\n// forwarding rule\nconst defaultGlobalForwardingRule = new gcp.compute.GlobalForwardingRule(\"default\", {\n name: \"ssl-proxy-xlb-forwarding-rule\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"EXTERNAL\",\n portRange: \"443\",\n target: defaultTargetSSLProxy.id,\n ipAddress: defaultGlobalAddress.id,\n});\n// allow access from health check ranges\nconst defaultFirewall = new gcp.compute.Firewall(\"default\", {\n name: \"ssl-proxy-xlb-fw-allow-hc\",\n direction: \"INGRESS\",\n network: _default.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n targetTags: [\"allow-health-check\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_tls as tls\n\n# External SSL proxy load balancer with managed instance group backend\n# VPC\ndefault = gcp.compute.Network(\"default\",\n name=\"ssl-proxy-xlb-network\",\n auto_create_subnetworks=False)\n# backend subnet\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"ssl-proxy-xlb-subnet\",\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"us-central1\",\n network=default.id)\n# reserved IP address\ndefault_global_address = gcp.compute.GlobalAddress(\"default\", name=\"ssl-proxy-xlb-ip\")\n# Self-signed regional SSL certificate for testing\ndefault_private_key = tls.PrivateKey(\"default\",\n algorithm=\"RSA\",\n rsa_bits=2048)\ndefault_self_signed_cert = tls.SelfSignedCert(\"default\",\n key_algorithm=default_private_key.algorithm,\n private_key_pem=default_private_key.private_key_pem,\n validity_period_hours=12,\n early_renewal_hours=3,\n allowed_uses=[\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ],\n dns_names=[\"example.com\"],\n subject=tls.SelfSignedCertSubjectArgs(\n common_name=\"example.com\",\n organization=\"ACME Examples, Inc\",\n ))\ndefault_ssl_certificate = gcp.compute.SSLCertificate(\"default\",\n name=\"default-cert\",\n private_key=default_private_key.private_key_pem,\n certificate=default_self_signed_cert.cert_pem)\ndefault_health_check = gcp.compute.HealthCheck(\"default\",\n name=\"ssl-proxy-health-check\",\n timeout_sec=1,\n check_interval_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=443,\n ))\n# instance template\ndefault_instance_template = gcp.compute.InstanceTemplate(\"default\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=default.id,\n subnetwork=default_subnetwork.id,\n )],\n name=\"ssl-proxy-xlb-mig-template\",\n machine_type=\"e2-small\",\n tags=[\"allow-health-check\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\nsudo apt-get update\nsudo apt-get install -y apache2 jq\nsudo a2ensite default-ssl\nsudo a2enmod ssl\nsudo service apache2 restart\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003ch1\u003eSSL Load Balancer\u003c/h1\u003e\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\n# MIG\ndefault_instance_group_manager = gcp.compute.InstanceGroupManager(\"default\",\n name=\"ssl-proxy-xlb-mig1\",\n zone=\"us-central1-c\",\n named_ports=[gcp.compute.InstanceGroupManagerNamedPortArgs(\n name=\"tcp\",\n port=443,\n )],\n versions=[gcp.compute.InstanceGroupManagerVersionArgs(\n instance_template=default_instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# backend service\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"ssl-proxy-xlb-backend-service\",\n protocol=\"SSL\",\n port_name=\"tcp\",\n load_balancing_scheme=\"EXTERNAL\",\n timeout_sec=10,\n health_checks=default_health_check.id,\n backends=[gcp.compute.BackendServiceBackendArgs(\n group=default_instance_group_manager.instance_group,\n balancing_mode=\"UTILIZATION\",\n max_utilization=1,\n capacity_scaler=1,\n )])\ndefault_target_ssl_proxy = gcp.compute.TargetSSLProxy(\"default\",\n name=\"test-proxy\",\n backend_service=default_backend_service.id,\n ssl_certificates=[default_ssl_certificate.id])\n# forwarding rule\ndefault_global_forwarding_rule = gcp.compute.GlobalForwardingRule(\"default\",\n name=\"ssl-proxy-xlb-forwarding-rule\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"EXTERNAL\",\n port_range=\"443\",\n target=default_target_ssl_proxy.id,\n ip_address=default_global_address.id)\n# allow access from health check ranges\ndefault_firewall = gcp.compute.Firewall(\"default\",\n name=\"ssl-proxy-xlb-fw-allow-hc\",\n direction=\"INGRESS\",\n network=default.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )],\n target_tags=[\"allow-health-check\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Tls = Pulumi.Tls;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // External SSL proxy load balancer with managed instance group backend\n // VPC\n var @default = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"ssl-proxy-xlb-network\",\n AutoCreateSubnetworks = false,\n });\n\n // backend subnet\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"ssl-proxy-xlb-subnet\",\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"us-central1\",\n Network = @default.Id,\n });\n\n // reserved IP address\n var defaultGlobalAddress = new Gcp.Compute.GlobalAddress(\"default\", new()\n {\n Name = \"ssl-proxy-xlb-ip\",\n });\n\n // Self-signed regional SSL certificate for testing\n var defaultPrivateKey = new Tls.PrivateKey(\"default\", new()\n {\n Algorithm = \"RSA\",\n RsaBits = 2048,\n });\n\n var defaultSelfSignedCert = new Tls.SelfSignedCert(\"default\", new()\n {\n KeyAlgorithm = defaultPrivateKey.Algorithm,\n PrivateKeyPem = defaultPrivateKey.PrivateKeyPem,\n ValidityPeriodHours = 12,\n EarlyRenewalHours = 3,\n AllowedUses = new[]\n {\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n },\n DnsNames = new[]\n {\n \"example.com\",\n },\n Subject = new Tls.Inputs.SelfSignedCertSubjectArgs\n {\n CommonName = \"example.com\",\n Organization = \"ACME Examples, Inc\",\n },\n });\n\n var defaultSSLCertificate = new Gcp.Compute.SSLCertificate(\"default\", new()\n {\n Name = \"default-cert\",\n PrivateKey = defaultPrivateKey.PrivateKeyPem,\n Certificate = defaultSelfSignedCert.CertPem,\n });\n\n var defaultHealthCheck = new Gcp.Compute.HealthCheck(\"default\", new()\n {\n Name = \"ssl-proxy-health-check\",\n TimeoutSec = 1,\n CheckIntervalSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 443,\n },\n });\n\n // instance template\n var defaultInstanceTemplate = new Gcp.Compute.InstanceTemplate(\"default\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = @default.Id,\n Subnetwork = defaultSubnetwork.Id,\n },\n },\n Name = \"ssl-proxy-xlb-mig-template\",\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"allow-health-check\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\nsudo apt-get update\nsudo apt-get install -y apache2 jq\nsudo a2ensite default-ssl\nsudo a2enmod ssl\nsudo service apache2 restart\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003ch1\u003eSSL Load Balancer\u003c/h1\u003e\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n // MIG\n var defaultInstanceGroupManager = new Gcp.Compute.InstanceGroupManager(\"default\", new()\n {\n Name = \"ssl-proxy-xlb-mig1\",\n Zone = \"us-central1-c\",\n NamedPorts = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerNamedPortArgs\n {\n Name = \"tcp\",\n Port = 443,\n },\n },\n Versions = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs\n {\n InstanceTemplate = defaultInstanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // backend service\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"ssl-proxy-xlb-backend-service\",\n Protocol = \"SSL\",\n PortName = \"tcp\",\n LoadBalancingScheme = \"EXTERNAL\",\n TimeoutSec = 10,\n HealthChecks = defaultHealthCheck.Id,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = defaultInstanceGroupManager.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n MaxUtilization = 1,\n CapacityScaler = 1,\n },\n },\n });\n\n var defaultTargetSSLProxy = new Gcp.Compute.TargetSSLProxy(\"default\", new()\n {\n Name = \"test-proxy\",\n BackendService = defaultBackendService.Id,\n SslCertificates = new[]\n {\n defaultSSLCertificate.Id,\n },\n });\n\n // forwarding rule\n var defaultGlobalForwardingRule = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Name = \"ssl-proxy-xlb-forwarding-rule\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"EXTERNAL\",\n PortRange = \"443\",\n Target = defaultTargetSSLProxy.Id,\n IpAddress = defaultGlobalAddress.Id,\n });\n\n // allow access from health check ranges\n var defaultFirewall = new Gcp.Compute.Firewall(\"default\", new()\n {\n Name = \"ssl-proxy-xlb-fw-allow-hc\",\n Direction = \"INGRESS\",\n Network = @default.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n TargetTags = new[]\n {\n \"allow-health-check\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-tls/sdk/v4/go/tls\"\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// External SSL proxy load balancer with managed instance group backend\n\t\t// VPC\n\t\t_, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend subnet\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// reserved IP address\n\t\tdefaultGlobalAddress, err := compute.NewGlobalAddress(ctx, \"default\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-ip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Self-signed regional SSL certificate for testing\n\t\tdefaultPrivateKey, err := tls.NewPrivateKey(ctx, \"default\", \u0026tls.PrivateKeyArgs{\n\t\t\tAlgorithm: pulumi.String(\"RSA\"),\n\t\t\tRsaBits: pulumi.Int(2048),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSelfSignedCert, err := tls.NewSelfSignedCert(ctx, \"default\", \u0026tls.SelfSignedCertArgs{\n\t\t\tKeyAlgorithm: defaultPrivateKey.Algorithm,\n\t\t\tPrivateKeyPem: defaultPrivateKey.PrivateKeyPem,\n\t\t\tValidityPeriodHours: pulumi.Int(12),\n\t\t\tEarlyRenewalHours: pulumi.Int(3),\n\t\t\tAllowedUses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"key_encipherment\"),\n\t\t\t\tpulumi.String(\"digital_signature\"),\n\t\t\t\tpulumi.String(\"server_auth\"),\n\t\t\t},\n\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"example.com\"),\n\t\t\t},\n\t\t\tSubject: \u0026tls.SelfSignedCertSubjectArgs{\n\t\t\t\tCommonName: pulumi.String(\"example.com\"),\n\t\t\t\tOrganization: pulumi.String(\"ACME Examples, Inc\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSSLCertificate, err := compute.NewSSLCertificate(ctx, \"default\", \u0026compute.SSLCertificateArgs{\n\t\t\tName: pulumi.String(\"default-cert\"),\n\t\t\tPrivateKey: defaultPrivateKey.PrivateKeyPem,\n\t\t\tCertificate: defaultSelfSignedCert.CertPem,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHealthCheck, err := compute.NewHealthCheck(ctx, \"default\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-health-check\"),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(443),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tdefaultInstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"default\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: _default.ID(),\n\t\t\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-mig-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-health-check\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\nsudo apt-get update\nsudo apt-get install -y apache2 jq\nsudo a2ensite default-ssl\nsudo a2enmod ssl\nsudo service apache2 restart\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003ch1\u003eSSL Load Balancer\u003c/h1\u003e\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// MIG\n\t\tdefaultInstanceGroupManager, err := compute.NewInstanceGroupManager(ctx, \"default\", \u0026compute.InstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-mig1\"),\n\t\t\tZone: pulumi.String(\"us-central1-c\"),\n\t\t\tNamedPorts: compute.InstanceGroupManagerNamedPortArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerNamedPortArgs{\n\t\t\t\t\tName: pulumi.String(\"tcp\"),\n\t\t\t\t\tPort: pulumi.Int(443),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVersions: compute.InstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: defaultInstanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend service\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-backend-service\"),\n\t\t\tProtocol: pulumi.String(\"SSL\"),\n\t\t\tPortName: pulumi.String(\"tcp\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: defaultInstanceGroupManager.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tMaxUtilization: pulumi.Float64(1),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTargetSSLProxy, err := compute.NewTargetSSLProxy(ctx, \"default\", \u0026compute.TargetSSLProxyArgs{\n\t\t\tName: pulumi.String(\"test-proxy\"),\n\t\t\tBackendService: defaultBackendService.ID(),\n\t\t\tSslCertificates: pulumi.StringArray{\n\t\t\t\tdefaultSSLCertificate.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// forwarding rule\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-forwarding-rule\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tPortRange: pulumi.String(\"443\"),\n\t\t\tTarget: defaultTargetSSLProxy.ID(),\n\t\t\tIpAddress: defaultGlobalAddress.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow access from health check ranges\n\t\t_, err = compute.NewFirewall(ctx, \"default\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-fw-allow-hc\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: _default.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-health-check\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.tls.PrivateKey;\nimport com.pulumi.tls.PrivateKeyArgs;\nimport com.pulumi.tls.SelfSignedCert;\nimport com.pulumi.tls.SelfSignedCertArgs;\nimport com.pulumi.tls.inputs.SelfSignedCertSubjectArgs;\nimport com.pulumi.gcp.compute.SSLCertificate;\nimport com.pulumi.gcp.compute.SSLCertificateArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.InstanceGroupManager;\nimport com.pulumi.gcp.compute.InstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerNamedPortArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.TargetSSLProxy;\nimport com.pulumi.gcp.compute.TargetSSLProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\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 // External SSL proxy load balancer with managed instance group backend\n // VPC\n var default_ = new Network(\"default\", NetworkArgs.builder() \n .name(\"ssl-proxy-xlb-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n // backend subnet\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"ssl-proxy-xlb-subnet\")\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"us-central1\")\n .network(default_.id())\n .build());\n\n // reserved IP address\n var defaultGlobalAddress = new GlobalAddress(\"defaultGlobalAddress\", GlobalAddressArgs.builder() \n .name(\"ssl-proxy-xlb-ip\")\n .build());\n\n // Self-signed regional SSL certificate for testing\n var defaultPrivateKey = new PrivateKey(\"defaultPrivateKey\", PrivateKeyArgs.builder() \n .algorithm(\"RSA\")\n .rsaBits(2048)\n .build());\n\n var defaultSelfSignedCert = new SelfSignedCert(\"defaultSelfSignedCert\", SelfSignedCertArgs.builder() \n .keyAlgorithm(defaultPrivateKey.algorithm())\n .privateKeyPem(defaultPrivateKey.privateKeyPem())\n .validityPeriodHours(12)\n .earlyRenewalHours(3)\n .allowedUses( \n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\")\n .dnsNames(\"example.com\")\n .subject(SelfSignedCertSubjectArgs.builder()\n .commonName(\"example.com\")\n .organization(\"ACME Examples, Inc\")\n .build())\n .build());\n\n var defaultSSLCertificate = new SSLCertificate(\"defaultSSLCertificate\", SSLCertificateArgs.builder() \n .name(\"default-cert\")\n .privateKey(defaultPrivateKey.privateKeyPem())\n .certificate(defaultSelfSignedCert.certPem())\n .build());\n\n var defaultHealthCheck = new HealthCheck(\"defaultHealthCheck\", HealthCheckArgs.builder() \n .name(\"ssl-proxy-health-check\")\n .timeoutSec(1)\n .checkIntervalSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"443\")\n .build())\n .build());\n\n // instance template\n var defaultInstanceTemplate = new InstanceTemplate(\"defaultInstanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(default_.id())\n .subnetwork(defaultSubnetwork.id())\n .build())\n .name(\"ssl-proxy-xlb-mig-template\")\n .machineType(\"e2-small\")\n .tags(\"allow-health-check\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\nsudo apt-get update\nsudo apt-get install -y apache2 jq\nsudo a2ensite default-ssl\nsudo a2enmod ssl\nsudo service apache2 restart\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003ch1\u003eSSL Load Balancer\u003c/h1\u003e\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n // MIG\n var defaultInstanceGroupManager = new InstanceGroupManager(\"defaultInstanceGroupManager\", InstanceGroupManagerArgs.builder() \n .name(\"ssl-proxy-xlb-mig1\")\n .zone(\"us-central1-c\")\n .namedPorts(InstanceGroupManagerNamedPortArgs.builder()\n .name(\"tcp\")\n .port(443)\n .build())\n .versions(InstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(defaultInstanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // backend service\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"ssl-proxy-xlb-backend-service\")\n .protocol(\"SSL\")\n .portName(\"tcp\")\n .loadBalancingScheme(\"EXTERNAL\")\n .timeoutSec(10)\n .healthChecks(defaultHealthCheck.id())\n .backends(BackendServiceBackendArgs.builder()\n .group(defaultInstanceGroupManager.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .maxUtilization(1)\n .capacityScaler(1)\n .build())\n .build());\n\n var defaultTargetSSLProxy = new TargetSSLProxy(\"defaultTargetSSLProxy\", TargetSSLProxyArgs.builder() \n .name(\"test-proxy\")\n .backendService(defaultBackendService.id())\n .sslCertificates(defaultSSLCertificate.id())\n .build());\n\n // forwarding rule\n var defaultGlobalForwardingRule = new GlobalForwardingRule(\"defaultGlobalForwardingRule\", GlobalForwardingRuleArgs.builder() \n .name(\"ssl-proxy-xlb-forwarding-rule\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"EXTERNAL\")\n .portRange(\"443\")\n .target(defaultTargetSSLProxy.id())\n .ipAddress(defaultGlobalAddress.id())\n .build());\n\n // allow access from health check ranges\n var defaultFirewall = new Firewall(\"defaultFirewall\", FirewallArgs.builder() \n .name(\"ssl-proxy-xlb-fw-allow-hc\")\n .direction(\"INGRESS\")\n .network(default_.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .targetTags(\"allow-health-check\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # External SSL proxy load balancer with managed instance group backend\n\n # VPC\n default:\n type: gcp:compute:Network\n properties:\n name: ssl-proxy-xlb-network\n autoCreateSubnetworks: false\n # backend subnet\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: ssl-proxy-xlb-subnet\n ipCidrRange: 10.0.1.0/24\n region: us-central1\n network: ${default.id}\n # reserved IP address\n defaultGlobalAddress:\n type: gcp:compute:GlobalAddress\n name: default\n properties:\n name: ssl-proxy-xlb-ip\n # Self-signed regional SSL certificate for testing\n defaultPrivateKey:\n type: tls:PrivateKey\n name: default\n properties:\n algorithm: RSA\n rsaBits: 2048\n defaultSelfSignedCert:\n type: tls:SelfSignedCert\n name: default\n properties:\n keyAlgorithm: ${defaultPrivateKey.algorithm}\n privateKeyPem: ${defaultPrivateKey.privateKeyPem}\n validityPeriodHours: 12 # Generate a new certificate if Terraform is run within three\n # # hours of the certificate's expiration time.\n earlyRenewalHours: 3 # Reasonable set of uses for a server SSL certificate.\n allowedUses:\n - key_encipherment\n - digital_signature\n - server_auth\n dnsNames:\n - example.com\n subject:\n commonName: example.com\n organization: ACME Examples, Inc\n defaultSSLCertificate:\n type: gcp:compute:SSLCertificate\n name: default\n properties:\n name: default-cert\n privateKey: ${defaultPrivateKey.privateKeyPem}\n certificate: ${defaultSelfSignedCert.certPem}\n defaultTargetSSLProxy:\n type: gcp:compute:TargetSSLProxy\n name: default\n properties:\n name: test-proxy\n backendService: ${defaultBackendService.id}\n sslCertificates:\n - ${defaultSSLCertificate.id}\n # forwarding rule\n defaultGlobalForwardingRule:\n type: gcp:compute:GlobalForwardingRule\n name: default\n properties:\n name: ssl-proxy-xlb-forwarding-rule\n ipProtocol: TCP\n loadBalancingScheme: EXTERNAL\n portRange: '443'\n target: ${defaultTargetSSLProxy.id}\n ipAddress: ${defaultGlobalAddress.id}\n # backend service\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: ssl-proxy-xlb-backend-service\n protocol: SSL\n portName: tcp\n loadBalancingScheme: EXTERNAL\n timeoutSec: 10\n healthChecks: ${defaultHealthCheck.id}\n backends:\n - group: ${defaultInstanceGroupManager.instanceGroup}\n balancingMode: UTILIZATION\n maxUtilization: 1\n capacityScaler: 1\n defaultHealthCheck:\n type: gcp:compute:HealthCheck\n name: default\n properties:\n name: ssl-proxy-health-check\n timeoutSec: 1\n checkIntervalSec: 1\n tcpHealthCheck:\n port: '443'\n # instance template\n defaultInstanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: default\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${default.id}\n subnetwork: ${defaultSubnetwork.id}\n name: ssl-proxy-xlb-mig-template\n machineType: e2-small\n tags:\n - allow-health-check\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n export DEBIAN_FRONTEND=noninteractive\n sudo apt-get update\n sudo apt-get install -y apache2 jq\n sudo a2ensite default-ssl\n sudo a2enmod ssl\n sudo service apache2 restart\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003ch1\u003eSSL Load Balancer\u003c/h1\u003e\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n # MIG\n defaultInstanceGroupManager:\n type: gcp:compute:InstanceGroupManager\n name: default\n properties:\n name: ssl-proxy-xlb-mig1\n zone: us-central1-c\n namedPorts:\n - name: tcp\n port: 443\n versions:\n - instanceTemplate: ${defaultInstanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\n # allow access from health check ranges\n defaultFirewall:\n type: gcp:compute:Firewall\n name: default\n properties:\n name: ssl-proxy-xlb-fw-allow-hc\n direction: INGRESS\n network: ${default.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n allows:\n - protocol: tcp\n targetTags:\n - allow-health-check\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### External Tcp Proxy Lb Mig Backend\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\n// External TCP proxy load balancer with managed instance group backend\n// VPC\nconst _default = new gcp.compute.Network(\"default\", {\n name: \"tcp-proxy-xlb-network\",\n autoCreateSubnetworks: false,\n});\n// backend subnet\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"tcp-proxy-xlb-subnet\",\n ipCidrRange: \"10.0.1.0/24\",\n region: \"us-central1\",\n network: _default.id,\n});\n// reserved IP address\nconst defaultGlobalAddress = new gcp.compute.GlobalAddress(\"default\", {name: \"tcp-proxy-xlb-ip\"});\nconst defaultHealthCheck = new gcp.compute.HealthCheck(\"default\", {\n name: \"tcp-proxy-health-check\",\n timeoutSec: 1,\n checkIntervalSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\n// instance template\nconst defaultInstanceTemplate = new gcp.compute.InstanceTemplate(\"default\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: _default.id,\n subnetwork: defaultSubnetwork.id,\n }],\n name: \"tcp-proxy-xlb-mig-template\",\n machineType: \"e2-small\",\n tags: [\"allow-health-check\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\n// MIG\nconst defaultInstanceGroupManager = new gcp.compute.InstanceGroupManager(\"default\", {\n name: \"tcp-proxy-xlb-mig1\",\n zone: \"us-central1-c\",\n namedPorts: [{\n name: \"tcp\",\n port: 80,\n }],\n versions: [{\n instanceTemplate: defaultInstanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// backend service\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"tcp-proxy-xlb-backend-service\",\n protocol: \"TCP\",\n portName: \"tcp\",\n loadBalancingScheme: \"EXTERNAL\",\n timeoutSec: 10,\n healthChecks: defaultHealthCheck.id,\n backends: [{\n group: defaultInstanceGroupManager.instanceGroup,\n balancingMode: \"UTILIZATION\",\n maxUtilization: 1,\n capacityScaler: 1,\n }],\n});\nconst defaultTargetTCPProxy = new gcp.compute.TargetTCPProxy(\"default\", {\n name: \"test-proxy-health-check\",\n backendService: defaultBackendService.id,\n});\n// forwarding rule\nconst defaultGlobalForwardingRule = new gcp.compute.GlobalForwardingRule(\"default\", {\n name: \"tcp-proxy-xlb-forwarding-rule\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"EXTERNAL\",\n portRange: \"110\",\n target: defaultTargetTCPProxy.id,\n ipAddress: defaultGlobalAddress.id,\n});\n// allow access from health check ranges\nconst defaultFirewall = new gcp.compute.Firewall(\"default\", {\n name: \"tcp-proxy-xlb-fw-allow-hc\",\n direction: \"INGRESS\",\n network: _default.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n targetTags: [\"allow-health-check\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\n# External TCP proxy load balancer with managed instance group backend\n# VPC\ndefault = gcp.compute.Network(\"default\",\n name=\"tcp-proxy-xlb-network\",\n auto_create_subnetworks=False)\n# backend subnet\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"tcp-proxy-xlb-subnet\",\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"us-central1\",\n network=default.id)\n# reserved IP address\ndefault_global_address = gcp.compute.GlobalAddress(\"default\", name=\"tcp-proxy-xlb-ip\")\ndefault_health_check = gcp.compute.HealthCheck(\"default\",\n name=\"tcp-proxy-health-check\",\n timeout_sec=1,\n check_interval_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\n# instance template\ndefault_instance_template = gcp.compute.InstanceTemplate(\"default\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=default.id,\n subnetwork=default_subnetwork.id,\n )],\n name=\"tcp-proxy-xlb-mig-template\",\n machine_type=\"e2-small\",\n tags=[\"allow-health-check\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\n# MIG\ndefault_instance_group_manager = gcp.compute.InstanceGroupManager(\"default\",\n name=\"tcp-proxy-xlb-mig1\",\n zone=\"us-central1-c\",\n named_ports=[gcp.compute.InstanceGroupManagerNamedPortArgs(\n name=\"tcp\",\n port=80,\n )],\n versions=[gcp.compute.InstanceGroupManagerVersionArgs(\n instance_template=default_instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# backend service\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"tcp-proxy-xlb-backend-service\",\n protocol=\"TCP\",\n port_name=\"tcp\",\n load_balancing_scheme=\"EXTERNAL\",\n timeout_sec=10,\n health_checks=default_health_check.id,\n backends=[gcp.compute.BackendServiceBackendArgs(\n group=default_instance_group_manager.instance_group,\n balancing_mode=\"UTILIZATION\",\n max_utilization=1,\n capacity_scaler=1,\n )])\ndefault_target_tcp_proxy = gcp.compute.TargetTCPProxy(\"default\",\n name=\"test-proxy-health-check\",\n backend_service=default_backend_service.id)\n# forwarding rule\ndefault_global_forwarding_rule = gcp.compute.GlobalForwardingRule(\"default\",\n name=\"tcp-proxy-xlb-forwarding-rule\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"EXTERNAL\",\n port_range=\"110\",\n target=default_target_tcp_proxy.id,\n ip_address=default_global_address.id)\n# allow access from health check ranges\ndefault_firewall = gcp.compute.Firewall(\"default\",\n name=\"tcp-proxy-xlb-fw-allow-hc\",\n direction=\"INGRESS\",\n network=default.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )],\n target_tags=[\"allow-health-check\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // External TCP proxy load balancer with managed instance group backend\n // VPC\n var @default = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"tcp-proxy-xlb-network\",\n AutoCreateSubnetworks = false,\n });\n\n // backend subnet\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"tcp-proxy-xlb-subnet\",\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"us-central1\",\n Network = @default.Id,\n });\n\n // reserved IP address\n var defaultGlobalAddress = new Gcp.Compute.GlobalAddress(\"default\", new()\n {\n Name = \"tcp-proxy-xlb-ip\",\n });\n\n var defaultHealthCheck = new Gcp.Compute.HealthCheck(\"default\", new()\n {\n Name = \"tcp-proxy-health-check\",\n TimeoutSec = 1,\n CheckIntervalSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n // instance template\n var defaultInstanceTemplate = new Gcp.Compute.InstanceTemplate(\"default\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = @default.Id,\n Subnetwork = defaultSubnetwork.Id,\n },\n },\n Name = \"tcp-proxy-xlb-mig-template\",\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"allow-health-check\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n // MIG\n var defaultInstanceGroupManager = new Gcp.Compute.InstanceGroupManager(\"default\", new()\n {\n Name = \"tcp-proxy-xlb-mig1\",\n Zone = \"us-central1-c\",\n NamedPorts = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerNamedPortArgs\n {\n Name = \"tcp\",\n Port = 80,\n },\n },\n Versions = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs\n {\n InstanceTemplate = defaultInstanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // backend service\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"tcp-proxy-xlb-backend-service\",\n Protocol = \"TCP\",\n PortName = \"tcp\",\n LoadBalancingScheme = \"EXTERNAL\",\n TimeoutSec = 10,\n HealthChecks = defaultHealthCheck.Id,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = defaultInstanceGroupManager.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n MaxUtilization = 1,\n CapacityScaler = 1,\n },\n },\n });\n\n var defaultTargetTCPProxy = new Gcp.Compute.TargetTCPProxy(\"default\", new()\n {\n Name = \"test-proxy-health-check\",\n BackendService = defaultBackendService.Id,\n });\n\n // forwarding rule\n var defaultGlobalForwardingRule = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Name = \"tcp-proxy-xlb-forwarding-rule\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"EXTERNAL\",\n PortRange = \"110\",\n Target = defaultTargetTCPProxy.Id,\n IpAddress = defaultGlobalAddress.Id,\n });\n\n // allow access from health check ranges\n var defaultFirewall = new Gcp.Compute.Firewall(\"default\", new()\n {\n Name = \"tcp-proxy-xlb-fw-allow-hc\",\n Direction = \"INGRESS\",\n Network = @default.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n TargetTags = new[]\n {\n \"allow-health-check\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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// External TCP proxy load balancer with managed instance group backend\n\t\t// VPC\n\t\t_, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend subnet\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// reserved IP address\n\t\tdefaultGlobalAddress, err := compute.NewGlobalAddress(ctx, \"default\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-ip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHealthCheck, err := compute.NewHealthCheck(ctx, \"default\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-health-check\"),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tdefaultInstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"default\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: _default.ID(),\n\t\t\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-mig-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-health-check\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// MIG\n\t\tdefaultInstanceGroupManager, err := compute.NewInstanceGroupManager(ctx, \"default\", \u0026compute.InstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-mig1\"),\n\t\t\tZone: pulumi.String(\"us-central1-c\"),\n\t\t\tNamedPorts: compute.InstanceGroupManagerNamedPortArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerNamedPortArgs{\n\t\t\t\t\tName: pulumi.String(\"tcp\"),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVersions: compute.InstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: defaultInstanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend service\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-backend-service\"),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tPortName: pulumi.String(\"tcp\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: defaultInstanceGroupManager.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tMaxUtilization: pulumi.Float64(1),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTargetTCPProxy, err := compute.NewTargetTCPProxy(ctx, \"default\", \u0026compute.TargetTCPProxyArgs{\n\t\t\tName: pulumi.String(\"test-proxy-health-check\"),\n\t\t\tBackendService: defaultBackendService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// forwarding rule\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-forwarding-rule\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tPortRange: pulumi.String(\"110\"),\n\t\t\tTarget: defaultTargetTCPProxy.ID(),\n\t\t\tIpAddress: defaultGlobalAddress.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow access from health check ranges\n\t\t_, err = compute.NewFirewall(ctx, \"default\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-fw-allow-hc\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: _default.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-health-check\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.InstanceGroupManager;\nimport com.pulumi.gcp.compute.InstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerNamedPortArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.TargetTCPProxy;\nimport com.pulumi.gcp.compute.TargetTCPProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\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 // External TCP proxy load balancer with managed instance group backend\n // VPC\n var default_ = new Network(\"default\", NetworkArgs.builder() \n .name(\"tcp-proxy-xlb-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n // backend subnet\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"tcp-proxy-xlb-subnet\")\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"us-central1\")\n .network(default_.id())\n .build());\n\n // reserved IP address\n var defaultGlobalAddress = new GlobalAddress(\"defaultGlobalAddress\", GlobalAddressArgs.builder() \n .name(\"tcp-proxy-xlb-ip\")\n .build());\n\n var defaultHealthCheck = new HealthCheck(\"defaultHealthCheck\", HealthCheckArgs.builder() \n .name(\"tcp-proxy-health-check\")\n .timeoutSec(1)\n .checkIntervalSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n // instance template\n var defaultInstanceTemplate = new InstanceTemplate(\"defaultInstanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(default_.id())\n .subnetwork(defaultSubnetwork.id())\n .build())\n .name(\"tcp-proxy-xlb-mig-template\")\n .machineType(\"e2-small\")\n .tags(\"allow-health-check\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n // MIG\n var defaultInstanceGroupManager = new InstanceGroupManager(\"defaultInstanceGroupManager\", InstanceGroupManagerArgs.builder() \n .name(\"tcp-proxy-xlb-mig1\")\n .zone(\"us-central1-c\")\n .namedPorts(InstanceGroupManagerNamedPortArgs.builder()\n .name(\"tcp\")\n .port(80)\n .build())\n .versions(InstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(defaultInstanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // backend service\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"tcp-proxy-xlb-backend-service\")\n .protocol(\"TCP\")\n .portName(\"tcp\")\n .loadBalancingScheme(\"EXTERNAL\")\n .timeoutSec(10)\n .healthChecks(defaultHealthCheck.id())\n .backends(BackendServiceBackendArgs.builder()\n .group(defaultInstanceGroupManager.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .maxUtilization(1)\n .capacityScaler(1)\n .build())\n .build());\n\n var defaultTargetTCPProxy = new TargetTCPProxy(\"defaultTargetTCPProxy\", TargetTCPProxyArgs.builder() \n .name(\"test-proxy-health-check\")\n .backendService(defaultBackendService.id())\n .build());\n\n // forwarding rule\n var defaultGlobalForwardingRule = new GlobalForwardingRule(\"defaultGlobalForwardingRule\", GlobalForwardingRuleArgs.builder() \n .name(\"tcp-proxy-xlb-forwarding-rule\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"EXTERNAL\")\n .portRange(\"110\")\n .target(defaultTargetTCPProxy.id())\n .ipAddress(defaultGlobalAddress.id())\n .build());\n\n // allow access from health check ranges\n var defaultFirewall = new Firewall(\"defaultFirewall\", FirewallArgs.builder() \n .name(\"tcp-proxy-xlb-fw-allow-hc\")\n .direction(\"INGRESS\")\n .network(default_.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .targetTags(\"allow-health-check\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # External TCP proxy load balancer with managed instance group backend\n\n # VPC\n default:\n type: gcp:compute:Network\n properties:\n name: tcp-proxy-xlb-network\n autoCreateSubnetworks: false\n # backend subnet\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: tcp-proxy-xlb-subnet\n ipCidrRange: 10.0.1.0/24\n region: us-central1\n network: ${default.id}\n # reserved IP address\n defaultGlobalAddress:\n type: gcp:compute:GlobalAddress\n name: default\n properties:\n name: tcp-proxy-xlb-ip\n # forwarding rule\n defaultGlobalForwardingRule:\n type: gcp:compute:GlobalForwardingRule\n name: default\n properties:\n name: tcp-proxy-xlb-forwarding-rule\n ipProtocol: TCP\n loadBalancingScheme: EXTERNAL\n portRange: '110'\n target: ${defaultTargetTCPProxy.id}\n ipAddress: ${defaultGlobalAddress.id}\n defaultTargetTCPProxy:\n type: gcp:compute:TargetTCPProxy\n name: default\n properties:\n name: test-proxy-health-check\n backendService: ${defaultBackendService.id}\n # backend service\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: tcp-proxy-xlb-backend-service\n protocol: TCP\n portName: tcp\n loadBalancingScheme: EXTERNAL\n timeoutSec: 10\n healthChecks: ${defaultHealthCheck.id}\n backends:\n - group: ${defaultInstanceGroupManager.instanceGroup}\n balancingMode: UTILIZATION\n maxUtilization: 1\n capacityScaler: 1\n defaultHealthCheck:\n type: gcp:compute:HealthCheck\n name: default\n properties:\n name: tcp-proxy-health-check\n timeoutSec: 1\n checkIntervalSec: 1\n tcpHealthCheck:\n port: '80'\n # instance template\n defaultInstanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: default\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${default.id}\n subnetwork: ${defaultSubnetwork.id}\n name: tcp-proxy-xlb-mig-template\n machineType: e2-small\n tags:\n - allow-health-check\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n # MIG\n defaultInstanceGroupManager:\n type: gcp:compute:InstanceGroupManager\n name: default\n properties:\n name: tcp-proxy-xlb-mig1\n zone: us-central1-c\n namedPorts:\n - name: tcp\n port: 80\n versions:\n - instanceTemplate: ${defaultInstanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\n # allow access from health check ranges\n defaultFirewall:\n type: gcp:compute:Firewall\n name: default\n properties:\n name: tcp-proxy-xlb-fw-allow-hc\n direction: INGRESS\n network: ${default.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n allows:\n - protocol: tcp\n targetTags:\n - allow-health-check\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### External Http Lb Mig Backend Custom Header\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\n// External HTTP load balancer with a CDN-enabled managed instance group backend\n// and custom request and response headers\n// VPC\nconst _default = new gcp.compute.Network(\"default\", {\n name: \"l7-xlb-network\",\n autoCreateSubnetworks: false,\n});\n// backend subnet\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"l7-xlb-subnet\",\n ipCidrRange: \"10.0.1.0/24\",\n region: \"us-central1\",\n network: _default.id,\n});\n// reserved IP address\nconst defaultGlobalAddress = new gcp.compute.GlobalAddress(\"default\", {name: \"l7-xlb-static-ip\"});\n// health check\nconst defaultHealthCheck = new gcp.compute.HealthCheck(\"default\", {\n name: \"l7-xlb-hc\",\n httpHealthCheck: {\n portSpecification: \"USE_SERVING_PORT\",\n },\n});\n// instance template\nconst defaultInstanceTemplate = new gcp.compute.InstanceTemplate(\"default\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: _default.id,\n subnetwork: defaultSubnetwork.id,\n }],\n name: \"l7-xlb-mig-template\",\n machineType: \"e2-small\",\n tags: [\"allow-health-check\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\n// MIG\nconst defaultInstanceGroupManager = new gcp.compute.InstanceGroupManager(\"default\", {\n name: \"l7-xlb-mig1\",\n zone: \"us-central1-c\",\n namedPorts: [{\n name: \"http\",\n port: 8080,\n }],\n versions: [{\n instanceTemplate: defaultInstanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// backend service with custom request and response headers\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"l7-xlb-backend-service\",\n protocol: \"HTTP\",\n portName: \"my-port\",\n loadBalancingScheme: \"EXTERNAL\",\n timeoutSec: 10,\n enableCdn: true,\n customRequestHeaders: [\"X-Client-Geo-Location: {client_region_subdivision}, {client_city}\"],\n customResponseHeaders: [\"X-Cache-Hit: {cdn_cache_status}\"],\n healthChecks: defaultHealthCheck.id,\n backends: [{\n group: defaultInstanceGroupManager.instanceGroup,\n balancingMode: \"UTILIZATION\",\n capacityScaler: 1,\n }],\n});\n// url map\nconst defaultURLMap = new gcp.compute.URLMap(\"default\", {\n name: \"l7-xlb-url-map\",\n defaultService: defaultBackendService.id,\n});\n// http proxy\nconst defaultTargetHttpProxy = new gcp.compute.TargetHttpProxy(\"default\", {\n name: \"l7-xlb-target-http-proxy\",\n urlMap: defaultURLMap.id,\n});\n// forwarding rule\nconst defaultGlobalForwardingRule = new gcp.compute.GlobalForwardingRule(\"default\", {\n name: \"l7-xlb-forwarding-rule\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"EXTERNAL\",\n portRange: \"80\",\n target: defaultTargetHttpProxy.id,\n ipAddress: defaultGlobalAddress.id,\n});\n// allow access from health check ranges\nconst defaultFirewall = new gcp.compute.Firewall(\"default\", {\n name: \"l7-xlb-fw-allow-hc\",\n direction: \"INGRESS\",\n network: _default.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n targetTags: [\"allow-health-check\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\n# External HTTP load balancer with a CDN-enabled managed instance group backend\n# and custom request and response headers\n# VPC\ndefault = gcp.compute.Network(\"default\",\n name=\"l7-xlb-network\",\n auto_create_subnetworks=False)\n# backend subnet\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"l7-xlb-subnet\",\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"us-central1\",\n network=default.id)\n# reserved IP address\ndefault_global_address = gcp.compute.GlobalAddress(\"default\", name=\"l7-xlb-static-ip\")\n# health check\ndefault_health_check = gcp.compute.HealthCheck(\"default\",\n name=\"l7-xlb-hc\",\n http_health_check=gcp.compute.HealthCheckHttpHealthCheckArgs(\n port_specification=\"USE_SERVING_PORT\",\n ))\n# instance template\ndefault_instance_template = gcp.compute.InstanceTemplate(\"default\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=default.id,\n subnetwork=default_subnetwork.id,\n )],\n name=\"l7-xlb-mig-template\",\n machine_type=\"e2-small\",\n tags=[\"allow-health-check\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\n# MIG\ndefault_instance_group_manager = gcp.compute.InstanceGroupManager(\"default\",\n name=\"l7-xlb-mig1\",\n zone=\"us-central1-c\",\n named_ports=[gcp.compute.InstanceGroupManagerNamedPortArgs(\n name=\"http\",\n port=8080,\n )],\n versions=[gcp.compute.InstanceGroupManagerVersionArgs(\n instance_template=default_instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# backend service with custom request and response headers\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"l7-xlb-backend-service\",\n protocol=\"HTTP\",\n port_name=\"my-port\",\n load_balancing_scheme=\"EXTERNAL\",\n timeout_sec=10,\n enable_cdn=True,\n custom_request_headers=[\"X-Client-Geo-Location: {client_region_subdivision}, {client_city}\"],\n custom_response_headers=[\"X-Cache-Hit: {cdn_cache_status}\"],\n health_checks=default_health_check.id,\n backends=[gcp.compute.BackendServiceBackendArgs(\n group=default_instance_group_manager.instance_group,\n balancing_mode=\"UTILIZATION\",\n capacity_scaler=1,\n )])\n# url map\ndefault_url_map = gcp.compute.URLMap(\"default\",\n name=\"l7-xlb-url-map\",\n default_service=default_backend_service.id)\n# http proxy\ndefault_target_http_proxy = gcp.compute.TargetHttpProxy(\"default\",\n name=\"l7-xlb-target-http-proxy\",\n url_map=default_url_map.id)\n# forwarding rule\ndefault_global_forwarding_rule = gcp.compute.GlobalForwardingRule(\"default\",\n name=\"l7-xlb-forwarding-rule\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"EXTERNAL\",\n port_range=\"80\",\n target=default_target_http_proxy.id,\n ip_address=default_global_address.id)\n# allow access from health check ranges\ndefault_firewall = gcp.compute.Firewall(\"default\",\n name=\"l7-xlb-fw-allow-hc\",\n direction=\"INGRESS\",\n network=default.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )],\n target_tags=[\"allow-health-check\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // External HTTP load balancer with a CDN-enabled managed instance group backend\n // and custom request and response headers\n // VPC\n var @default = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"l7-xlb-network\",\n AutoCreateSubnetworks = false,\n });\n\n // backend subnet\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"l7-xlb-subnet\",\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"us-central1\",\n Network = @default.Id,\n });\n\n // reserved IP address\n var defaultGlobalAddress = new Gcp.Compute.GlobalAddress(\"default\", new()\n {\n Name = \"l7-xlb-static-ip\",\n });\n\n // health check\n var defaultHealthCheck = new Gcp.Compute.HealthCheck(\"default\", new()\n {\n Name = \"l7-xlb-hc\",\n HttpHealthCheck = new Gcp.Compute.Inputs.HealthCheckHttpHealthCheckArgs\n {\n PortSpecification = \"USE_SERVING_PORT\",\n },\n });\n\n // instance template\n var defaultInstanceTemplate = new Gcp.Compute.InstanceTemplate(\"default\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = @default.Id,\n Subnetwork = defaultSubnetwork.Id,\n },\n },\n Name = \"l7-xlb-mig-template\",\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"allow-health-check\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n // MIG\n var defaultInstanceGroupManager = new Gcp.Compute.InstanceGroupManager(\"default\", new()\n {\n Name = \"l7-xlb-mig1\",\n Zone = \"us-central1-c\",\n NamedPorts = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerNamedPortArgs\n {\n Name = \"http\",\n Port = 8080,\n },\n },\n Versions = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs\n {\n InstanceTemplate = defaultInstanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // backend service with custom request and response headers\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"l7-xlb-backend-service\",\n Protocol = \"HTTP\",\n PortName = \"my-port\",\n LoadBalancingScheme = \"EXTERNAL\",\n TimeoutSec = 10,\n EnableCdn = true,\n CustomRequestHeaders = new[]\n {\n \"X-Client-Geo-Location: {client_region_subdivision}, {client_city}\",\n },\n CustomResponseHeaders = new[]\n {\n \"X-Cache-Hit: {cdn_cache_status}\",\n },\n HealthChecks = defaultHealthCheck.Id,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = defaultInstanceGroupManager.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n CapacityScaler = 1,\n },\n },\n });\n\n // url map\n var defaultURLMap = new Gcp.Compute.URLMap(\"default\", new()\n {\n Name = \"l7-xlb-url-map\",\n DefaultService = defaultBackendService.Id,\n });\n\n // http proxy\n var defaultTargetHttpProxy = new Gcp.Compute.TargetHttpProxy(\"default\", new()\n {\n Name = \"l7-xlb-target-http-proxy\",\n UrlMap = defaultURLMap.Id,\n });\n\n // forwarding rule\n var defaultGlobalForwardingRule = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Name = \"l7-xlb-forwarding-rule\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"EXTERNAL\",\n PortRange = \"80\",\n Target = defaultTargetHttpProxy.Id,\n IpAddress = defaultGlobalAddress.Id,\n });\n\n // allow access from health check ranges\n var defaultFirewall = new Gcp.Compute.Firewall(\"default\", new()\n {\n Name = \"l7-xlb-fw-allow-hc\",\n Direction = \"INGRESS\",\n Network = @default.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n TargetTags = new[]\n {\n \"allow-health-check\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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// External HTTP load balancer with a CDN-enabled managed instance group backend\n\t\t// and custom request and response headers\n\t\t// VPC\n\t\t_, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend subnet\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// reserved IP address\n\t\tdefaultGlobalAddress, err := compute.NewGlobalAddress(ctx, \"default\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-static-ip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// health check\n\t\tdefaultHealthCheck, err := compute.NewHealthCheck(ctx, \"default\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-hc\"),\n\t\t\tHttpHealthCheck: \u0026compute.HealthCheckHttpHealthCheckArgs{\n\t\t\t\tPortSpecification: pulumi.String(\"USE_SERVING_PORT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tdefaultInstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"default\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: _default.ID(),\n\t\t\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"l7-xlb-mig-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-health-check\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// MIG\n\t\tdefaultInstanceGroupManager, err := compute.NewInstanceGroupManager(ctx, \"default\", \u0026compute.InstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-mig1\"),\n\t\t\tZone: pulumi.String(\"us-central1-c\"),\n\t\t\tNamedPorts: compute.InstanceGroupManagerNamedPortArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerNamedPortArgs{\n\t\t\t\t\tName: pulumi.String(\"http\"),\n\t\t\t\t\tPort: pulumi.Int(8080),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVersions: compute.InstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: defaultInstanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend service with custom request and response headers\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-backend-service\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tPortName: pulumi.String(\"my-port\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tEnableCdn: pulumi.Bool(true),\n\t\t\tCustomRequestHeaders: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"X-Client-Geo-Location: {client_region_subdivision}, {client_city}\"),\n\t\t\t},\n\t\t\tCustomResponseHeaders: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"X-Cache-Hit: {cdn_cache_status}\"),\n\t\t\t},\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: defaultInstanceGroupManager.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// url map\n\t\tdefaultURLMap, err := compute.NewURLMap(ctx, \"default\", \u0026compute.URLMapArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-url-map\"),\n\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// http proxy\n\t\tdefaultTargetHttpProxy, err := compute.NewTargetHttpProxy(ctx, \"default\", \u0026compute.TargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-target-http-proxy\"),\n\t\t\tUrlMap: defaultURLMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// forwarding rule\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-forwarding-rule\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tTarget: defaultTargetHttpProxy.ID(),\n\t\t\tIpAddress: defaultGlobalAddress.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow access from health check ranges\n\t\t_, err = compute.NewFirewall(ctx, \"default\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-fw-allow-hc\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: _default.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-health-check\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.InstanceGroupManager;\nimport com.pulumi.gcp.compute.InstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerNamedPortArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.URLMap;\nimport com.pulumi.gcp.compute.URLMapArgs;\nimport com.pulumi.gcp.compute.TargetHttpProxy;\nimport com.pulumi.gcp.compute.TargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\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 // External HTTP load balancer with a CDN-enabled managed instance group backend\n // and custom request and response headers\n // VPC\n var default_ = new Network(\"default\", NetworkArgs.builder() \n .name(\"l7-xlb-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n // backend subnet\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"l7-xlb-subnet\")\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"us-central1\")\n .network(default_.id())\n .build());\n\n // reserved IP address\n var defaultGlobalAddress = new GlobalAddress(\"defaultGlobalAddress\", GlobalAddressArgs.builder() \n .name(\"l7-xlb-static-ip\")\n .build());\n\n // health check\n var defaultHealthCheck = new HealthCheck(\"defaultHealthCheck\", HealthCheckArgs.builder() \n .name(\"l7-xlb-hc\")\n .httpHealthCheck(HealthCheckHttpHealthCheckArgs.builder()\n .portSpecification(\"USE_SERVING_PORT\")\n .build())\n .build());\n\n // instance template\n var defaultInstanceTemplate = new InstanceTemplate(\"defaultInstanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(default_.id())\n .subnetwork(defaultSubnetwork.id())\n .build())\n .name(\"l7-xlb-mig-template\")\n .machineType(\"e2-small\")\n .tags(\"allow-health-check\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n // MIG\n var defaultInstanceGroupManager = new InstanceGroupManager(\"defaultInstanceGroupManager\", InstanceGroupManagerArgs.builder() \n .name(\"l7-xlb-mig1\")\n .zone(\"us-central1-c\")\n .namedPorts(InstanceGroupManagerNamedPortArgs.builder()\n .name(\"http\")\n .port(8080)\n .build())\n .versions(InstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(defaultInstanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // backend service with custom request and response headers\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"l7-xlb-backend-service\")\n .protocol(\"HTTP\")\n .portName(\"my-port\")\n .loadBalancingScheme(\"EXTERNAL\")\n .timeoutSec(10)\n .enableCdn(true)\n .customRequestHeaders(\"X-Client-Geo-Location: {client_region_subdivision}, {client_city}\")\n .customResponseHeaders(\"X-Cache-Hit: {cdn_cache_status}\")\n .healthChecks(defaultHealthCheck.id())\n .backends(BackendServiceBackendArgs.builder()\n .group(defaultInstanceGroupManager.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .capacityScaler(1)\n .build())\n .build());\n\n // url map\n var defaultURLMap = new URLMap(\"defaultURLMap\", URLMapArgs.builder() \n .name(\"l7-xlb-url-map\")\n .defaultService(defaultBackendService.id())\n .build());\n\n // http proxy\n var defaultTargetHttpProxy = new TargetHttpProxy(\"defaultTargetHttpProxy\", TargetHttpProxyArgs.builder() \n .name(\"l7-xlb-target-http-proxy\")\n .urlMap(defaultURLMap.id())\n .build());\n\n // forwarding rule\n var defaultGlobalForwardingRule = new GlobalForwardingRule(\"defaultGlobalForwardingRule\", GlobalForwardingRuleArgs.builder() \n .name(\"l7-xlb-forwarding-rule\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"EXTERNAL\")\n .portRange(\"80\")\n .target(defaultTargetHttpProxy.id())\n .ipAddress(defaultGlobalAddress.id())\n .build());\n\n // allow access from health check ranges\n var defaultFirewall = new Firewall(\"defaultFirewall\", FirewallArgs.builder() \n .name(\"l7-xlb-fw-allow-hc\")\n .direction(\"INGRESS\")\n .network(default_.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .targetTags(\"allow-health-check\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # External HTTP load balancer with a CDN-enabled managed instance group backend\n # and custom request and response headers\n\n # VPC\n default:\n type: gcp:compute:Network\n properties:\n name: l7-xlb-network\n autoCreateSubnetworks: false\n # backend subnet\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: l7-xlb-subnet\n ipCidrRange: 10.0.1.0/24\n region: us-central1\n network: ${default.id}\n # reserved IP address\n defaultGlobalAddress:\n type: gcp:compute:GlobalAddress\n name: default\n properties:\n name: l7-xlb-static-ip\n # forwarding rule\n defaultGlobalForwardingRule:\n type: gcp:compute:GlobalForwardingRule\n name: default\n properties:\n name: l7-xlb-forwarding-rule\n ipProtocol: TCP\n loadBalancingScheme: EXTERNAL\n portRange: '80'\n target: ${defaultTargetHttpProxy.id}\n ipAddress: ${defaultGlobalAddress.id}\n # http proxy\n defaultTargetHttpProxy:\n type: gcp:compute:TargetHttpProxy\n name: default\n properties:\n name: l7-xlb-target-http-proxy\n urlMap: ${defaultURLMap.id}\n # url map\n defaultURLMap:\n type: gcp:compute:URLMap\n name: default\n properties:\n name: l7-xlb-url-map\n defaultService: ${defaultBackendService.id}\n # backend service with custom request and response headers\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: l7-xlb-backend-service\n protocol: HTTP\n portName: my-port\n loadBalancingScheme: EXTERNAL\n timeoutSec: 10\n enableCdn: true\n customRequestHeaders:\n - 'X-Client-Geo-Location: {client_region_subdivision}, {client_city}'\n customResponseHeaders:\n - 'X-Cache-Hit: {cdn_cache_status}'\n healthChecks: ${defaultHealthCheck.id}\n backends:\n - group: ${defaultInstanceGroupManager.instanceGroup}\n balancingMode: UTILIZATION\n capacityScaler: 1\n # instance template\n defaultInstanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: default\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${default.id}\n subnetwork: ${defaultSubnetwork.id}\n name: l7-xlb-mig-template\n machineType: e2-small\n tags:\n - allow-health-check\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n # health check\n defaultHealthCheck:\n type: gcp:compute:HealthCheck\n name: default\n properties:\n name: l7-xlb-hc\n httpHealthCheck:\n portSpecification: USE_SERVING_PORT\n # MIG\n defaultInstanceGroupManager:\n type: gcp:compute:InstanceGroupManager\n name: default\n properties:\n name: l7-xlb-mig1\n zone: us-central1-c\n namedPorts:\n - name: http\n port: 8080\n versions:\n - instanceTemplate: ${defaultInstanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\n # allow access from health check ranges\n defaultFirewall:\n type: gcp:compute:Firewall\n name: default\n properties:\n name: l7-xlb-fw-allow-hc\n direction: INGRESS\n network: ${default.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n allows:\n - protocol: tcp\n targetTags:\n - allow-health-check\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Global Forwarding Rule Http\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultHttpHealthCheck = new gcp.compute.HttpHealthCheck(\"default\", {\n name: \"check-backend\",\n requestPath: \"/\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n});\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"backend\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n healthChecks: defaultHttpHealthCheck.id,\n});\nconst defaultURLMap = new gcp.compute.URLMap(\"default\", {\n name: \"url-map-target-proxy\",\n description: \"a description\",\n defaultService: defaultBackendService.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: defaultBackendService.id,\n pathRules: [{\n paths: [\"/*\"],\n service: defaultBackendService.id,\n }],\n }],\n});\nconst defaultTargetHttpProxy = new gcp.compute.TargetHttpProxy(\"default\", {\n name: \"target-proxy\",\n description: \"a description\",\n urlMap: defaultURLMap.id,\n});\nconst _default = new gcp.compute.GlobalForwardingRule(\"default\", {\n name: \"global-rule\",\n target: defaultTargetHttpProxy.id,\n portRange: \"80\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_http_health_check = gcp.compute.HttpHealthCheck(\"default\",\n name=\"check-backend\",\n request_path=\"/\",\n check_interval_sec=1,\n timeout_sec=1)\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"backend\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n health_checks=default_http_health_check.id)\ndefault_url_map = gcp.compute.URLMap(\"default\",\n name=\"url-map-target-proxy\",\n description=\"a description\",\n default_service=default_backend_service.id,\n host_rules=[gcp.compute.URLMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.URLMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=default_backend_service.id,\n path_rules=[gcp.compute.URLMapPathMatcherPathRuleArgs(\n paths=[\"/*\"],\n service=default_backend_service.id,\n )],\n )])\ndefault_target_http_proxy = gcp.compute.TargetHttpProxy(\"default\",\n name=\"target-proxy\",\n description=\"a description\",\n url_map=default_url_map.id)\ndefault = gcp.compute.GlobalForwardingRule(\"default\",\n name=\"global-rule\",\n target=default_target_http_proxy.id,\n port_range=\"80\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultHttpHealthCheck = new Gcp.Compute.HttpHealthCheck(\"default\", new()\n {\n Name = \"check-backend\",\n RequestPath = \"/\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n });\n\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n HealthChecks = defaultHttpHealthCheck.Id,\n });\n\n var defaultURLMap = new Gcp.Compute.URLMap(\"default\", new()\n {\n Name = \"url-map-target-proxy\",\n Description = \"a description\",\n DefaultService = defaultBackendService.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = defaultBackendService.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/*\",\n },\n Service = defaultBackendService.Id,\n },\n },\n },\n },\n });\n\n var defaultTargetHttpProxy = new Gcp.Compute.TargetHttpProxy(\"default\", new()\n {\n Name = \"target-proxy\",\n Description = \"a description\",\n UrlMap = defaultURLMap.Id,\n });\n\n var @default = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Name = \"global-rule\",\n Target = defaultTargetHttpProxy.Id,\n PortRange = \"80\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultHttpHealthCheck, err := compute.NewHttpHealthCheck(ctx, \"default\", \u0026compute.HttpHealthCheckArgs{\n\t\t\tName: pulumi.String(\"check-backend\"),\n\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultHttpHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultURLMap, err := compute.NewURLMap(ctx, \"default\", \u0026compute.URLMapArgs{\n\t\t\tName: pulumi.String(\"url-map-target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\tHostRules: compute.URLMapHostRuleArray{\n\t\t\t\t\u0026compute.URLMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.URLMapPathMatcherArray{\n\t\t\t\t\u0026compute.URLMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\t\t\tPathRules: compute.URLMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.URLMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/*\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: defaultBackendService.ID(),\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTargetHttpProxy, err := compute.NewTargetHttpProxy(ctx, \"default\", \u0026compute.TargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tUrlMap: defaultURLMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"global-rule\"),\n\t\t\tTarget: defaultTargetHttpProxy.ID(),\n\t\t\tPortRange: pulumi.String(\"80\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HttpHealthCheck;\nimport com.pulumi.gcp.compute.HttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.URLMap;\nimport com.pulumi.gcp.compute.URLMapArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.TargetHttpProxy;\nimport com.pulumi.gcp.compute.TargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\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 defaultHttpHealthCheck = new HttpHealthCheck(\"defaultHttpHealthCheck\", HttpHealthCheckArgs.builder() \n .name(\"check-backend\")\n .requestPath(\"/\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .build());\n\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"backend\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(defaultHttpHealthCheck.id())\n .build());\n\n var defaultURLMap = new URLMap(\"defaultURLMap\", URLMapArgs.builder() \n .name(\"url-map-target-proxy\")\n .description(\"a description\")\n .defaultService(defaultBackendService.id())\n .hostRules(URLMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(URLMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(defaultBackendService.id())\n .pathRules(URLMapPathMatcherPathRuleArgs.builder()\n .paths(\"/*\")\n .service(defaultBackendService.id())\n .build())\n .build())\n .build());\n\n var defaultTargetHttpProxy = new TargetHttpProxy(\"defaultTargetHttpProxy\", TargetHttpProxyArgs.builder() \n .name(\"target-proxy\")\n .description(\"a description\")\n .urlMap(defaultURLMap.id())\n .build());\n\n var default_ = new GlobalForwardingRule(\"default\", GlobalForwardingRuleArgs.builder() \n .name(\"global-rule\")\n .target(defaultTargetHttpProxy.id())\n .portRange(\"80\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:GlobalForwardingRule\n properties:\n name: global-rule\n target: ${defaultTargetHttpProxy.id}\n portRange: '80'\n defaultTargetHttpProxy:\n type: gcp:compute:TargetHttpProxy\n name: default\n properties:\n name: target-proxy\n description: a description\n urlMap: ${defaultURLMap.id}\n defaultURLMap:\n type: gcp:compute:URLMap\n name: default\n properties:\n name: url-map-target-proxy\n description: a description\n defaultService: ${defaultBackendService.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${defaultBackendService.id}\n pathRules:\n - paths:\n - /*\n service: ${defaultBackendService.id}\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: backend\n portName: http\n protocol: HTTP\n timeoutSec: 10\n healthChecks: ${defaultHttpHealthCheck.id}\n defaultHttpHealthCheck:\n type: gcp:compute:HttpHealthCheck\n name: default\n properties:\n name: check-backend\n requestPath: /\n checkIntervalSec: 1\n timeoutSec: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Global Forwarding Rule Internal\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst debianImage = gcp.compute.getImage({\n family: \"debian-11\",\n project: \"debian-cloud\",\n});\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n name: \"template-backend\",\n machineType: \"e2-medium\",\n networkInterfaces: [{\n network: \"default\",\n }],\n disks: [{\n sourceImage: debianImage.then(debianImage =\u003e debianImage.selfLink),\n autoDelete: true,\n boot: true,\n }],\n});\nconst igm = new gcp.compute.InstanceGroupManager(\"igm\", {\n name: \"igm-internal\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"internal-glb\",\n zone: \"us-central1-f\",\n targetSize: 1,\n});\nconst defaultHealthCheck = new gcp.compute.HealthCheck(\"default\", {\n name: \"check-backend\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"backend\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n loadBalancingScheme: \"INTERNAL_SELF_MANAGED\",\n backends: [{\n group: igm.instanceGroup,\n balancingMode: \"RATE\",\n capacityScaler: 0.4,\n maxRatePerInstance: 50,\n }],\n healthChecks: defaultHealthCheck.id,\n});\nconst defaultURLMap = new gcp.compute.URLMap(\"default\", {\n name: \"url-map-target-proxy\",\n description: \"a description\",\n defaultService: defaultBackendService.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: defaultBackendService.id,\n pathRules: [{\n paths: [\"/*\"],\n service: defaultBackendService.id,\n }],\n }],\n});\nconst defaultTargetHttpProxy = new gcp.compute.TargetHttpProxy(\"default\", {\n name: \"target-proxy\",\n description: \"a description\",\n urlMap: defaultURLMap.id,\n});\nconst _default = new gcp.compute.GlobalForwardingRule(\"default\", {\n name: \"global-rule\",\n target: defaultTargetHttpProxy.id,\n portRange: \"80\",\n loadBalancingScheme: \"INTERNAL_SELF_MANAGED\",\n ipAddress: \"0.0.0.0\",\n metadataFilters: [{\n filterMatchCriteria: \"MATCH_ANY\",\n filterLabels: [{\n name: \"PLANET\",\n value: \"MARS\",\n }],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndebian_image = gcp.compute.get_image(family=\"debian-11\",\n project=\"debian-cloud\")\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n name=\"template-backend\",\n machine_type=\"e2-medium\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n network=\"default\",\n )],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=debian_image.self_link,\n auto_delete=True,\n boot=True,\n )])\nigm = gcp.compute.InstanceGroupManager(\"igm\",\n name=\"igm-internal\",\n versions=[gcp.compute.InstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"internal-glb\",\n zone=\"us-central1-f\",\n target_size=1)\ndefault_health_check = gcp.compute.HealthCheck(\"default\",\n name=\"check-backend\",\n check_interval_sec=1,\n timeout_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"backend\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n load_balancing_scheme=\"INTERNAL_SELF_MANAGED\",\n backends=[gcp.compute.BackendServiceBackendArgs(\n group=igm.instance_group,\n balancing_mode=\"RATE\",\n capacity_scaler=0.4,\n max_rate_per_instance=50,\n )],\n health_checks=default_health_check.id)\ndefault_url_map = gcp.compute.URLMap(\"default\",\n name=\"url-map-target-proxy\",\n description=\"a description\",\n default_service=default_backend_service.id,\n host_rules=[gcp.compute.URLMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.URLMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=default_backend_service.id,\n path_rules=[gcp.compute.URLMapPathMatcherPathRuleArgs(\n paths=[\"/*\"],\n service=default_backend_service.id,\n )],\n )])\ndefault_target_http_proxy = gcp.compute.TargetHttpProxy(\"default\",\n name=\"target-proxy\",\n description=\"a description\",\n url_map=default_url_map.id)\ndefault = gcp.compute.GlobalForwardingRule(\"default\",\n name=\"global-rule\",\n target=default_target_http_proxy.id,\n port_range=\"80\",\n load_balancing_scheme=\"INTERNAL_SELF_MANAGED\",\n ip_address=\"0.0.0.0\",\n metadata_filters=[gcp.compute.GlobalForwardingRuleMetadataFilterArgs(\n filter_match_criteria=\"MATCH_ANY\",\n filter_labels=[gcp.compute.GlobalForwardingRuleMetadataFilterFilterLabelArgs(\n name=\"PLANET\",\n value=\"MARS\",\n )],\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var debianImage = Gcp.Compute.GetImage.Invoke(new()\n {\n Family = \"debian-11\",\n Project = \"debian-cloud\",\n });\n\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n Name = \"template-backend\",\n MachineType = \"e2-medium\",\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n Network = \"default\",\n },\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = debianImage.Apply(getImageResult =\u003e getImageResult.SelfLink),\n AutoDelete = true,\n Boot = true,\n },\n },\n });\n\n var igm = new Gcp.Compute.InstanceGroupManager(\"igm\", new()\n {\n Name = \"igm-internal\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"internal-glb\",\n Zone = \"us-central1-f\",\n TargetSize = 1,\n });\n\n var defaultHealthCheck = new Gcp.Compute.HealthCheck(\"default\", new()\n {\n Name = \"check-backend\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n LoadBalancingScheme = \"INTERNAL_SELF_MANAGED\",\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = igm.InstanceGroup,\n BalancingMode = \"RATE\",\n CapacityScaler = 0.4,\n MaxRatePerInstance = 50,\n },\n },\n HealthChecks = defaultHealthCheck.Id,\n });\n\n var defaultURLMap = new Gcp.Compute.URLMap(\"default\", new()\n {\n Name = \"url-map-target-proxy\",\n Description = \"a description\",\n DefaultService = defaultBackendService.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = defaultBackendService.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/*\",\n },\n Service = defaultBackendService.Id,\n },\n },\n },\n },\n });\n\n var defaultTargetHttpProxy = new Gcp.Compute.TargetHttpProxy(\"default\", new()\n {\n Name = \"target-proxy\",\n Description = \"a description\",\n UrlMap = defaultURLMap.Id,\n });\n\n var @default = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Name = \"global-rule\",\n Target = defaultTargetHttpProxy.Id,\n PortRange = \"80\",\n LoadBalancingScheme = \"INTERNAL_SELF_MANAGED\",\n IpAddress = \"0.0.0.0\",\n MetadataFilters = new[]\n {\n new Gcp.Compute.Inputs.GlobalForwardingRuleMetadataFilterArgs\n {\n FilterMatchCriteria = \"MATCH_ANY\",\n FilterLabels = new[]\n {\n new Gcp.Compute.Inputs.GlobalForwardingRuleMetadataFilterFilterLabelArgs\n {\n Name = \"PLANET\",\n Value = \"MARS\",\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdebianImage, err := compute.LookupImage(ctx, \u0026compute.LookupImageArgs{\n\t\t\tFamily: pulumi.StringRef(\"debian-11\"),\n\t\t\tProject: pulumi.StringRef(\"debian-cloud\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tName: pulumi.String(\"template-backend\"),\n\t\t\tMachineType: pulumi.String(\"e2-medium\"),\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(debianImage.SelfLink),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tigm, err := compute.NewInstanceGroupManager(ctx, \"igm\", \u0026compute.InstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"igm-internal\"),\n\t\t\tVersions: compute.InstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"internal-glb\"),\n\t\t\tZone: pulumi.String(\"us-central1-f\"),\n\t\t\tTargetSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHealthCheck, err := compute.NewHealthCheck(ctx, \"default\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"check-backend\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_SELF_MANAGED\"),\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: igm.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"RATE\"),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(0.4),\n\t\t\t\t\tMaxRatePerInstance: pulumi.Float64(50),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultURLMap, err := compute.NewURLMap(ctx, \"default\", \u0026compute.URLMapArgs{\n\t\t\tName: pulumi.String(\"url-map-target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\tHostRules: compute.URLMapHostRuleArray{\n\t\t\t\t\u0026compute.URLMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.URLMapPathMatcherArray{\n\t\t\t\t\u0026compute.URLMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\t\t\tPathRules: compute.URLMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.URLMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/*\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: defaultBackendService.ID(),\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTargetHttpProxy, err := compute.NewTargetHttpProxy(ctx, \"default\", \u0026compute.TargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tUrlMap: defaultURLMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"global-rule\"),\n\t\t\tTarget: defaultTargetHttpProxy.ID(),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_SELF_MANAGED\"),\n\t\t\tIpAddress: pulumi.String(\"0.0.0.0\"),\n\t\t\tMetadataFilters: compute.GlobalForwardingRuleMetadataFilterArray{\n\t\t\t\t\u0026compute.GlobalForwardingRuleMetadataFilterArgs{\n\t\t\t\t\tFilterMatchCriteria: pulumi.String(\"MATCH_ANY\"),\n\t\t\t\t\tFilterLabels: compute.GlobalForwardingRuleMetadataFilterFilterLabelArray{\n\t\t\t\t\t\t\u0026compute.GlobalForwardingRuleMetadataFilterFilterLabelArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"PLANET\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"MARS\"),\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetImageArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.InstanceGroupManager;\nimport com.pulumi.gcp.compute.InstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.URLMap;\nimport com.pulumi.gcp.compute.URLMapArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.TargetHttpProxy;\nimport com.pulumi.gcp.compute.TargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\nimport com.pulumi.gcp.compute.inputs.GlobalForwardingRuleMetadataFilterArgs;\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 final var debianImage = ComputeFunctions.getImage(GetImageArgs.builder()\n .family(\"debian-11\")\n .project(\"debian-cloud\")\n .build());\n\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .name(\"template-backend\")\n .machineType(\"e2-medium\")\n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .network(\"default\")\n .build())\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(debianImage.applyValue(getImageResult -\u003e getImageResult.selfLink()))\n .autoDelete(true)\n .boot(true)\n .build())\n .build());\n\n var igm = new InstanceGroupManager(\"igm\", InstanceGroupManagerArgs.builder() \n .name(\"igm-internal\")\n .versions(InstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"internal-glb\")\n .zone(\"us-central1-f\")\n .targetSize(1)\n .build());\n\n var defaultHealthCheck = new HealthCheck(\"defaultHealthCheck\", HealthCheckArgs.builder() \n .name(\"check-backend\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"backend\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .loadBalancingScheme(\"INTERNAL_SELF_MANAGED\")\n .backends(BackendServiceBackendArgs.builder()\n .group(igm.instanceGroup())\n .balancingMode(\"RATE\")\n .capacityScaler(0.4)\n .maxRatePerInstance(50)\n .build())\n .healthChecks(defaultHealthCheck.id())\n .build());\n\n var defaultURLMap = new URLMap(\"defaultURLMap\", URLMapArgs.builder() \n .name(\"url-map-target-proxy\")\n .description(\"a description\")\n .defaultService(defaultBackendService.id())\n .hostRules(URLMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(URLMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(defaultBackendService.id())\n .pathRules(URLMapPathMatcherPathRuleArgs.builder()\n .paths(\"/*\")\n .service(defaultBackendService.id())\n .build())\n .build())\n .build());\n\n var defaultTargetHttpProxy = new TargetHttpProxy(\"defaultTargetHttpProxy\", TargetHttpProxyArgs.builder() \n .name(\"target-proxy\")\n .description(\"a description\")\n .urlMap(defaultURLMap.id())\n .build());\n\n var default_ = new GlobalForwardingRule(\"default\", GlobalForwardingRuleArgs.builder() \n .name(\"global-rule\")\n .target(defaultTargetHttpProxy.id())\n .portRange(\"80\")\n .loadBalancingScheme(\"INTERNAL_SELF_MANAGED\")\n .ipAddress(\"0.0.0.0\")\n .metadataFilters(GlobalForwardingRuleMetadataFilterArgs.builder()\n .filterMatchCriteria(\"MATCH_ANY\")\n .filterLabels(GlobalForwardingRuleMetadataFilterFilterLabelArgs.builder()\n .name(\"PLANET\")\n .value(\"MARS\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:GlobalForwardingRule\n properties:\n name: global-rule\n target: ${defaultTargetHttpProxy.id}\n portRange: '80'\n loadBalancingScheme: INTERNAL_SELF_MANAGED\n ipAddress: 0.0.0.0\n metadataFilters:\n - filterMatchCriteria: MATCH_ANY\n filterLabels:\n - name: PLANET\n value: MARS\n defaultTargetHttpProxy:\n type: gcp:compute:TargetHttpProxy\n name: default\n properties:\n name: target-proxy\n description: a description\n urlMap: ${defaultURLMap.id}\n defaultURLMap:\n type: gcp:compute:URLMap\n name: default\n properties:\n name: url-map-target-proxy\n description: a description\n defaultService: ${defaultBackendService.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${defaultBackendService.id}\n pathRules:\n - paths:\n - /*\n service: ${defaultBackendService.id}\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: backend\n portName: http\n protocol: HTTP\n timeoutSec: 10\n loadBalancingScheme: INTERNAL_SELF_MANAGED\n backends:\n - group: ${igm.instanceGroup}\n balancingMode: RATE\n capacityScaler: 0.4\n maxRatePerInstance: 50\n healthChecks: ${defaultHealthCheck.id}\n igm:\n type: gcp:compute:InstanceGroupManager\n properties:\n name: igm-internal\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: internal-glb\n zone: us-central1-f\n targetSize: 1\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n name: template-backend\n machineType: e2-medium\n networkInterfaces:\n - network: default\n disks:\n - sourceImage: ${debianImage.selfLink}\n autoDelete: true\n boot: true\n defaultHealthCheck:\n type: gcp:compute:HealthCheck\n name: default\n properties:\n name: check-backend\n checkIntervalSec: 1\n timeoutSec: 1\n tcpHealthCheck:\n port: '80'\nvariables:\n debianImage:\n fn::invoke:\n Function: gcp:compute:getImage\n Arguments:\n family: debian-11\n project: debian-cloud\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Global Forwarding Rule External Managed\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"backend\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n});\nconst defaultURLMap = new gcp.compute.URLMap(\"default\", {\n name: \"url-map-target-proxy\",\n description: \"a description\",\n defaultService: defaultBackendService.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: defaultBackendService.id,\n pathRules: [{\n paths: [\"/*\"],\n service: defaultBackendService.id,\n }],\n }],\n});\nconst defaultTargetHttpProxy = new gcp.compute.TargetHttpProxy(\"default\", {\n name: \"target-proxy\",\n description: \"a description\",\n urlMap: defaultURLMap.id,\n});\nconst _default = new gcp.compute.GlobalForwardingRule(\"default\", {\n name: \"global-rule\",\n target: defaultTargetHttpProxy.id,\n portRange: \"80\",\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"backend\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n load_balancing_scheme=\"EXTERNAL_MANAGED\")\ndefault_url_map = gcp.compute.URLMap(\"default\",\n name=\"url-map-target-proxy\",\n description=\"a description\",\n default_service=default_backend_service.id,\n host_rules=[gcp.compute.URLMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.URLMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=default_backend_service.id,\n path_rules=[gcp.compute.URLMapPathMatcherPathRuleArgs(\n paths=[\"/*\"],\n service=default_backend_service.id,\n )],\n )])\ndefault_target_http_proxy = gcp.compute.TargetHttpProxy(\"default\",\n name=\"target-proxy\",\n description=\"a description\",\n url_map=default_url_map.id)\ndefault = gcp.compute.GlobalForwardingRule(\"default\",\n name=\"global-rule\",\n target=default_target_http_proxy.id,\n port_range=\"80\",\n load_balancing_scheme=\"EXTERNAL_MANAGED\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n });\n\n var defaultURLMap = new Gcp.Compute.URLMap(\"default\", new()\n {\n Name = \"url-map-target-proxy\",\n Description = \"a description\",\n DefaultService = defaultBackendService.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = defaultBackendService.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/*\",\n },\n Service = defaultBackendService.Id,\n },\n },\n },\n },\n });\n\n var defaultTargetHttpProxy = new Gcp.Compute.TargetHttpProxy(\"default\", new()\n {\n Name = \"target-proxy\",\n Description = \"a description\",\n UrlMap = defaultURLMap.Id,\n });\n\n var @default = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Name = \"global-rule\",\n Target = defaultTargetHttpProxy.Id,\n PortRange = \"80\",\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultURLMap, err := compute.NewURLMap(ctx, \"default\", \u0026compute.URLMapArgs{\n\t\t\tName: pulumi.String(\"url-map-target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\tHostRules: compute.URLMapHostRuleArray{\n\t\t\t\t\u0026compute.URLMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.URLMapPathMatcherArray{\n\t\t\t\t\u0026compute.URLMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\t\t\tPathRules: compute.URLMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.URLMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/*\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: defaultBackendService.ID(),\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTargetHttpProxy, err := compute.NewTargetHttpProxy(ctx, \"default\", \u0026compute.TargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tUrlMap: defaultURLMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"global-rule\"),\n\t\t\tTarget: defaultTargetHttpProxy.ID(),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.URLMap;\nimport com.pulumi.gcp.compute.URLMapArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.TargetHttpProxy;\nimport com.pulumi.gcp.compute.TargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\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 defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"backend\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .build());\n\n var defaultURLMap = new URLMap(\"defaultURLMap\", URLMapArgs.builder() \n .name(\"url-map-target-proxy\")\n .description(\"a description\")\n .defaultService(defaultBackendService.id())\n .hostRules(URLMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(URLMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(defaultBackendService.id())\n .pathRules(URLMapPathMatcherPathRuleArgs.builder()\n .paths(\"/*\")\n .service(defaultBackendService.id())\n .build())\n .build())\n .build());\n\n var defaultTargetHttpProxy = new TargetHttpProxy(\"defaultTargetHttpProxy\", TargetHttpProxyArgs.builder() \n .name(\"target-proxy\")\n .description(\"a description\")\n .urlMap(defaultURLMap.id())\n .build());\n\n var default_ = new GlobalForwardingRule(\"default\", GlobalForwardingRuleArgs.builder() \n .name(\"global-rule\")\n .target(defaultTargetHttpProxy.id())\n .portRange(\"80\")\n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:GlobalForwardingRule\n properties:\n name: global-rule\n target: ${defaultTargetHttpProxy.id}\n portRange: '80'\n loadBalancingScheme: EXTERNAL_MANAGED\n defaultTargetHttpProxy:\n type: gcp:compute:TargetHttpProxy\n name: default\n properties:\n name: target-proxy\n description: a description\n urlMap: ${defaultURLMap.id}\n defaultURLMap:\n type: gcp:compute:URLMap\n name: default\n properties:\n name: url-map-target-proxy\n description: a description\n defaultService: ${defaultBackendService.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${defaultBackendService.id}\n pathRules:\n - paths:\n - /*\n service: ${defaultBackendService.id}\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: backend\n portName: http\n protocol: HTTP\n timeoutSec: 10\n loadBalancingScheme: EXTERNAL_MANAGED\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Global Forwarding Rule Hybrid\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst config = new pulumi.Config();\nconst subnetworkCidr = config.get(\"subnetworkCidr\") || \"10.0.0.0/24\";\nconst _default = new gcp.compute.Network(\"default\", {name: \"my-network\"});\nconst internal = new gcp.compute.Network(\"internal\", {\n name: \"my-internal-network\",\n autoCreateSubnetworks: false,\n});\nconst internalSubnetwork = new gcp.compute.Subnetwork(\"internal\", {\n name: \"my-subnetwork\",\n network: internal.id,\n ipCidrRange: subnetworkCidr,\n region: \"us-central1\",\n privateIpGoogleAccess: true,\n});\n// Zonal NEG with GCE_VM_IP_PORT\nconst defaultNetworkEndpointGroup = new gcp.compute.NetworkEndpointGroup(\"default\", {\n name: \"default-neg\",\n network: _default.id,\n defaultPort: 90,\n zone: \"us-central1-a\",\n networkEndpointType: \"GCE_VM_IP_PORT\",\n});\n// Zonal NEG with GCE_VM_IP\nconst internalNetworkEndpointGroup = new gcp.compute.NetworkEndpointGroup(\"internal\", {\n name: \"internal-neg\",\n network: internal.id,\n subnetwork: internalSubnetwork.id,\n zone: \"us-central1-a\",\n networkEndpointType: \"GCE_VM_IP\",\n});\n// Hybrid connectivity NEG\nconst hybrid = new gcp.compute.NetworkEndpointGroup(\"hybrid\", {\n name: \"hybrid-neg\",\n network: _default.id,\n defaultPort: 90,\n zone: \"us-central1-a\",\n networkEndpointType: \"NON_GCP_PRIVATE_IP_PORT\",\n});\nconst hybrid_endpoint = new gcp.compute.NetworkEndpoint(\"hybrid-endpoint\", {\n networkEndpointGroup: hybrid.name,\n port: hybrid.defaultPort,\n ipAddress: \"127.0.0.1\",\n});\nconst defaultHealthCheck = new gcp.compute.HealthCheck(\"default\", {\n name: \"health-check\",\n timeoutSec: 1,\n checkIntervalSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\n// Backend service for Zonal NEG\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"backend-default\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n backends: [{\n group: defaultNetworkEndpointGroup.id,\n balancingMode: \"RATE\",\n maxRatePerEndpoint: 10,\n }],\n healthChecks: defaultHealthCheck.id,\n});\n// Backgend service for Hybrid NEG\nconst hybridBackendService = new gcp.compute.BackendService(\"hybrid\", {\n name: \"backend-hybrid\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n backends: [{\n group: hybrid.id,\n balancingMode: \"RATE\",\n maxRatePerEndpoint: 10,\n }],\n healthChecks: defaultHealthCheck.id,\n});\nconst defaultURLMap = new gcp.compute.URLMap(\"default\", {\n name: \"url-map-target-proxy\",\n description: \"a description\",\n defaultService: defaultBackendService.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: defaultBackendService.id,\n pathRules: [\n {\n paths: [\"/*\"],\n service: defaultBackendService.id,\n },\n {\n paths: [\"/hybrid\"],\n service: hybridBackendService.id,\n },\n ],\n }],\n});\nconst defaultTargetHttpProxy = new gcp.compute.TargetHttpProxy(\"default\", {\n name: \"target-proxy\",\n description: \"a description\",\n urlMap: defaultURLMap.id,\n});\nconst defaultGlobalForwardingRule = new gcp.compute.GlobalForwardingRule(\"default\", {\n name: \"global-rule\",\n target: defaultTargetHttpProxy.id,\n portRange: \"80\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nconfig = pulumi.Config()\nsubnetwork_cidr = config.get(\"subnetworkCidr\")\nif subnetwork_cidr is None:\n subnetwork_cidr = \"10.0.0.0/24\"\ndefault = gcp.compute.Network(\"default\", name=\"my-network\")\ninternal = gcp.compute.Network(\"internal\",\n name=\"my-internal-network\",\n auto_create_subnetworks=False)\ninternal_subnetwork = gcp.compute.Subnetwork(\"internal\",\n name=\"my-subnetwork\",\n network=internal.id,\n ip_cidr_range=subnetwork_cidr,\n region=\"us-central1\",\n private_ip_google_access=True)\n# Zonal NEG with GCE_VM_IP_PORT\ndefault_network_endpoint_group = gcp.compute.NetworkEndpointGroup(\"default\",\n name=\"default-neg\",\n network=default.id,\n default_port=90,\n zone=\"us-central1-a\",\n network_endpoint_type=\"GCE_VM_IP_PORT\")\n# Zonal NEG with GCE_VM_IP\ninternal_network_endpoint_group = gcp.compute.NetworkEndpointGroup(\"internal\",\n name=\"internal-neg\",\n network=internal.id,\n subnetwork=internal_subnetwork.id,\n zone=\"us-central1-a\",\n network_endpoint_type=\"GCE_VM_IP\")\n# Hybrid connectivity NEG\nhybrid = gcp.compute.NetworkEndpointGroup(\"hybrid\",\n name=\"hybrid-neg\",\n network=default.id,\n default_port=90,\n zone=\"us-central1-a\",\n network_endpoint_type=\"NON_GCP_PRIVATE_IP_PORT\")\nhybrid_endpoint = gcp.compute.NetworkEndpoint(\"hybrid-endpoint\",\n network_endpoint_group=hybrid.name,\n port=hybrid.default_port,\n ip_address=\"127.0.0.1\")\ndefault_health_check = gcp.compute.HealthCheck(\"default\",\n name=\"health-check\",\n timeout_sec=1,\n check_interval_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\n# Backend service for Zonal NEG\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"backend-default\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n backends=[gcp.compute.BackendServiceBackendArgs(\n group=default_network_endpoint_group.id,\n balancing_mode=\"RATE\",\n max_rate_per_endpoint=10,\n )],\n health_checks=default_health_check.id)\n# Backgend service for Hybrid NEG\nhybrid_backend_service = gcp.compute.BackendService(\"hybrid\",\n name=\"backend-hybrid\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n backends=[gcp.compute.BackendServiceBackendArgs(\n group=hybrid.id,\n balancing_mode=\"RATE\",\n max_rate_per_endpoint=10,\n )],\n health_checks=default_health_check.id)\ndefault_url_map = gcp.compute.URLMap(\"default\",\n name=\"url-map-target-proxy\",\n description=\"a description\",\n default_service=default_backend_service.id,\n host_rules=[gcp.compute.URLMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.URLMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=default_backend_service.id,\n path_rules=[\n gcp.compute.URLMapPathMatcherPathRuleArgs(\n paths=[\"/*\"],\n service=default_backend_service.id,\n ),\n gcp.compute.URLMapPathMatcherPathRuleArgs(\n paths=[\"/hybrid\"],\n service=hybrid_backend_service.id,\n ),\n ],\n )])\ndefault_target_http_proxy = gcp.compute.TargetHttpProxy(\"default\",\n name=\"target-proxy\",\n description=\"a description\",\n url_map=default_url_map.id)\ndefault_global_forwarding_rule = gcp.compute.GlobalForwardingRule(\"default\",\n name=\"global-rule\",\n target=default_target_http_proxy.id,\n port_range=\"80\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var config = new Config();\n var subnetworkCidr = config.Get(\"subnetworkCidr\") ?? \"10.0.0.0/24\";\n var @default = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"my-network\",\n });\n\n var @internal = new Gcp.Compute.Network(\"internal\", new()\n {\n Name = \"my-internal-network\",\n AutoCreateSubnetworks = false,\n });\n\n var internalSubnetwork = new Gcp.Compute.Subnetwork(\"internal\", new()\n {\n Name = \"my-subnetwork\",\n Network = @internal.Id,\n IpCidrRange = subnetworkCidr,\n Region = \"us-central1\",\n PrivateIpGoogleAccess = true,\n });\n\n // Zonal NEG with GCE_VM_IP_PORT\n var defaultNetworkEndpointGroup = new Gcp.Compute.NetworkEndpointGroup(\"default\", new()\n {\n Name = \"default-neg\",\n Network = @default.Id,\n DefaultPort = 90,\n Zone = \"us-central1-a\",\n NetworkEndpointType = \"GCE_VM_IP_PORT\",\n });\n\n // Zonal NEG with GCE_VM_IP\n var internalNetworkEndpointGroup = new Gcp.Compute.NetworkEndpointGroup(\"internal\", new()\n {\n Name = \"internal-neg\",\n Network = @internal.Id,\n Subnetwork = internalSubnetwork.Id,\n Zone = \"us-central1-a\",\n NetworkEndpointType = \"GCE_VM_IP\",\n });\n\n // Hybrid connectivity NEG\n var hybrid = new Gcp.Compute.NetworkEndpointGroup(\"hybrid\", new()\n {\n Name = \"hybrid-neg\",\n Network = @default.Id,\n DefaultPort = 90,\n Zone = \"us-central1-a\",\n NetworkEndpointType = \"NON_GCP_PRIVATE_IP_PORT\",\n });\n\n var hybrid_endpoint = new Gcp.Compute.NetworkEndpoint(\"hybrid-endpoint\", new()\n {\n NetworkEndpointGroup = hybrid.Name,\n Port = hybrid.DefaultPort,\n IpAddress = \"127.0.0.1\",\n });\n\n var defaultHealthCheck = new Gcp.Compute.HealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n TimeoutSec = 1,\n CheckIntervalSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n // Backend service for Zonal NEG\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-default\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = defaultNetworkEndpointGroup.Id,\n BalancingMode = \"RATE\",\n MaxRatePerEndpoint = 10,\n },\n },\n HealthChecks = defaultHealthCheck.Id,\n });\n\n // Backgend service for Hybrid NEG\n var hybridBackendService = new Gcp.Compute.BackendService(\"hybrid\", new()\n {\n Name = \"backend-hybrid\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = hybrid.Id,\n BalancingMode = \"RATE\",\n MaxRatePerEndpoint = 10,\n },\n },\n HealthChecks = defaultHealthCheck.Id,\n });\n\n var defaultURLMap = new Gcp.Compute.URLMap(\"default\", new()\n {\n Name = \"url-map-target-proxy\",\n Description = \"a description\",\n DefaultService = defaultBackendService.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = defaultBackendService.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/*\",\n },\n Service = defaultBackendService.Id,\n },\n new Gcp.Compute.Inputs.URLMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/hybrid\",\n },\n Service = hybridBackendService.Id,\n },\n },\n },\n },\n });\n\n var defaultTargetHttpProxy = new Gcp.Compute.TargetHttpProxy(\"default\", new()\n {\n Name = \"target-proxy\",\n Description = \"a description\",\n UrlMap = defaultURLMap.Id,\n });\n\n var defaultGlobalForwardingRule = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Name = \"global-rule\",\n Target = defaultTargetHttpProxy.Id,\n PortRange = \"80\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsubnetworkCidr := \"10.0.0.0/24\"\n\t\tif param := cfg.Get(\"subnetworkCidr\"); param != \"\" {\n\t\t\tsubnetworkCidr = param\n\t\t}\n\t\t_, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"my-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinternal, err := compute.NewNetwork(ctx, \"internal\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"my-internal-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinternalSubnetwork, err := compute.NewSubnetwork(ctx, \"internal\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"my-subnetwork\"),\n\t\t\tNetwork: internal.ID(),\n\t\t\tIpCidrRange: pulumi.String(subnetworkCidr),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPrivateIpGoogleAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Zonal NEG with GCE_VM_IP_PORT\n\t\tdefaultNetworkEndpointGroup, err := compute.NewNetworkEndpointGroup(ctx, \"default\", \u0026compute.NetworkEndpointGroupArgs{\n\t\t\tName: pulumi.String(\"default-neg\"),\n\t\t\tNetwork: _default.ID(),\n\t\t\tDefaultPort: pulumi.Int(90),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t\tNetworkEndpointType: pulumi.String(\"GCE_VM_IP_PORT\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Zonal NEG with GCE_VM_IP\n\t\t_, err = compute.NewNetworkEndpointGroup(ctx, \"internal\", \u0026compute.NetworkEndpointGroupArgs{\n\t\t\tName: pulumi.String(\"internal-neg\"),\n\t\t\tNetwork: internal.ID(),\n\t\t\tSubnetwork: internalSubnetwork.ID(),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t\tNetworkEndpointType: pulumi.String(\"GCE_VM_IP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Hybrid connectivity NEG\n\t\thybrid, err := compute.NewNetworkEndpointGroup(ctx, \"hybrid\", \u0026compute.NetworkEndpointGroupArgs{\n\t\t\tName: pulumi.String(\"hybrid-neg\"),\n\t\t\tNetwork: _default.ID(),\n\t\t\tDefaultPort: pulumi.Int(90),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t\tNetworkEndpointType: pulumi.String(\"NON_GCP_PRIVATE_IP_PORT\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewNetworkEndpoint(ctx, \"hybrid-endpoint\", \u0026compute.NetworkEndpointArgs{\n\t\t\tNetworkEndpointGroup: hybrid.Name,\n\t\t\tPort: hybrid.DefaultPort,\n\t\t\tIpAddress: pulumi.String(\"127.0.0.1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHealthCheck, err := compute.NewHealthCheck(ctx, \"default\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Backend service for Zonal NEG\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-default\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: defaultNetworkEndpointGroup.ID(),\n\t\t\t\t\tBalancingMode: pulumi.String(\"RATE\"),\n\t\t\t\t\tMaxRatePerEndpoint: pulumi.Float64(10),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Backgend service for Hybrid NEG\n\t\thybridBackendService, err := compute.NewBackendService(ctx, \"hybrid\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-hybrid\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: hybrid.ID(),\n\t\t\t\t\tBalancingMode: pulumi.String(\"RATE\"),\n\t\t\t\t\tMaxRatePerEndpoint: pulumi.Float64(10),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultURLMap, err := compute.NewURLMap(ctx, \"default\", \u0026compute.URLMapArgs{\n\t\t\tName: pulumi.String(\"url-map-target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\tHostRules: compute.URLMapHostRuleArray{\n\t\t\t\t\u0026compute.URLMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.URLMapPathMatcherArray{\n\t\t\t\t\u0026compute.URLMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\t\t\tPathRules: compute.URLMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.URLMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/*\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: defaultBackendService.ID(),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026compute.URLMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/hybrid\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: hybridBackendService.ID(),\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTargetHttpProxy, err := compute.NewTargetHttpProxy(ctx, \"default\", \u0026compute.TargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tUrlMap: defaultURLMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"global-rule\"),\n\t\t\tTarget: defaultTargetHttpProxy.ID(),\n\t\t\tPortRange: pulumi.String(\"80\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.NetworkEndpointGroup;\nimport com.pulumi.gcp.compute.NetworkEndpointGroupArgs;\nimport com.pulumi.gcp.compute.NetworkEndpoint;\nimport com.pulumi.gcp.compute.NetworkEndpointArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.URLMap;\nimport com.pulumi.gcp.compute.URLMapArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.TargetHttpProxy;\nimport com.pulumi.gcp.compute.TargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\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 final var config = ctx.config();\n final var subnetworkCidr = config.get(\"subnetworkCidr\").orElse(\"10.0.0.0/24\");\n var default_ = new Network(\"default\", NetworkArgs.builder() \n .name(\"my-network\")\n .build());\n\n var internal = new Network(\"internal\", NetworkArgs.builder() \n .name(\"my-internal-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n var internalSubnetwork = new Subnetwork(\"internalSubnetwork\", SubnetworkArgs.builder() \n .name(\"my-subnetwork\")\n .network(internal.id())\n .ipCidrRange(subnetworkCidr)\n .region(\"us-central1\")\n .privateIpGoogleAccess(true)\n .build());\n\n // Zonal NEG with GCE_VM_IP_PORT\n var defaultNetworkEndpointGroup = new NetworkEndpointGroup(\"defaultNetworkEndpointGroup\", NetworkEndpointGroupArgs.builder() \n .name(\"default-neg\")\n .network(default_.id())\n .defaultPort(\"90\")\n .zone(\"us-central1-a\")\n .networkEndpointType(\"GCE_VM_IP_PORT\")\n .build());\n\n // Zonal NEG with GCE_VM_IP\n var internalNetworkEndpointGroup = new NetworkEndpointGroup(\"internalNetworkEndpointGroup\", NetworkEndpointGroupArgs.builder() \n .name(\"internal-neg\")\n .network(internal.id())\n .subnetwork(internalSubnetwork.id())\n .zone(\"us-central1-a\")\n .networkEndpointType(\"GCE_VM_IP\")\n .build());\n\n // Hybrid connectivity NEG\n var hybrid = new NetworkEndpointGroup(\"hybrid\", NetworkEndpointGroupArgs.builder() \n .name(\"hybrid-neg\")\n .network(default_.id())\n .defaultPort(\"90\")\n .zone(\"us-central1-a\")\n .networkEndpointType(\"NON_GCP_PRIVATE_IP_PORT\")\n .build());\n\n var hybrid_endpoint = new NetworkEndpoint(\"hybrid-endpoint\", NetworkEndpointArgs.builder() \n .networkEndpointGroup(hybrid.name())\n .port(hybrid.defaultPort())\n .ipAddress(\"127.0.0.1\")\n .build());\n\n var defaultHealthCheck = new HealthCheck(\"defaultHealthCheck\", HealthCheckArgs.builder() \n .name(\"health-check\")\n .timeoutSec(1)\n .checkIntervalSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n // Backend service for Zonal NEG\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"backend-default\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .backends(BackendServiceBackendArgs.builder()\n .group(defaultNetworkEndpointGroup.id())\n .balancingMode(\"RATE\")\n .maxRatePerEndpoint(10)\n .build())\n .healthChecks(defaultHealthCheck.id())\n .build());\n\n // Backgend service for Hybrid NEG\n var hybridBackendService = new BackendService(\"hybridBackendService\", BackendServiceArgs.builder() \n .name(\"backend-hybrid\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .backends(BackendServiceBackendArgs.builder()\n .group(hybrid.id())\n .balancingMode(\"RATE\")\n .maxRatePerEndpoint(10)\n .build())\n .healthChecks(defaultHealthCheck.id())\n .build());\n\n var defaultURLMap = new URLMap(\"defaultURLMap\", URLMapArgs.builder() \n .name(\"url-map-target-proxy\")\n .description(\"a description\")\n .defaultService(defaultBackendService.id())\n .hostRules(URLMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(URLMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(defaultBackendService.id())\n .pathRules( \n URLMapPathMatcherPathRuleArgs.builder()\n .paths(\"/*\")\n .service(defaultBackendService.id())\n .build(),\n URLMapPathMatcherPathRuleArgs.builder()\n .paths(\"/hybrid\")\n .service(hybridBackendService.id())\n .build())\n .build())\n .build());\n\n var defaultTargetHttpProxy = new TargetHttpProxy(\"defaultTargetHttpProxy\", TargetHttpProxyArgs.builder() \n .name(\"target-proxy\")\n .description(\"a description\")\n .urlMap(defaultURLMap.id())\n .build());\n\n var defaultGlobalForwardingRule = new GlobalForwardingRule(\"defaultGlobalForwardingRule\", GlobalForwardingRuleArgs.builder() \n .name(\"global-rule\")\n .target(defaultTargetHttpProxy.id())\n .portRange(\"80\")\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n # Roughly mirrors https://cloud.google.com/load-balancing/docs/https/setting-up-ext-https-hybrid\n subnetworkCidr:\n type: string\n default: 10.0.0.0/24\nresources:\n default:\n type: gcp:compute:Network\n properties:\n name: my-network\n internal:\n type: gcp:compute:Network\n properties:\n name: my-internal-network\n autoCreateSubnetworks: false\n internalSubnetwork:\n type: gcp:compute:Subnetwork\n name: internal\n properties:\n name: my-subnetwork\n network: ${internal.id}\n ipCidrRange: ${subnetworkCidr}\n region: us-central1\n privateIpGoogleAccess: true\n # Zonal NEG with GCE_VM_IP_PORT\n defaultNetworkEndpointGroup:\n type: gcp:compute:NetworkEndpointGroup\n name: default\n properties:\n name: default-neg\n network: ${default.id}\n defaultPort: '90'\n zone: us-central1-a\n networkEndpointType: GCE_VM_IP_PORT\n # Zonal NEG with GCE_VM_IP\n internalNetworkEndpointGroup:\n type: gcp:compute:NetworkEndpointGroup\n name: internal\n properties:\n name: internal-neg\n network: ${internal.id}\n subnetwork: ${internalSubnetwork.id}\n zone: us-central1-a\n networkEndpointType: GCE_VM_IP\n # Hybrid connectivity NEG\n hybrid:\n type: gcp:compute:NetworkEndpointGroup\n properties:\n name: hybrid-neg\n network: ${default.id}\n defaultPort: '90'\n zone: us-central1-a\n networkEndpointType: NON_GCP_PRIVATE_IP_PORT\n hybrid-endpoint:\n type: gcp:compute:NetworkEndpoint\n properties:\n networkEndpointGroup: ${hybrid.name}\n port: ${hybrid.defaultPort}\n ipAddress: 127.0.0.1\n # Backend service for Zonal NEG\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: backend-default\n portName: http\n protocol: HTTP\n timeoutSec: 10\n backends:\n - group: ${defaultNetworkEndpointGroup.id}\n balancingMode: RATE\n maxRatePerEndpoint: 10\n healthChecks: ${defaultHealthCheck.id}\n # Backgend service for Hybrid NEG\n hybridBackendService:\n type: gcp:compute:BackendService\n name: hybrid\n properties:\n name: backend-hybrid\n portName: http\n protocol: HTTP\n timeoutSec: 10\n backends:\n - group: ${hybrid.id}\n balancingMode: RATE\n maxRatePerEndpoint: 10\n healthChecks: ${defaultHealthCheck.id}\n defaultHealthCheck:\n type: gcp:compute:HealthCheck\n name: default\n properties:\n name: health-check\n timeoutSec: 1\n checkIntervalSec: 1\n tcpHealthCheck:\n port: '80'\n defaultURLMap:\n type: gcp:compute:URLMap\n name: default\n properties:\n name: url-map-target-proxy\n description: a description\n defaultService: ${defaultBackendService.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${defaultBackendService.id}\n pathRules:\n - paths:\n - /*\n service: ${defaultBackendService.id}\n - paths:\n - /hybrid\n service: ${hybridBackendService.id}\n defaultTargetHttpProxy:\n type: gcp:compute:TargetHttpProxy\n name: default\n properties:\n name: target-proxy\n description: a description\n urlMap: ${defaultURLMap.id}\n defaultGlobalForwardingRule:\n type: gcp:compute:GlobalForwardingRule\n name: default\n properties:\n name: global-rule\n target: ${defaultTargetHttpProxy.id}\n portRange: '80'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Global Internal Http Lb With Mig Backend\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\n// Global Internal HTTP load balancer with a managed instance group backend\n// VPC network\nconst gilbNetwork = new gcp.compute.Network(\"gilb_network\", {\n name: \"l7-gilb-network\",\n autoCreateSubnetworks: false,\n});\n// proxy-only subnet\nconst proxySubnet = new gcp.compute.Subnetwork(\"proxy_subnet\", {\n name: \"l7-gilb-proxy-subnet\",\n ipCidrRange: \"10.0.0.0/24\",\n region: \"europe-west1\",\n purpose: \"GLOBAL_MANAGED_PROXY\",\n role: \"ACTIVE\",\n network: gilbNetwork.id,\n});\n// backend subnet\nconst gilbSubnet = new gcp.compute.Subnetwork(\"gilb_subnet\", {\n name: \"l7-gilb-subnet\",\n ipCidrRange: \"10.0.1.0/24\",\n region: \"europe-west1\",\n network: gilbNetwork.id,\n});\n// health check\nconst defaultHealthCheck = new gcp.compute.HealthCheck(\"default\", {\n name: \"l7-gilb-hc\",\n httpHealthCheck: {\n portSpecification: \"USE_SERVING_PORT\",\n },\n});\n// instance template\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: gilbNetwork.id,\n subnetwork: gilbSubnet.id,\n }],\n name: \"l7-gilb-mig-template\",\n machineType: \"e2-small\",\n tags: [\"http-server\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\n// MIG\nconst mig = new gcp.compute.InstanceGroupManager(\"mig\", {\n name: \"l7-gilb-mig1\",\n zone: \"europe-west1-b\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// backend service\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"l7-gilb-backend-subnet\",\n protocol: \"HTTP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n timeoutSec: 10,\n healthChecks: defaultHealthCheck.id,\n backends: [{\n group: mig.instanceGroup,\n balancingMode: \"UTILIZATION\",\n capacityScaler: 1,\n }],\n});\n// URL map\nconst defaultURLMap = new gcp.compute.URLMap(\"default\", {\n name: \"l7-gilb-url-map\",\n defaultService: defaultBackendService.id,\n});\n// HTTP target proxy\nconst _default = new gcp.compute.TargetHttpProxy(\"default\", {\n name: \"l7-gilb-target-http-proxy\",\n urlMap: defaultURLMap.id,\n});\n// forwarding rule\nconst googleComputeForwardingRule = new gcp.compute.GlobalForwardingRule(\"google_compute_forwarding_rule\", {\n name: \"l7-gilb-forwarding-rule\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n portRange: \"80\",\n target: _default.id,\n network: gilbNetwork.id,\n subnetwork: gilbSubnet.id,\n});\n// allow all access from IAP and health check ranges\nconst fw_iap = new gcp.compute.Firewall(\"fw-iap\", {\n name: \"l7-gilb-fw-allow-iap-hc\",\n direction: \"INGRESS\",\n network: gilbNetwork.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n});\n// allow http from proxy subnet to backends\nconst fw_gilb_to_backends = new gcp.compute.Firewall(\"fw-gilb-to-backends\", {\n name: \"l7-gilb-fw-allow-gilb-to-backends\",\n direction: \"INGRESS\",\n network: gilbNetwork.id,\n sourceRanges: [\"10.0.0.0/24\"],\n targetTags: [\"http-server\"],\n allows: [{\n protocol: \"tcp\",\n ports: [\n \"80\",\n \"443\",\n \"8080\",\n ],\n }],\n});\n// test instance\nconst vm_test = new gcp.compute.Instance(\"vm-test\", {\n name: \"l7-gilb-test-vm\",\n zone: \"europe-west1-b\",\n machineType: \"e2-small\",\n networkInterfaces: [{\n network: gilbNetwork.id,\n subnetwork: gilbSubnet.id,\n }],\n bootDisk: {\n initializeParams: {\n image: \"debian-cloud/debian-10\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\n# Global Internal HTTP load balancer with a managed instance group backend\n# VPC network\ngilb_network = gcp.compute.Network(\"gilb_network\",\n name=\"l7-gilb-network\",\n auto_create_subnetworks=False)\n# proxy-only subnet\nproxy_subnet = gcp.compute.Subnetwork(\"proxy_subnet\",\n name=\"l7-gilb-proxy-subnet\",\n ip_cidr_range=\"10.0.0.0/24\",\n region=\"europe-west1\",\n purpose=\"GLOBAL_MANAGED_PROXY\",\n role=\"ACTIVE\",\n network=gilb_network.id)\n# backend subnet\ngilb_subnet = gcp.compute.Subnetwork(\"gilb_subnet\",\n name=\"l7-gilb-subnet\",\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"europe-west1\",\n network=gilb_network.id)\n# health check\ndefault_health_check = gcp.compute.HealthCheck(\"default\",\n name=\"l7-gilb-hc\",\n http_health_check=gcp.compute.HealthCheckHttpHealthCheckArgs(\n port_specification=\"USE_SERVING_PORT\",\n ))\n# instance template\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=gilb_network.id,\n subnetwork=gilb_subnet.id,\n )],\n name=\"l7-gilb-mig-template\",\n machine_type=\"e2-small\",\n tags=[\"http-server\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\n# MIG\nmig = gcp.compute.InstanceGroupManager(\"mig\",\n name=\"l7-gilb-mig1\",\n zone=\"europe-west1-b\",\n versions=[gcp.compute.InstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# backend service\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"l7-gilb-backend-subnet\",\n protocol=\"HTTP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n timeout_sec=10,\n health_checks=default_health_check.id,\n backends=[gcp.compute.BackendServiceBackendArgs(\n group=mig.instance_group,\n balancing_mode=\"UTILIZATION\",\n capacity_scaler=1,\n )])\n# URL map\ndefault_url_map = gcp.compute.URLMap(\"default\",\n name=\"l7-gilb-url-map\",\n default_service=default_backend_service.id)\n# HTTP target proxy\ndefault = gcp.compute.TargetHttpProxy(\"default\",\n name=\"l7-gilb-target-http-proxy\",\n url_map=default_url_map.id)\n# forwarding rule\ngoogle_compute_forwarding_rule = gcp.compute.GlobalForwardingRule(\"google_compute_forwarding_rule\",\n name=\"l7-gilb-forwarding-rule\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n port_range=\"80\",\n target=default.id,\n network=gilb_network.id,\n subnetwork=gilb_subnet.id)\n# allow all access from IAP and health check ranges\nfw_iap = gcp.compute.Firewall(\"fw-iap\",\n name=\"l7-gilb-fw-allow-iap-hc\",\n direction=\"INGRESS\",\n network=gilb_network.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )])\n# allow http from proxy subnet to backends\nfw_gilb_to_backends = gcp.compute.Firewall(\"fw-gilb-to-backends\",\n name=\"l7-gilb-fw-allow-gilb-to-backends\",\n direction=\"INGRESS\",\n network=gilb_network.id,\n source_ranges=[\"10.0.0.0/24\"],\n target_tags=[\"http-server\"],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\n \"80\",\n \"443\",\n \"8080\",\n ],\n )])\n# test instance\nvm_test = gcp.compute.Instance(\"vm-test\",\n name=\"l7-gilb-test-vm\",\n zone=\"europe-west1-b\",\n machine_type=\"e2-small\",\n network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(\n network=gilb_network.id,\n subnetwork=gilb_subnet.id,\n )],\n boot_disk=gcp.compute.InstanceBootDiskArgs(\n initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(\n image=\"debian-cloud/debian-10\",\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Global Internal HTTP load balancer with a managed instance group backend\n // VPC network\n var gilbNetwork = new Gcp.Compute.Network(\"gilb_network\", new()\n {\n Name = \"l7-gilb-network\",\n AutoCreateSubnetworks = false,\n });\n\n // proxy-only subnet\n var proxySubnet = new Gcp.Compute.Subnetwork(\"proxy_subnet\", new()\n {\n Name = \"l7-gilb-proxy-subnet\",\n IpCidrRange = \"10.0.0.0/24\",\n Region = \"europe-west1\",\n Purpose = \"GLOBAL_MANAGED_PROXY\",\n Role = \"ACTIVE\",\n Network = gilbNetwork.Id,\n });\n\n // backend subnet\n var gilbSubnet = new Gcp.Compute.Subnetwork(\"gilb_subnet\", new()\n {\n Name = \"l7-gilb-subnet\",\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"europe-west1\",\n Network = gilbNetwork.Id,\n });\n\n // health check\n var defaultHealthCheck = new Gcp.Compute.HealthCheck(\"default\", new()\n {\n Name = \"l7-gilb-hc\",\n HttpHealthCheck = new Gcp.Compute.Inputs.HealthCheckHttpHealthCheckArgs\n {\n PortSpecification = \"USE_SERVING_PORT\",\n },\n });\n\n // instance template\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = gilbNetwork.Id,\n Subnetwork = gilbSubnet.Id,\n },\n },\n Name = \"l7-gilb-mig-template\",\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"http-server\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n // MIG\n var mig = new Gcp.Compute.InstanceGroupManager(\"mig\", new()\n {\n Name = \"l7-gilb-mig1\",\n Zone = \"europe-west1-b\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // backend service\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"l7-gilb-backend-subnet\",\n Protocol = \"HTTP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n TimeoutSec = 10,\n HealthChecks = defaultHealthCheck.Id,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = mig.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n CapacityScaler = 1,\n },\n },\n });\n\n // URL map\n var defaultURLMap = new Gcp.Compute.URLMap(\"default\", new()\n {\n Name = \"l7-gilb-url-map\",\n DefaultService = defaultBackendService.Id,\n });\n\n // HTTP target proxy\n var @default = new Gcp.Compute.TargetHttpProxy(\"default\", new()\n {\n Name = \"l7-gilb-target-http-proxy\",\n UrlMap = defaultURLMap.Id,\n });\n\n // forwarding rule\n var googleComputeForwardingRule = new Gcp.Compute.GlobalForwardingRule(\"google_compute_forwarding_rule\", new()\n {\n Name = \"l7-gilb-forwarding-rule\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n PortRange = \"80\",\n Target = @default.Id,\n Network = gilbNetwork.Id,\n Subnetwork = gilbSubnet.Id,\n });\n\n // allow all access from IAP and health check ranges\n var fw_iap = new Gcp.Compute.Firewall(\"fw-iap\", new()\n {\n Name = \"l7-gilb-fw-allow-iap-hc\",\n Direction = \"INGRESS\",\n Network = gilbNetwork.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n });\n\n // allow http from proxy subnet to backends\n var fw_gilb_to_backends = new Gcp.Compute.Firewall(\"fw-gilb-to-backends\", new()\n {\n Name = \"l7-gilb-fw-allow-gilb-to-backends\",\n Direction = \"INGRESS\",\n Network = gilbNetwork.Id,\n SourceRanges = new[]\n {\n \"10.0.0.0/24\",\n },\n TargetTags = new[]\n {\n \"http-server\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"80\",\n \"443\",\n \"8080\",\n },\n },\n },\n });\n\n // test instance\n var vm_test = new Gcp.Compute.Instance(\"vm-test\", new()\n {\n Name = \"l7-gilb-test-vm\",\n Zone = \"europe-west1-b\",\n MachineType = \"e2-small\",\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs\n {\n Network = gilbNetwork.Id,\n Subnetwork = gilbSubnet.Id,\n },\n },\n BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs\n {\n InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs\n {\n Image = \"debian-cloud/debian-10\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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// Global Internal HTTP load balancer with a managed instance group backend\n\t\t// VPC network\n\t\tgilbNetwork, err := compute.NewNetwork(ctx, \"gilb_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// proxy-only subnet\n\t\t_, err = compute.NewSubnetwork(ctx, \"proxy_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-proxy-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/24\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tPurpose: pulumi.String(\"GLOBAL_MANAGED_PROXY\"),\n\t\t\tRole: pulumi.String(\"ACTIVE\"),\n\t\t\tNetwork: gilbNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend subnet\n\t\tgilbSubnet, err := compute.NewSubnetwork(ctx, \"gilb_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tNetwork: gilbNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// health check\n\t\tdefaultHealthCheck, err := compute.NewHealthCheck(ctx, \"default\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-hc\"),\n\t\t\tHttpHealthCheck: \u0026compute.HealthCheckHttpHealthCheckArgs{\n\t\t\t\tPortSpecification: pulumi.String(\"USE_SERVING_PORT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: gilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: gilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"l7-gilb-mig-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// MIG\n\t\tmig, err := compute.NewInstanceGroupManager(ctx, \"mig\", \u0026compute.InstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-mig1\"),\n\t\t\tZone: pulumi.String(\"europe-west1-b\"),\n\t\t\tVersions: compute.InstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend service\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-backend-subnet\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: mig.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// URL map\n\t\tdefaultURLMap, err := compute.NewURLMap(ctx, \"default\", \u0026compute.URLMapArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-url-map\"),\n\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// HTTP target proxy\n\t\t_, err = compute.NewTargetHttpProxy(ctx, \"default\", \u0026compute.TargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-target-http-proxy\"),\n\t\t\tUrlMap: defaultURLMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// forwarding rule\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"google_compute_forwarding_rule\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-forwarding-rule\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tTarget: _default.ID(),\n\t\t\tNetwork: gilbNetwork.ID(),\n\t\t\tSubnetwork: gilbSubnet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow all access from IAP and health check ranges\n\t\t_, err = compute.NewFirewall(ctx, \"fw-iap\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-fw-allow-iap-hc\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: gilbNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t\tpulumi.String(\"35.235.240.0/20\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow http from proxy subnet to backends\n\t\t_, err = compute.NewFirewall(ctx, \"fw-gilb-to-backends\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-fw-allow-gilb-to-backends\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: gilbNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/24\"),\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"80\"),\n\t\t\t\t\t\tpulumi.String(\"443\"),\n\t\t\t\t\t\tpulumi.String(\"8080\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// test instance\n\t\t_, err = compute.NewInstance(ctx, \"vm-test\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-test-vm\"),\n\t\t\tZone: pulumi.String(\"europe-west1-b\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tNetworkInterfaces: compute.InstanceNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: gilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: gilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBootDisk: \u0026compute.InstanceBootDiskArgs{\n\t\t\t\tInitializeParams: \u0026compute.InstanceBootDiskInitializeParamsArgs{\n\t\t\t\t\tImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.InstanceGroupManager;\nimport com.pulumi.gcp.compute.InstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.URLMap;\nimport com.pulumi.gcp.compute.URLMapArgs;\nimport com.pulumi.gcp.compute.TargetHttpProxy;\nimport com.pulumi.gcp.compute.TargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\nimport com.pulumi.gcp.compute.Instance;\nimport com.pulumi.gcp.compute.InstanceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;\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 // Global Internal HTTP load balancer with a managed instance group backend\n // VPC network\n var gilbNetwork = new Network(\"gilbNetwork\", NetworkArgs.builder() \n .name(\"l7-gilb-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n // proxy-only subnet\n var proxySubnet = new Subnetwork(\"proxySubnet\", SubnetworkArgs.builder() \n .name(\"l7-gilb-proxy-subnet\")\n .ipCidrRange(\"10.0.0.0/24\")\n .region(\"europe-west1\")\n .purpose(\"GLOBAL_MANAGED_PROXY\")\n .role(\"ACTIVE\")\n .network(gilbNetwork.id())\n .build());\n\n // backend subnet\n var gilbSubnet = new Subnetwork(\"gilbSubnet\", SubnetworkArgs.builder() \n .name(\"l7-gilb-subnet\")\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"europe-west1\")\n .network(gilbNetwork.id())\n .build());\n\n // health check\n var defaultHealthCheck = new HealthCheck(\"defaultHealthCheck\", HealthCheckArgs.builder() \n .name(\"l7-gilb-hc\")\n .httpHealthCheck(HealthCheckHttpHealthCheckArgs.builder()\n .portSpecification(\"USE_SERVING_PORT\")\n .build())\n .build());\n\n // instance template\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(gilbNetwork.id())\n .subnetwork(gilbSubnet.id())\n .build())\n .name(\"l7-gilb-mig-template\")\n .machineType(\"e2-small\")\n .tags(\"http-server\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n // MIG\n var mig = new InstanceGroupManager(\"mig\", InstanceGroupManagerArgs.builder() \n .name(\"l7-gilb-mig1\")\n .zone(\"europe-west1-b\")\n .versions(InstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // backend service\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"l7-gilb-backend-subnet\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(defaultHealthCheck.id())\n .backends(BackendServiceBackendArgs.builder()\n .group(mig.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .capacityScaler(1)\n .build())\n .build());\n\n // URL map\n var defaultURLMap = new URLMap(\"defaultURLMap\", URLMapArgs.builder() \n .name(\"l7-gilb-url-map\")\n .defaultService(defaultBackendService.id())\n .build());\n\n // HTTP target proxy\n var default_ = new TargetHttpProxy(\"default\", TargetHttpProxyArgs.builder() \n .name(\"l7-gilb-target-http-proxy\")\n .urlMap(defaultURLMap.id())\n .build());\n\n // forwarding rule\n var googleComputeForwardingRule = new GlobalForwardingRule(\"googleComputeForwardingRule\", GlobalForwardingRuleArgs.builder() \n .name(\"l7-gilb-forwarding-rule\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .portRange(\"80\")\n .target(default_.id())\n .network(gilbNetwork.id())\n .subnetwork(gilbSubnet.id())\n .build());\n\n // allow all access from IAP and health check ranges\n var fw_iap = new Firewall(\"fw-iap\", FirewallArgs.builder() \n .name(\"l7-gilb-fw-allow-iap-hc\")\n .direction(\"INGRESS\")\n .network(gilbNetwork.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .build());\n\n // allow http from proxy subnet to backends\n var fw_gilb_to_backends = new Firewall(\"fw-gilb-to-backends\", FirewallArgs.builder() \n .name(\"l7-gilb-fw-allow-gilb-to-backends\")\n .direction(\"INGRESS\")\n .network(gilbNetwork.id())\n .sourceRanges(\"10.0.0.0/24\")\n .targetTags(\"http-server\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports( \n \"80\",\n \"443\",\n \"8080\")\n .build())\n .build());\n\n // test instance\n var vm_test = new Instance(\"vm-test\", InstanceArgs.builder() \n .name(\"l7-gilb-test-vm\")\n .zone(\"europe-west1-b\")\n .machineType(\"e2-small\")\n .networkInterfaces(InstanceNetworkInterfaceArgs.builder()\n .network(gilbNetwork.id())\n .subnetwork(gilbSubnet.id())\n .build())\n .bootDisk(InstanceBootDiskArgs.builder()\n .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()\n .image(\"debian-cloud/debian-10\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Global Internal HTTP load balancer with a managed instance group backend\n\n # VPC network\n gilbNetwork:\n type: gcp:compute:Network\n name: gilb_network\n properties:\n name: l7-gilb-network\n autoCreateSubnetworks: false\n # proxy-only subnet\n proxySubnet:\n type: gcp:compute:Subnetwork\n name: proxy_subnet\n properties:\n name: l7-gilb-proxy-subnet\n ipCidrRange: 10.0.0.0/24\n region: europe-west1\n purpose: GLOBAL_MANAGED_PROXY\n role: ACTIVE\n network: ${gilbNetwork.id}\n # backend subnet\n gilbSubnet:\n type: gcp:compute:Subnetwork\n name: gilb_subnet\n properties:\n name: l7-gilb-subnet\n ipCidrRange: 10.0.1.0/24\n region: europe-west1\n network: ${gilbNetwork.id}\n # forwarding rule\n googleComputeForwardingRule:\n type: gcp:compute:GlobalForwardingRule\n name: google_compute_forwarding_rule\n properties:\n name: l7-gilb-forwarding-rule\n ipProtocol: TCP\n loadBalancingScheme: INTERNAL_MANAGED\n portRange: '80'\n target: ${default.id}\n network: ${gilbNetwork.id}\n subnetwork: ${gilbSubnet.id}\n # HTTP target proxy\n default:\n type: gcp:compute:TargetHttpProxy\n properties:\n name: l7-gilb-target-http-proxy\n urlMap: ${defaultURLMap.id}\n # URL map\n defaultURLMap:\n type: gcp:compute:URLMap\n name: default\n properties:\n name: l7-gilb-url-map\n defaultService: ${defaultBackendService.id}\n # backend service\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: l7-gilb-backend-subnet\n protocol: HTTP\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks: ${defaultHealthCheck.id}\n backends:\n - group: ${mig.instanceGroup}\n balancingMode: UTILIZATION\n capacityScaler: 1\n # instance template\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${gilbNetwork.id}\n subnetwork: ${gilbSubnet.id}\n name: l7-gilb-mig-template\n machineType: e2-small\n tags:\n - http-server\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n # health check\n defaultHealthCheck:\n type: gcp:compute:HealthCheck\n name: default\n properties:\n name: l7-gilb-hc\n httpHealthCheck:\n portSpecification: USE_SERVING_PORT\n # MIG\n mig:\n type: gcp:compute:InstanceGroupManager\n properties:\n name: l7-gilb-mig1\n zone: europe-west1-b\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\n # allow all access from IAP and health check ranges\n fw-iap:\n type: gcp:compute:Firewall\n properties:\n name: l7-gilb-fw-allow-iap-hc\n direction: INGRESS\n network: ${gilbNetwork.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n - 35.235.240.0/20\n allows:\n - protocol: tcp\n # allow http from proxy subnet to backends\n fw-gilb-to-backends:\n type: gcp:compute:Firewall\n properties:\n name: l7-gilb-fw-allow-gilb-to-backends\n direction: INGRESS\n network: ${gilbNetwork.id}\n sourceRanges:\n - 10.0.0.0/24\n targetTags:\n - http-server\n allows:\n - protocol: tcp\n ports:\n - '80'\n - '443'\n - '8080'\n # test instance\n vm-test:\n type: gcp:compute:Instance\n properties:\n name: l7-gilb-test-vm\n zone: europe-west1-b\n machineType: e2-small\n networkInterfaces:\n - network: ${gilbNetwork.id}\n subnetwork: ${gilbSubnet.id}\n bootDisk:\n initializeParams:\n image: debian-cloud/debian-10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Private Service Connect Google Apis\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst network = new gcp.compute.Network(\"network\", {\n project: \"my-project-name\",\n name: \"my-network\",\n autoCreateSubnetworks: false,\n});\nconst vpcSubnetwork = new gcp.compute.Subnetwork(\"vpc_subnetwork\", {\n project: network.project,\n name: \"my-subnetwork\",\n ipCidrRange: \"10.2.0.0/16\",\n region: \"us-central1\",\n network: network.id,\n privateIpGoogleAccess: true,\n});\nconst _default = new gcp.compute.GlobalAddress(\"default\", {\n project: network.project,\n name: \"global-psconnect-ip\",\n addressType: \"INTERNAL\",\n purpose: \"PRIVATE_SERVICE_CONNECT\",\n network: network.id,\n address: \"100.100.100.106\",\n});\nconst defaultGlobalForwardingRule = new gcp.compute.GlobalForwardingRule(\"default\", {\n project: network.project,\n name: \"globalrule\",\n target: \"all-apis\",\n network: network.id,\n ipAddress: _default.id,\n loadBalancingScheme: \"\",\n serviceDirectoryRegistrations: {\n namespace: \"sd-namespace\",\n serviceDirectoryRegion: \"europe-west3\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nnetwork = gcp.compute.Network(\"network\",\n project=\"my-project-name\",\n name=\"my-network\",\n auto_create_subnetworks=False)\nvpc_subnetwork = gcp.compute.Subnetwork(\"vpc_subnetwork\",\n project=network.project,\n name=\"my-subnetwork\",\n ip_cidr_range=\"10.2.0.0/16\",\n region=\"us-central1\",\n network=network.id,\n private_ip_google_access=True)\ndefault = gcp.compute.GlobalAddress(\"default\",\n project=network.project,\n name=\"global-psconnect-ip\",\n address_type=\"INTERNAL\",\n purpose=\"PRIVATE_SERVICE_CONNECT\",\n network=network.id,\n address=\"100.100.100.106\")\ndefault_global_forwarding_rule = gcp.compute.GlobalForwardingRule(\"default\",\n project=network.project,\n name=\"globalrule\",\n target=\"all-apis\",\n network=network.id,\n ip_address=default.id,\n load_balancing_scheme=\"\",\n service_directory_registrations=gcp.compute.GlobalForwardingRuleServiceDirectoryRegistrationsArgs(\n namespace=\"sd-namespace\",\n service_directory_region=\"europe-west3\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network = new Gcp.Compute.Network(\"network\", new()\n {\n Project = \"my-project-name\",\n Name = \"my-network\",\n AutoCreateSubnetworks = false,\n });\n\n var vpcSubnetwork = new Gcp.Compute.Subnetwork(\"vpc_subnetwork\", new()\n {\n Project = network.Project,\n Name = \"my-subnetwork\",\n IpCidrRange = \"10.2.0.0/16\",\n Region = \"us-central1\",\n Network = network.Id,\n PrivateIpGoogleAccess = true,\n });\n\n var @default = new Gcp.Compute.GlobalAddress(\"default\", new()\n {\n Project = network.Project,\n Name = \"global-psconnect-ip\",\n AddressType = \"INTERNAL\",\n Purpose = \"PRIVATE_SERVICE_CONNECT\",\n Network = network.Id,\n Address = \"100.100.100.106\",\n });\n\n var defaultGlobalForwardingRule = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Project = network.Project,\n Name = \"globalrule\",\n Target = \"all-apis\",\n Network = network.Id,\n IpAddress = @default.Id,\n LoadBalancingScheme = \"\",\n ServiceDirectoryRegistrations = new Gcp.Compute.Inputs.GlobalForwardingRuleServiceDirectoryRegistrationsArgs\n {\n Namespace = \"sd-namespace\",\n ServiceDirectoryRegion = \"europe-west3\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", \u0026compute.NetworkArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tName: pulumi.String(\"my-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewSubnetwork(ctx, \"vpc_subnetwork\", \u0026compute.SubnetworkArgs{\n\t\t\tProject: network.Project,\n\t\t\tName: pulumi.String(\"my-subnetwork\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.2.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: network.ID(),\n\t\t\tPrivateIpGoogleAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalAddress(ctx, \"default\", \u0026compute.GlobalAddressArgs{\n\t\t\tProject: network.Project,\n\t\t\tName: pulumi.String(\"global-psconnect-ip\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"PRIVATE_SERVICE_CONNECT\"),\n\t\t\tNetwork: network.ID(),\n\t\t\tAddress: pulumi.String(\"100.100.100.106\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tProject: network.Project,\n\t\t\tName: pulumi.String(\"globalrule\"),\n\t\t\tTarget: pulumi.String(\"all-apis\"),\n\t\t\tNetwork: network.ID(),\n\t\t\tIpAddress: _default.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"\"),\n\t\t\tServiceDirectoryRegistrations: \u0026compute.GlobalForwardingRuleServiceDirectoryRegistrationsArgs{\n\t\t\t\tNamespace: pulumi.String(\"sd-namespace\"),\n\t\t\t\tServiceDirectoryRegion: pulumi.String(\"europe-west3\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\nimport com.pulumi.gcp.compute.inputs.GlobalForwardingRuleServiceDirectoryRegistrationsArgs;\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 network = new Network(\"network\", NetworkArgs.builder() \n .project(\"my-project-name\")\n .name(\"my-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n var vpcSubnetwork = new Subnetwork(\"vpcSubnetwork\", SubnetworkArgs.builder() \n .project(network.project())\n .name(\"my-subnetwork\")\n .ipCidrRange(\"10.2.0.0/16\")\n .region(\"us-central1\")\n .network(network.id())\n .privateIpGoogleAccess(true)\n .build());\n\n var default_ = new GlobalAddress(\"default\", GlobalAddressArgs.builder() \n .project(network.project())\n .name(\"global-psconnect-ip\")\n .addressType(\"INTERNAL\")\n .purpose(\"PRIVATE_SERVICE_CONNECT\")\n .network(network.id())\n .address(\"100.100.100.106\")\n .build());\n\n var defaultGlobalForwardingRule = new GlobalForwardingRule(\"defaultGlobalForwardingRule\", GlobalForwardingRuleArgs.builder() \n .project(network.project())\n .name(\"globalrule\")\n .target(\"all-apis\")\n .network(network.id())\n .ipAddress(default_.id())\n .loadBalancingScheme(\"\")\n .serviceDirectoryRegistrations(GlobalForwardingRuleServiceDirectoryRegistrationsArgs.builder()\n .namespace(\"sd-namespace\")\n .serviceDirectoryRegion(\"europe-west3\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network:\n type: gcp:compute:Network\n properties:\n project: my-project-name\n name: my-network\n autoCreateSubnetworks: false\n vpcSubnetwork:\n type: gcp:compute:Subnetwork\n name: vpc_subnetwork\n properties:\n project: ${network.project}\n name: my-subnetwork\n ipCidrRange: 10.2.0.0/16\n region: us-central1\n network: ${network.id}\n privateIpGoogleAccess: true\n default:\n type: gcp:compute:GlobalAddress\n properties:\n project: ${network.project}\n name: global-psconnect-ip\n addressType: INTERNAL\n purpose: PRIVATE_SERVICE_CONNECT\n network: ${network.id}\n address: 100.100.100.106\n defaultGlobalForwardingRule:\n type: gcp:compute:GlobalForwardingRule\n name: default\n properties:\n project: ${network.project}\n name: globalrule\n target: all-apis\n network: ${network.id}\n ipAddress: ${default.id}\n loadBalancingScheme:\n serviceDirectoryRegistrations:\n namespace: sd-namespace\n serviceDirectoryRegion: europe-west3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Private Service Connect Google Apis No Automate Dns\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst network = new gcp.compute.Network(\"network\", {\n project: \"my-project-name\",\n name: \"my-network\",\n autoCreateSubnetworks: false,\n});\nconst vpcSubnetwork = new gcp.compute.Subnetwork(\"vpc_subnetwork\", {\n project: network.project,\n name: \"my-subnetwork\",\n ipCidrRange: \"10.2.0.0/16\",\n region: \"us-central1\",\n network: network.id,\n privateIpGoogleAccess: true,\n});\nconst _default = new gcp.compute.GlobalAddress(\"default\", {\n project: network.project,\n name: \"global-psconnect-ip\",\n addressType: \"INTERNAL\",\n purpose: \"PRIVATE_SERVICE_CONNECT\",\n network: network.id,\n address: \"100.100.100.106\",\n});\nconst defaultGlobalForwardingRule = new gcp.compute.GlobalForwardingRule(\"default\", {\n project: network.project,\n name: \"globalrule\",\n target: \"all-apis\",\n network: network.id,\n ipAddress: _default.id,\n loadBalancingScheme: \"\",\n noAutomateDnsZone: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nnetwork = gcp.compute.Network(\"network\",\n project=\"my-project-name\",\n name=\"my-network\",\n auto_create_subnetworks=False)\nvpc_subnetwork = gcp.compute.Subnetwork(\"vpc_subnetwork\",\n project=network.project,\n name=\"my-subnetwork\",\n ip_cidr_range=\"10.2.0.0/16\",\n region=\"us-central1\",\n network=network.id,\n private_ip_google_access=True)\ndefault = gcp.compute.GlobalAddress(\"default\",\n project=network.project,\n name=\"global-psconnect-ip\",\n address_type=\"INTERNAL\",\n purpose=\"PRIVATE_SERVICE_CONNECT\",\n network=network.id,\n address=\"100.100.100.106\")\ndefault_global_forwarding_rule = gcp.compute.GlobalForwardingRule(\"default\",\n project=network.project,\n name=\"globalrule\",\n target=\"all-apis\",\n network=network.id,\n ip_address=default.id,\n load_balancing_scheme=\"\",\n no_automate_dns_zone=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network = new Gcp.Compute.Network(\"network\", new()\n {\n Project = \"my-project-name\",\n Name = \"my-network\",\n AutoCreateSubnetworks = false,\n });\n\n var vpcSubnetwork = new Gcp.Compute.Subnetwork(\"vpc_subnetwork\", new()\n {\n Project = network.Project,\n Name = \"my-subnetwork\",\n IpCidrRange = \"10.2.0.0/16\",\n Region = \"us-central1\",\n Network = network.Id,\n PrivateIpGoogleAccess = true,\n });\n\n var @default = new Gcp.Compute.GlobalAddress(\"default\", new()\n {\n Project = network.Project,\n Name = \"global-psconnect-ip\",\n AddressType = \"INTERNAL\",\n Purpose = \"PRIVATE_SERVICE_CONNECT\",\n Network = network.Id,\n Address = \"100.100.100.106\",\n });\n\n var defaultGlobalForwardingRule = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Project = network.Project,\n Name = \"globalrule\",\n Target = \"all-apis\",\n Network = network.Id,\n IpAddress = @default.Id,\n LoadBalancingScheme = \"\",\n NoAutomateDnsZone = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", \u0026compute.NetworkArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tName: pulumi.String(\"my-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewSubnetwork(ctx, \"vpc_subnetwork\", \u0026compute.SubnetworkArgs{\n\t\t\tProject: network.Project,\n\t\t\tName: pulumi.String(\"my-subnetwork\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.2.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: network.ID(),\n\t\t\tPrivateIpGoogleAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalAddress(ctx, \"default\", \u0026compute.GlobalAddressArgs{\n\t\t\tProject: network.Project,\n\t\t\tName: pulumi.String(\"global-psconnect-ip\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"PRIVATE_SERVICE_CONNECT\"),\n\t\t\tNetwork: network.ID(),\n\t\t\tAddress: pulumi.String(\"100.100.100.106\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tProject: network.Project,\n\t\t\tName: pulumi.String(\"globalrule\"),\n\t\t\tTarget: pulumi.String(\"all-apis\"),\n\t\t\tNetwork: network.ID(),\n\t\t\tIpAddress: _default.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"\"),\n\t\t\tNoAutomateDnsZone: pulumi.Bool(false),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\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 network = new Network(\"network\", NetworkArgs.builder() \n .project(\"my-project-name\")\n .name(\"my-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n var vpcSubnetwork = new Subnetwork(\"vpcSubnetwork\", SubnetworkArgs.builder() \n .project(network.project())\n .name(\"my-subnetwork\")\n .ipCidrRange(\"10.2.0.0/16\")\n .region(\"us-central1\")\n .network(network.id())\n .privateIpGoogleAccess(true)\n .build());\n\n var default_ = new GlobalAddress(\"default\", GlobalAddressArgs.builder() \n .project(network.project())\n .name(\"global-psconnect-ip\")\n .addressType(\"INTERNAL\")\n .purpose(\"PRIVATE_SERVICE_CONNECT\")\n .network(network.id())\n .address(\"100.100.100.106\")\n .build());\n\n var defaultGlobalForwardingRule = new GlobalForwardingRule(\"defaultGlobalForwardingRule\", GlobalForwardingRuleArgs.builder() \n .project(network.project())\n .name(\"globalrule\")\n .target(\"all-apis\")\n .network(network.id())\n .ipAddress(default_.id())\n .loadBalancingScheme(\"\")\n .noAutomateDnsZone(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network:\n type: gcp:compute:Network\n properties:\n project: my-project-name\n name: my-network\n autoCreateSubnetworks: false\n vpcSubnetwork:\n type: gcp:compute:Subnetwork\n name: vpc_subnetwork\n properties:\n project: ${network.project}\n name: my-subnetwork\n ipCidrRange: 10.2.0.0/16\n region: us-central1\n network: ${network.id}\n privateIpGoogleAccess: true\n default:\n type: gcp:compute:GlobalAddress\n properties:\n project: ${network.project}\n name: global-psconnect-ip\n addressType: INTERNAL\n purpose: PRIVATE_SERVICE_CONNECT\n network: ${network.id}\n address: 100.100.100.106\n defaultGlobalForwardingRule:\n type: gcp:compute:GlobalForwardingRule\n name: default\n properties:\n project: ${network.project}\n name: globalrule\n target: all-apis\n network: ${network.id}\n ipAddress: ${default.id}\n loadBalancingScheme:\n noAutomateDnsZone: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nGlobalForwardingRule can be imported using any of these accepted formats:\n\n* `projects/{{project}}/global/forwardingRules/{{name}}`\n\n* `{{project}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, GlobalForwardingRule can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/globalForwardingRule:GlobalForwardingRule default projects/{{project}}/global/forwardingRules/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/globalForwardingRule:GlobalForwardingRule default {{project}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/globalForwardingRule:GlobalForwardingRule default {{name}}\n```\n\n", + "description": "Represents a GlobalForwardingRule resource. Global forwarding rules are\nused to forward traffic to the correct load balancer for HTTP load\nbalancing. Global forwarding rules can only be used for HTTP load\nbalancing.\n\nFor more information, see\nhttps://cloud.google.com/compute/docs/load-balancing/http/\n\n\n\n## Example Usage\n\n### External Ssl Proxy Lb Mig Backend\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as tls from \"@pulumi/tls\";\n\n// External SSL proxy load balancer with managed instance group backend\n// VPC\nconst _default = new gcp.compute.Network(\"default\", {\n name: \"ssl-proxy-xlb-network\",\n autoCreateSubnetworks: false,\n});\n// backend subnet\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"ssl-proxy-xlb-subnet\",\n ipCidrRange: \"10.0.1.0/24\",\n region: \"us-central1\",\n network: _default.id,\n});\n// reserved IP address\nconst defaultGlobalAddress = new gcp.compute.GlobalAddress(\"default\", {name: \"ssl-proxy-xlb-ip\"});\n// Self-signed regional SSL certificate for testing\nconst defaultPrivateKey = new tls.PrivateKey(\"default\", {\n algorithm: \"RSA\",\n rsaBits: 2048,\n});\nconst defaultSelfSignedCert = new tls.SelfSignedCert(\"default\", {\n keyAlgorithm: defaultPrivateKey.algorithm,\n privateKeyPem: defaultPrivateKey.privateKeyPem,\n validityPeriodHours: 12,\n earlyRenewalHours: 3,\n allowedUses: [\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ],\n dnsNames: [\"example.com\"],\n subject: {\n commonName: \"example.com\",\n organization: \"ACME Examples, Inc\",\n },\n});\nconst defaultSSLCertificate = new gcp.compute.SSLCertificate(\"default\", {\n name: \"default-cert\",\n privateKey: defaultPrivateKey.privateKeyPem,\n certificate: defaultSelfSignedCert.certPem,\n});\nconst defaultHealthCheck = new gcp.compute.HealthCheck(\"default\", {\n name: \"ssl-proxy-health-check\",\n timeoutSec: 1,\n checkIntervalSec: 1,\n tcpHealthCheck: {\n port: 443,\n },\n});\n// instance template\nconst defaultInstanceTemplate = new gcp.compute.InstanceTemplate(\"default\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: _default.id,\n subnetwork: defaultSubnetwork.id,\n }],\n name: \"ssl-proxy-xlb-mig-template\",\n machineType: \"e2-small\",\n tags: [\"allow-health-check\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\nsudo apt-get update\nsudo apt-get install -y apache2 jq\nsudo a2ensite default-ssl\nsudo a2enmod ssl\nsudo service apache2 restart\nNAME=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003ch1\u003eSSL Load Balancer\u003c/h1\u003e\n\u003cpre\u003e\nName: NAME\nIP: IP\nMetadata: METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\n// MIG\nconst defaultInstanceGroupManager = new gcp.compute.InstanceGroupManager(\"default\", {\n name: \"ssl-proxy-xlb-mig1\",\n zone: \"us-central1-c\",\n namedPorts: [{\n name: \"tcp\",\n port: 443,\n }],\n versions: [{\n instanceTemplate: defaultInstanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// backend service\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"ssl-proxy-xlb-backend-service\",\n protocol: \"SSL\",\n portName: \"tcp\",\n loadBalancingScheme: \"EXTERNAL\",\n timeoutSec: 10,\n healthChecks: defaultHealthCheck.id,\n backends: [{\n group: defaultInstanceGroupManager.instanceGroup,\n balancingMode: \"UTILIZATION\",\n maxUtilization: 1,\n capacityScaler: 1,\n }],\n});\nconst defaultTargetSSLProxy = new gcp.compute.TargetSSLProxy(\"default\", {\n name: \"test-proxy\",\n backendService: defaultBackendService.id,\n sslCertificates: [defaultSSLCertificate.id],\n});\n// forwarding rule\nconst defaultGlobalForwardingRule = new gcp.compute.GlobalForwardingRule(\"default\", {\n name: \"ssl-proxy-xlb-forwarding-rule\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"EXTERNAL\",\n portRange: \"443\",\n target: defaultTargetSSLProxy.id,\n ipAddress: defaultGlobalAddress.id,\n});\n// allow access from health check ranges\nconst defaultFirewall = new gcp.compute.Firewall(\"default\", {\n name: \"ssl-proxy-xlb-fw-allow-hc\",\n direction: \"INGRESS\",\n network: _default.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n targetTags: [\"allow-health-check\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_tls as tls\n\n# External SSL proxy load balancer with managed instance group backend\n# VPC\ndefault = gcp.compute.Network(\"default\",\n name=\"ssl-proxy-xlb-network\",\n auto_create_subnetworks=False)\n# backend subnet\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"ssl-proxy-xlb-subnet\",\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"us-central1\",\n network=default.id)\n# reserved IP address\ndefault_global_address = gcp.compute.GlobalAddress(\"default\", name=\"ssl-proxy-xlb-ip\")\n# Self-signed regional SSL certificate for testing\ndefault_private_key = tls.PrivateKey(\"default\",\n algorithm=\"RSA\",\n rsa_bits=2048)\ndefault_self_signed_cert = tls.SelfSignedCert(\"default\",\n key_algorithm=default_private_key.algorithm,\n private_key_pem=default_private_key.private_key_pem,\n validity_period_hours=12,\n early_renewal_hours=3,\n allowed_uses=[\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ],\n dns_names=[\"example.com\"],\n subject=tls.SelfSignedCertSubjectArgs(\n common_name=\"example.com\",\n organization=\"ACME Examples, Inc\",\n ))\ndefault_ssl_certificate = gcp.compute.SSLCertificate(\"default\",\n name=\"default-cert\",\n private_key=default_private_key.private_key_pem,\n certificate=default_self_signed_cert.cert_pem)\ndefault_health_check = gcp.compute.HealthCheck(\"default\",\n name=\"ssl-proxy-health-check\",\n timeout_sec=1,\n check_interval_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=443,\n ))\n# instance template\ndefault_instance_template = gcp.compute.InstanceTemplate(\"default\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=default.id,\n subnetwork=default_subnetwork.id,\n )],\n name=\"ssl-proxy-xlb-mig-template\",\n machine_type=\"e2-small\",\n tags=[\"allow-health-check\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\nsudo apt-get update\nsudo apt-get install -y apache2 jq\nsudo a2ensite default-ssl\nsudo a2enmod ssl\nsudo service apache2 restart\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003ch1\u003eSSL Load Balancer\u003c/h1\u003e\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\n# MIG\ndefault_instance_group_manager = gcp.compute.InstanceGroupManager(\"default\",\n name=\"ssl-proxy-xlb-mig1\",\n zone=\"us-central1-c\",\n named_ports=[gcp.compute.InstanceGroupManagerNamedPortArgs(\n name=\"tcp\",\n port=443,\n )],\n versions=[gcp.compute.InstanceGroupManagerVersionArgs(\n instance_template=default_instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# backend service\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"ssl-proxy-xlb-backend-service\",\n protocol=\"SSL\",\n port_name=\"tcp\",\n load_balancing_scheme=\"EXTERNAL\",\n timeout_sec=10,\n health_checks=default_health_check.id,\n backends=[gcp.compute.BackendServiceBackendArgs(\n group=default_instance_group_manager.instance_group,\n balancing_mode=\"UTILIZATION\",\n max_utilization=1,\n capacity_scaler=1,\n )])\ndefault_target_ssl_proxy = gcp.compute.TargetSSLProxy(\"default\",\n name=\"test-proxy\",\n backend_service=default_backend_service.id,\n ssl_certificates=[default_ssl_certificate.id])\n# forwarding rule\ndefault_global_forwarding_rule = gcp.compute.GlobalForwardingRule(\"default\",\n name=\"ssl-proxy-xlb-forwarding-rule\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"EXTERNAL\",\n port_range=\"443\",\n target=default_target_ssl_proxy.id,\n ip_address=default_global_address.id)\n# allow access from health check ranges\ndefault_firewall = gcp.compute.Firewall(\"default\",\n name=\"ssl-proxy-xlb-fw-allow-hc\",\n direction=\"INGRESS\",\n network=default.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )],\n target_tags=[\"allow-health-check\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Tls = Pulumi.Tls;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // External SSL proxy load balancer with managed instance group backend\n // VPC\n var @default = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"ssl-proxy-xlb-network\",\n AutoCreateSubnetworks = false,\n });\n\n // backend subnet\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"ssl-proxy-xlb-subnet\",\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"us-central1\",\n Network = @default.Id,\n });\n\n // reserved IP address\n var defaultGlobalAddress = new Gcp.Compute.GlobalAddress(\"default\", new()\n {\n Name = \"ssl-proxy-xlb-ip\",\n });\n\n // Self-signed regional SSL certificate for testing\n var defaultPrivateKey = new Tls.PrivateKey(\"default\", new()\n {\n Algorithm = \"RSA\",\n RsaBits = 2048,\n });\n\n var defaultSelfSignedCert = new Tls.SelfSignedCert(\"default\", new()\n {\n KeyAlgorithm = defaultPrivateKey.Algorithm,\n PrivateKeyPem = defaultPrivateKey.PrivateKeyPem,\n ValidityPeriodHours = 12,\n EarlyRenewalHours = 3,\n AllowedUses = new[]\n {\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n },\n DnsNames = new[]\n {\n \"example.com\",\n },\n Subject = new Tls.Inputs.SelfSignedCertSubjectArgs\n {\n CommonName = \"example.com\",\n Organization = \"ACME Examples, Inc\",\n },\n });\n\n var defaultSSLCertificate = new Gcp.Compute.SSLCertificate(\"default\", new()\n {\n Name = \"default-cert\",\n PrivateKey = defaultPrivateKey.PrivateKeyPem,\n Certificate = defaultSelfSignedCert.CertPem,\n });\n\n var defaultHealthCheck = new Gcp.Compute.HealthCheck(\"default\", new()\n {\n Name = \"ssl-proxy-health-check\",\n TimeoutSec = 1,\n CheckIntervalSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 443,\n },\n });\n\n // instance template\n var defaultInstanceTemplate = new Gcp.Compute.InstanceTemplate(\"default\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = @default.Id,\n Subnetwork = defaultSubnetwork.Id,\n },\n },\n Name = \"ssl-proxy-xlb-mig-template\",\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"allow-health-check\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\nsudo apt-get update\nsudo apt-get install -y apache2 jq\nsudo a2ensite default-ssl\nsudo a2enmod ssl\nsudo service apache2 restart\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003ch1\u003eSSL Load Balancer\u003c/h1\u003e\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n // MIG\n var defaultInstanceGroupManager = new Gcp.Compute.InstanceGroupManager(\"default\", new()\n {\n Name = \"ssl-proxy-xlb-mig1\",\n Zone = \"us-central1-c\",\n NamedPorts = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerNamedPortArgs\n {\n Name = \"tcp\",\n Port = 443,\n },\n },\n Versions = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs\n {\n InstanceTemplate = defaultInstanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // backend service\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"ssl-proxy-xlb-backend-service\",\n Protocol = \"SSL\",\n PortName = \"tcp\",\n LoadBalancingScheme = \"EXTERNAL\",\n TimeoutSec = 10,\n HealthChecks = defaultHealthCheck.Id,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = defaultInstanceGroupManager.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n MaxUtilization = 1,\n CapacityScaler = 1,\n },\n },\n });\n\n var defaultTargetSSLProxy = new Gcp.Compute.TargetSSLProxy(\"default\", new()\n {\n Name = \"test-proxy\",\n BackendService = defaultBackendService.Id,\n SslCertificates = new[]\n {\n defaultSSLCertificate.Id,\n },\n });\n\n // forwarding rule\n var defaultGlobalForwardingRule = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Name = \"ssl-proxy-xlb-forwarding-rule\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"EXTERNAL\",\n PortRange = \"443\",\n Target = defaultTargetSSLProxy.Id,\n IpAddress = defaultGlobalAddress.Id,\n });\n\n // allow access from health check ranges\n var defaultFirewall = new Gcp.Compute.Firewall(\"default\", new()\n {\n Name = \"ssl-proxy-xlb-fw-allow-hc\",\n Direction = \"INGRESS\",\n Network = @default.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n TargetTags = new[]\n {\n \"allow-health-check\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-tls/sdk/v4/go/tls\"\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// External SSL proxy load balancer with managed instance group backend\n\t\t// VPC\n\t\t_, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend subnet\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// reserved IP address\n\t\tdefaultGlobalAddress, err := compute.NewGlobalAddress(ctx, \"default\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-ip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Self-signed regional SSL certificate for testing\n\t\tdefaultPrivateKey, err := tls.NewPrivateKey(ctx, \"default\", \u0026tls.PrivateKeyArgs{\n\t\t\tAlgorithm: pulumi.String(\"RSA\"),\n\t\t\tRsaBits: pulumi.Int(2048),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSelfSignedCert, err := tls.NewSelfSignedCert(ctx, \"default\", \u0026tls.SelfSignedCertArgs{\n\t\t\tKeyAlgorithm: defaultPrivateKey.Algorithm,\n\t\t\tPrivateKeyPem: defaultPrivateKey.PrivateKeyPem,\n\t\t\tValidityPeriodHours: pulumi.Int(12),\n\t\t\tEarlyRenewalHours: pulumi.Int(3),\n\t\t\tAllowedUses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"key_encipherment\"),\n\t\t\t\tpulumi.String(\"digital_signature\"),\n\t\t\t\tpulumi.String(\"server_auth\"),\n\t\t\t},\n\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"example.com\"),\n\t\t\t},\n\t\t\tSubject: \u0026tls.SelfSignedCertSubjectArgs{\n\t\t\t\tCommonName: pulumi.String(\"example.com\"),\n\t\t\t\tOrganization: pulumi.String(\"ACME Examples, Inc\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSSLCertificate, err := compute.NewSSLCertificate(ctx, \"default\", \u0026compute.SSLCertificateArgs{\n\t\t\tName: pulumi.String(\"default-cert\"),\n\t\t\tPrivateKey: defaultPrivateKey.PrivateKeyPem,\n\t\t\tCertificate: defaultSelfSignedCert.CertPem,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHealthCheck, err := compute.NewHealthCheck(ctx, \"default\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-health-check\"),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(443),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tdefaultInstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"default\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: _default.ID(),\n\t\t\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-mig-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-health-check\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\nsudo apt-get update\nsudo apt-get install -y apache2 jq\nsudo a2ensite default-ssl\nsudo a2enmod ssl\nsudo service apache2 restart\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003ch1\u003eSSL Load Balancer\u003c/h1\u003e\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// MIG\n\t\tdefaultInstanceGroupManager, err := compute.NewInstanceGroupManager(ctx, \"default\", \u0026compute.InstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-mig1\"),\n\t\t\tZone: pulumi.String(\"us-central1-c\"),\n\t\t\tNamedPorts: compute.InstanceGroupManagerNamedPortArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerNamedPortArgs{\n\t\t\t\t\tName: pulumi.String(\"tcp\"),\n\t\t\t\t\tPort: pulumi.Int(443),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVersions: compute.InstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: defaultInstanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend service\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-backend-service\"),\n\t\t\tProtocol: pulumi.String(\"SSL\"),\n\t\t\tPortName: pulumi.String(\"tcp\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: defaultInstanceGroupManager.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tMaxUtilization: pulumi.Float64(1),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTargetSSLProxy, err := compute.NewTargetSSLProxy(ctx, \"default\", \u0026compute.TargetSSLProxyArgs{\n\t\t\tName: pulumi.String(\"test-proxy\"),\n\t\t\tBackendService: defaultBackendService.ID(),\n\t\t\tSslCertificates: pulumi.StringArray{\n\t\t\t\tdefaultSSLCertificate.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// forwarding rule\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-forwarding-rule\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tPortRange: pulumi.String(\"443\"),\n\t\t\tTarget: defaultTargetSSLProxy.ID(),\n\t\t\tIpAddress: defaultGlobalAddress.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow access from health check ranges\n\t\t_, err = compute.NewFirewall(ctx, \"default\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"ssl-proxy-xlb-fw-allow-hc\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: _default.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-health-check\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.tls.PrivateKey;\nimport com.pulumi.tls.PrivateKeyArgs;\nimport com.pulumi.tls.SelfSignedCert;\nimport com.pulumi.tls.SelfSignedCertArgs;\nimport com.pulumi.tls.inputs.SelfSignedCertSubjectArgs;\nimport com.pulumi.gcp.compute.SSLCertificate;\nimport com.pulumi.gcp.compute.SSLCertificateArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.InstanceGroupManager;\nimport com.pulumi.gcp.compute.InstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerNamedPortArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.TargetSSLProxy;\nimport com.pulumi.gcp.compute.TargetSSLProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\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 // External SSL proxy load balancer with managed instance group backend\n // VPC\n var default_ = new Network(\"default\", NetworkArgs.builder() \n .name(\"ssl-proxy-xlb-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n // backend subnet\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"ssl-proxy-xlb-subnet\")\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"us-central1\")\n .network(default_.id())\n .build());\n\n // reserved IP address\n var defaultGlobalAddress = new GlobalAddress(\"defaultGlobalAddress\", GlobalAddressArgs.builder() \n .name(\"ssl-proxy-xlb-ip\")\n .build());\n\n // Self-signed regional SSL certificate for testing\n var defaultPrivateKey = new PrivateKey(\"defaultPrivateKey\", PrivateKeyArgs.builder() \n .algorithm(\"RSA\")\n .rsaBits(2048)\n .build());\n\n var defaultSelfSignedCert = new SelfSignedCert(\"defaultSelfSignedCert\", SelfSignedCertArgs.builder() \n .keyAlgorithm(defaultPrivateKey.algorithm())\n .privateKeyPem(defaultPrivateKey.privateKeyPem())\n .validityPeriodHours(12)\n .earlyRenewalHours(3)\n .allowedUses( \n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\")\n .dnsNames(\"example.com\")\n .subject(SelfSignedCertSubjectArgs.builder()\n .commonName(\"example.com\")\n .organization(\"ACME Examples, Inc\")\n .build())\n .build());\n\n var defaultSSLCertificate = new SSLCertificate(\"defaultSSLCertificate\", SSLCertificateArgs.builder() \n .name(\"default-cert\")\n .privateKey(defaultPrivateKey.privateKeyPem())\n .certificate(defaultSelfSignedCert.certPem())\n .build());\n\n var defaultHealthCheck = new HealthCheck(\"defaultHealthCheck\", HealthCheckArgs.builder() \n .name(\"ssl-proxy-health-check\")\n .timeoutSec(1)\n .checkIntervalSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"443\")\n .build())\n .build());\n\n // instance template\n var defaultInstanceTemplate = new InstanceTemplate(\"defaultInstanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(default_.id())\n .subnetwork(defaultSubnetwork.id())\n .build())\n .name(\"ssl-proxy-xlb-mig-template\")\n .machineType(\"e2-small\")\n .tags(\"allow-health-check\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\nsudo apt-get update\nsudo apt-get install -y apache2 jq\nsudo a2ensite default-ssl\nsudo a2enmod ssl\nsudo service apache2 restart\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003ch1\u003eSSL Load Balancer\u003c/h1\u003e\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n // MIG\n var defaultInstanceGroupManager = new InstanceGroupManager(\"defaultInstanceGroupManager\", InstanceGroupManagerArgs.builder() \n .name(\"ssl-proxy-xlb-mig1\")\n .zone(\"us-central1-c\")\n .namedPorts(InstanceGroupManagerNamedPortArgs.builder()\n .name(\"tcp\")\n .port(443)\n .build())\n .versions(InstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(defaultInstanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // backend service\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"ssl-proxy-xlb-backend-service\")\n .protocol(\"SSL\")\n .portName(\"tcp\")\n .loadBalancingScheme(\"EXTERNAL\")\n .timeoutSec(10)\n .healthChecks(defaultHealthCheck.id())\n .backends(BackendServiceBackendArgs.builder()\n .group(defaultInstanceGroupManager.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .maxUtilization(1)\n .capacityScaler(1)\n .build())\n .build());\n\n var defaultTargetSSLProxy = new TargetSSLProxy(\"defaultTargetSSLProxy\", TargetSSLProxyArgs.builder() \n .name(\"test-proxy\")\n .backendService(defaultBackendService.id())\n .sslCertificates(defaultSSLCertificate.id())\n .build());\n\n // forwarding rule\n var defaultGlobalForwardingRule = new GlobalForwardingRule(\"defaultGlobalForwardingRule\", GlobalForwardingRuleArgs.builder() \n .name(\"ssl-proxy-xlb-forwarding-rule\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"EXTERNAL\")\n .portRange(\"443\")\n .target(defaultTargetSSLProxy.id())\n .ipAddress(defaultGlobalAddress.id())\n .build());\n\n // allow access from health check ranges\n var defaultFirewall = new Firewall(\"defaultFirewall\", FirewallArgs.builder() \n .name(\"ssl-proxy-xlb-fw-allow-hc\")\n .direction(\"INGRESS\")\n .network(default_.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .targetTags(\"allow-health-check\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # External SSL proxy load balancer with managed instance group backend\n\n # VPC\n default:\n type: gcp:compute:Network\n properties:\n name: ssl-proxy-xlb-network\n autoCreateSubnetworks: false\n # backend subnet\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: ssl-proxy-xlb-subnet\n ipCidrRange: 10.0.1.0/24\n region: us-central1\n network: ${default.id}\n # reserved IP address\n defaultGlobalAddress:\n type: gcp:compute:GlobalAddress\n name: default\n properties:\n name: ssl-proxy-xlb-ip\n # Self-signed regional SSL certificate for testing\n defaultPrivateKey:\n type: tls:PrivateKey\n name: default\n properties:\n algorithm: RSA\n rsaBits: 2048\n defaultSelfSignedCert:\n type: tls:SelfSignedCert\n name: default\n properties:\n keyAlgorithm: ${defaultPrivateKey.algorithm}\n privateKeyPem: ${defaultPrivateKey.privateKeyPem}\n validityPeriodHours: 12 # Generate a new certificate if Terraform is run within three\n # # hours of the certificate's expiration time.\n earlyRenewalHours: 3 # Reasonable set of uses for a server SSL certificate.\n allowedUses:\n - key_encipherment\n - digital_signature\n - server_auth\n dnsNames:\n - example.com\n subject:\n commonName: example.com\n organization: ACME Examples, Inc\n defaultSSLCertificate:\n type: gcp:compute:SSLCertificate\n name: default\n properties:\n name: default-cert\n privateKey: ${defaultPrivateKey.privateKeyPem}\n certificate: ${defaultSelfSignedCert.certPem}\n defaultTargetSSLProxy:\n type: gcp:compute:TargetSSLProxy\n name: default\n properties:\n name: test-proxy\n backendService: ${defaultBackendService.id}\n sslCertificates:\n - ${defaultSSLCertificate.id}\n # forwarding rule\n defaultGlobalForwardingRule:\n type: gcp:compute:GlobalForwardingRule\n name: default\n properties:\n name: ssl-proxy-xlb-forwarding-rule\n ipProtocol: TCP\n loadBalancingScheme: EXTERNAL\n portRange: '443'\n target: ${defaultTargetSSLProxy.id}\n ipAddress: ${defaultGlobalAddress.id}\n # backend service\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: ssl-proxy-xlb-backend-service\n protocol: SSL\n portName: tcp\n loadBalancingScheme: EXTERNAL\n timeoutSec: 10\n healthChecks: ${defaultHealthCheck.id}\n backends:\n - group: ${defaultInstanceGroupManager.instanceGroup}\n balancingMode: UTILIZATION\n maxUtilization: 1\n capacityScaler: 1\n defaultHealthCheck:\n type: gcp:compute:HealthCheck\n name: default\n properties:\n name: ssl-proxy-health-check\n timeoutSec: 1\n checkIntervalSec: 1\n tcpHealthCheck:\n port: '443'\n # instance template\n defaultInstanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: default\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${default.id}\n subnetwork: ${defaultSubnetwork.id}\n name: ssl-proxy-xlb-mig-template\n machineType: e2-small\n tags:\n - allow-health-check\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n export DEBIAN_FRONTEND=noninteractive\n sudo apt-get update\n sudo apt-get install -y apache2 jq\n sudo a2ensite default-ssl\n sudo a2enmod ssl\n sudo service apache2 restart\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003ch1\u003eSSL Load Balancer\u003c/h1\u003e\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n # MIG\n defaultInstanceGroupManager:\n type: gcp:compute:InstanceGroupManager\n name: default\n properties:\n name: ssl-proxy-xlb-mig1\n zone: us-central1-c\n namedPorts:\n - name: tcp\n port: 443\n versions:\n - instanceTemplate: ${defaultInstanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\n # allow access from health check ranges\n defaultFirewall:\n type: gcp:compute:Firewall\n name: default\n properties:\n name: ssl-proxy-xlb-fw-allow-hc\n direction: INGRESS\n network: ${default.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n allows:\n - protocol: tcp\n targetTags:\n - allow-health-check\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### External Tcp Proxy Lb Mig Backend\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\n// External TCP proxy load balancer with managed instance group backend\n// VPC\nconst _default = new gcp.compute.Network(\"default\", {\n name: \"tcp-proxy-xlb-network\",\n autoCreateSubnetworks: false,\n});\n// backend subnet\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"tcp-proxy-xlb-subnet\",\n ipCidrRange: \"10.0.1.0/24\",\n region: \"us-central1\",\n network: _default.id,\n});\n// reserved IP address\nconst defaultGlobalAddress = new gcp.compute.GlobalAddress(\"default\", {name: \"tcp-proxy-xlb-ip\"});\nconst defaultHealthCheck = new gcp.compute.HealthCheck(\"default\", {\n name: \"tcp-proxy-health-check\",\n timeoutSec: 1,\n checkIntervalSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\n// instance template\nconst defaultInstanceTemplate = new gcp.compute.InstanceTemplate(\"default\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: _default.id,\n subnetwork: defaultSubnetwork.id,\n }],\n name: \"tcp-proxy-xlb-mig-template\",\n machineType: \"e2-small\",\n tags: [\"allow-health-check\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: NAME\nIP: IP\nMetadata: METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\n// MIG\nconst defaultInstanceGroupManager = new gcp.compute.InstanceGroupManager(\"default\", {\n name: \"tcp-proxy-xlb-mig1\",\n zone: \"us-central1-c\",\n namedPorts: [{\n name: \"tcp\",\n port: 80,\n }],\n versions: [{\n instanceTemplate: defaultInstanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// backend service\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"tcp-proxy-xlb-backend-service\",\n protocol: \"TCP\",\n portName: \"tcp\",\n loadBalancingScheme: \"EXTERNAL\",\n timeoutSec: 10,\n healthChecks: defaultHealthCheck.id,\n backends: [{\n group: defaultInstanceGroupManager.instanceGroup,\n balancingMode: \"UTILIZATION\",\n maxUtilization: 1,\n capacityScaler: 1,\n }],\n});\nconst defaultTargetTCPProxy = new gcp.compute.TargetTCPProxy(\"default\", {\n name: \"test-proxy-health-check\",\n backendService: defaultBackendService.id,\n});\n// forwarding rule\nconst defaultGlobalForwardingRule = new gcp.compute.GlobalForwardingRule(\"default\", {\n name: \"tcp-proxy-xlb-forwarding-rule\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"EXTERNAL\",\n portRange: \"110\",\n target: defaultTargetTCPProxy.id,\n ipAddress: defaultGlobalAddress.id,\n});\n// allow access from health check ranges\nconst defaultFirewall = new gcp.compute.Firewall(\"default\", {\n name: \"tcp-proxy-xlb-fw-allow-hc\",\n direction: \"INGRESS\",\n network: _default.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n targetTags: [\"allow-health-check\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\n# External TCP proxy load balancer with managed instance group backend\n# VPC\ndefault = gcp.compute.Network(\"default\",\n name=\"tcp-proxy-xlb-network\",\n auto_create_subnetworks=False)\n# backend subnet\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"tcp-proxy-xlb-subnet\",\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"us-central1\",\n network=default.id)\n# reserved IP address\ndefault_global_address = gcp.compute.GlobalAddress(\"default\", name=\"tcp-proxy-xlb-ip\")\ndefault_health_check = gcp.compute.HealthCheck(\"default\",\n name=\"tcp-proxy-health-check\",\n timeout_sec=1,\n check_interval_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\n# instance template\ndefault_instance_template = gcp.compute.InstanceTemplate(\"default\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=default.id,\n subnetwork=default_subnetwork.id,\n )],\n name=\"tcp-proxy-xlb-mig-template\",\n machine_type=\"e2-small\",\n tags=[\"allow-health-check\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\n# MIG\ndefault_instance_group_manager = gcp.compute.InstanceGroupManager(\"default\",\n name=\"tcp-proxy-xlb-mig1\",\n zone=\"us-central1-c\",\n named_ports=[gcp.compute.InstanceGroupManagerNamedPortArgs(\n name=\"tcp\",\n port=80,\n )],\n versions=[gcp.compute.InstanceGroupManagerVersionArgs(\n instance_template=default_instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# backend service\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"tcp-proxy-xlb-backend-service\",\n protocol=\"TCP\",\n port_name=\"tcp\",\n load_balancing_scheme=\"EXTERNAL\",\n timeout_sec=10,\n health_checks=default_health_check.id,\n backends=[gcp.compute.BackendServiceBackendArgs(\n group=default_instance_group_manager.instance_group,\n balancing_mode=\"UTILIZATION\",\n max_utilization=1,\n capacity_scaler=1,\n )])\ndefault_target_tcp_proxy = gcp.compute.TargetTCPProxy(\"default\",\n name=\"test-proxy-health-check\",\n backend_service=default_backend_service.id)\n# forwarding rule\ndefault_global_forwarding_rule = gcp.compute.GlobalForwardingRule(\"default\",\n name=\"tcp-proxy-xlb-forwarding-rule\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"EXTERNAL\",\n port_range=\"110\",\n target=default_target_tcp_proxy.id,\n ip_address=default_global_address.id)\n# allow access from health check ranges\ndefault_firewall = gcp.compute.Firewall(\"default\",\n name=\"tcp-proxy-xlb-fw-allow-hc\",\n direction=\"INGRESS\",\n network=default.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )],\n target_tags=[\"allow-health-check\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // External TCP proxy load balancer with managed instance group backend\n // VPC\n var @default = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"tcp-proxy-xlb-network\",\n AutoCreateSubnetworks = false,\n });\n\n // backend subnet\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"tcp-proxy-xlb-subnet\",\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"us-central1\",\n Network = @default.Id,\n });\n\n // reserved IP address\n var defaultGlobalAddress = new Gcp.Compute.GlobalAddress(\"default\", new()\n {\n Name = \"tcp-proxy-xlb-ip\",\n });\n\n var defaultHealthCheck = new Gcp.Compute.HealthCheck(\"default\", new()\n {\n Name = \"tcp-proxy-health-check\",\n TimeoutSec = 1,\n CheckIntervalSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n // instance template\n var defaultInstanceTemplate = new Gcp.Compute.InstanceTemplate(\"default\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = @default.Id,\n Subnetwork = defaultSubnetwork.Id,\n },\n },\n Name = \"tcp-proxy-xlb-mig-template\",\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"allow-health-check\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n // MIG\n var defaultInstanceGroupManager = new Gcp.Compute.InstanceGroupManager(\"default\", new()\n {\n Name = \"tcp-proxy-xlb-mig1\",\n Zone = \"us-central1-c\",\n NamedPorts = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerNamedPortArgs\n {\n Name = \"tcp\",\n Port = 80,\n },\n },\n Versions = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs\n {\n InstanceTemplate = defaultInstanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // backend service\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"tcp-proxy-xlb-backend-service\",\n Protocol = \"TCP\",\n PortName = \"tcp\",\n LoadBalancingScheme = \"EXTERNAL\",\n TimeoutSec = 10,\n HealthChecks = defaultHealthCheck.Id,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = defaultInstanceGroupManager.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n MaxUtilization = 1,\n CapacityScaler = 1,\n },\n },\n });\n\n var defaultTargetTCPProxy = new Gcp.Compute.TargetTCPProxy(\"default\", new()\n {\n Name = \"test-proxy-health-check\",\n BackendService = defaultBackendService.Id,\n });\n\n // forwarding rule\n var defaultGlobalForwardingRule = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Name = \"tcp-proxy-xlb-forwarding-rule\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"EXTERNAL\",\n PortRange = \"110\",\n Target = defaultTargetTCPProxy.Id,\n IpAddress = defaultGlobalAddress.Id,\n });\n\n // allow access from health check ranges\n var defaultFirewall = new Gcp.Compute.Firewall(\"default\", new()\n {\n Name = \"tcp-proxy-xlb-fw-allow-hc\",\n Direction = \"INGRESS\",\n Network = @default.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n TargetTags = new[]\n {\n \"allow-health-check\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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// External TCP proxy load balancer with managed instance group backend\n\t\t// VPC\n\t\t_, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend subnet\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// reserved IP address\n\t\tdefaultGlobalAddress, err := compute.NewGlobalAddress(ctx, \"default\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-ip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHealthCheck, err := compute.NewHealthCheck(ctx, \"default\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-health-check\"),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tdefaultInstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"default\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: _default.ID(),\n\t\t\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-mig-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-health-check\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// MIG\n\t\tdefaultInstanceGroupManager, err := compute.NewInstanceGroupManager(ctx, \"default\", \u0026compute.InstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-mig1\"),\n\t\t\tZone: pulumi.String(\"us-central1-c\"),\n\t\t\tNamedPorts: compute.InstanceGroupManagerNamedPortArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerNamedPortArgs{\n\t\t\t\t\tName: pulumi.String(\"tcp\"),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVersions: compute.InstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: defaultInstanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend service\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-backend-service\"),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tPortName: pulumi.String(\"tcp\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: defaultInstanceGroupManager.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tMaxUtilization: pulumi.Float64(1),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTargetTCPProxy, err := compute.NewTargetTCPProxy(ctx, \"default\", \u0026compute.TargetTCPProxyArgs{\n\t\t\tName: pulumi.String(\"test-proxy-health-check\"),\n\t\t\tBackendService: defaultBackendService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// forwarding rule\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-forwarding-rule\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tPortRange: pulumi.String(\"110\"),\n\t\t\tTarget: defaultTargetTCPProxy.ID(),\n\t\t\tIpAddress: defaultGlobalAddress.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow access from health check ranges\n\t\t_, err = compute.NewFirewall(ctx, \"default\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"tcp-proxy-xlb-fw-allow-hc\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: _default.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-health-check\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.InstanceGroupManager;\nimport com.pulumi.gcp.compute.InstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerNamedPortArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.TargetTCPProxy;\nimport com.pulumi.gcp.compute.TargetTCPProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\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 // External TCP proxy load balancer with managed instance group backend\n // VPC\n var default_ = new Network(\"default\", NetworkArgs.builder() \n .name(\"tcp-proxy-xlb-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n // backend subnet\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"tcp-proxy-xlb-subnet\")\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"us-central1\")\n .network(default_.id())\n .build());\n\n // reserved IP address\n var defaultGlobalAddress = new GlobalAddress(\"defaultGlobalAddress\", GlobalAddressArgs.builder() \n .name(\"tcp-proxy-xlb-ip\")\n .build());\n\n var defaultHealthCheck = new HealthCheck(\"defaultHealthCheck\", HealthCheckArgs.builder() \n .name(\"tcp-proxy-health-check\")\n .timeoutSec(1)\n .checkIntervalSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n // instance template\n var defaultInstanceTemplate = new InstanceTemplate(\"defaultInstanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(default_.id())\n .subnetwork(defaultSubnetwork.id())\n .build())\n .name(\"tcp-proxy-xlb-mig-template\")\n .machineType(\"e2-small\")\n .tags(\"allow-health-check\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n // MIG\n var defaultInstanceGroupManager = new InstanceGroupManager(\"defaultInstanceGroupManager\", InstanceGroupManagerArgs.builder() \n .name(\"tcp-proxy-xlb-mig1\")\n .zone(\"us-central1-c\")\n .namedPorts(InstanceGroupManagerNamedPortArgs.builder()\n .name(\"tcp\")\n .port(80)\n .build())\n .versions(InstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(defaultInstanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // backend service\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"tcp-proxy-xlb-backend-service\")\n .protocol(\"TCP\")\n .portName(\"tcp\")\n .loadBalancingScheme(\"EXTERNAL\")\n .timeoutSec(10)\n .healthChecks(defaultHealthCheck.id())\n .backends(BackendServiceBackendArgs.builder()\n .group(defaultInstanceGroupManager.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .maxUtilization(1)\n .capacityScaler(1)\n .build())\n .build());\n\n var defaultTargetTCPProxy = new TargetTCPProxy(\"defaultTargetTCPProxy\", TargetTCPProxyArgs.builder() \n .name(\"test-proxy-health-check\")\n .backendService(defaultBackendService.id())\n .build());\n\n // forwarding rule\n var defaultGlobalForwardingRule = new GlobalForwardingRule(\"defaultGlobalForwardingRule\", GlobalForwardingRuleArgs.builder() \n .name(\"tcp-proxy-xlb-forwarding-rule\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"EXTERNAL\")\n .portRange(\"110\")\n .target(defaultTargetTCPProxy.id())\n .ipAddress(defaultGlobalAddress.id())\n .build());\n\n // allow access from health check ranges\n var defaultFirewall = new Firewall(\"defaultFirewall\", FirewallArgs.builder() \n .name(\"tcp-proxy-xlb-fw-allow-hc\")\n .direction(\"INGRESS\")\n .network(default_.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .targetTags(\"allow-health-check\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # External TCP proxy load balancer with managed instance group backend\n\n # VPC\n default:\n type: gcp:compute:Network\n properties:\n name: tcp-proxy-xlb-network\n autoCreateSubnetworks: false\n # backend subnet\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: tcp-proxy-xlb-subnet\n ipCidrRange: 10.0.1.0/24\n region: us-central1\n network: ${default.id}\n # reserved IP address\n defaultGlobalAddress:\n type: gcp:compute:GlobalAddress\n name: default\n properties:\n name: tcp-proxy-xlb-ip\n # forwarding rule\n defaultGlobalForwardingRule:\n type: gcp:compute:GlobalForwardingRule\n name: default\n properties:\n name: tcp-proxy-xlb-forwarding-rule\n ipProtocol: TCP\n loadBalancingScheme: EXTERNAL\n portRange: '110'\n target: ${defaultTargetTCPProxy.id}\n ipAddress: ${defaultGlobalAddress.id}\n defaultTargetTCPProxy:\n type: gcp:compute:TargetTCPProxy\n name: default\n properties:\n name: test-proxy-health-check\n backendService: ${defaultBackendService.id}\n # backend service\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: tcp-proxy-xlb-backend-service\n protocol: TCP\n portName: tcp\n loadBalancingScheme: EXTERNAL\n timeoutSec: 10\n healthChecks: ${defaultHealthCheck.id}\n backends:\n - group: ${defaultInstanceGroupManager.instanceGroup}\n balancingMode: UTILIZATION\n maxUtilization: 1\n capacityScaler: 1\n defaultHealthCheck:\n type: gcp:compute:HealthCheck\n name: default\n properties:\n name: tcp-proxy-health-check\n timeoutSec: 1\n checkIntervalSec: 1\n tcpHealthCheck:\n port: '80'\n # instance template\n defaultInstanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: default\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${default.id}\n subnetwork: ${defaultSubnetwork.id}\n name: tcp-proxy-xlb-mig-template\n machineType: e2-small\n tags:\n - allow-health-check\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n # MIG\n defaultInstanceGroupManager:\n type: gcp:compute:InstanceGroupManager\n name: default\n properties:\n name: tcp-proxy-xlb-mig1\n zone: us-central1-c\n namedPorts:\n - name: tcp\n port: 80\n versions:\n - instanceTemplate: ${defaultInstanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\n # allow access from health check ranges\n defaultFirewall:\n type: gcp:compute:Firewall\n name: default\n properties:\n name: tcp-proxy-xlb-fw-allow-hc\n direction: INGRESS\n network: ${default.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n allows:\n - protocol: tcp\n targetTags:\n - allow-health-check\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### External Http Lb Mig Backend Custom Header\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\n// External HTTP load balancer with a CDN-enabled managed instance group backend\n// and custom request and response headers\n// VPC\nconst _default = new gcp.compute.Network(\"default\", {\n name: \"l7-xlb-network\",\n autoCreateSubnetworks: false,\n});\n// backend subnet\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"l7-xlb-subnet\",\n ipCidrRange: \"10.0.1.0/24\",\n region: \"us-central1\",\n network: _default.id,\n});\n// reserved IP address\nconst defaultGlobalAddress = new gcp.compute.GlobalAddress(\"default\", {name: \"l7-xlb-static-ip\"});\n// health check\nconst defaultHealthCheck = new gcp.compute.HealthCheck(\"default\", {\n name: \"l7-xlb-hc\",\n httpHealthCheck: {\n portSpecification: \"USE_SERVING_PORT\",\n },\n});\n// instance template\nconst defaultInstanceTemplate = new gcp.compute.InstanceTemplate(\"default\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: _default.id,\n subnetwork: defaultSubnetwork.id,\n }],\n name: \"l7-xlb-mig-template\",\n machineType: \"e2-small\",\n tags: [\"allow-health-check\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: NAME\nIP: IP\nMetadata: METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\n// MIG\nconst defaultInstanceGroupManager = new gcp.compute.InstanceGroupManager(\"default\", {\n name: \"l7-xlb-mig1\",\n zone: \"us-central1-c\",\n namedPorts: [{\n name: \"http\",\n port: 8080,\n }],\n versions: [{\n instanceTemplate: defaultInstanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// backend service with custom request and response headers\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"l7-xlb-backend-service\",\n protocol: \"HTTP\",\n portName: \"my-port\",\n loadBalancingScheme: \"EXTERNAL\",\n timeoutSec: 10,\n enableCdn: true,\n customRequestHeaders: [\"X-Client-Geo-Location: {client_region_subdivision}, {client_city}\"],\n customResponseHeaders: [\"X-Cache-Hit: {cdn_cache_status}\"],\n healthChecks: defaultHealthCheck.id,\n backends: [{\n group: defaultInstanceGroupManager.instanceGroup,\n balancingMode: \"UTILIZATION\",\n capacityScaler: 1,\n }],\n});\n// url map\nconst defaultURLMap = new gcp.compute.URLMap(\"default\", {\n name: \"l7-xlb-url-map\",\n defaultService: defaultBackendService.id,\n});\n// http proxy\nconst defaultTargetHttpProxy = new gcp.compute.TargetHttpProxy(\"default\", {\n name: \"l7-xlb-target-http-proxy\",\n urlMap: defaultURLMap.id,\n});\n// forwarding rule\nconst defaultGlobalForwardingRule = new gcp.compute.GlobalForwardingRule(\"default\", {\n name: \"l7-xlb-forwarding-rule\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"EXTERNAL\",\n portRange: \"80\",\n target: defaultTargetHttpProxy.id,\n ipAddress: defaultGlobalAddress.id,\n});\n// allow access from health check ranges\nconst defaultFirewall = new gcp.compute.Firewall(\"default\", {\n name: \"l7-xlb-fw-allow-hc\",\n direction: \"INGRESS\",\n network: _default.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n targetTags: [\"allow-health-check\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\n# External HTTP load balancer with a CDN-enabled managed instance group backend\n# and custom request and response headers\n# VPC\ndefault = gcp.compute.Network(\"default\",\n name=\"l7-xlb-network\",\n auto_create_subnetworks=False)\n# backend subnet\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"l7-xlb-subnet\",\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"us-central1\",\n network=default.id)\n# reserved IP address\ndefault_global_address = gcp.compute.GlobalAddress(\"default\", name=\"l7-xlb-static-ip\")\n# health check\ndefault_health_check = gcp.compute.HealthCheck(\"default\",\n name=\"l7-xlb-hc\",\n http_health_check=gcp.compute.HealthCheckHttpHealthCheckArgs(\n port_specification=\"USE_SERVING_PORT\",\n ))\n# instance template\ndefault_instance_template = gcp.compute.InstanceTemplate(\"default\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=default.id,\n subnetwork=default_subnetwork.id,\n )],\n name=\"l7-xlb-mig-template\",\n machine_type=\"e2-small\",\n tags=[\"allow-health-check\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\n# MIG\ndefault_instance_group_manager = gcp.compute.InstanceGroupManager(\"default\",\n name=\"l7-xlb-mig1\",\n zone=\"us-central1-c\",\n named_ports=[gcp.compute.InstanceGroupManagerNamedPortArgs(\n name=\"http\",\n port=8080,\n )],\n versions=[gcp.compute.InstanceGroupManagerVersionArgs(\n instance_template=default_instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# backend service with custom request and response headers\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"l7-xlb-backend-service\",\n protocol=\"HTTP\",\n port_name=\"my-port\",\n load_balancing_scheme=\"EXTERNAL\",\n timeout_sec=10,\n enable_cdn=True,\n custom_request_headers=[\"X-Client-Geo-Location: {client_region_subdivision}, {client_city}\"],\n custom_response_headers=[\"X-Cache-Hit: {cdn_cache_status}\"],\n health_checks=default_health_check.id,\n backends=[gcp.compute.BackendServiceBackendArgs(\n group=default_instance_group_manager.instance_group,\n balancing_mode=\"UTILIZATION\",\n capacity_scaler=1,\n )])\n# url map\ndefault_url_map = gcp.compute.URLMap(\"default\",\n name=\"l7-xlb-url-map\",\n default_service=default_backend_service.id)\n# http proxy\ndefault_target_http_proxy = gcp.compute.TargetHttpProxy(\"default\",\n name=\"l7-xlb-target-http-proxy\",\n url_map=default_url_map.id)\n# forwarding rule\ndefault_global_forwarding_rule = gcp.compute.GlobalForwardingRule(\"default\",\n name=\"l7-xlb-forwarding-rule\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"EXTERNAL\",\n port_range=\"80\",\n target=default_target_http_proxy.id,\n ip_address=default_global_address.id)\n# allow access from health check ranges\ndefault_firewall = gcp.compute.Firewall(\"default\",\n name=\"l7-xlb-fw-allow-hc\",\n direction=\"INGRESS\",\n network=default.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )],\n target_tags=[\"allow-health-check\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // External HTTP load balancer with a CDN-enabled managed instance group backend\n // and custom request and response headers\n // VPC\n var @default = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"l7-xlb-network\",\n AutoCreateSubnetworks = false,\n });\n\n // backend subnet\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"l7-xlb-subnet\",\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"us-central1\",\n Network = @default.Id,\n });\n\n // reserved IP address\n var defaultGlobalAddress = new Gcp.Compute.GlobalAddress(\"default\", new()\n {\n Name = \"l7-xlb-static-ip\",\n });\n\n // health check\n var defaultHealthCheck = new Gcp.Compute.HealthCheck(\"default\", new()\n {\n Name = \"l7-xlb-hc\",\n HttpHealthCheck = new Gcp.Compute.Inputs.HealthCheckHttpHealthCheckArgs\n {\n PortSpecification = \"USE_SERVING_PORT\",\n },\n });\n\n // instance template\n var defaultInstanceTemplate = new Gcp.Compute.InstanceTemplate(\"default\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = @default.Id,\n Subnetwork = defaultSubnetwork.Id,\n },\n },\n Name = \"l7-xlb-mig-template\",\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"allow-health-check\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n // MIG\n var defaultInstanceGroupManager = new Gcp.Compute.InstanceGroupManager(\"default\", new()\n {\n Name = \"l7-xlb-mig1\",\n Zone = \"us-central1-c\",\n NamedPorts = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerNamedPortArgs\n {\n Name = \"http\",\n Port = 8080,\n },\n },\n Versions = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs\n {\n InstanceTemplate = defaultInstanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // backend service with custom request and response headers\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"l7-xlb-backend-service\",\n Protocol = \"HTTP\",\n PortName = \"my-port\",\n LoadBalancingScheme = \"EXTERNAL\",\n TimeoutSec = 10,\n EnableCdn = true,\n CustomRequestHeaders = new[]\n {\n \"X-Client-Geo-Location: {client_region_subdivision}, {client_city}\",\n },\n CustomResponseHeaders = new[]\n {\n \"X-Cache-Hit: {cdn_cache_status}\",\n },\n HealthChecks = defaultHealthCheck.Id,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = defaultInstanceGroupManager.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n CapacityScaler = 1,\n },\n },\n });\n\n // url map\n var defaultURLMap = new Gcp.Compute.URLMap(\"default\", new()\n {\n Name = \"l7-xlb-url-map\",\n DefaultService = defaultBackendService.Id,\n });\n\n // http proxy\n var defaultTargetHttpProxy = new Gcp.Compute.TargetHttpProxy(\"default\", new()\n {\n Name = \"l7-xlb-target-http-proxy\",\n UrlMap = defaultURLMap.Id,\n });\n\n // forwarding rule\n var defaultGlobalForwardingRule = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Name = \"l7-xlb-forwarding-rule\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"EXTERNAL\",\n PortRange = \"80\",\n Target = defaultTargetHttpProxy.Id,\n IpAddress = defaultGlobalAddress.Id,\n });\n\n // allow access from health check ranges\n var defaultFirewall = new Gcp.Compute.Firewall(\"default\", new()\n {\n Name = \"l7-xlb-fw-allow-hc\",\n Direction = \"INGRESS\",\n Network = @default.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n TargetTags = new[]\n {\n \"allow-health-check\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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// External HTTP load balancer with a CDN-enabled managed instance group backend\n\t\t// and custom request and response headers\n\t\t// VPC\n\t\t_, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend subnet\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// reserved IP address\n\t\tdefaultGlobalAddress, err := compute.NewGlobalAddress(ctx, \"default\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-static-ip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// health check\n\t\tdefaultHealthCheck, err := compute.NewHealthCheck(ctx, \"default\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-hc\"),\n\t\t\tHttpHealthCheck: \u0026compute.HealthCheckHttpHealthCheckArgs{\n\t\t\t\tPortSpecification: pulumi.String(\"USE_SERVING_PORT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tdefaultInstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"default\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: _default.ID(),\n\t\t\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"l7-xlb-mig-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-health-check\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// MIG\n\t\tdefaultInstanceGroupManager, err := compute.NewInstanceGroupManager(ctx, \"default\", \u0026compute.InstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-mig1\"),\n\t\t\tZone: pulumi.String(\"us-central1-c\"),\n\t\t\tNamedPorts: compute.InstanceGroupManagerNamedPortArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerNamedPortArgs{\n\t\t\t\t\tName: pulumi.String(\"http\"),\n\t\t\t\t\tPort: pulumi.Int(8080),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVersions: compute.InstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: defaultInstanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend service with custom request and response headers\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-backend-service\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tPortName: pulumi.String(\"my-port\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tEnableCdn: pulumi.Bool(true),\n\t\t\tCustomRequestHeaders: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"X-Client-Geo-Location: {client_region_subdivision}, {client_city}\"),\n\t\t\t},\n\t\t\tCustomResponseHeaders: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"X-Cache-Hit: {cdn_cache_status}\"),\n\t\t\t},\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: defaultInstanceGroupManager.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// url map\n\t\tdefaultURLMap, err := compute.NewURLMap(ctx, \"default\", \u0026compute.URLMapArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-url-map\"),\n\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// http proxy\n\t\tdefaultTargetHttpProxy, err := compute.NewTargetHttpProxy(ctx, \"default\", \u0026compute.TargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-target-http-proxy\"),\n\t\t\tUrlMap: defaultURLMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// forwarding rule\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-forwarding-rule\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tTarget: defaultTargetHttpProxy.ID(),\n\t\t\tIpAddress: defaultGlobalAddress.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow access from health check ranges\n\t\t_, err = compute.NewFirewall(ctx, \"default\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l7-xlb-fw-allow-hc\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: _default.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"allow-health-check\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.InstanceGroupManager;\nimport com.pulumi.gcp.compute.InstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerNamedPortArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.URLMap;\nimport com.pulumi.gcp.compute.URLMapArgs;\nimport com.pulumi.gcp.compute.TargetHttpProxy;\nimport com.pulumi.gcp.compute.TargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\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 // External HTTP load balancer with a CDN-enabled managed instance group backend\n // and custom request and response headers\n // VPC\n var default_ = new Network(\"default\", NetworkArgs.builder() \n .name(\"l7-xlb-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n // backend subnet\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"l7-xlb-subnet\")\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"us-central1\")\n .network(default_.id())\n .build());\n\n // reserved IP address\n var defaultGlobalAddress = new GlobalAddress(\"defaultGlobalAddress\", GlobalAddressArgs.builder() \n .name(\"l7-xlb-static-ip\")\n .build());\n\n // health check\n var defaultHealthCheck = new HealthCheck(\"defaultHealthCheck\", HealthCheckArgs.builder() \n .name(\"l7-xlb-hc\")\n .httpHealthCheck(HealthCheckHttpHealthCheckArgs.builder()\n .portSpecification(\"USE_SERVING_PORT\")\n .build())\n .build());\n\n // instance template\n var defaultInstanceTemplate = new InstanceTemplate(\"defaultInstanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(default_.id())\n .subnetwork(defaultSubnetwork.id())\n .build())\n .name(\"l7-xlb-mig-template\")\n .machineType(\"e2-small\")\n .tags(\"allow-health-check\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n // MIG\n var defaultInstanceGroupManager = new InstanceGroupManager(\"defaultInstanceGroupManager\", InstanceGroupManagerArgs.builder() \n .name(\"l7-xlb-mig1\")\n .zone(\"us-central1-c\")\n .namedPorts(InstanceGroupManagerNamedPortArgs.builder()\n .name(\"http\")\n .port(8080)\n .build())\n .versions(InstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(defaultInstanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // backend service with custom request and response headers\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"l7-xlb-backend-service\")\n .protocol(\"HTTP\")\n .portName(\"my-port\")\n .loadBalancingScheme(\"EXTERNAL\")\n .timeoutSec(10)\n .enableCdn(true)\n .customRequestHeaders(\"X-Client-Geo-Location: {client_region_subdivision}, {client_city}\")\n .customResponseHeaders(\"X-Cache-Hit: {cdn_cache_status}\")\n .healthChecks(defaultHealthCheck.id())\n .backends(BackendServiceBackendArgs.builder()\n .group(defaultInstanceGroupManager.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .capacityScaler(1)\n .build())\n .build());\n\n // url map\n var defaultURLMap = new URLMap(\"defaultURLMap\", URLMapArgs.builder() \n .name(\"l7-xlb-url-map\")\n .defaultService(defaultBackendService.id())\n .build());\n\n // http proxy\n var defaultTargetHttpProxy = new TargetHttpProxy(\"defaultTargetHttpProxy\", TargetHttpProxyArgs.builder() \n .name(\"l7-xlb-target-http-proxy\")\n .urlMap(defaultURLMap.id())\n .build());\n\n // forwarding rule\n var defaultGlobalForwardingRule = new GlobalForwardingRule(\"defaultGlobalForwardingRule\", GlobalForwardingRuleArgs.builder() \n .name(\"l7-xlb-forwarding-rule\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"EXTERNAL\")\n .portRange(\"80\")\n .target(defaultTargetHttpProxy.id())\n .ipAddress(defaultGlobalAddress.id())\n .build());\n\n // allow access from health check ranges\n var defaultFirewall = new Firewall(\"defaultFirewall\", FirewallArgs.builder() \n .name(\"l7-xlb-fw-allow-hc\")\n .direction(\"INGRESS\")\n .network(default_.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .targetTags(\"allow-health-check\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # External HTTP load balancer with a CDN-enabled managed instance group backend\n # and custom request and response headers\n\n # VPC\n default:\n type: gcp:compute:Network\n properties:\n name: l7-xlb-network\n autoCreateSubnetworks: false\n # backend subnet\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: l7-xlb-subnet\n ipCidrRange: 10.0.1.0/24\n region: us-central1\n network: ${default.id}\n # reserved IP address\n defaultGlobalAddress:\n type: gcp:compute:GlobalAddress\n name: default\n properties:\n name: l7-xlb-static-ip\n # forwarding rule\n defaultGlobalForwardingRule:\n type: gcp:compute:GlobalForwardingRule\n name: default\n properties:\n name: l7-xlb-forwarding-rule\n ipProtocol: TCP\n loadBalancingScheme: EXTERNAL\n portRange: '80'\n target: ${defaultTargetHttpProxy.id}\n ipAddress: ${defaultGlobalAddress.id}\n # http proxy\n defaultTargetHttpProxy:\n type: gcp:compute:TargetHttpProxy\n name: default\n properties:\n name: l7-xlb-target-http-proxy\n urlMap: ${defaultURLMap.id}\n # url map\n defaultURLMap:\n type: gcp:compute:URLMap\n name: default\n properties:\n name: l7-xlb-url-map\n defaultService: ${defaultBackendService.id}\n # backend service with custom request and response headers\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: l7-xlb-backend-service\n protocol: HTTP\n portName: my-port\n loadBalancingScheme: EXTERNAL\n timeoutSec: 10\n enableCdn: true\n customRequestHeaders:\n - 'X-Client-Geo-Location: {client_region_subdivision}, {client_city}'\n customResponseHeaders:\n - 'X-Cache-Hit: {cdn_cache_status}'\n healthChecks: ${defaultHealthCheck.id}\n backends:\n - group: ${defaultInstanceGroupManager.instanceGroup}\n balancingMode: UTILIZATION\n capacityScaler: 1\n # instance template\n defaultInstanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: default\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${default.id}\n subnetwork: ${defaultSubnetwork.id}\n name: l7-xlb-mig-template\n machineType: e2-small\n tags:\n - allow-health-check\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n # health check\n defaultHealthCheck:\n type: gcp:compute:HealthCheck\n name: default\n properties:\n name: l7-xlb-hc\n httpHealthCheck:\n portSpecification: USE_SERVING_PORT\n # MIG\n defaultInstanceGroupManager:\n type: gcp:compute:InstanceGroupManager\n name: default\n properties:\n name: l7-xlb-mig1\n zone: us-central1-c\n namedPorts:\n - name: http\n port: 8080\n versions:\n - instanceTemplate: ${defaultInstanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\n # allow access from health check ranges\n defaultFirewall:\n type: gcp:compute:Firewall\n name: default\n properties:\n name: l7-xlb-fw-allow-hc\n direction: INGRESS\n network: ${default.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n allows:\n - protocol: tcp\n targetTags:\n - allow-health-check\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Global Forwarding Rule Http\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultHttpHealthCheck = new gcp.compute.HttpHealthCheck(\"default\", {\n name: \"check-backend\",\n requestPath: \"/\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n});\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"backend\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n healthChecks: defaultHttpHealthCheck.id,\n});\nconst defaultURLMap = new gcp.compute.URLMap(\"default\", {\n name: \"url-map-target-proxy\",\n description: \"a description\",\n defaultService: defaultBackendService.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: defaultBackendService.id,\n pathRules: [{\n paths: [\"/*\"],\n service: defaultBackendService.id,\n }],\n }],\n});\nconst defaultTargetHttpProxy = new gcp.compute.TargetHttpProxy(\"default\", {\n name: \"target-proxy\",\n description: \"a description\",\n urlMap: defaultURLMap.id,\n});\nconst _default = new gcp.compute.GlobalForwardingRule(\"default\", {\n name: \"global-rule\",\n target: defaultTargetHttpProxy.id,\n portRange: \"80\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_http_health_check = gcp.compute.HttpHealthCheck(\"default\",\n name=\"check-backend\",\n request_path=\"/\",\n check_interval_sec=1,\n timeout_sec=1)\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"backend\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n health_checks=default_http_health_check.id)\ndefault_url_map = gcp.compute.URLMap(\"default\",\n name=\"url-map-target-proxy\",\n description=\"a description\",\n default_service=default_backend_service.id,\n host_rules=[gcp.compute.URLMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.URLMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=default_backend_service.id,\n path_rules=[gcp.compute.URLMapPathMatcherPathRuleArgs(\n paths=[\"/*\"],\n service=default_backend_service.id,\n )],\n )])\ndefault_target_http_proxy = gcp.compute.TargetHttpProxy(\"default\",\n name=\"target-proxy\",\n description=\"a description\",\n url_map=default_url_map.id)\ndefault = gcp.compute.GlobalForwardingRule(\"default\",\n name=\"global-rule\",\n target=default_target_http_proxy.id,\n port_range=\"80\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultHttpHealthCheck = new Gcp.Compute.HttpHealthCheck(\"default\", new()\n {\n Name = \"check-backend\",\n RequestPath = \"/\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n });\n\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n HealthChecks = defaultHttpHealthCheck.Id,\n });\n\n var defaultURLMap = new Gcp.Compute.URLMap(\"default\", new()\n {\n Name = \"url-map-target-proxy\",\n Description = \"a description\",\n DefaultService = defaultBackendService.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = defaultBackendService.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/*\",\n },\n Service = defaultBackendService.Id,\n },\n },\n },\n },\n });\n\n var defaultTargetHttpProxy = new Gcp.Compute.TargetHttpProxy(\"default\", new()\n {\n Name = \"target-proxy\",\n Description = \"a description\",\n UrlMap = defaultURLMap.Id,\n });\n\n var @default = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Name = \"global-rule\",\n Target = defaultTargetHttpProxy.Id,\n PortRange = \"80\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultHttpHealthCheck, err := compute.NewHttpHealthCheck(ctx, \"default\", \u0026compute.HttpHealthCheckArgs{\n\t\t\tName: pulumi.String(\"check-backend\"),\n\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultHttpHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultURLMap, err := compute.NewURLMap(ctx, \"default\", \u0026compute.URLMapArgs{\n\t\t\tName: pulumi.String(\"url-map-target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\tHostRules: compute.URLMapHostRuleArray{\n\t\t\t\t\u0026compute.URLMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.URLMapPathMatcherArray{\n\t\t\t\t\u0026compute.URLMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\t\t\tPathRules: compute.URLMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.URLMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/*\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: defaultBackendService.ID(),\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTargetHttpProxy, err := compute.NewTargetHttpProxy(ctx, \"default\", \u0026compute.TargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tUrlMap: defaultURLMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"global-rule\"),\n\t\t\tTarget: defaultTargetHttpProxy.ID(),\n\t\t\tPortRange: pulumi.String(\"80\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HttpHealthCheck;\nimport com.pulumi.gcp.compute.HttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.URLMap;\nimport com.pulumi.gcp.compute.URLMapArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.TargetHttpProxy;\nimport com.pulumi.gcp.compute.TargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\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 defaultHttpHealthCheck = new HttpHealthCheck(\"defaultHttpHealthCheck\", HttpHealthCheckArgs.builder() \n .name(\"check-backend\")\n .requestPath(\"/\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .build());\n\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"backend\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(defaultHttpHealthCheck.id())\n .build());\n\n var defaultURLMap = new URLMap(\"defaultURLMap\", URLMapArgs.builder() \n .name(\"url-map-target-proxy\")\n .description(\"a description\")\n .defaultService(defaultBackendService.id())\n .hostRules(URLMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(URLMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(defaultBackendService.id())\n .pathRules(URLMapPathMatcherPathRuleArgs.builder()\n .paths(\"/*\")\n .service(defaultBackendService.id())\n .build())\n .build())\n .build());\n\n var defaultTargetHttpProxy = new TargetHttpProxy(\"defaultTargetHttpProxy\", TargetHttpProxyArgs.builder() \n .name(\"target-proxy\")\n .description(\"a description\")\n .urlMap(defaultURLMap.id())\n .build());\n\n var default_ = new GlobalForwardingRule(\"default\", GlobalForwardingRuleArgs.builder() \n .name(\"global-rule\")\n .target(defaultTargetHttpProxy.id())\n .portRange(\"80\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:GlobalForwardingRule\n properties:\n name: global-rule\n target: ${defaultTargetHttpProxy.id}\n portRange: '80'\n defaultTargetHttpProxy:\n type: gcp:compute:TargetHttpProxy\n name: default\n properties:\n name: target-proxy\n description: a description\n urlMap: ${defaultURLMap.id}\n defaultURLMap:\n type: gcp:compute:URLMap\n name: default\n properties:\n name: url-map-target-proxy\n description: a description\n defaultService: ${defaultBackendService.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${defaultBackendService.id}\n pathRules:\n - paths:\n - /*\n service: ${defaultBackendService.id}\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: backend\n portName: http\n protocol: HTTP\n timeoutSec: 10\n healthChecks: ${defaultHttpHealthCheck.id}\n defaultHttpHealthCheck:\n type: gcp:compute:HttpHealthCheck\n name: default\n properties:\n name: check-backend\n requestPath: /\n checkIntervalSec: 1\n timeoutSec: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Global Forwarding Rule Internal\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst debianImage = gcp.compute.getImage({\n family: \"debian-11\",\n project: \"debian-cloud\",\n});\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n name: \"template-backend\",\n machineType: \"e2-medium\",\n networkInterfaces: [{\n network: \"default\",\n }],\n disks: [{\n sourceImage: debianImage.then(debianImage =\u003e debianImage.selfLink),\n autoDelete: true,\n boot: true,\n }],\n});\nconst igm = new gcp.compute.InstanceGroupManager(\"igm\", {\n name: \"igm-internal\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"internal-glb\",\n zone: \"us-central1-f\",\n targetSize: 1,\n});\nconst defaultHealthCheck = new gcp.compute.HealthCheck(\"default\", {\n name: \"check-backend\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"backend\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n loadBalancingScheme: \"INTERNAL_SELF_MANAGED\",\n backends: [{\n group: igm.instanceGroup,\n balancingMode: \"RATE\",\n capacityScaler: 0.4,\n maxRatePerInstance: 50,\n }],\n healthChecks: defaultHealthCheck.id,\n});\nconst defaultURLMap = new gcp.compute.URLMap(\"default\", {\n name: \"url-map-target-proxy\",\n description: \"a description\",\n defaultService: defaultBackendService.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: defaultBackendService.id,\n pathRules: [{\n paths: [\"/*\"],\n service: defaultBackendService.id,\n }],\n }],\n});\nconst defaultTargetHttpProxy = new gcp.compute.TargetHttpProxy(\"default\", {\n name: \"target-proxy\",\n description: \"a description\",\n urlMap: defaultURLMap.id,\n});\nconst _default = new gcp.compute.GlobalForwardingRule(\"default\", {\n name: \"global-rule\",\n target: defaultTargetHttpProxy.id,\n portRange: \"80\",\n loadBalancingScheme: \"INTERNAL_SELF_MANAGED\",\n ipAddress: \"0.0.0.0\",\n metadataFilters: [{\n filterMatchCriteria: \"MATCH_ANY\",\n filterLabels: [{\n name: \"PLANET\",\n value: \"MARS\",\n }],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndebian_image = gcp.compute.get_image(family=\"debian-11\",\n project=\"debian-cloud\")\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n name=\"template-backend\",\n machine_type=\"e2-medium\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n network=\"default\",\n )],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=debian_image.self_link,\n auto_delete=True,\n boot=True,\n )])\nigm = gcp.compute.InstanceGroupManager(\"igm\",\n name=\"igm-internal\",\n versions=[gcp.compute.InstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"internal-glb\",\n zone=\"us-central1-f\",\n target_size=1)\ndefault_health_check = gcp.compute.HealthCheck(\"default\",\n name=\"check-backend\",\n check_interval_sec=1,\n timeout_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"backend\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n load_balancing_scheme=\"INTERNAL_SELF_MANAGED\",\n backends=[gcp.compute.BackendServiceBackendArgs(\n group=igm.instance_group,\n balancing_mode=\"RATE\",\n capacity_scaler=0.4,\n max_rate_per_instance=50,\n )],\n health_checks=default_health_check.id)\ndefault_url_map = gcp.compute.URLMap(\"default\",\n name=\"url-map-target-proxy\",\n description=\"a description\",\n default_service=default_backend_service.id,\n host_rules=[gcp.compute.URLMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.URLMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=default_backend_service.id,\n path_rules=[gcp.compute.URLMapPathMatcherPathRuleArgs(\n paths=[\"/*\"],\n service=default_backend_service.id,\n )],\n )])\ndefault_target_http_proxy = gcp.compute.TargetHttpProxy(\"default\",\n name=\"target-proxy\",\n description=\"a description\",\n url_map=default_url_map.id)\ndefault = gcp.compute.GlobalForwardingRule(\"default\",\n name=\"global-rule\",\n target=default_target_http_proxy.id,\n port_range=\"80\",\n load_balancing_scheme=\"INTERNAL_SELF_MANAGED\",\n ip_address=\"0.0.0.0\",\n metadata_filters=[gcp.compute.GlobalForwardingRuleMetadataFilterArgs(\n filter_match_criteria=\"MATCH_ANY\",\n filter_labels=[gcp.compute.GlobalForwardingRuleMetadataFilterFilterLabelArgs(\n name=\"PLANET\",\n value=\"MARS\",\n )],\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var debianImage = Gcp.Compute.GetImage.Invoke(new()\n {\n Family = \"debian-11\",\n Project = \"debian-cloud\",\n });\n\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n Name = \"template-backend\",\n MachineType = \"e2-medium\",\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n Network = \"default\",\n },\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = debianImage.Apply(getImageResult =\u003e getImageResult.SelfLink),\n AutoDelete = true,\n Boot = true,\n },\n },\n });\n\n var igm = new Gcp.Compute.InstanceGroupManager(\"igm\", new()\n {\n Name = \"igm-internal\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"internal-glb\",\n Zone = \"us-central1-f\",\n TargetSize = 1,\n });\n\n var defaultHealthCheck = new Gcp.Compute.HealthCheck(\"default\", new()\n {\n Name = \"check-backend\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n LoadBalancingScheme = \"INTERNAL_SELF_MANAGED\",\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = igm.InstanceGroup,\n BalancingMode = \"RATE\",\n CapacityScaler = 0.4,\n MaxRatePerInstance = 50,\n },\n },\n HealthChecks = defaultHealthCheck.Id,\n });\n\n var defaultURLMap = new Gcp.Compute.URLMap(\"default\", new()\n {\n Name = \"url-map-target-proxy\",\n Description = \"a description\",\n DefaultService = defaultBackendService.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = defaultBackendService.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/*\",\n },\n Service = defaultBackendService.Id,\n },\n },\n },\n },\n });\n\n var defaultTargetHttpProxy = new Gcp.Compute.TargetHttpProxy(\"default\", new()\n {\n Name = \"target-proxy\",\n Description = \"a description\",\n UrlMap = defaultURLMap.Id,\n });\n\n var @default = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Name = \"global-rule\",\n Target = defaultTargetHttpProxy.Id,\n PortRange = \"80\",\n LoadBalancingScheme = \"INTERNAL_SELF_MANAGED\",\n IpAddress = \"0.0.0.0\",\n MetadataFilters = new[]\n {\n new Gcp.Compute.Inputs.GlobalForwardingRuleMetadataFilterArgs\n {\n FilterMatchCriteria = \"MATCH_ANY\",\n FilterLabels = new[]\n {\n new Gcp.Compute.Inputs.GlobalForwardingRuleMetadataFilterFilterLabelArgs\n {\n Name = \"PLANET\",\n Value = \"MARS\",\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdebianImage, err := compute.LookupImage(ctx, \u0026compute.LookupImageArgs{\n\t\t\tFamily: pulumi.StringRef(\"debian-11\"),\n\t\t\tProject: pulumi.StringRef(\"debian-cloud\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tName: pulumi.String(\"template-backend\"),\n\t\t\tMachineType: pulumi.String(\"e2-medium\"),\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(debianImage.SelfLink),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tigm, err := compute.NewInstanceGroupManager(ctx, \"igm\", \u0026compute.InstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"igm-internal\"),\n\t\t\tVersions: compute.InstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"internal-glb\"),\n\t\t\tZone: pulumi.String(\"us-central1-f\"),\n\t\t\tTargetSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHealthCheck, err := compute.NewHealthCheck(ctx, \"default\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"check-backend\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_SELF_MANAGED\"),\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: igm.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"RATE\"),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(0.4),\n\t\t\t\t\tMaxRatePerInstance: pulumi.Float64(50),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultURLMap, err := compute.NewURLMap(ctx, \"default\", \u0026compute.URLMapArgs{\n\t\t\tName: pulumi.String(\"url-map-target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\tHostRules: compute.URLMapHostRuleArray{\n\t\t\t\t\u0026compute.URLMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.URLMapPathMatcherArray{\n\t\t\t\t\u0026compute.URLMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\t\t\tPathRules: compute.URLMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.URLMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/*\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: defaultBackendService.ID(),\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTargetHttpProxy, err := compute.NewTargetHttpProxy(ctx, \"default\", \u0026compute.TargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tUrlMap: defaultURLMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"global-rule\"),\n\t\t\tTarget: defaultTargetHttpProxy.ID(),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_SELF_MANAGED\"),\n\t\t\tIpAddress: pulumi.String(\"0.0.0.0\"),\n\t\t\tMetadataFilters: compute.GlobalForwardingRuleMetadataFilterArray{\n\t\t\t\t\u0026compute.GlobalForwardingRuleMetadataFilterArgs{\n\t\t\t\t\tFilterMatchCriteria: pulumi.String(\"MATCH_ANY\"),\n\t\t\t\t\tFilterLabels: compute.GlobalForwardingRuleMetadataFilterFilterLabelArray{\n\t\t\t\t\t\t\u0026compute.GlobalForwardingRuleMetadataFilterFilterLabelArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"PLANET\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"MARS\"),\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetImageArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.InstanceGroupManager;\nimport com.pulumi.gcp.compute.InstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.URLMap;\nimport com.pulumi.gcp.compute.URLMapArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.TargetHttpProxy;\nimport com.pulumi.gcp.compute.TargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\nimport com.pulumi.gcp.compute.inputs.GlobalForwardingRuleMetadataFilterArgs;\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 final var debianImage = ComputeFunctions.getImage(GetImageArgs.builder()\n .family(\"debian-11\")\n .project(\"debian-cloud\")\n .build());\n\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .name(\"template-backend\")\n .machineType(\"e2-medium\")\n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .network(\"default\")\n .build())\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(debianImage.applyValue(getImageResult -\u003e getImageResult.selfLink()))\n .autoDelete(true)\n .boot(true)\n .build())\n .build());\n\n var igm = new InstanceGroupManager(\"igm\", InstanceGroupManagerArgs.builder() \n .name(\"igm-internal\")\n .versions(InstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"internal-glb\")\n .zone(\"us-central1-f\")\n .targetSize(1)\n .build());\n\n var defaultHealthCheck = new HealthCheck(\"defaultHealthCheck\", HealthCheckArgs.builder() \n .name(\"check-backend\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"backend\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .loadBalancingScheme(\"INTERNAL_SELF_MANAGED\")\n .backends(BackendServiceBackendArgs.builder()\n .group(igm.instanceGroup())\n .balancingMode(\"RATE\")\n .capacityScaler(0.4)\n .maxRatePerInstance(50)\n .build())\n .healthChecks(defaultHealthCheck.id())\n .build());\n\n var defaultURLMap = new URLMap(\"defaultURLMap\", URLMapArgs.builder() \n .name(\"url-map-target-proxy\")\n .description(\"a description\")\n .defaultService(defaultBackendService.id())\n .hostRules(URLMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(URLMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(defaultBackendService.id())\n .pathRules(URLMapPathMatcherPathRuleArgs.builder()\n .paths(\"/*\")\n .service(defaultBackendService.id())\n .build())\n .build())\n .build());\n\n var defaultTargetHttpProxy = new TargetHttpProxy(\"defaultTargetHttpProxy\", TargetHttpProxyArgs.builder() \n .name(\"target-proxy\")\n .description(\"a description\")\n .urlMap(defaultURLMap.id())\n .build());\n\n var default_ = new GlobalForwardingRule(\"default\", GlobalForwardingRuleArgs.builder() \n .name(\"global-rule\")\n .target(defaultTargetHttpProxy.id())\n .portRange(\"80\")\n .loadBalancingScheme(\"INTERNAL_SELF_MANAGED\")\n .ipAddress(\"0.0.0.0\")\n .metadataFilters(GlobalForwardingRuleMetadataFilterArgs.builder()\n .filterMatchCriteria(\"MATCH_ANY\")\n .filterLabels(GlobalForwardingRuleMetadataFilterFilterLabelArgs.builder()\n .name(\"PLANET\")\n .value(\"MARS\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:GlobalForwardingRule\n properties:\n name: global-rule\n target: ${defaultTargetHttpProxy.id}\n portRange: '80'\n loadBalancingScheme: INTERNAL_SELF_MANAGED\n ipAddress: 0.0.0.0\n metadataFilters:\n - filterMatchCriteria: MATCH_ANY\n filterLabels:\n - name: PLANET\n value: MARS\n defaultTargetHttpProxy:\n type: gcp:compute:TargetHttpProxy\n name: default\n properties:\n name: target-proxy\n description: a description\n urlMap: ${defaultURLMap.id}\n defaultURLMap:\n type: gcp:compute:URLMap\n name: default\n properties:\n name: url-map-target-proxy\n description: a description\n defaultService: ${defaultBackendService.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${defaultBackendService.id}\n pathRules:\n - paths:\n - /*\n service: ${defaultBackendService.id}\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: backend\n portName: http\n protocol: HTTP\n timeoutSec: 10\n loadBalancingScheme: INTERNAL_SELF_MANAGED\n backends:\n - group: ${igm.instanceGroup}\n balancingMode: RATE\n capacityScaler: 0.4\n maxRatePerInstance: 50\n healthChecks: ${defaultHealthCheck.id}\n igm:\n type: gcp:compute:InstanceGroupManager\n properties:\n name: igm-internal\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: internal-glb\n zone: us-central1-f\n targetSize: 1\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n name: template-backend\n machineType: e2-medium\n networkInterfaces:\n - network: default\n disks:\n - sourceImage: ${debianImage.selfLink}\n autoDelete: true\n boot: true\n defaultHealthCheck:\n type: gcp:compute:HealthCheck\n name: default\n properties:\n name: check-backend\n checkIntervalSec: 1\n timeoutSec: 1\n tcpHealthCheck:\n port: '80'\nvariables:\n debianImage:\n fn::invoke:\n Function: gcp:compute:getImage\n Arguments:\n family: debian-11\n project: debian-cloud\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Global Forwarding Rule External Managed\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"backend\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n});\nconst defaultURLMap = new gcp.compute.URLMap(\"default\", {\n name: \"url-map-target-proxy\",\n description: \"a description\",\n defaultService: defaultBackendService.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: defaultBackendService.id,\n pathRules: [{\n paths: [\"/*\"],\n service: defaultBackendService.id,\n }],\n }],\n});\nconst defaultTargetHttpProxy = new gcp.compute.TargetHttpProxy(\"default\", {\n name: \"target-proxy\",\n description: \"a description\",\n urlMap: defaultURLMap.id,\n});\nconst _default = new gcp.compute.GlobalForwardingRule(\"default\", {\n name: \"global-rule\",\n target: defaultTargetHttpProxy.id,\n portRange: \"80\",\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"backend\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n load_balancing_scheme=\"EXTERNAL_MANAGED\")\ndefault_url_map = gcp.compute.URLMap(\"default\",\n name=\"url-map-target-proxy\",\n description=\"a description\",\n default_service=default_backend_service.id,\n host_rules=[gcp.compute.URLMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.URLMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=default_backend_service.id,\n path_rules=[gcp.compute.URLMapPathMatcherPathRuleArgs(\n paths=[\"/*\"],\n service=default_backend_service.id,\n )],\n )])\ndefault_target_http_proxy = gcp.compute.TargetHttpProxy(\"default\",\n name=\"target-proxy\",\n description=\"a description\",\n url_map=default_url_map.id)\ndefault = gcp.compute.GlobalForwardingRule(\"default\",\n name=\"global-rule\",\n target=default_target_http_proxy.id,\n port_range=\"80\",\n load_balancing_scheme=\"EXTERNAL_MANAGED\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n });\n\n var defaultURLMap = new Gcp.Compute.URLMap(\"default\", new()\n {\n Name = \"url-map-target-proxy\",\n Description = \"a description\",\n DefaultService = defaultBackendService.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = defaultBackendService.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/*\",\n },\n Service = defaultBackendService.Id,\n },\n },\n },\n },\n });\n\n var defaultTargetHttpProxy = new Gcp.Compute.TargetHttpProxy(\"default\", new()\n {\n Name = \"target-proxy\",\n Description = \"a description\",\n UrlMap = defaultURLMap.Id,\n });\n\n var @default = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Name = \"global-rule\",\n Target = defaultTargetHttpProxy.Id,\n PortRange = \"80\",\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultURLMap, err := compute.NewURLMap(ctx, \"default\", \u0026compute.URLMapArgs{\n\t\t\tName: pulumi.String(\"url-map-target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\tHostRules: compute.URLMapHostRuleArray{\n\t\t\t\t\u0026compute.URLMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.URLMapPathMatcherArray{\n\t\t\t\t\u0026compute.URLMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\t\t\tPathRules: compute.URLMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.URLMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/*\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: defaultBackendService.ID(),\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTargetHttpProxy, err := compute.NewTargetHttpProxy(ctx, \"default\", \u0026compute.TargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tUrlMap: defaultURLMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"global-rule\"),\n\t\t\tTarget: defaultTargetHttpProxy.ID(),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.URLMap;\nimport com.pulumi.gcp.compute.URLMapArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.TargetHttpProxy;\nimport com.pulumi.gcp.compute.TargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\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 defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"backend\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .build());\n\n var defaultURLMap = new URLMap(\"defaultURLMap\", URLMapArgs.builder() \n .name(\"url-map-target-proxy\")\n .description(\"a description\")\n .defaultService(defaultBackendService.id())\n .hostRules(URLMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(URLMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(defaultBackendService.id())\n .pathRules(URLMapPathMatcherPathRuleArgs.builder()\n .paths(\"/*\")\n .service(defaultBackendService.id())\n .build())\n .build())\n .build());\n\n var defaultTargetHttpProxy = new TargetHttpProxy(\"defaultTargetHttpProxy\", TargetHttpProxyArgs.builder() \n .name(\"target-proxy\")\n .description(\"a description\")\n .urlMap(defaultURLMap.id())\n .build());\n\n var default_ = new GlobalForwardingRule(\"default\", GlobalForwardingRuleArgs.builder() \n .name(\"global-rule\")\n .target(defaultTargetHttpProxy.id())\n .portRange(\"80\")\n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:GlobalForwardingRule\n properties:\n name: global-rule\n target: ${defaultTargetHttpProxy.id}\n portRange: '80'\n loadBalancingScheme: EXTERNAL_MANAGED\n defaultTargetHttpProxy:\n type: gcp:compute:TargetHttpProxy\n name: default\n properties:\n name: target-proxy\n description: a description\n urlMap: ${defaultURLMap.id}\n defaultURLMap:\n type: gcp:compute:URLMap\n name: default\n properties:\n name: url-map-target-proxy\n description: a description\n defaultService: ${defaultBackendService.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${defaultBackendService.id}\n pathRules:\n - paths:\n - /*\n service: ${defaultBackendService.id}\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: backend\n portName: http\n protocol: HTTP\n timeoutSec: 10\n loadBalancingScheme: EXTERNAL_MANAGED\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Global Forwarding Rule Hybrid\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst config = new pulumi.Config();\nconst subnetworkCidr = config.get(\"subnetworkCidr\") || \"10.0.0.0/24\";\nconst _default = new gcp.compute.Network(\"default\", {name: \"my-network\"});\nconst internal = new gcp.compute.Network(\"internal\", {\n name: \"my-internal-network\",\n autoCreateSubnetworks: false,\n});\nconst internalSubnetwork = new gcp.compute.Subnetwork(\"internal\", {\n name: \"my-subnetwork\",\n network: internal.id,\n ipCidrRange: subnetworkCidr,\n region: \"us-central1\",\n privateIpGoogleAccess: true,\n});\n// Zonal NEG with GCE_VM_IP_PORT\nconst defaultNetworkEndpointGroup = new gcp.compute.NetworkEndpointGroup(\"default\", {\n name: \"default-neg\",\n network: _default.id,\n defaultPort: 90,\n zone: \"us-central1-a\",\n networkEndpointType: \"GCE_VM_IP_PORT\",\n});\n// Zonal NEG with GCE_VM_IP\nconst internalNetworkEndpointGroup = new gcp.compute.NetworkEndpointGroup(\"internal\", {\n name: \"internal-neg\",\n network: internal.id,\n subnetwork: internalSubnetwork.id,\n zone: \"us-central1-a\",\n networkEndpointType: \"GCE_VM_IP\",\n});\n// Hybrid connectivity NEG\nconst hybrid = new gcp.compute.NetworkEndpointGroup(\"hybrid\", {\n name: \"hybrid-neg\",\n network: _default.id,\n defaultPort: 90,\n zone: \"us-central1-a\",\n networkEndpointType: \"NON_GCP_PRIVATE_IP_PORT\",\n});\nconst hybrid_endpoint = new gcp.compute.NetworkEndpoint(\"hybrid-endpoint\", {\n networkEndpointGroup: hybrid.name,\n port: hybrid.defaultPort,\n ipAddress: \"127.0.0.1\",\n});\nconst defaultHealthCheck = new gcp.compute.HealthCheck(\"default\", {\n name: \"health-check\",\n timeoutSec: 1,\n checkIntervalSec: 1,\n tcpHealthCheck: {\n port: 80,\n },\n});\n// Backend service for Zonal NEG\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"backend-default\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n backends: [{\n group: defaultNetworkEndpointGroup.id,\n balancingMode: \"RATE\",\n maxRatePerEndpoint: 10,\n }],\n healthChecks: defaultHealthCheck.id,\n});\n// Backgend service for Hybrid NEG\nconst hybridBackendService = new gcp.compute.BackendService(\"hybrid\", {\n name: \"backend-hybrid\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n backends: [{\n group: hybrid.id,\n balancingMode: \"RATE\",\n maxRatePerEndpoint: 10,\n }],\n healthChecks: defaultHealthCheck.id,\n});\nconst defaultURLMap = new gcp.compute.URLMap(\"default\", {\n name: \"url-map-target-proxy\",\n description: \"a description\",\n defaultService: defaultBackendService.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: defaultBackendService.id,\n pathRules: [\n {\n paths: [\"/*\"],\n service: defaultBackendService.id,\n },\n {\n paths: [\"/hybrid\"],\n service: hybridBackendService.id,\n },\n ],\n }],\n});\nconst defaultTargetHttpProxy = new gcp.compute.TargetHttpProxy(\"default\", {\n name: \"target-proxy\",\n description: \"a description\",\n urlMap: defaultURLMap.id,\n});\nconst defaultGlobalForwardingRule = new gcp.compute.GlobalForwardingRule(\"default\", {\n name: \"global-rule\",\n target: defaultTargetHttpProxy.id,\n portRange: \"80\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nconfig = pulumi.Config()\nsubnetwork_cidr = config.get(\"subnetworkCidr\")\nif subnetwork_cidr is None:\n subnetwork_cidr = \"10.0.0.0/24\"\ndefault = gcp.compute.Network(\"default\", name=\"my-network\")\ninternal = gcp.compute.Network(\"internal\",\n name=\"my-internal-network\",\n auto_create_subnetworks=False)\ninternal_subnetwork = gcp.compute.Subnetwork(\"internal\",\n name=\"my-subnetwork\",\n network=internal.id,\n ip_cidr_range=subnetwork_cidr,\n region=\"us-central1\",\n private_ip_google_access=True)\n# Zonal NEG with GCE_VM_IP_PORT\ndefault_network_endpoint_group = gcp.compute.NetworkEndpointGroup(\"default\",\n name=\"default-neg\",\n network=default.id,\n default_port=90,\n zone=\"us-central1-a\",\n network_endpoint_type=\"GCE_VM_IP_PORT\")\n# Zonal NEG with GCE_VM_IP\ninternal_network_endpoint_group = gcp.compute.NetworkEndpointGroup(\"internal\",\n name=\"internal-neg\",\n network=internal.id,\n subnetwork=internal_subnetwork.id,\n zone=\"us-central1-a\",\n network_endpoint_type=\"GCE_VM_IP\")\n# Hybrid connectivity NEG\nhybrid = gcp.compute.NetworkEndpointGroup(\"hybrid\",\n name=\"hybrid-neg\",\n network=default.id,\n default_port=90,\n zone=\"us-central1-a\",\n network_endpoint_type=\"NON_GCP_PRIVATE_IP_PORT\")\nhybrid_endpoint = gcp.compute.NetworkEndpoint(\"hybrid-endpoint\",\n network_endpoint_group=hybrid.name,\n port=hybrid.default_port,\n ip_address=\"127.0.0.1\")\ndefault_health_check = gcp.compute.HealthCheck(\"default\",\n name=\"health-check\",\n timeout_sec=1,\n check_interval_sec=1,\n tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(\n port=80,\n ))\n# Backend service for Zonal NEG\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"backend-default\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n backends=[gcp.compute.BackendServiceBackendArgs(\n group=default_network_endpoint_group.id,\n balancing_mode=\"RATE\",\n max_rate_per_endpoint=10,\n )],\n health_checks=default_health_check.id)\n# Backgend service for Hybrid NEG\nhybrid_backend_service = gcp.compute.BackendService(\"hybrid\",\n name=\"backend-hybrid\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n backends=[gcp.compute.BackendServiceBackendArgs(\n group=hybrid.id,\n balancing_mode=\"RATE\",\n max_rate_per_endpoint=10,\n )],\n health_checks=default_health_check.id)\ndefault_url_map = gcp.compute.URLMap(\"default\",\n name=\"url-map-target-proxy\",\n description=\"a description\",\n default_service=default_backend_service.id,\n host_rules=[gcp.compute.URLMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.URLMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=default_backend_service.id,\n path_rules=[\n gcp.compute.URLMapPathMatcherPathRuleArgs(\n paths=[\"/*\"],\n service=default_backend_service.id,\n ),\n gcp.compute.URLMapPathMatcherPathRuleArgs(\n paths=[\"/hybrid\"],\n service=hybrid_backend_service.id,\n ),\n ],\n )])\ndefault_target_http_proxy = gcp.compute.TargetHttpProxy(\"default\",\n name=\"target-proxy\",\n description=\"a description\",\n url_map=default_url_map.id)\ndefault_global_forwarding_rule = gcp.compute.GlobalForwardingRule(\"default\",\n name=\"global-rule\",\n target=default_target_http_proxy.id,\n port_range=\"80\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var config = new Config();\n var subnetworkCidr = config.Get(\"subnetworkCidr\") ?? \"10.0.0.0/24\";\n var @default = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"my-network\",\n });\n\n var @internal = new Gcp.Compute.Network(\"internal\", new()\n {\n Name = \"my-internal-network\",\n AutoCreateSubnetworks = false,\n });\n\n var internalSubnetwork = new Gcp.Compute.Subnetwork(\"internal\", new()\n {\n Name = \"my-subnetwork\",\n Network = @internal.Id,\n IpCidrRange = subnetworkCidr,\n Region = \"us-central1\",\n PrivateIpGoogleAccess = true,\n });\n\n // Zonal NEG with GCE_VM_IP_PORT\n var defaultNetworkEndpointGroup = new Gcp.Compute.NetworkEndpointGroup(\"default\", new()\n {\n Name = \"default-neg\",\n Network = @default.Id,\n DefaultPort = 90,\n Zone = \"us-central1-a\",\n NetworkEndpointType = \"GCE_VM_IP_PORT\",\n });\n\n // Zonal NEG with GCE_VM_IP\n var internalNetworkEndpointGroup = new Gcp.Compute.NetworkEndpointGroup(\"internal\", new()\n {\n Name = \"internal-neg\",\n Network = @internal.Id,\n Subnetwork = internalSubnetwork.Id,\n Zone = \"us-central1-a\",\n NetworkEndpointType = \"GCE_VM_IP\",\n });\n\n // Hybrid connectivity NEG\n var hybrid = new Gcp.Compute.NetworkEndpointGroup(\"hybrid\", new()\n {\n Name = \"hybrid-neg\",\n Network = @default.Id,\n DefaultPort = 90,\n Zone = \"us-central1-a\",\n NetworkEndpointType = \"NON_GCP_PRIVATE_IP_PORT\",\n });\n\n var hybrid_endpoint = new Gcp.Compute.NetworkEndpoint(\"hybrid-endpoint\", new()\n {\n NetworkEndpointGroup = hybrid.Name,\n Port = hybrid.DefaultPort,\n IpAddress = \"127.0.0.1\",\n });\n\n var defaultHealthCheck = new Gcp.Compute.HealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n TimeoutSec = 1,\n CheckIntervalSec = 1,\n TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n // Backend service for Zonal NEG\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-default\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = defaultNetworkEndpointGroup.Id,\n BalancingMode = \"RATE\",\n MaxRatePerEndpoint = 10,\n },\n },\n HealthChecks = defaultHealthCheck.Id,\n });\n\n // Backgend service for Hybrid NEG\n var hybridBackendService = new Gcp.Compute.BackendService(\"hybrid\", new()\n {\n Name = \"backend-hybrid\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = hybrid.Id,\n BalancingMode = \"RATE\",\n MaxRatePerEndpoint = 10,\n },\n },\n HealthChecks = defaultHealthCheck.Id,\n });\n\n var defaultURLMap = new Gcp.Compute.URLMap(\"default\", new()\n {\n Name = \"url-map-target-proxy\",\n Description = \"a description\",\n DefaultService = defaultBackendService.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = defaultBackendService.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.URLMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/*\",\n },\n Service = defaultBackendService.Id,\n },\n new Gcp.Compute.Inputs.URLMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/hybrid\",\n },\n Service = hybridBackendService.Id,\n },\n },\n },\n },\n });\n\n var defaultTargetHttpProxy = new Gcp.Compute.TargetHttpProxy(\"default\", new()\n {\n Name = \"target-proxy\",\n Description = \"a description\",\n UrlMap = defaultURLMap.Id,\n });\n\n var defaultGlobalForwardingRule = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Name = \"global-rule\",\n Target = defaultTargetHttpProxy.Id,\n PortRange = \"80\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsubnetworkCidr := \"10.0.0.0/24\"\n\t\tif param := cfg.Get(\"subnetworkCidr\"); param != \"\" {\n\t\t\tsubnetworkCidr = param\n\t\t}\n\t\t_, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"my-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinternal, err := compute.NewNetwork(ctx, \"internal\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"my-internal-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinternalSubnetwork, err := compute.NewSubnetwork(ctx, \"internal\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"my-subnetwork\"),\n\t\t\tNetwork: internal.ID(),\n\t\t\tIpCidrRange: pulumi.String(subnetworkCidr),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPrivateIpGoogleAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Zonal NEG with GCE_VM_IP_PORT\n\t\tdefaultNetworkEndpointGroup, err := compute.NewNetworkEndpointGroup(ctx, \"default\", \u0026compute.NetworkEndpointGroupArgs{\n\t\t\tName: pulumi.String(\"default-neg\"),\n\t\t\tNetwork: _default.ID(),\n\t\t\tDefaultPort: pulumi.Int(90),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t\tNetworkEndpointType: pulumi.String(\"GCE_VM_IP_PORT\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Zonal NEG with GCE_VM_IP\n\t\t_, err = compute.NewNetworkEndpointGroup(ctx, \"internal\", \u0026compute.NetworkEndpointGroupArgs{\n\t\t\tName: pulumi.String(\"internal-neg\"),\n\t\t\tNetwork: internal.ID(),\n\t\t\tSubnetwork: internalSubnetwork.ID(),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t\tNetworkEndpointType: pulumi.String(\"GCE_VM_IP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Hybrid connectivity NEG\n\t\thybrid, err := compute.NewNetworkEndpointGroup(ctx, \"hybrid\", \u0026compute.NetworkEndpointGroupArgs{\n\t\t\tName: pulumi.String(\"hybrid-neg\"),\n\t\t\tNetwork: _default.ID(),\n\t\t\tDefaultPort: pulumi.Int(90),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t\tNetworkEndpointType: pulumi.String(\"NON_GCP_PRIVATE_IP_PORT\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewNetworkEndpoint(ctx, \"hybrid-endpoint\", \u0026compute.NetworkEndpointArgs{\n\t\t\tNetworkEndpointGroup: hybrid.Name,\n\t\t\tPort: hybrid.DefaultPort,\n\t\t\tIpAddress: pulumi.String(\"127.0.0.1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHealthCheck, err := compute.NewHealthCheck(ctx, \"default\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTcpHealthCheck: \u0026compute.HealthCheckTcpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Backend service for Zonal NEG\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-default\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: defaultNetworkEndpointGroup.ID(),\n\t\t\t\t\tBalancingMode: pulumi.String(\"RATE\"),\n\t\t\t\t\tMaxRatePerEndpoint: pulumi.Float64(10),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Backgend service for Hybrid NEG\n\t\thybridBackendService, err := compute.NewBackendService(ctx, \"hybrid\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-hybrid\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: hybrid.ID(),\n\t\t\t\t\tBalancingMode: pulumi.String(\"RATE\"),\n\t\t\t\t\tMaxRatePerEndpoint: pulumi.Float64(10),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultURLMap, err := compute.NewURLMap(ctx, \"default\", \u0026compute.URLMapArgs{\n\t\t\tName: pulumi.String(\"url-map-target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\tHostRules: compute.URLMapHostRuleArray{\n\t\t\t\t\u0026compute.URLMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.URLMapPathMatcherArray{\n\t\t\t\t\u0026compute.URLMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t\t\t\tPathRules: compute.URLMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.URLMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/*\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: defaultBackendService.ID(),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026compute.URLMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/hybrid\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: hybridBackendService.ID(),\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTargetHttpProxy, err := compute.NewTargetHttpProxy(ctx, \"default\", \u0026compute.TargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"target-proxy\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tUrlMap: defaultURLMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"global-rule\"),\n\t\t\tTarget: defaultTargetHttpProxy.ID(),\n\t\t\tPortRange: pulumi.String(\"80\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.NetworkEndpointGroup;\nimport com.pulumi.gcp.compute.NetworkEndpointGroupArgs;\nimport com.pulumi.gcp.compute.NetworkEndpoint;\nimport com.pulumi.gcp.compute.NetworkEndpointArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.URLMap;\nimport com.pulumi.gcp.compute.URLMapArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.TargetHttpProxy;\nimport com.pulumi.gcp.compute.TargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\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 final var config = ctx.config();\n final var subnetworkCidr = config.get(\"subnetworkCidr\").orElse(\"10.0.0.0/24\");\n var default_ = new Network(\"default\", NetworkArgs.builder() \n .name(\"my-network\")\n .build());\n\n var internal = new Network(\"internal\", NetworkArgs.builder() \n .name(\"my-internal-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n var internalSubnetwork = new Subnetwork(\"internalSubnetwork\", SubnetworkArgs.builder() \n .name(\"my-subnetwork\")\n .network(internal.id())\n .ipCidrRange(subnetworkCidr)\n .region(\"us-central1\")\n .privateIpGoogleAccess(true)\n .build());\n\n // Zonal NEG with GCE_VM_IP_PORT\n var defaultNetworkEndpointGroup = new NetworkEndpointGroup(\"defaultNetworkEndpointGroup\", NetworkEndpointGroupArgs.builder() \n .name(\"default-neg\")\n .network(default_.id())\n .defaultPort(\"90\")\n .zone(\"us-central1-a\")\n .networkEndpointType(\"GCE_VM_IP_PORT\")\n .build());\n\n // Zonal NEG with GCE_VM_IP\n var internalNetworkEndpointGroup = new NetworkEndpointGroup(\"internalNetworkEndpointGroup\", NetworkEndpointGroupArgs.builder() \n .name(\"internal-neg\")\n .network(internal.id())\n .subnetwork(internalSubnetwork.id())\n .zone(\"us-central1-a\")\n .networkEndpointType(\"GCE_VM_IP\")\n .build());\n\n // Hybrid connectivity NEG\n var hybrid = new NetworkEndpointGroup(\"hybrid\", NetworkEndpointGroupArgs.builder() \n .name(\"hybrid-neg\")\n .network(default_.id())\n .defaultPort(\"90\")\n .zone(\"us-central1-a\")\n .networkEndpointType(\"NON_GCP_PRIVATE_IP_PORT\")\n .build());\n\n var hybrid_endpoint = new NetworkEndpoint(\"hybrid-endpoint\", NetworkEndpointArgs.builder() \n .networkEndpointGroup(hybrid.name())\n .port(hybrid.defaultPort())\n .ipAddress(\"127.0.0.1\")\n .build());\n\n var defaultHealthCheck = new HealthCheck(\"defaultHealthCheck\", HealthCheckArgs.builder() \n .name(\"health-check\")\n .timeoutSec(1)\n .checkIntervalSec(1)\n .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n // Backend service for Zonal NEG\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"backend-default\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .backends(BackendServiceBackendArgs.builder()\n .group(defaultNetworkEndpointGroup.id())\n .balancingMode(\"RATE\")\n .maxRatePerEndpoint(10)\n .build())\n .healthChecks(defaultHealthCheck.id())\n .build());\n\n // Backgend service for Hybrid NEG\n var hybridBackendService = new BackendService(\"hybridBackendService\", BackendServiceArgs.builder() \n .name(\"backend-hybrid\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .backends(BackendServiceBackendArgs.builder()\n .group(hybrid.id())\n .balancingMode(\"RATE\")\n .maxRatePerEndpoint(10)\n .build())\n .healthChecks(defaultHealthCheck.id())\n .build());\n\n var defaultURLMap = new URLMap(\"defaultURLMap\", URLMapArgs.builder() \n .name(\"url-map-target-proxy\")\n .description(\"a description\")\n .defaultService(defaultBackendService.id())\n .hostRules(URLMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(URLMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(defaultBackendService.id())\n .pathRules( \n URLMapPathMatcherPathRuleArgs.builder()\n .paths(\"/*\")\n .service(defaultBackendService.id())\n .build(),\n URLMapPathMatcherPathRuleArgs.builder()\n .paths(\"/hybrid\")\n .service(hybridBackendService.id())\n .build())\n .build())\n .build());\n\n var defaultTargetHttpProxy = new TargetHttpProxy(\"defaultTargetHttpProxy\", TargetHttpProxyArgs.builder() \n .name(\"target-proxy\")\n .description(\"a description\")\n .urlMap(defaultURLMap.id())\n .build());\n\n var defaultGlobalForwardingRule = new GlobalForwardingRule(\"defaultGlobalForwardingRule\", GlobalForwardingRuleArgs.builder() \n .name(\"global-rule\")\n .target(defaultTargetHttpProxy.id())\n .portRange(\"80\")\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n # Roughly mirrors https://cloud.google.com/load-balancing/docs/https/setting-up-ext-https-hybrid\n subnetworkCidr:\n type: string\n default: 10.0.0.0/24\nresources:\n default:\n type: gcp:compute:Network\n properties:\n name: my-network\n internal:\n type: gcp:compute:Network\n properties:\n name: my-internal-network\n autoCreateSubnetworks: false\n internalSubnetwork:\n type: gcp:compute:Subnetwork\n name: internal\n properties:\n name: my-subnetwork\n network: ${internal.id}\n ipCidrRange: ${subnetworkCidr}\n region: us-central1\n privateIpGoogleAccess: true\n # Zonal NEG with GCE_VM_IP_PORT\n defaultNetworkEndpointGroup:\n type: gcp:compute:NetworkEndpointGroup\n name: default\n properties:\n name: default-neg\n network: ${default.id}\n defaultPort: '90'\n zone: us-central1-a\n networkEndpointType: GCE_VM_IP_PORT\n # Zonal NEG with GCE_VM_IP\n internalNetworkEndpointGroup:\n type: gcp:compute:NetworkEndpointGroup\n name: internal\n properties:\n name: internal-neg\n network: ${internal.id}\n subnetwork: ${internalSubnetwork.id}\n zone: us-central1-a\n networkEndpointType: GCE_VM_IP\n # Hybrid connectivity NEG\n hybrid:\n type: gcp:compute:NetworkEndpointGroup\n properties:\n name: hybrid-neg\n network: ${default.id}\n defaultPort: '90'\n zone: us-central1-a\n networkEndpointType: NON_GCP_PRIVATE_IP_PORT\n hybrid-endpoint:\n type: gcp:compute:NetworkEndpoint\n properties:\n networkEndpointGroup: ${hybrid.name}\n port: ${hybrid.defaultPort}\n ipAddress: 127.0.0.1\n # Backend service for Zonal NEG\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: backend-default\n portName: http\n protocol: HTTP\n timeoutSec: 10\n backends:\n - group: ${defaultNetworkEndpointGroup.id}\n balancingMode: RATE\n maxRatePerEndpoint: 10\n healthChecks: ${defaultHealthCheck.id}\n # Backgend service for Hybrid NEG\n hybridBackendService:\n type: gcp:compute:BackendService\n name: hybrid\n properties:\n name: backend-hybrid\n portName: http\n protocol: HTTP\n timeoutSec: 10\n backends:\n - group: ${hybrid.id}\n balancingMode: RATE\n maxRatePerEndpoint: 10\n healthChecks: ${defaultHealthCheck.id}\n defaultHealthCheck:\n type: gcp:compute:HealthCheck\n name: default\n properties:\n name: health-check\n timeoutSec: 1\n checkIntervalSec: 1\n tcpHealthCheck:\n port: '80'\n defaultURLMap:\n type: gcp:compute:URLMap\n name: default\n properties:\n name: url-map-target-proxy\n description: a description\n defaultService: ${defaultBackendService.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${defaultBackendService.id}\n pathRules:\n - paths:\n - /*\n service: ${defaultBackendService.id}\n - paths:\n - /hybrid\n service: ${hybridBackendService.id}\n defaultTargetHttpProxy:\n type: gcp:compute:TargetHttpProxy\n name: default\n properties:\n name: target-proxy\n description: a description\n urlMap: ${defaultURLMap.id}\n defaultGlobalForwardingRule:\n type: gcp:compute:GlobalForwardingRule\n name: default\n properties:\n name: global-rule\n target: ${defaultTargetHttpProxy.id}\n portRange: '80'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Global Internal Http Lb With Mig Backend\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\n// Global Internal HTTP load balancer with a managed instance group backend\n// VPC network\nconst gilbNetwork = new gcp.compute.Network(\"gilb_network\", {\n name: \"l7-gilb-network\",\n autoCreateSubnetworks: false,\n});\n// proxy-only subnet\nconst proxySubnet = new gcp.compute.Subnetwork(\"proxy_subnet\", {\n name: \"l7-gilb-proxy-subnet\",\n ipCidrRange: \"10.0.0.0/24\",\n region: \"europe-west1\",\n purpose: \"GLOBAL_MANAGED_PROXY\",\n role: \"ACTIVE\",\n network: gilbNetwork.id,\n});\n// backend subnet\nconst gilbSubnet = new gcp.compute.Subnetwork(\"gilb_subnet\", {\n name: \"l7-gilb-subnet\",\n ipCidrRange: \"10.0.1.0/24\",\n region: \"europe-west1\",\n network: gilbNetwork.id,\n});\n// health check\nconst defaultHealthCheck = new gcp.compute.HealthCheck(\"default\", {\n name: \"l7-gilb-hc\",\n httpHealthCheck: {\n portSpecification: \"USE_SERVING_PORT\",\n },\n});\n// instance template\nconst instanceTemplate = new gcp.compute.InstanceTemplate(\"instance_template\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: gilbNetwork.id,\n subnetwork: gilbSubnet.id,\n }],\n name: \"l7-gilb-mig-template\",\n machineType: \"e2-small\",\n tags: [\"http-server\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: NAME\nIP: IP\nMetadata: METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\n// MIG\nconst mig = new gcp.compute.InstanceGroupManager(\"mig\", {\n name: \"l7-gilb-mig1\",\n zone: \"europe-west1-b\",\n versions: [{\n instanceTemplate: instanceTemplate.id,\n name: \"primary\",\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// backend service\nconst defaultBackendService = new gcp.compute.BackendService(\"default\", {\n name: \"l7-gilb-backend-subnet\",\n protocol: \"HTTP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n timeoutSec: 10,\n healthChecks: defaultHealthCheck.id,\n backends: [{\n group: mig.instanceGroup,\n balancingMode: \"UTILIZATION\",\n capacityScaler: 1,\n }],\n});\n// URL map\nconst defaultURLMap = new gcp.compute.URLMap(\"default\", {\n name: \"l7-gilb-url-map\",\n defaultService: defaultBackendService.id,\n});\n// HTTP target proxy\nconst _default = new gcp.compute.TargetHttpProxy(\"default\", {\n name: \"l7-gilb-target-http-proxy\",\n urlMap: defaultURLMap.id,\n});\n// forwarding rule\nconst googleComputeForwardingRule = new gcp.compute.GlobalForwardingRule(\"google_compute_forwarding_rule\", {\n name: \"l7-gilb-forwarding-rule\",\n ipProtocol: \"TCP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n portRange: \"80\",\n target: _default.id,\n network: gilbNetwork.id,\n subnetwork: gilbSubnet.id,\n});\n// allow all access from IAP and health check ranges\nconst fw_iap = new gcp.compute.Firewall(\"fw-iap\", {\n name: \"l7-gilb-fw-allow-iap-hc\",\n direction: \"INGRESS\",\n network: gilbNetwork.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n});\n// allow http from proxy subnet to backends\nconst fw_gilb_to_backends = new gcp.compute.Firewall(\"fw-gilb-to-backends\", {\n name: \"l7-gilb-fw-allow-gilb-to-backends\",\n direction: \"INGRESS\",\n network: gilbNetwork.id,\n sourceRanges: [\"10.0.0.0/24\"],\n targetTags: [\"http-server\"],\n allows: [{\n protocol: \"tcp\",\n ports: [\n \"80\",\n \"443\",\n \"8080\",\n ],\n }],\n});\n// test instance\nconst vm_test = new gcp.compute.Instance(\"vm-test\", {\n name: \"l7-gilb-test-vm\",\n zone: \"europe-west1-b\",\n machineType: \"e2-small\",\n networkInterfaces: [{\n network: gilbNetwork.id,\n subnetwork: gilbSubnet.id,\n }],\n bootDisk: {\n initializeParams: {\n image: \"debian-cloud/debian-10\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\n# Global Internal HTTP load balancer with a managed instance group backend\n# VPC network\ngilb_network = gcp.compute.Network(\"gilb_network\",\n name=\"l7-gilb-network\",\n auto_create_subnetworks=False)\n# proxy-only subnet\nproxy_subnet = gcp.compute.Subnetwork(\"proxy_subnet\",\n name=\"l7-gilb-proxy-subnet\",\n ip_cidr_range=\"10.0.0.0/24\",\n region=\"europe-west1\",\n purpose=\"GLOBAL_MANAGED_PROXY\",\n role=\"ACTIVE\",\n network=gilb_network.id)\n# backend subnet\ngilb_subnet = gcp.compute.Subnetwork(\"gilb_subnet\",\n name=\"l7-gilb-subnet\",\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"europe-west1\",\n network=gilb_network.id)\n# health check\ndefault_health_check = gcp.compute.HealthCheck(\"default\",\n name=\"l7-gilb-hc\",\n http_health_check=gcp.compute.HealthCheckHttpHealthCheckArgs(\n port_specification=\"USE_SERVING_PORT\",\n ))\n# instance template\ninstance_template = gcp.compute.InstanceTemplate(\"instance_template\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=gilb_network.id,\n subnetwork=gilb_subnet.id,\n )],\n name=\"l7-gilb-mig-template\",\n machine_type=\"e2-small\",\n tags=[\"http-server\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\n# MIG\nmig = gcp.compute.InstanceGroupManager(\"mig\",\n name=\"l7-gilb-mig1\",\n zone=\"europe-west1-b\",\n versions=[gcp.compute.InstanceGroupManagerVersionArgs(\n instance_template=instance_template.id,\n name=\"primary\",\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# backend service\ndefault_backend_service = gcp.compute.BackendService(\"default\",\n name=\"l7-gilb-backend-subnet\",\n protocol=\"HTTP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n timeout_sec=10,\n health_checks=default_health_check.id,\n backends=[gcp.compute.BackendServiceBackendArgs(\n group=mig.instance_group,\n balancing_mode=\"UTILIZATION\",\n capacity_scaler=1,\n )])\n# URL map\ndefault_url_map = gcp.compute.URLMap(\"default\",\n name=\"l7-gilb-url-map\",\n default_service=default_backend_service.id)\n# HTTP target proxy\ndefault = gcp.compute.TargetHttpProxy(\"default\",\n name=\"l7-gilb-target-http-proxy\",\n url_map=default_url_map.id)\n# forwarding rule\ngoogle_compute_forwarding_rule = gcp.compute.GlobalForwardingRule(\"google_compute_forwarding_rule\",\n name=\"l7-gilb-forwarding-rule\",\n ip_protocol=\"TCP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n port_range=\"80\",\n target=default.id,\n network=gilb_network.id,\n subnetwork=gilb_subnet.id)\n# allow all access from IAP and health check ranges\nfw_iap = gcp.compute.Firewall(\"fw-iap\",\n name=\"l7-gilb-fw-allow-iap-hc\",\n direction=\"INGRESS\",\n network=gilb_network.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )])\n# allow http from proxy subnet to backends\nfw_gilb_to_backends = gcp.compute.Firewall(\"fw-gilb-to-backends\",\n name=\"l7-gilb-fw-allow-gilb-to-backends\",\n direction=\"INGRESS\",\n network=gilb_network.id,\n source_ranges=[\"10.0.0.0/24\"],\n target_tags=[\"http-server\"],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\n \"80\",\n \"443\",\n \"8080\",\n ],\n )])\n# test instance\nvm_test = gcp.compute.Instance(\"vm-test\",\n name=\"l7-gilb-test-vm\",\n zone=\"europe-west1-b\",\n machine_type=\"e2-small\",\n network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(\n network=gilb_network.id,\n subnetwork=gilb_subnet.id,\n )],\n boot_disk=gcp.compute.InstanceBootDiskArgs(\n initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(\n image=\"debian-cloud/debian-10\",\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Global Internal HTTP load balancer with a managed instance group backend\n // VPC network\n var gilbNetwork = new Gcp.Compute.Network(\"gilb_network\", new()\n {\n Name = \"l7-gilb-network\",\n AutoCreateSubnetworks = false,\n });\n\n // proxy-only subnet\n var proxySubnet = new Gcp.Compute.Subnetwork(\"proxy_subnet\", new()\n {\n Name = \"l7-gilb-proxy-subnet\",\n IpCidrRange = \"10.0.0.0/24\",\n Region = \"europe-west1\",\n Purpose = \"GLOBAL_MANAGED_PROXY\",\n Role = \"ACTIVE\",\n Network = gilbNetwork.Id,\n });\n\n // backend subnet\n var gilbSubnet = new Gcp.Compute.Subnetwork(\"gilb_subnet\", new()\n {\n Name = \"l7-gilb-subnet\",\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"europe-west1\",\n Network = gilbNetwork.Id,\n });\n\n // health check\n var defaultHealthCheck = new Gcp.Compute.HealthCheck(\"default\", new()\n {\n Name = \"l7-gilb-hc\",\n HttpHealthCheck = new Gcp.Compute.Inputs.HealthCheckHttpHealthCheckArgs\n {\n PortSpecification = \"USE_SERVING_PORT\",\n },\n });\n\n // instance template\n var instanceTemplate = new Gcp.Compute.InstanceTemplate(\"instance_template\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = gilbNetwork.Id,\n Subnetwork = gilbSubnet.Id,\n },\n },\n Name = \"l7-gilb-mig-template\",\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"http-server\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n // MIG\n var mig = new Gcp.Compute.InstanceGroupManager(\"mig\", new()\n {\n Name = \"l7-gilb-mig1\",\n Zone = \"europe-west1-b\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs\n {\n InstanceTemplate = instanceTemplate.Id,\n Name = \"primary\",\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // backend service\n var defaultBackendService = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"l7-gilb-backend-subnet\",\n Protocol = \"HTTP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n TimeoutSec = 10,\n HealthChecks = defaultHealthCheck.Id,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = mig.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n CapacityScaler = 1,\n },\n },\n });\n\n // URL map\n var defaultURLMap = new Gcp.Compute.URLMap(\"default\", new()\n {\n Name = \"l7-gilb-url-map\",\n DefaultService = defaultBackendService.Id,\n });\n\n // HTTP target proxy\n var @default = new Gcp.Compute.TargetHttpProxy(\"default\", new()\n {\n Name = \"l7-gilb-target-http-proxy\",\n UrlMap = defaultURLMap.Id,\n });\n\n // forwarding rule\n var googleComputeForwardingRule = new Gcp.Compute.GlobalForwardingRule(\"google_compute_forwarding_rule\", new()\n {\n Name = \"l7-gilb-forwarding-rule\",\n IpProtocol = \"TCP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n PortRange = \"80\",\n Target = @default.Id,\n Network = gilbNetwork.Id,\n Subnetwork = gilbSubnet.Id,\n });\n\n // allow all access from IAP and health check ranges\n var fw_iap = new Gcp.Compute.Firewall(\"fw-iap\", new()\n {\n Name = \"l7-gilb-fw-allow-iap-hc\",\n Direction = \"INGRESS\",\n Network = gilbNetwork.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n });\n\n // allow http from proxy subnet to backends\n var fw_gilb_to_backends = new Gcp.Compute.Firewall(\"fw-gilb-to-backends\", new()\n {\n Name = \"l7-gilb-fw-allow-gilb-to-backends\",\n Direction = \"INGRESS\",\n Network = gilbNetwork.Id,\n SourceRanges = new[]\n {\n \"10.0.0.0/24\",\n },\n TargetTags = new[]\n {\n \"http-server\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"80\",\n \"443\",\n \"8080\",\n },\n },\n },\n });\n\n // test instance\n var vm_test = new Gcp.Compute.Instance(\"vm-test\", new()\n {\n Name = \"l7-gilb-test-vm\",\n Zone = \"europe-west1-b\",\n MachineType = \"e2-small\",\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs\n {\n Network = gilbNetwork.Id,\n Subnetwork = gilbSubnet.Id,\n },\n },\n BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs\n {\n InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs\n {\n Image = \"debian-cloud/debian-10\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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// Global Internal HTTP load balancer with a managed instance group backend\n\t\t// VPC network\n\t\tgilbNetwork, err := compute.NewNetwork(ctx, \"gilb_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// proxy-only subnet\n\t\t_, err = compute.NewSubnetwork(ctx, \"proxy_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-proxy-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/24\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tPurpose: pulumi.String(\"GLOBAL_MANAGED_PROXY\"),\n\t\t\tRole: pulumi.String(\"ACTIVE\"),\n\t\t\tNetwork: gilbNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend subnet\n\t\tgilbSubnet, err := compute.NewSubnetwork(ctx, \"gilb_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tNetwork: gilbNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// health check\n\t\tdefaultHealthCheck, err := compute.NewHealthCheck(ctx, \"default\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-hc\"),\n\t\t\tHttpHealthCheck: \u0026compute.HealthCheckHttpHealthCheckArgs{\n\t\t\t\tPortSpecification: pulumi.String(\"USE_SERVING_PORT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// instance template\n\t\tinstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"instance_template\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: gilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: gilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"l7-gilb-mig-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// MIG\n\t\tmig, err := compute.NewInstanceGroupManager(ctx, \"mig\", \u0026compute.InstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-mig1\"),\n\t\t\tZone: pulumi.String(\"europe-west1-b\"),\n\t\t\tVersions: compute.InstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: instanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// backend service\n\t\tdefaultBackendService, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-backend-subnet\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: mig.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// URL map\n\t\tdefaultURLMap, err := compute.NewURLMap(ctx, \"default\", \u0026compute.URLMapArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-url-map\"),\n\t\t\tDefaultService: defaultBackendService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// HTTP target proxy\n\t\t_, err = compute.NewTargetHttpProxy(ctx, \"default\", \u0026compute.TargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-target-http-proxy\"),\n\t\t\tUrlMap: defaultURLMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// forwarding rule\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"google_compute_forwarding_rule\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-forwarding-rule\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tTarget: _default.ID(),\n\t\t\tNetwork: gilbNetwork.ID(),\n\t\t\tSubnetwork: gilbSubnet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow all access from IAP and health check ranges\n\t\t_, err = compute.NewFirewall(ctx, \"fw-iap\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-fw-allow-iap-hc\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: gilbNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t\tpulumi.String(\"35.235.240.0/20\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// allow http from proxy subnet to backends\n\t\t_, err = compute.NewFirewall(ctx, \"fw-gilb-to-backends\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-fw-allow-gilb-to-backends\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: gilbNetwork.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/24\"),\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"80\"),\n\t\t\t\t\t\tpulumi.String(\"443\"),\n\t\t\t\t\t\tpulumi.String(\"8080\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// test instance\n\t\t_, err = compute.NewInstance(ctx, \"vm-test\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"l7-gilb-test-vm\"),\n\t\t\tZone: pulumi.String(\"europe-west1-b\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tNetworkInterfaces: compute.InstanceNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: gilbNetwork.ID(),\n\t\t\t\t\tSubnetwork: gilbSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBootDisk: \u0026compute.InstanceBootDiskArgs{\n\t\t\t\tInitializeParams: \u0026compute.InstanceBootDiskInitializeParamsArgs{\n\t\t\t\t\tImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.InstanceGroupManager;\nimport com.pulumi.gcp.compute.InstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.URLMap;\nimport com.pulumi.gcp.compute.URLMapArgs;\nimport com.pulumi.gcp.compute.TargetHttpProxy;\nimport com.pulumi.gcp.compute.TargetHttpProxyArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\nimport com.pulumi.gcp.compute.Instance;\nimport com.pulumi.gcp.compute.InstanceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;\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 // Global Internal HTTP load balancer with a managed instance group backend\n // VPC network\n var gilbNetwork = new Network(\"gilbNetwork\", NetworkArgs.builder() \n .name(\"l7-gilb-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n // proxy-only subnet\n var proxySubnet = new Subnetwork(\"proxySubnet\", SubnetworkArgs.builder() \n .name(\"l7-gilb-proxy-subnet\")\n .ipCidrRange(\"10.0.0.0/24\")\n .region(\"europe-west1\")\n .purpose(\"GLOBAL_MANAGED_PROXY\")\n .role(\"ACTIVE\")\n .network(gilbNetwork.id())\n .build());\n\n // backend subnet\n var gilbSubnet = new Subnetwork(\"gilbSubnet\", SubnetworkArgs.builder() \n .name(\"l7-gilb-subnet\")\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"europe-west1\")\n .network(gilbNetwork.id())\n .build());\n\n // health check\n var defaultHealthCheck = new HealthCheck(\"defaultHealthCheck\", HealthCheckArgs.builder() \n .name(\"l7-gilb-hc\")\n .httpHealthCheck(HealthCheckHttpHealthCheckArgs.builder()\n .portSpecification(\"USE_SERVING_PORT\")\n .build())\n .build());\n\n // instance template\n var instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(gilbNetwork.id())\n .subnetwork(gilbSubnet.id())\n .build())\n .name(\"l7-gilb-mig-template\")\n .machineType(\"e2-small\")\n .tags(\"http-server\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n // MIG\n var mig = new InstanceGroupManager(\"mig\", InstanceGroupManagerArgs.builder() \n .name(\"l7-gilb-mig1\")\n .zone(\"europe-west1-b\")\n .versions(InstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(instanceTemplate.id())\n .name(\"primary\")\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // backend service\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .name(\"l7-gilb-backend-subnet\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(defaultHealthCheck.id())\n .backends(BackendServiceBackendArgs.builder()\n .group(mig.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .capacityScaler(1)\n .build())\n .build());\n\n // URL map\n var defaultURLMap = new URLMap(\"defaultURLMap\", URLMapArgs.builder() \n .name(\"l7-gilb-url-map\")\n .defaultService(defaultBackendService.id())\n .build());\n\n // HTTP target proxy\n var default_ = new TargetHttpProxy(\"default\", TargetHttpProxyArgs.builder() \n .name(\"l7-gilb-target-http-proxy\")\n .urlMap(defaultURLMap.id())\n .build());\n\n // forwarding rule\n var googleComputeForwardingRule = new GlobalForwardingRule(\"googleComputeForwardingRule\", GlobalForwardingRuleArgs.builder() \n .name(\"l7-gilb-forwarding-rule\")\n .ipProtocol(\"TCP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .portRange(\"80\")\n .target(default_.id())\n .network(gilbNetwork.id())\n .subnetwork(gilbSubnet.id())\n .build());\n\n // allow all access from IAP and health check ranges\n var fw_iap = new Firewall(\"fw-iap\", FirewallArgs.builder() \n .name(\"l7-gilb-fw-allow-iap-hc\")\n .direction(\"INGRESS\")\n .network(gilbNetwork.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .build());\n\n // allow http from proxy subnet to backends\n var fw_gilb_to_backends = new Firewall(\"fw-gilb-to-backends\", FirewallArgs.builder() \n .name(\"l7-gilb-fw-allow-gilb-to-backends\")\n .direction(\"INGRESS\")\n .network(gilbNetwork.id())\n .sourceRanges(\"10.0.0.0/24\")\n .targetTags(\"http-server\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports( \n \"80\",\n \"443\",\n \"8080\")\n .build())\n .build());\n\n // test instance\n var vm_test = new Instance(\"vm-test\", InstanceArgs.builder() \n .name(\"l7-gilb-test-vm\")\n .zone(\"europe-west1-b\")\n .machineType(\"e2-small\")\n .networkInterfaces(InstanceNetworkInterfaceArgs.builder()\n .network(gilbNetwork.id())\n .subnetwork(gilbSubnet.id())\n .build())\n .bootDisk(InstanceBootDiskArgs.builder()\n .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()\n .image(\"debian-cloud/debian-10\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Global Internal HTTP load balancer with a managed instance group backend\n\n # VPC network\n gilbNetwork:\n type: gcp:compute:Network\n name: gilb_network\n properties:\n name: l7-gilb-network\n autoCreateSubnetworks: false\n # proxy-only subnet\n proxySubnet:\n type: gcp:compute:Subnetwork\n name: proxy_subnet\n properties:\n name: l7-gilb-proxy-subnet\n ipCidrRange: 10.0.0.0/24\n region: europe-west1\n purpose: GLOBAL_MANAGED_PROXY\n role: ACTIVE\n network: ${gilbNetwork.id}\n # backend subnet\n gilbSubnet:\n type: gcp:compute:Subnetwork\n name: gilb_subnet\n properties:\n name: l7-gilb-subnet\n ipCidrRange: 10.0.1.0/24\n region: europe-west1\n network: ${gilbNetwork.id}\n # forwarding rule\n googleComputeForwardingRule:\n type: gcp:compute:GlobalForwardingRule\n name: google_compute_forwarding_rule\n properties:\n name: l7-gilb-forwarding-rule\n ipProtocol: TCP\n loadBalancingScheme: INTERNAL_MANAGED\n portRange: '80'\n target: ${default.id}\n network: ${gilbNetwork.id}\n subnetwork: ${gilbSubnet.id}\n # HTTP target proxy\n default:\n type: gcp:compute:TargetHttpProxy\n properties:\n name: l7-gilb-target-http-proxy\n urlMap: ${defaultURLMap.id}\n # URL map\n defaultURLMap:\n type: gcp:compute:URLMap\n name: default\n properties:\n name: l7-gilb-url-map\n defaultService: ${defaultBackendService.id}\n # backend service\n defaultBackendService:\n type: gcp:compute:BackendService\n name: default\n properties:\n name: l7-gilb-backend-subnet\n protocol: HTTP\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks: ${defaultHealthCheck.id}\n backends:\n - group: ${mig.instanceGroup}\n balancingMode: UTILIZATION\n capacityScaler: 1\n # instance template\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${gilbNetwork.id}\n subnetwork: ${gilbSubnet.id}\n name: l7-gilb-mig-template\n machineType: e2-small\n tags:\n - http-server\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n # health check\n defaultHealthCheck:\n type: gcp:compute:HealthCheck\n name: default\n properties:\n name: l7-gilb-hc\n httpHealthCheck:\n portSpecification: USE_SERVING_PORT\n # MIG\n mig:\n type: gcp:compute:InstanceGroupManager\n properties:\n name: l7-gilb-mig1\n zone: europe-west1-b\n versions:\n - instanceTemplate: ${instanceTemplate.id}\n name: primary\n baseInstanceName: vm\n targetSize: 2\n # allow all access from IAP and health check ranges\n fw-iap:\n type: gcp:compute:Firewall\n properties:\n name: l7-gilb-fw-allow-iap-hc\n direction: INGRESS\n network: ${gilbNetwork.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n - 35.235.240.0/20\n allows:\n - protocol: tcp\n # allow http from proxy subnet to backends\n fw-gilb-to-backends:\n type: gcp:compute:Firewall\n properties:\n name: l7-gilb-fw-allow-gilb-to-backends\n direction: INGRESS\n network: ${gilbNetwork.id}\n sourceRanges:\n - 10.0.0.0/24\n targetTags:\n - http-server\n allows:\n - protocol: tcp\n ports:\n - '80'\n - '443'\n - '8080'\n # test instance\n vm-test:\n type: gcp:compute:Instance\n properties:\n name: l7-gilb-test-vm\n zone: europe-west1-b\n machineType: e2-small\n networkInterfaces:\n - network: ${gilbNetwork.id}\n subnetwork: ${gilbSubnet.id}\n bootDisk:\n initializeParams:\n image: debian-cloud/debian-10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Private Service Connect Google Apis\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst network = new gcp.compute.Network(\"network\", {\n project: \"my-project-name\",\n name: \"my-network\",\n autoCreateSubnetworks: false,\n});\nconst vpcSubnetwork = new gcp.compute.Subnetwork(\"vpc_subnetwork\", {\n project: network.project,\n name: \"my-subnetwork\",\n ipCidrRange: \"10.2.0.0/16\",\n region: \"us-central1\",\n network: network.id,\n privateIpGoogleAccess: true,\n});\nconst _default = new gcp.compute.GlobalAddress(\"default\", {\n project: network.project,\n name: \"global-psconnect-ip\",\n addressType: \"INTERNAL\",\n purpose: \"PRIVATE_SERVICE_CONNECT\",\n network: network.id,\n address: \"100.100.100.106\",\n});\nconst defaultGlobalForwardingRule = new gcp.compute.GlobalForwardingRule(\"default\", {\n project: network.project,\n name: \"globalrule\",\n target: \"all-apis\",\n network: network.id,\n ipAddress: _default.id,\n loadBalancingScheme: \"\",\n serviceDirectoryRegistrations: {\n namespace: \"sd-namespace\",\n serviceDirectoryRegion: \"europe-west3\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nnetwork = gcp.compute.Network(\"network\",\n project=\"my-project-name\",\n name=\"my-network\",\n auto_create_subnetworks=False)\nvpc_subnetwork = gcp.compute.Subnetwork(\"vpc_subnetwork\",\n project=network.project,\n name=\"my-subnetwork\",\n ip_cidr_range=\"10.2.0.0/16\",\n region=\"us-central1\",\n network=network.id,\n private_ip_google_access=True)\ndefault = gcp.compute.GlobalAddress(\"default\",\n project=network.project,\n name=\"global-psconnect-ip\",\n address_type=\"INTERNAL\",\n purpose=\"PRIVATE_SERVICE_CONNECT\",\n network=network.id,\n address=\"100.100.100.106\")\ndefault_global_forwarding_rule = gcp.compute.GlobalForwardingRule(\"default\",\n project=network.project,\n name=\"globalrule\",\n target=\"all-apis\",\n network=network.id,\n ip_address=default.id,\n load_balancing_scheme=\"\",\n service_directory_registrations=gcp.compute.GlobalForwardingRuleServiceDirectoryRegistrationsArgs(\n namespace=\"sd-namespace\",\n service_directory_region=\"europe-west3\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network = new Gcp.Compute.Network(\"network\", new()\n {\n Project = \"my-project-name\",\n Name = \"my-network\",\n AutoCreateSubnetworks = false,\n });\n\n var vpcSubnetwork = new Gcp.Compute.Subnetwork(\"vpc_subnetwork\", new()\n {\n Project = network.Project,\n Name = \"my-subnetwork\",\n IpCidrRange = \"10.2.0.0/16\",\n Region = \"us-central1\",\n Network = network.Id,\n PrivateIpGoogleAccess = true,\n });\n\n var @default = new Gcp.Compute.GlobalAddress(\"default\", new()\n {\n Project = network.Project,\n Name = \"global-psconnect-ip\",\n AddressType = \"INTERNAL\",\n Purpose = \"PRIVATE_SERVICE_CONNECT\",\n Network = network.Id,\n Address = \"100.100.100.106\",\n });\n\n var defaultGlobalForwardingRule = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Project = network.Project,\n Name = \"globalrule\",\n Target = \"all-apis\",\n Network = network.Id,\n IpAddress = @default.Id,\n LoadBalancingScheme = \"\",\n ServiceDirectoryRegistrations = new Gcp.Compute.Inputs.GlobalForwardingRuleServiceDirectoryRegistrationsArgs\n {\n Namespace = \"sd-namespace\",\n ServiceDirectoryRegion = \"europe-west3\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", \u0026compute.NetworkArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tName: pulumi.String(\"my-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewSubnetwork(ctx, \"vpc_subnetwork\", \u0026compute.SubnetworkArgs{\n\t\t\tProject: network.Project,\n\t\t\tName: pulumi.String(\"my-subnetwork\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.2.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: network.ID(),\n\t\t\tPrivateIpGoogleAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalAddress(ctx, \"default\", \u0026compute.GlobalAddressArgs{\n\t\t\tProject: network.Project,\n\t\t\tName: pulumi.String(\"global-psconnect-ip\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"PRIVATE_SERVICE_CONNECT\"),\n\t\t\tNetwork: network.ID(),\n\t\t\tAddress: pulumi.String(\"100.100.100.106\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tProject: network.Project,\n\t\t\tName: pulumi.String(\"globalrule\"),\n\t\t\tTarget: pulumi.String(\"all-apis\"),\n\t\t\tNetwork: network.ID(),\n\t\t\tIpAddress: _default.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"\"),\n\t\t\tServiceDirectoryRegistrations: \u0026compute.GlobalForwardingRuleServiceDirectoryRegistrationsArgs{\n\t\t\t\tNamespace: pulumi.String(\"sd-namespace\"),\n\t\t\t\tServiceDirectoryRegion: pulumi.String(\"europe-west3\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\nimport com.pulumi.gcp.compute.inputs.GlobalForwardingRuleServiceDirectoryRegistrationsArgs;\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 network = new Network(\"network\", NetworkArgs.builder() \n .project(\"my-project-name\")\n .name(\"my-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n var vpcSubnetwork = new Subnetwork(\"vpcSubnetwork\", SubnetworkArgs.builder() \n .project(network.project())\n .name(\"my-subnetwork\")\n .ipCidrRange(\"10.2.0.0/16\")\n .region(\"us-central1\")\n .network(network.id())\n .privateIpGoogleAccess(true)\n .build());\n\n var default_ = new GlobalAddress(\"default\", GlobalAddressArgs.builder() \n .project(network.project())\n .name(\"global-psconnect-ip\")\n .addressType(\"INTERNAL\")\n .purpose(\"PRIVATE_SERVICE_CONNECT\")\n .network(network.id())\n .address(\"100.100.100.106\")\n .build());\n\n var defaultGlobalForwardingRule = new GlobalForwardingRule(\"defaultGlobalForwardingRule\", GlobalForwardingRuleArgs.builder() \n .project(network.project())\n .name(\"globalrule\")\n .target(\"all-apis\")\n .network(network.id())\n .ipAddress(default_.id())\n .loadBalancingScheme(\"\")\n .serviceDirectoryRegistrations(GlobalForwardingRuleServiceDirectoryRegistrationsArgs.builder()\n .namespace(\"sd-namespace\")\n .serviceDirectoryRegion(\"europe-west3\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network:\n type: gcp:compute:Network\n properties:\n project: my-project-name\n name: my-network\n autoCreateSubnetworks: false\n vpcSubnetwork:\n type: gcp:compute:Subnetwork\n name: vpc_subnetwork\n properties:\n project: ${network.project}\n name: my-subnetwork\n ipCidrRange: 10.2.0.0/16\n region: us-central1\n network: ${network.id}\n privateIpGoogleAccess: true\n default:\n type: gcp:compute:GlobalAddress\n properties:\n project: ${network.project}\n name: global-psconnect-ip\n addressType: INTERNAL\n purpose: PRIVATE_SERVICE_CONNECT\n network: ${network.id}\n address: 100.100.100.106\n defaultGlobalForwardingRule:\n type: gcp:compute:GlobalForwardingRule\n name: default\n properties:\n project: ${network.project}\n name: globalrule\n target: all-apis\n network: ${network.id}\n ipAddress: ${default.id}\n loadBalancingScheme:\n serviceDirectoryRegistrations:\n namespace: sd-namespace\n serviceDirectoryRegion: europe-west3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Private Service Connect Google Apis No Automate Dns\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst network = new gcp.compute.Network(\"network\", {\n project: \"my-project-name\",\n name: \"my-network\",\n autoCreateSubnetworks: false,\n});\nconst vpcSubnetwork = new gcp.compute.Subnetwork(\"vpc_subnetwork\", {\n project: network.project,\n name: \"my-subnetwork\",\n ipCidrRange: \"10.2.0.0/16\",\n region: \"us-central1\",\n network: network.id,\n privateIpGoogleAccess: true,\n});\nconst _default = new gcp.compute.GlobalAddress(\"default\", {\n project: network.project,\n name: \"global-psconnect-ip\",\n addressType: \"INTERNAL\",\n purpose: \"PRIVATE_SERVICE_CONNECT\",\n network: network.id,\n address: \"100.100.100.106\",\n});\nconst defaultGlobalForwardingRule = new gcp.compute.GlobalForwardingRule(\"default\", {\n project: network.project,\n name: \"globalrule\",\n target: \"all-apis\",\n network: network.id,\n ipAddress: _default.id,\n loadBalancingScheme: \"\",\n noAutomateDnsZone: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nnetwork = gcp.compute.Network(\"network\",\n project=\"my-project-name\",\n name=\"my-network\",\n auto_create_subnetworks=False)\nvpc_subnetwork = gcp.compute.Subnetwork(\"vpc_subnetwork\",\n project=network.project,\n name=\"my-subnetwork\",\n ip_cidr_range=\"10.2.0.0/16\",\n region=\"us-central1\",\n network=network.id,\n private_ip_google_access=True)\ndefault = gcp.compute.GlobalAddress(\"default\",\n project=network.project,\n name=\"global-psconnect-ip\",\n address_type=\"INTERNAL\",\n purpose=\"PRIVATE_SERVICE_CONNECT\",\n network=network.id,\n address=\"100.100.100.106\")\ndefault_global_forwarding_rule = gcp.compute.GlobalForwardingRule(\"default\",\n project=network.project,\n name=\"globalrule\",\n target=\"all-apis\",\n network=network.id,\n ip_address=default.id,\n load_balancing_scheme=\"\",\n no_automate_dns_zone=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network = new Gcp.Compute.Network(\"network\", new()\n {\n Project = \"my-project-name\",\n Name = \"my-network\",\n AutoCreateSubnetworks = false,\n });\n\n var vpcSubnetwork = new Gcp.Compute.Subnetwork(\"vpc_subnetwork\", new()\n {\n Project = network.Project,\n Name = \"my-subnetwork\",\n IpCidrRange = \"10.2.0.0/16\",\n Region = \"us-central1\",\n Network = network.Id,\n PrivateIpGoogleAccess = true,\n });\n\n var @default = new Gcp.Compute.GlobalAddress(\"default\", new()\n {\n Project = network.Project,\n Name = \"global-psconnect-ip\",\n AddressType = \"INTERNAL\",\n Purpose = \"PRIVATE_SERVICE_CONNECT\",\n Network = network.Id,\n Address = \"100.100.100.106\",\n });\n\n var defaultGlobalForwardingRule = new Gcp.Compute.GlobalForwardingRule(\"default\", new()\n {\n Project = network.Project,\n Name = \"globalrule\",\n Target = \"all-apis\",\n Network = network.Id,\n IpAddress = @default.Id,\n LoadBalancingScheme = \"\",\n NoAutomateDnsZone = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", \u0026compute.NetworkArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tName: pulumi.String(\"my-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewSubnetwork(ctx, \"vpc_subnetwork\", \u0026compute.SubnetworkArgs{\n\t\t\tProject: network.Project,\n\t\t\tName: pulumi.String(\"my-subnetwork\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.2.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: network.ID(),\n\t\t\tPrivateIpGoogleAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalAddress(ctx, \"default\", \u0026compute.GlobalAddressArgs{\n\t\t\tProject: network.Project,\n\t\t\tName: pulumi.String(\"global-psconnect-ip\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"PRIVATE_SERVICE_CONNECT\"),\n\t\t\tNetwork: network.ID(),\n\t\t\tAddress: pulumi.String(\"100.100.100.106\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewGlobalForwardingRule(ctx, \"default\", \u0026compute.GlobalForwardingRuleArgs{\n\t\t\tProject: network.Project,\n\t\t\tName: pulumi.String(\"globalrule\"),\n\t\t\tTarget: pulumi.String(\"all-apis\"),\n\t\t\tNetwork: network.ID(),\n\t\t\tIpAddress: _default.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"\"),\n\t\t\tNoAutomateDnsZone: pulumi.Bool(false),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.compute.GlobalForwardingRule;\nimport com.pulumi.gcp.compute.GlobalForwardingRuleArgs;\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 network = new Network(\"network\", NetworkArgs.builder() \n .project(\"my-project-name\")\n .name(\"my-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n var vpcSubnetwork = new Subnetwork(\"vpcSubnetwork\", SubnetworkArgs.builder() \n .project(network.project())\n .name(\"my-subnetwork\")\n .ipCidrRange(\"10.2.0.0/16\")\n .region(\"us-central1\")\n .network(network.id())\n .privateIpGoogleAccess(true)\n .build());\n\n var default_ = new GlobalAddress(\"default\", GlobalAddressArgs.builder() \n .project(network.project())\n .name(\"global-psconnect-ip\")\n .addressType(\"INTERNAL\")\n .purpose(\"PRIVATE_SERVICE_CONNECT\")\n .network(network.id())\n .address(\"100.100.100.106\")\n .build());\n\n var defaultGlobalForwardingRule = new GlobalForwardingRule(\"defaultGlobalForwardingRule\", GlobalForwardingRuleArgs.builder() \n .project(network.project())\n .name(\"globalrule\")\n .target(\"all-apis\")\n .network(network.id())\n .ipAddress(default_.id())\n .loadBalancingScheme(\"\")\n .noAutomateDnsZone(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network:\n type: gcp:compute:Network\n properties:\n project: my-project-name\n name: my-network\n autoCreateSubnetworks: false\n vpcSubnetwork:\n type: gcp:compute:Subnetwork\n name: vpc_subnetwork\n properties:\n project: ${network.project}\n name: my-subnetwork\n ipCidrRange: 10.2.0.0/16\n region: us-central1\n network: ${network.id}\n privateIpGoogleAccess: true\n default:\n type: gcp:compute:GlobalAddress\n properties:\n project: ${network.project}\n name: global-psconnect-ip\n addressType: INTERNAL\n purpose: PRIVATE_SERVICE_CONNECT\n network: ${network.id}\n address: 100.100.100.106\n defaultGlobalForwardingRule:\n type: gcp:compute:GlobalForwardingRule\n name: default\n properties:\n project: ${network.project}\n name: globalrule\n target: all-apis\n network: ${network.id}\n ipAddress: ${default.id}\n loadBalancingScheme:\n noAutomateDnsZone: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nGlobalForwardingRule can be imported using any of these accepted formats:\n\n* `projects/{{project}}/global/forwardingRules/{{name}}`\n\n* `{{project}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, GlobalForwardingRule can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/globalForwardingRule:GlobalForwardingRule default projects/{{project}}/global/forwardingRules/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/globalForwardingRule:GlobalForwardingRule default {{project}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/globalForwardingRule:GlobalForwardingRule default {{name}}\n```\n\n", "properties": { "allowPscGlobalAccess": { "type": "boolean", @@ -142460,7 +142460,7 @@ } }, "gcp:compute/instanceTemplate:InstanceTemplate": { - "description": "\u003e **Note**: Global instance templates can be used in any region. To lower the impact of outages outside your region and gain data residency within your region, use google_compute_region_instance_template.\n\nManages a VM instance template resource within GCE. For more information see\n[the official documentation](https://cloud.google.com/compute/docs/instance-templates)\nand\n[API](https://cloud.google.com/compute/docs/reference/latest/instanceTemplates).\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.serviceaccount.Account(\"default\", {\n accountId: \"service-account-id\",\n displayName: \"Service Account\",\n});\nconst myImage = gcp.compute.getImage({\n family: \"debian-11\",\n project: \"debian-cloud\",\n});\nconst foobar = new gcp.compute.Disk(\"foobar\", {\n name: \"existing-disk\",\n image: myImage.then(myImage =\u003e myImage.selfLink),\n size: 10,\n type: \"pd-ssd\",\n zone: \"us-central1-a\",\n});\nconst dailyBackup = new gcp.compute.ResourcePolicy(\"daily_backup\", {\n name: \"every-day-4am\",\n region: \"us-central1\",\n snapshotSchedulePolicy: {\n schedule: {\n dailySchedule: {\n daysInCycle: 1,\n startTime: \"04:00\",\n },\n },\n },\n});\nconst defaultInstanceTemplate = new gcp.compute.InstanceTemplate(\"default\", {\n name: \"appserver-template\",\n description: \"This template is used to create app server instances.\",\n tags: [\n \"foo\",\n \"bar\",\n ],\n labels: {\n environment: \"dev\",\n },\n instanceDescription: \"description assigned to instances\",\n machineType: \"e2-medium\",\n canIpForward: false,\n scheduling: {\n automaticRestart: true,\n onHostMaintenance: \"MIGRATE\",\n },\n disks: [\n {\n sourceImage: \"debian-cloud/debian-11\",\n autoDelete: true,\n boot: true,\n resourcePolicies: dailyBackup.id,\n },\n {\n source: foobar.name,\n autoDelete: false,\n boot: false,\n },\n ],\n networkInterfaces: [{\n network: \"default\",\n }],\n metadata: {\n foo: \"bar\",\n },\n serviceAccount: {\n email: _default.email,\n scopes: [\"cloud-platform\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.serviceaccount.Account(\"default\",\n account_id=\"service-account-id\",\n display_name=\"Service Account\")\nmy_image = gcp.compute.get_image(family=\"debian-11\",\n project=\"debian-cloud\")\nfoobar = gcp.compute.Disk(\"foobar\",\n name=\"existing-disk\",\n image=my_image.self_link,\n size=10,\n type=\"pd-ssd\",\n zone=\"us-central1-a\")\ndaily_backup = gcp.compute.ResourcePolicy(\"daily_backup\",\n name=\"every-day-4am\",\n region=\"us-central1\",\n snapshot_schedule_policy=gcp.compute.ResourcePolicySnapshotSchedulePolicyArgs(\n schedule=gcp.compute.ResourcePolicySnapshotSchedulePolicyScheduleArgs(\n daily_schedule=gcp.compute.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs(\n days_in_cycle=1,\n start_time=\"04:00\",\n ),\n ),\n ))\ndefault_instance_template = gcp.compute.InstanceTemplate(\"default\",\n name=\"appserver-template\",\n description=\"This template is used to create app server instances.\",\n tags=[\n \"foo\",\n \"bar\",\n ],\n labels={\n \"environment\": \"dev\",\n },\n instance_description=\"description assigned to instances\",\n machine_type=\"e2-medium\",\n can_ip_forward=False,\n scheduling=gcp.compute.InstanceTemplateSchedulingArgs(\n automatic_restart=True,\n on_host_maintenance=\"MIGRATE\",\n ),\n disks=[\n gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-11\",\n auto_delete=True,\n boot=True,\n resource_policies=daily_backup.id,\n ),\n gcp.compute.InstanceTemplateDiskArgs(\n source=foobar.name,\n auto_delete=False,\n boot=False,\n ),\n ],\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n network=\"default\",\n )],\n metadata={\n \"foo\": \"bar\",\n },\n service_account=gcp.compute.InstanceTemplateServiceAccountArgs(\n email=default.email,\n scopes=[\"cloud-platform\"],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.ServiceAccount.Account(\"default\", new()\n {\n AccountId = \"service-account-id\",\n DisplayName = \"Service Account\",\n });\n\n var myImage = Gcp.Compute.GetImage.Invoke(new()\n {\n Family = \"debian-11\",\n Project = \"debian-cloud\",\n });\n\n var foobar = new Gcp.Compute.Disk(\"foobar\", new()\n {\n Name = \"existing-disk\",\n Image = myImage.Apply(getImageResult =\u003e getImageResult.SelfLink),\n Size = 10,\n Type = \"pd-ssd\",\n Zone = \"us-central1-a\",\n });\n\n var dailyBackup = new Gcp.Compute.ResourcePolicy(\"daily_backup\", new()\n {\n Name = \"every-day-4am\",\n Region = \"us-central1\",\n SnapshotSchedulePolicy = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyArgs\n {\n Schedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs\n {\n DailySchedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs\n {\n DaysInCycle = 1,\n StartTime = \"04:00\",\n },\n },\n },\n });\n\n var defaultInstanceTemplate = new Gcp.Compute.InstanceTemplate(\"default\", new()\n {\n Name = \"appserver-template\",\n Description = \"This template is used to create app server instances.\",\n Tags = new[]\n {\n \"foo\",\n \"bar\",\n },\n Labels = \n {\n { \"environment\", \"dev\" },\n },\n InstanceDescription = \"description assigned to instances\",\n MachineType = \"e2-medium\",\n CanIpForward = false,\n Scheduling = new Gcp.Compute.Inputs.InstanceTemplateSchedulingArgs\n {\n AutomaticRestart = true,\n OnHostMaintenance = \"MIGRATE\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-11\",\n AutoDelete = true,\n Boot = true,\n ResourcePolicies = dailyBackup.Id,\n },\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n Source = foobar.Name,\n AutoDelete = false,\n Boot = false,\n },\n },\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n Network = \"default\",\n },\n },\n Metadata = \n {\n { \"foo\", \"bar\" },\n },\n ServiceAccount = new Gcp.Compute.Inputs.InstanceTemplateServiceAccountArgs\n {\n Email = @default.Email,\n Scopes = new[]\n {\n \"cloud-platform\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\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 := serviceaccount.NewAccount(ctx, \"default\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"service-account-id\"),\n\t\t\tDisplayName: pulumi.String(\"Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyImage, err := compute.LookupImage(ctx, \u0026compute.LookupImageArgs{\n\t\t\tFamily: pulumi.StringRef(\"debian-11\"),\n\t\t\tProject: pulumi.StringRef(\"debian-cloud\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfoobar, err := compute.NewDisk(ctx, \"foobar\", \u0026compute.DiskArgs{\n\t\t\tName: pulumi.String(\"existing-disk\"),\n\t\t\tImage: pulumi.String(myImage.SelfLink),\n\t\t\tSize: pulumi.Int(10),\n\t\t\tType: pulumi.String(\"pd-ssd\"),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdailyBackup, err := compute.NewResourcePolicy(ctx, \"daily_backup\", \u0026compute.ResourcePolicyArgs{\n\t\t\tName: pulumi.String(\"every-day-4am\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSnapshotSchedulePolicy: \u0026compute.ResourcePolicySnapshotSchedulePolicyArgs{\n\t\t\t\tSchedule: \u0026compute.ResourcePolicySnapshotSchedulePolicyScheduleArgs{\n\t\t\t\t\tDailySchedule: \u0026compute.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs{\n\t\t\t\t\t\tDaysInCycle: pulumi.Int(1),\n\t\t\t\t\t\tStartTime: pulumi.String(\"04:00\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInstanceTemplate(ctx, \"default\", \u0026compute.InstanceTemplateArgs{\n\t\t\tName: pulumi.String(\"appserver-template\"),\n\t\t\tDescription: pulumi.String(\"This template is used to create app server instances.\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"dev\"),\n\t\t\t},\n\t\t\tInstanceDescription: pulumi.String(\"description assigned to instances\"),\n\t\t\tMachineType: pulumi.String(\"e2-medium\"),\n\t\t\tCanIpForward: pulumi.Bool(false),\n\t\t\tScheduling: \u0026compute.InstanceTemplateSchedulingArgs{\n\t\t\t\tAutomaticRestart: pulumi.Bool(true),\n\t\t\t\tOnHostMaintenance: pulumi.String(\"MIGRATE\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-11\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t\tResourcePolicies: dailyBackup.ID(),\n\t\t\t\t},\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSource: foobar.Name,\n\t\t\t\t\tAutoDelete: pulumi.Bool(false),\n\t\t\t\t\tBoot: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"foo\": pulumi.Any(\"bar\"),\n\t\t\t},\n\t\t\tServiceAccount: \u0026compute.InstanceTemplateServiceAccountArgs{\n\t\t\t\tEmail: _default.Email,\n\t\t\t\tScopes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"cloud-platform\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetImageArgs;\nimport com.pulumi.gcp.compute.Disk;\nimport com.pulumi.gcp.compute.DiskArgs;\nimport com.pulumi.gcp.compute.ResourcePolicy;\nimport com.pulumi.gcp.compute.ResourcePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateSchedulingArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateServiceAccountArgs;\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 default_ = new Account(\"default\", AccountArgs.builder() \n .accountId(\"service-account-id\")\n .displayName(\"Service Account\")\n .build());\n\n final var myImage = ComputeFunctions.getImage(GetImageArgs.builder()\n .family(\"debian-11\")\n .project(\"debian-cloud\")\n .build());\n\n var foobar = new Disk(\"foobar\", DiskArgs.builder() \n .name(\"existing-disk\")\n .image(myImage.applyValue(getImageResult -\u003e getImageResult.selfLink()))\n .size(10)\n .type(\"pd-ssd\")\n .zone(\"us-central1-a\")\n .build());\n\n var dailyBackup = new ResourcePolicy(\"dailyBackup\", ResourcePolicyArgs.builder() \n .name(\"every-day-4am\")\n .region(\"us-central1\")\n .snapshotSchedulePolicy(ResourcePolicySnapshotSchedulePolicyArgs.builder()\n .schedule(ResourcePolicySnapshotSchedulePolicyScheduleArgs.builder()\n .dailySchedule(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs.builder()\n .daysInCycle(1)\n .startTime(\"04:00\")\n .build())\n .build())\n .build())\n .build());\n\n var defaultInstanceTemplate = new InstanceTemplate(\"defaultInstanceTemplate\", InstanceTemplateArgs.builder() \n .name(\"appserver-template\")\n .description(\"This template is used to create app server instances.\")\n .tags( \n \"foo\",\n \"bar\")\n .labels(Map.of(\"environment\", \"dev\"))\n .instanceDescription(\"description assigned to instances\")\n .machineType(\"e2-medium\")\n .canIpForward(false)\n .scheduling(InstanceTemplateSchedulingArgs.builder()\n .automaticRestart(true)\n .onHostMaintenance(\"MIGRATE\")\n .build())\n .disks( \n InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-11\")\n .autoDelete(true)\n .boot(true)\n .resourcePolicies(dailyBackup.id())\n .build(),\n InstanceTemplateDiskArgs.builder()\n .source(foobar.name())\n .autoDelete(false)\n .boot(false)\n .build())\n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .network(\"default\")\n .build())\n .metadata(Map.of(\"foo\", \"bar\"))\n .serviceAccount(InstanceTemplateServiceAccountArgs.builder()\n .email(default_.email())\n .scopes(\"cloud-platform\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:serviceaccount:Account\n properties:\n accountId: service-account-id\n displayName: Service Account\n defaultInstanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: default\n properties:\n name: appserver-template\n description: This template is used to create app server instances.\n tags:\n - foo\n - bar\n labels:\n environment: dev\n instanceDescription: description assigned to instances\n machineType: e2-medium\n canIpForward: false\n scheduling:\n automaticRestart: true\n onHostMaintenance: MIGRATE\n disks:\n - sourceImage: debian-cloud/debian-11\n autoDelete: true\n boot: true\n resourcePolicies: ${dailyBackup.id}\n - source: ${foobar.name}\n autoDelete: false\n boot: false\n networkInterfaces:\n - network: default\n metadata:\n foo: bar\n serviceAccount:\n email: ${default.email}\n scopes:\n - cloud-platform\n foobar:\n type: gcp:compute:Disk\n properties:\n name: existing-disk\n image: ${myImage.selfLink}\n size: 10\n type: pd-ssd\n zone: us-central1-a\n dailyBackup:\n type: gcp:compute:ResourcePolicy\n name: daily_backup\n properties:\n name: every-day-4am\n region: us-central1\n snapshotSchedulePolicy:\n schedule:\n dailySchedule:\n daysInCycle: 1\n startTime: 04:00\nvariables:\n myImage:\n fn::invoke:\n Function: gcp:compute:getImage\n Arguments:\n family: debian-11\n project: debian-cloud\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Automatic Envoy Deployment\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst default = gcp.compute.getDefaultServiceAccount({});\nconst myImage = gcp.compute.getImage({\n family: \"debian-11\",\n project: \"debian-cloud\",\n});\nconst foobar = new gcp.compute.InstanceTemplate(\"foobar\", {\n name: \"appserver-template\",\n machineType: \"e2-medium\",\n canIpForward: false,\n tags: [\n \"foo\",\n \"bar\",\n ],\n disks: [{\n sourceImage: myImage.then(myImage =\u003e myImage.selfLink),\n autoDelete: true,\n boot: true,\n }],\n networkInterfaces: [{\n network: \"default\",\n }],\n scheduling: {\n preemptible: false,\n automaticRestart: true,\n },\n metadata: {\n \"gce-software-declaration\": `{\n \"softwareRecipes\": [{\n \"name\": \"install-gce-service-proxy-agent\",\n \"desired_state\": \"INSTALLED\",\n \"installSteps\": [{\n \"scriptRun\": {\n \"script\": \"#! /bin/bash\\\\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\\\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\\\\nsudo gsutil cp gs://gce-service-proxy-\"$ZONE\"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\\\nsudo tar -xzf \"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent-0.2.tgz -C \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\\\n\"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent/service-proxy-agent-bootstrap.sh\"\n }\n }]\n }]\n}\n`,\n \"gce-service-proxy\": `{\n \"api-version\": \"0.2\",\n \"proxy-spec\": {\n \"proxy-port\": 15001,\n \"network\": \"my-network\",\n \"tracing\": \"ON\",\n \"access-log\": \"/var/log/envoy/access.log\"\n }\n \"service\": {\n \"serving-ports\": [80, 81]\n },\n \"labels\": {\n \"app_name\": \"bookserver_app\",\n \"app_version\": \"STABLE\"\n }\n}\n`,\n \"enable-guest-attributes\": \"true\",\n \"enable-osconfig\": \"true\",\n },\n serviceAccount: {\n email: _default.then(_default =\u003e _default.email),\n scopes: [\"cloud-platform\"],\n },\n labels: {\n \"gce-service-proxy\": \"on\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.get_default_service_account()\nmy_image = gcp.compute.get_image(family=\"debian-11\",\n project=\"debian-cloud\")\nfoobar = gcp.compute.InstanceTemplate(\"foobar\",\n name=\"appserver-template\",\n machine_type=\"e2-medium\",\n can_ip_forward=False,\n tags=[\n \"foo\",\n \"bar\",\n ],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=my_image.self_link,\n auto_delete=True,\n boot=True,\n )],\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n network=\"default\",\n )],\n scheduling=gcp.compute.InstanceTemplateSchedulingArgs(\n preemptible=False,\n automatic_restart=True,\n ),\n metadata={\n \"gce-software-declaration\": \"\"\"{\n \"softwareRecipes\": [{\n \"name\": \"install-gce-service-proxy-agent\",\n \"desired_state\": \"INSTALLED\",\n \"installSteps\": [{\n \"scriptRun\": {\n \"script\": \"#! /bin/bash\\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\\nsudo gsutil cp gs://gce-service-proxy-\"$ZONE\"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\nsudo tar -xzf \"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent-0.2.tgz -C \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\n\"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent/service-proxy-agent-bootstrap.sh\"\n }\n }]\n }]\n}\n\"\"\",\n \"gce-service-proxy\": \"\"\"{\n \"api-version\": \"0.2\",\n \"proxy-spec\": {\n \"proxy-port\": 15001,\n \"network\": \"my-network\",\n \"tracing\": \"ON\",\n \"access-log\": \"/var/log/envoy/access.log\"\n }\n \"service\": {\n \"serving-ports\": [80, 81]\n },\n \"labels\": {\n \"app_name\": \"bookserver_app\",\n \"app_version\": \"STABLE\"\n }\n}\n\"\"\",\n \"enable-guest-attributes\": \"true\",\n \"enable-osconfig\": \"true\",\n },\n service_account=gcp.compute.InstanceTemplateServiceAccountArgs(\n email=default.email,\n scopes=[\"cloud-platform\"],\n ),\n labels={\n \"gce-service-proxy\": \"on\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Gcp.Compute.GetDefaultServiceAccount.Invoke();\n\n var myImage = Gcp.Compute.GetImage.Invoke(new()\n {\n Family = \"debian-11\",\n Project = \"debian-cloud\",\n });\n\n var foobar = new Gcp.Compute.InstanceTemplate(\"foobar\", new()\n {\n Name = \"appserver-template\",\n MachineType = \"e2-medium\",\n CanIpForward = false,\n Tags = new[]\n {\n \"foo\",\n \"bar\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = myImage.Apply(getImageResult =\u003e getImageResult.SelfLink),\n AutoDelete = true,\n Boot = true,\n },\n },\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n Network = \"default\",\n },\n },\n Scheduling = new Gcp.Compute.Inputs.InstanceTemplateSchedulingArgs\n {\n Preemptible = false,\n AutomaticRestart = true,\n },\n Metadata = \n {\n { \"gce-software-declaration\", @\"{\n \"\"softwareRecipes\"\": [{\n \"\"name\"\": \"\"install-gce-service-proxy-agent\"\",\n \"\"desired_state\"\": \"\"INSTALLED\"\",\n \"\"installSteps\"\": [{\n \"\"scriptRun\"\": {\n \"\"script\"\": \"\"#! /bin/bash\\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\\nsudo gsutil cp gs://gce-service-proxy-\"\"$ZONE\"\"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"\"$SERVICE_PROXY_AGENT_DIRECTORY\"\" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"\"$SERVICE_PROXY_AGENT_DIRECTORY\"\"\\nsudo tar -xzf \"\"$SERVICE_PROXY_AGENT_DIRECTORY\"\"/service-proxy-agent-0.2.tgz -C \"\"$SERVICE_PROXY_AGENT_DIRECTORY\"\"\\n\"\"$SERVICE_PROXY_AGENT_DIRECTORY\"\"/service-proxy-agent/service-proxy-agent-bootstrap.sh\"\"\n }\n }]\n }]\n}\n\" },\n { \"gce-service-proxy\", @\"{\n \"\"api-version\"\": \"\"0.2\"\",\n \"\"proxy-spec\"\": {\n \"\"proxy-port\"\": 15001,\n \"\"network\"\": \"\"my-network\"\",\n \"\"tracing\"\": \"\"ON\"\",\n \"\"access-log\"\": \"\"/var/log/envoy/access.log\"\"\n }\n \"\"service\"\": {\n \"\"serving-ports\"\": [80, 81]\n },\n \"\"labels\"\": {\n \"\"app_name\"\": \"\"bookserver_app\"\",\n \"\"app_version\"\": \"\"STABLE\"\"\n }\n}\n\" },\n { \"enable-guest-attributes\", \"true\" },\n { \"enable-osconfig\", \"true\" },\n },\n ServiceAccount = new Gcp.Compute.Inputs.InstanceTemplateServiceAccountArgs\n {\n Email = @default.Apply(@default =\u003e @default.Apply(getDefaultServiceAccountResult =\u003e getDefaultServiceAccountResult.Email)),\n Scopes = new[]\n {\n \"cloud-platform\",\n },\n },\n Labels = \n {\n { \"gce-service-proxy\", \"on\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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_default, err := compute.GetDefaultServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyImage, err := compute.LookupImage(ctx, \u0026compute.LookupImageArgs{\n\t\t\tFamily: pulumi.StringRef(\"debian-11\"),\n\t\t\tProject: pulumi.StringRef(\"debian-cloud\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInstanceTemplate(ctx, \"foobar\", \u0026compute.InstanceTemplateArgs{\n\t\t\tName: pulumi.String(\"appserver-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-medium\"),\n\t\t\tCanIpForward: pulumi.Bool(false),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(myImage.SelfLink),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tScheduling: \u0026compute.InstanceTemplateSchedulingArgs{\n\t\t\t\tPreemptible: pulumi.Bool(false),\n\t\t\t\tAutomaticRestart: pulumi.Bool(true),\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"gce-software-declaration\": pulumi.Any(`{\n \"softwareRecipes\": [{\n \"name\": \"install-gce-service-proxy-agent\",\n \"desired_state\": \"INSTALLED\",\n \"installSteps\": [{\n \"scriptRun\": {\n \"script\": \"#! /bin/bash\\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\\nsudo gsutil cp gs://gce-service-proxy-\"$ZONE\"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\nsudo tar -xzf \"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent-0.2.tgz -C \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\n\"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent/service-proxy-agent-bootstrap.sh\"\n }\n }]\n }]\n}\n`),\n\t\t\t\t\"gce-service-proxy\": pulumi.Any(`{\n \"api-version\": \"0.2\",\n \"proxy-spec\": {\n \"proxy-port\": 15001,\n \"network\": \"my-network\",\n \"tracing\": \"ON\",\n \"access-log\": \"/var/log/envoy/access.log\"\n }\n \"service\": {\n \"serving-ports\": [80, 81]\n },\n \"labels\": {\n \"app_name\": \"bookserver_app\",\n \"app_version\": \"STABLE\"\n }\n}\n`),\n\t\t\t\t\"enable-guest-attributes\": pulumi.Any(\"true\"),\n\t\t\t\t\"enable-osconfig\": pulumi.Any(\"true\"),\n\t\t\t},\n\t\t\tServiceAccount: \u0026compute.InstanceTemplateServiceAccountArgs{\n\t\t\t\tEmail: pulumi.String(_default.Email),\n\t\t\t\tScopes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"cloud-platform\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"gce-service-proxy\": pulumi.String(\"on\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetDefaultServiceAccountArgs;\nimport com.pulumi.gcp.compute.inputs.GetImageArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateSchedulingArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateServiceAccountArgs;\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 final var default = ComputeFunctions.getDefaultServiceAccount();\n\n final var myImage = ComputeFunctions.getImage(GetImageArgs.builder()\n .family(\"debian-11\")\n .project(\"debian-cloud\")\n .build());\n\n var foobar = new InstanceTemplate(\"foobar\", InstanceTemplateArgs.builder() \n .name(\"appserver-template\")\n .machineType(\"e2-medium\")\n .canIpForward(false)\n .tags( \n \"foo\",\n \"bar\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(myImage.applyValue(getImageResult -\u003e getImageResult.selfLink()))\n .autoDelete(true)\n .boot(true)\n .build())\n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .network(\"default\")\n .build())\n .scheduling(InstanceTemplateSchedulingArgs.builder()\n .preemptible(false)\n .automaticRestart(true)\n .build())\n .metadata(Map.ofEntries(\n Map.entry(\"gce-software-declaration\", \"\"\"\n{\n \"softwareRecipes\": [{\n \"name\": \"install-gce-service-proxy-agent\",\n \"desired_state\": \"INSTALLED\",\n \"installSteps\": [{\n \"scriptRun\": {\n \"script\": \"#! /bin/bash\\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\\nsudo gsutil cp gs://gce-service-proxy-\"$ZONE\"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\nsudo tar -xzf \"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent-0.2.tgz -C \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\n\"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent/service-proxy-agent-bootstrap.sh\"\n }\n }]\n }]\n}\n \"\"\"),\n Map.entry(\"gce-service-proxy\", \"\"\"\n{\n \"api-version\": \"0.2\",\n \"proxy-spec\": {\n \"proxy-port\": 15001,\n \"network\": \"my-network\",\n \"tracing\": \"ON\",\n \"access-log\": \"/var/log/envoy/access.log\"\n }\n \"service\": {\n \"serving-ports\": [80, 81]\n },\n \"labels\": {\n \"app_name\": \"bookserver_app\",\n \"app_version\": \"STABLE\"\n }\n}\n \"\"\"),\n Map.entry(\"enable-guest-attributes\", \"true\"),\n Map.entry(\"enable-osconfig\", \"true\")\n ))\n .serviceAccount(InstanceTemplateServiceAccountArgs.builder()\n .email(default_.email())\n .scopes(\"cloud-platform\")\n .build())\n .labels(Map.of(\"gce-service-proxy\", \"on\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foobar:\n type: gcp:compute:InstanceTemplate\n properties:\n name: appserver-template\n machineType: e2-medium\n canIpForward: false\n tags:\n - foo\n - bar\n disks:\n - sourceImage: ${myImage.selfLink}\n autoDelete: true\n boot: true\n networkInterfaces:\n - network: default\n scheduling:\n preemptible: false\n automaticRestart: true\n metadata:\n gce-software-declaration: |\n {\n \"softwareRecipes\": [{\n \"name\": \"install-gce-service-proxy-agent\",\n \"desired_state\": \"INSTALLED\",\n \"installSteps\": [{\n \"scriptRun\": {\n \"script\": \"#! /bin/bash\\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\\nsudo gsutil cp gs://gce-service-proxy-\"$ZONE\"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\nsudo tar -xzf \"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent-0.2.tgz -C \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\n\"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent/service-proxy-agent-bootstrap.sh\"\n }\n }]\n }]\n }\n gce-service-proxy: |\n {\n \"api-version\": \"0.2\",\n \"proxy-spec\": {\n \"proxy-port\": 15001,\n \"network\": \"my-network\",\n \"tracing\": \"ON\",\n \"access-log\": \"/var/log/envoy/access.log\"\n }\n \"service\": {\n \"serving-ports\": [80, 81]\n },\n \"labels\": {\n \"app_name\": \"bookserver_app\",\n \"app_version\": \"STABLE\"\n }\n }\n enable-guest-attributes: 'true'\n enable-osconfig: 'true'\n serviceAccount:\n email: ${default.email}\n scopes:\n - cloud-platform\n labels:\n gce-service-proxy: on\nvariables:\n default:\n fn::invoke:\n Function: gcp:compute:getDefaultServiceAccount\n Arguments: {}\n myImage:\n fn::invoke:\n Function: gcp:compute:getImage\n Arguments:\n family: debian-11\n project: debian-cloud\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Using with Instance Group Manager\n\nInstance Templates cannot be updated after creation with the Google\nCloud Platform API. In order to update an Instance Template, this provider will\ncreate a replacement. In order to effectively\nuse an Instance Template resource with an [Instance Group Manager resource](https://www.terraform.io/docs/providers/google/r/compute_instance_group_manager.html).\nEither omit the Instance Template `name` attribute, or specify a partial name\nwith `name_prefix`. Example:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.InstanceGroupManager;\nimport com.pulumi.gcp.compute.InstanceGroupManagerArgs;\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 instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .disks()\n .networkInterfaces()\n .namePrefix(\"instance-template-\")\n .machineType(\"e2-medium\")\n .region(\"us-central1\")\n .build());\n\n var instanceGroupManager = new InstanceGroupManager(\"instanceGroupManager\", InstanceGroupManagerArgs.builder() \n .name(\"instance-group-manager\")\n .instanceTemplate(instanceTemplate.id())\n .baseInstanceName(\"instance-group-manager\")\n .zone(\"us-central1-f\")\n .targetSize(\"1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n disks:\n - {}\n networkInterfaces:\n - {}\n namePrefix: instance-template-\n machineType: e2-medium\n region: us-central1\n instanceGroupManager:\n type: gcp:compute:InstanceGroupManager\n name: instance_group_manager\n properties:\n name: instance-group-manager\n instanceTemplate: ${instanceTemplate.id}\n baseInstanceName: instance-group-manager\n zone: us-central1-f\n targetSize: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nWith this setup, this provider generates a unique name for your Instance\nTemplate and can then update the Instance Group manager without conflict before\ndestroying the previous Instance Template.\n\n## Deploying the Latest Image\n\nA common way to use instance templates and managed instance groups is to deploy the\nlatest image in a family, usually the latest build of your application. There are two\nways to do this in the provider, and they have their pros and cons. The difference ends\nup being in how \"latest\" is interpreted. You can either deploy the latest image available\nwhen the provider runs, or you can have each instance check what the latest image is when\nit's being created, either as part of a scaling event or being rebuilt by the instance\ngroup manager.\n\nIf you're not sure, we recommend deploying the latest image available when the provider runs,\nbecause this means all the instances in your group will be based on the same image, always,\nand means that no upgrades or changes to your instances happen outside of a `pulumi up`.\nYou can achieve this by using the `gcp.compute.Image`\ndata source, which will retrieve the latest image on every `pulumi apply`, and will update\nthe template to use that specific image:\n\n```tf\ndata \"google_compute_image\" \"my_image\" {\n family = \"debian-11\"\n project = \"debian-cloud\"\n}\n\nresource \"google_compute_instance_template\" \"instance_template\" {\n name_prefix = \"instance-template-\"\n machine_type = \"e2-medium\"\n region = \"us-central1\"\n\n // boot disk\n disk {\n source_image = data.google_compute_image.my_image.self_link\n }\n}\n```\n\nTo have instances update to the latest on every scaling event or instance re-creation,\nuse the family as the image for the disk, and it will use GCP's default behavior, setting\nthe image for the template to the family:\n\n```tf\nresource \"google_compute_instance_template\" \"instance_template\" {\n name_prefix = \"instance-template-\"\n machine_type = \"e2-medium\"\n region = \"us-central1\"\n\n // boot disk\n disk {\n source_image = \"debian-cloud/debian-11\"\n }\n}\n```\n\n## Import\n\nInstance templates can be imported using any of these accepted formats:\n\n* `projects/{{project}}/global/instanceTemplates/{{name}}`\n\n* `{{project}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, instance templates can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/instanceTemplate:InstanceTemplate default projects/{{project}}/global/instanceTemplates/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/instanceTemplate:InstanceTemplate default {{project}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/instanceTemplate:InstanceTemplate default {{name}}\n```\n\n", + "description": "\u003e **Note**: Global instance templates can be used in any region. To lower the impact of outages outside your region and gain data residency within your region, use google_compute_region_instance_template.\n\nManages a VM instance template resource within GCE. For more information see\n[the official documentation](https://cloud.google.com/compute/docs/instance-templates)\nand\n[API](https://cloud.google.com/compute/docs/reference/latest/instanceTemplates).\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.serviceaccount.Account(\"default\", {\n accountId: \"service-account-id\",\n displayName: \"Service Account\",\n});\nconst myImage = gcp.compute.getImage({\n family: \"debian-11\",\n project: \"debian-cloud\",\n});\nconst foobar = new gcp.compute.Disk(\"foobar\", {\n name: \"existing-disk\",\n image: myImage.then(myImage =\u003e myImage.selfLink),\n size: 10,\n type: \"pd-ssd\",\n zone: \"us-central1-a\",\n});\nconst dailyBackup = new gcp.compute.ResourcePolicy(\"daily_backup\", {\n name: \"every-day-4am\",\n region: \"us-central1\",\n snapshotSchedulePolicy: {\n schedule: {\n dailySchedule: {\n daysInCycle: 1,\n startTime: \"04:00\",\n },\n },\n },\n});\nconst defaultInstanceTemplate = new gcp.compute.InstanceTemplate(\"default\", {\n name: \"appserver-template\",\n description: \"This template is used to create app server instances.\",\n tags: [\n \"foo\",\n \"bar\",\n ],\n labels: {\n environment: \"dev\",\n },\n instanceDescription: \"description assigned to instances\",\n machineType: \"e2-medium\",\n canIpForward: false,\n scheduling: {\n automaticRestart: true,\n onHostMaintenance: \"MIGRATE\",\n },\n disks: [\n {\n sourceImage: \"debian-cloud/debian-11\",\n autoDelete: true,\n boot: true,\n resourcePolicies: dailyBackup.id,\n },\n {\n source: foobar.name,\n autoDelete: false,\n boot: false,\n },\n ],\n networkInterfaces: [{\n network: \"default\",\n }],\n metadata: {\n foo: \"bar\",\n },\n serviceAccount: {\n email: _default.email,\n scopes: [\"cloud-platform\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.serviceaccount.Account(\"default\",\n account_id=\"service-account-id\",\n display_name=\"Service Account\")\nmy_image = gcp.compute.get_image(family=\"debian-11\",\n project=\"debian-cloud\")\nfoobar = gcp.compute.Disk(\"foobar\",\n name=\"existing-disk\",\n image=my_image.self_link,\n size=10,\n type=\"pd-ssd\",\n zone=\"us-central1-a\")\ndaily_backup = gcp.compute.ResourcePolicy(\"daily_backup\",\n name=\"every-day-4am\",\n region=\"us-central1\",\n snapshot_schedule_policy=gcp.compute.ResourcePolicySnapshotSchedulePolicyArgs(\n schedule=gcp.compute.ResourcePolicySnapshotSchedulePolicyScheduleArgs(\n daily_schedule=gcp.compute.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs(\n days_in_cycle=1,\n start_time=\"04:00\",\n ),\n ),\n ))\ndefault_instance_template = gcp.compute.InstanceTemplate(\"default\",\n name=\"appserver-template\",\n description=\"This template is used to create app server instances.\",\n tags=[\n \"foo\",\n \"bar\",\n ],\n labels={\n \"environment\": \"dev\",\n },\n instance_description=\"description assigned to instances\",\n machine_type=\"e2-medium\",\n can_ip_forward=False,\n scheduling=gcp.compute.InstanceTemplateSchedulingArgs(\n automatic_restart=True,\n on_host_maintenance=\"MIGRATE\",\n ),\n disks=[\n gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-11\",\n auto_delete=True,\n boot=True,\n resource_policies=daily_backup.id,\n ),\n gcp.compute.InstanceTemplateDiskArgs(\n source=foobar.name,\n auto_delete=False,\n boot=False,\n ),\n ],\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n network=\"default\",\n )],\n metadata={\n \"foo\": \"bar\",\n },\n service_account=gcp.compute.InstanceTemplateServiceAccountArgs(\n email=default.email,\n scopes=[\"cloud-platform\"],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.ServiceAccount.Account(\"default\", new()\n {\n AccountId = \"service-account-id\",\n DisplayName = \"Service Account\",\n });\n\n var myImage = Gcp.Compute.GetImage.Invoke(new()\n {\n Family = \"debian-11\",\n Project = \"debian-cloud\",\n });\n\n var foobar = new Gcp.Compute.Disk(\"foobar\", new()\n {\n Name = \"existing-disk\",\n Image = myImage.Apply(getImageResult =\u003e getImageResult.SelfLink),\n Size = 10,\n Type = \"pd-ssd\",\n Zone = \"us-central1-a\",\n });\n\n var dailyBackup = new Gcp.Compute.ResourcePolicy(\"daily_backup\", new()\n {\n Name = \"every-day-4am\",\n Region = \"us-central1\",\n SnapshotSchedulePolicy = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyArgs\n {\n Schedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs\n {\n DailySchedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs\n {\n DaysInCycle = 1,\n StartTime = \"04:00\",\n },\n },\n },\n });\n\n var defaultInstanceTemplate = new Gcp.Compute.InstanceTemplate(\"default\", new()\n {\n Name = \"appserver-template\",\n Description = \"This template is used to create app server instances.\",\n Tags = new[]\n {\n \"foo\",\n \"bar\",\n },\n Labels = \n {\n { \"environment\", \"dev\" },\n },\n InstanceDescription = \"description assigned to instances\",\n MachineType = \"e2-medium\",\n CanIpForward = false,\n Scheduling = new Gcp.Compute.Inputs.InstanceTemplateSchedulingArgs\n {\n AutomaticRestart = true,\n OnHostMaintenance = \"MIGRATE\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-11\",\n AutoDelete = true,\n Boot = true,\n ResourcePolicies = dailyBackup.Id,\n },\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n Source = foobar.Name,\n AutoDelete = false,\n Boot = false,\n },\n },\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n Network = \"default\",\n },\n },\n Metadata = \n {\n { \"foo\", \"bar\" },\n },\n ServiceAccount = new Gcp.Compute.Inputs.InstanceTemplateServiceAccountArgs\n {\n Email = @default.Email,\n Scopes = new[]\n {\n \"cloud-platform\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\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 := serviceaccount.NewAccount(ctx, \"default\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"service-account-id\"),\n\t\t\tDisplayName: pulumi.String(\"Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyImage, err := compute.LookupImage(ctx, \u0026compute.LookupImageArgs{\n\t\t\tFamily: pulumi.StringRef(\"debian-11\"),\n\t\t\tProject: pulumi.StringRef(\"debian-cloud\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfoobar, err := compute.NewDisk(ctx, \"foobar\", \u0026compute.DiskArgs{\n\t\t\tName: pulumi.String(\"existing-disk\"),\n\t\t\tImage: pulumi.String(myImage.SelfLink),\n\t\t\tSize: pulumi.Int(10),\n\t\t\tType: pulumi.String(\"pd-ssd\"),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdailyBackup, err := compute.NewResourcePolicy(ctx, \"daily_backup\", \u0026compute.ResourcePolicyArgs{\n\t\t\tName: pulumi.String(\"every-day-4am\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSnapshotSchedulePolicy: \u0026compute.ResourcePolicySnapshotSchedulePolicyArgs{\n\t\t\t\tSchedule: \u0026compute.ResourcePolicySnapshotSchedulePolicyScheduleArgs{\n\t\t\t\t\tDailySchedule: \u0026compute.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs{\n\t\t\t\t\t\tDaysInCycle: pulumi.Int(1),\n\t\t\t\t\t\tStartTime: pulumi.String(\"04:00\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInstanceTemplate(ctx, \"default\", \u0026compute.InstanceTemplateArgs{\n\t\t\tName: pulumi.String(\"appserver-template\"),\n\t\t\tDescription: pulumi.String(\"This template is used to create app server instances.\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"dev\"),\n\t\t\t},\n\t\t\tInstanceDescription: pulumi.String(\"description assigned to instances\"),\n\t\t\tMachineType: pulumi.String(\"e2-medium\"),\n\t\t\tCanIpForward: pulumi.Bool(false),\n\t\t\tScheduling: \u0026compute.InstanceTemplateSchedulingArgs{\n\t\t\t\tAutomaticRestart: pulumi.Bool(true),\n\t\t\t\tOnHostMaintenance: pulumi.String(\"MIGRATE\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-11\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t\tResourcePolicies: dailyBackup.ID(),\n\t\t\t\t},\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSource: foobar.Name,\n\t\t\t\t\tAutoDelete: pulumi.Bool(false),\n\t\t\t\t\tBoot: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"foo\": pulumi.Any(\"bar\"),\n\t\t\t},\n\t\t\tServiceAccount: \u0026compute.InstanceTemplateServiceAccountArgs{\n\t\t\t\tEmail: _default.Email,\n\t\t\t\tScopes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"cloud-platform\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetImageArgs;\nimport com.pulumi.gcp.compute.Disk;\nimport com.pulumi.gcp.compute.DiskArgs;\nimport com.pulumi.gcp.compute.ResourcePolicy;\nimport com.pulumi.gcp.compute.ResourcePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateSchedulingArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateServiceAccountArgs;\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 default_ = new Account(\"default\", AccountArgs.builder() \n .accountId(\"service-account-id\")\n .displayName(\"Service Account\")\n .build());\n\n final var myImage = ComputeFunctions.getImage(GetImageArgs.builder()\n .family(\"debian-11\")\n .project(\"debian-cloud\")\n .build());\n\n var foobar = new Disk(\"foobar\", DiskArgs.builder() \n .name(\"existing-disk\")\n .image(myImage.applyValue(getImageResult -\u003e getImageResult.selfLink()))\n .size(10)\n .type(\"pd-ssd\")\n .zone(\"us-central1-a\")\n .build());\n\n var dailyBackup = new ResourcePolicy(\"dailyBackup\", ResourcePolicyArgs.builder() \n .name(\"every-day-4am\")\n .region(\"us-central1\")\n .snapshotSchedulePolicy(ResourcePolicySnapshotSchedulePolicyArgs.builder()\n .schedule(ResourcePolicySnapshotSchedulePolicyScheduleArgs.builder()\n .dailySchedule(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs.builder()\n .daysInCycle(1)\n .startTime(\"04:00\")\n .build())\n .build())\n .build())\n .build());\n\n var defaultInstanceTemplate = new InstanceTemplate(\"defaultInstanceTemplate\", InstanceTemplateArgs.builder() \n .name(\"appserver-template\")\n .description(\"This template is used to create app server instances.\")\n .tags( \n \"foo\",\n \"bar\")\n .labels(Map.of(\"environment\", \"dev\"))\n .instanceDescription(\"description assigned to instances\")\n .machineType(\"e2-medium\")\n .canIpForward(false)\n .scheduling(InstanceTemplateSchedulingArgs.builder()\n .automaticRestart(true)\n .onHostMaintenance(\"MIGRATE\")\n .build())\n .disks( \n InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-11\")\n .autoDelete(true)\n .boot(true)\n .resourcePolicies(dailyBackup.id())\n .build(),\n InstanceTemplateDiskArgs.builder()\n .source(foobar.name())\n .autoDelete(false)\n .boot(false)\n .build())\n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .network(\"default\")\n .build())\n .metadata(Map.of(\"foo\", \"bar\"))\n .serviceAccount(InstanceTemplateServiceAccountArgs.builder()\n .email(default_.email())\n .scopes(\"cloud-platform\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:serviceaccount:Account\n properties:\n accountId: service-account-id\n displayName: Service Account\n defaultInstanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: default\n properties:\n name: appserver-template\n description: This template is used to create app server instances.\n tags:\n - foo\n - bar\n labels:\n environment: dev\n instanceDescription: description assigned to instances\n machineType: e2-medium\n canIpForward: false\n scheduling:\n automaticRestart: true\n onHostMaintenance: MIGRATE\n disks:\n - sourceImage: debian-cloud/debian-11\n autoDelete: true\n boot: true\n resourcePolicies: ${dailyBackup.id}\n - source: ${foobar.name}\n autoDelete: false\n boot: false\n networkInterfaces:\n - network: default\n metadata:\n foo: bar\n serviceAccount:\n email: ${default.email}\n scopes:\n - cloud-platform\n foobar:\n type: gcp:compute:Disk\n properties:\n name: existing-disk\n image: ${myImage.selfLink}\n size: 10\n type: pd-ssd\n zone: us-central1-a\n dailyBackup:\n type: gcp:compute:ResourcePolicy\n name: daily_backup\n properties:\n name: every-day-4am\n region: us-central1\n snapshotSchedulePolicy:\n schedule:\n dailySchedule:\n daysInCycle: 1\n startTime: 04:00\nvariables:\n myImage:\n fn::invoke:\n Function: gcp:compute:getImage\n Arguments:\n family: debian-11\n project: debian-cloud\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Automatic Envoy Deployment\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst default = gcp.compute.getDefaultServiceAccount({});\nconst myImage = gcp.compute.getImage({\n family: \"debian-11\",\n project: \"debian-cloud\",\n});\nconst foobar = new gcp.compute.InstanceTemplate(\"foobar\", {\n name: \"appserver-template\",\n machineType: \"e2-medium\",\n canIpForward: false,\n tags: [\n \"foo\",\n \"bar\",\n ],\n disks: [{\n sourceImage: myImage.then(myImage =\u003e myImage.selfLink),\n autoDelete: true,\n boot: true,\n }],\n networkInterfaces: [{\n network: \"default\",\n }],\n scheduling: {\n preemptible: false,\n automaticRestart: true,\n },\n metadata: {\n \"gce-software-declaration\": `{\n \"softwareRecipes\": [{\n \"name\": \"install-gce-service-proxy-agent\",\n \"desired_state\": \"INSTALLED\",\n \"installSteps\": [{\n \"scriptRun\": {\n \"script\": \"#! /bin/bash\\\\nZONE=(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\\\nexport SERVICE_PROXY_AGENT_DIRECTORY=(mktemp -d)\\\\nsudo gsutil cp gs://gce-service-proxy-\"ZONE\"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"SERVICE_PROXY_AGENT_DIRECTORY\" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"SERVICE_PROXY_AGENT_DIRECTORY\"\\\\nsudo tar -xzf \"SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent-0.2.tgz -C \"SERVICE_PROXY_AGENT_DIRECTORY\"\\\\n\"SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent/service-proxy-agent-bootstrap.sh\"\n }\n }]\n }]\n}\n`,\n \"gce-service-proxy\": `{\n \"api-version\": \"0.2\",\n \"proxy-spec\": {\n \"proxy-port\": 15001,\n \"network\": \"my-network\",\n \"tracing\": \"ON\",\n \"access-log\": \"/var/log/envoy/access.log\"\n }\n \"service\": {\n \"serving-ports\": [80, 81]\n },\n \"labels\": {\n \"app_name\": \"bookserver_app\",\n \"app_version\": \"STABLE\"\n }\n}\n`,\n \"enable-guest-attributes\": \"true\",\n \"enable-osconfig\": \"true\",\n },\n serviceAccount: {\n email: _default.then(_default =\u003e _default.email),\n scopes: [\"cloud-platform\"],\n },\n labels: {\n \"gce-service-proxy\": \"on\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.get_default_service_account()\nmy_image = gcp.compute.get_image(family=\"debian-11\",\n project=\"debian-cloud\")\nfoobar = gcp.compute.InstanceTemplate(\"foobar\",\n name=\"appserver-template\",\n machine_type=\"e2-medium\",\n can_ip_forward=False,\n tags=[\n \"foo\",\n \"bar\",\n ],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=my_image.self_link,\n auto_delete=True,\n boot=True,\n )],\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n network=\"default\",\n )],\n scheduling=gcp.compute.InstanceTemplateSchedulingArgs(\n preemptible=False,\n automatic_restart=True,\n ),\n metadata={\n \"gce-software-declaration\": \"\"\"{\n \"softwareRecipes\": [{\n \"name\": \"install-gce-service-proxy-agent\",\n \"desired_state\": \"INSTALLED\",\n \"installSteps\": [{\n \"scriptRun\": {\n \"script\": \"#! /bin/bash\\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\\nsudo gsutil cp gs://gce-service-proxy-\"$ZONE\"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\nsudo tar -xzf \"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent-0.2.tgz -C \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\n\"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent/service-proxy-agent-bootstrap.sh\"\n }\n }]\n }]\n}\n\"\"\",\n \"gce-service-proxy\": \"\"\"{\n \"api-version\": \"0.2\",\n \"proxy-spec\": {\n \"proxy-port\": 15001,\n \"network\": \"my-network\",\n \"tracing\": \"ON\",\n \"access-log\": \"/var/log/envoy/access.log\"\n }\n \"service\": {\n \"serving-ports\": [80, 81]\n },\n \"labels\": {\n \"app_name\": \"bookserver_app\",\n \"app_version\": \"STABLE\"\n }\n}\n\"\"\",\n \"enable-guest-attributes\": \"true\",\n \"enable-osconfig\": \"true\",\n },\n service_account=gcp.compute.InstanceTemplateServiceAccountArgs(\n email=default.email,\n scopes=[\"cloud-platform\"],\n ),\n labels={\n \"gce-service-proxy\": \"on\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Gcp.Compute.GetDefaultServiceAccount.Invoke();\n\n var myImage = Gcp.Compute.GetImage.Invoke(new()\n {\n Family = \"debian-11\",\n Project = \"debian-cloud\",\n });\n\n var foobar = new Gcp.Compute.InstanceTemplate(\"foobar\", new()\n {\n Name = \"appserver-template\",\n MachineType = \"e2-medium\",\n CanIpForward = false,\n Tags = new[]\n {\n \"foo\",\n \"bar\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = myImage.Apply(getImageResult =\u003e getImageResult.SelfLink),\n AutoDelete = true,\n Boot = true,\n },\n },\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n Network = \"default\",\n },\n },\n Scheduling = new Gcp.Compute.Inputs.InstanceTemplateSchedulingArgs\n {\n Preemptible = false,\n AutomaticRestart = true,\n },\n Metadata = \n {\n { \"gce-software-declaration\", @\"{\n \"\"softwareRecipes\"\": [{\n \"\"name\"\": \"\"install-gce-service-proxy-agent\"\",\n \"\"desired_state\"\": \"\"INSTALLED\"\",\n \"\"installSteps\"\": [{\n \"\"scriptRun\"\": {\n \"\"script\"\": \"\"#! /bin/bash\\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\\nsudo gsutil cp gs://gce-service-proxy-\"\"$ZONE\"\"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"\"$SERVICE_PROXY_AGENT_DIRECTORY\"\" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"\"$SERVICE_PROXY_AGENT_DIRECTORY\"\"\\nsudo tar -xzf \"\"$SERVICE_PROXY_AGENT_DIRECTORY\"\"/service-proxy-agent-0.2.tgz -C \"\"$SERVICE_PROXY_AGENT_DIRECTORY\"\"\\n\"\"$SERVICE_PROXY_AGENT_DIRECTORY\"\"/service-proxy-agent/service-proxy-agent-bootstrap.sh\"\"\n }\n }]\n }]\n}\n\" },\n { \"gce-service-proxy\", @\"{\n \"\"api-version\"\": \"\"0.2\"\",\n \"\"proxy-spec\"\": {\n \"\"proxy-port\"\": 15001,\n \"\"network\"\": \"\"my-network\"\",\n \"\"tracing\"\": \"\"ON\"\",\n \"\"access-log\"\": \"\"/var/log/envoy/access.log\"\"\n }\n \"\"service\"\": {\n \"\"serving-ports\"\": [80, 81]\n },\n \"\"labels\"\": {\n \"\"app_name\"\": \"\"bookserver_app\"\",\n \"\"app_version\"\": \"\"STABLE\"\"\n }\n}\n\" },\n { \"enable-guest-attributes\", \"true\" },\n { \"enable-osconfig\", \"true\" },\n },\n ServiceAccount = new Gcp.Compute.Inputs.InstanceTemplateServiceAccountArgs\n {\n Email = @default.Apply(@default =\u003e @default.Apply(getDefaultServiceAccountResult =\u003e getDefaultServiceAccountResult.Email)),\n Scopes = new[]\n {\n \"cloud-platform\",\n },\n },\n Labels = \n {\n { \"gce-service-proxy\", \"on\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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_default, err := compute.GetDefaultServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyImage, err := compute.LookupImage(ctx, \u0026compute.LookupImageArgs{\n\t\t\tFamily: pulumi.StringRef(\"debian-11\"),\n\t\t\tProject: pulumi.StringRef(\"debian-cloud\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInstanceTemplate(ctx, \"foobar\", \u0026compute.InstanceTemplateArgs{\n\t\t\tName: pulumi.String(\"appserver-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-medium\"),\n\t\t\tCanIpForward: pulumi.Bool(false),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(myImage.SelfLink),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tScheduling: \u0026compute.InstanceTemplateSchedulingArgs{\n\t\t\t\tPreemptible: pulumi.Bool(false),\n\t\t\t\tAutomaticRestart: pulumi.Bool(true),\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"gce-software-declaration\": pulumi.Any(`{\n \"softwareRecipes\": [{\n \"name\": \"install-gce-service-proxy-agent\",\n \"desired_state\": \"INSTALLED\",\n \"installSteps\": [{\n \"scriptRun\": {\n \"script\": \"#! /bin/bash\\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\\nsudo gsutil cp gs://gce-service-proxy-\"$ZONE\"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\nsudo tar -xzf \"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent-0.2.tgz -C \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\n\"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent/service-proxy-agent-bootstrap.sh\"\n }\n }]\n }]\n}\n`),\n\t\t\t\t\"gce-service-proxy\": pulumi.Any(`{\n \"api-version\": \"0.2\",\n \"proxy-spec\": {\n \"proxy-port\": 15001,\n \"network\": \"my-network\",\n \"tracing\": \"ON\",\n \"access-log\": \"/var/log/envoy/access.log\"\n }\n \"service\": {\n \"serving-ports\": [80, 81]\n },\n \"labels\": {\n \"app_name\": \"bookserver_app\",\n \"app_version\": \"STABLE\"\n }\n}\n`),\n\t\t\t\t\"enable-guest-attributes\": pulumi.Any(\"true\"),\n\t\t\t\t\"enable-osconfig\": pulumi.Any(\"true\"),\n\t\t\t},\n\t\t\tServiceAccount: \u0026compute.InstanceTemplateServiceAccountArgs{\n\t\t\t\tEmail: pulumi.String(_default.Email),\n\t\t\t\tScopes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"cloud-platform\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"gce-service-proxy\": pulumi.String(\"on\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetDefaultServiceAccountArgs;\nimport com.pulumi.gcp.compute.inputs.GetImageArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateSchedulingArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateServiceAccountArgs;\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 final var default = ComputeFunctions.getDefaultServiceAccount();\n\n final var myImage = ComputeFunctions.getImage(GetImageArgs.builder()\n .family(\"debian-11\")\n .project(\"debian-cloud\")\n .build());\n\n var foobar = new InstanceTemplate(\"foobar\", InstanceTemplateArgs.builder() \n .name(\"appserver-template\")\n .machineType(\"e2-medium\")\n .canIpForward(false)\n .tags( \n \"foo\",\n \"bar\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(myImage.applyValue(getImageResult -\u003e getImageResult.selfLink()))\n .autoDelete(true)\n .boot(true)\n .build())\n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .network(\"default\")\n .build())\n .scheduling(InstanceTemplateSchedulingArgs.builder()\n .preemptible(false)\n .automaticRestart(true)\n .build())\n .metadata(Map.ofEntries(\n Map.entry(\"gce-software-declaration\", \"\"\"\n{\n \"softwareRecipes\": [{\n \"name\": \"install-gce-service-proxy-agent\",\n \"desired_state\": \"INSTALLED\",\n \"installSteps\": [{\n \"scriptRun\": {\n \"script\": \"#! /bin/bash\\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\\nsudo gsutil cp gs://gce-service-proxy-\"$ZONE\"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\nsudo tar -xzf \"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent-0.2.tgz -C \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\n\"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent/service-proxy-agent-bootstrap.sh\"\n }\n }]\n }]\n}\n \"\"\"),\n Map.entry(\"gce-service-proxy\", \"\"\"\n{\n \"api-version\": \"0.2\",\n \"proxy-spec\": {\n \"proxy-port\": 15001,\n \"network\": \"my-network\",\n \"tracing\": \"ON\",\n \"access-log\": \"/var/log/envoy/access.log\"\n }\n \"service\": {\n \"serving-ports\": [80, 81]\n },\n \"labels\": {\n \"app_name\": \"bookserver_app\",\n \"app_version\": \"STABLE\"\n }\n}\n \"\"\"),\n Map.entry(\"enable-guest-attributes\", \"true\"),\n Map.entry(\"enable-osconfig\", \"true\")\n ))\n .serviceAccount(InstanceTemplateServiceAccountArgs.builder()\n .email(default_.email())\n .scopes(\"cloud-platform\")\n .build())\n .labels(Map.of(\"gce-service-proxy\", \"on\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foobar:\n type: gcp:compute:InstanceTemplate\n properties:\n name: appserver-template\n machineType: e2-medium\n canIpForward: false\n tags:\n - foo\n - bar\n disks:\n - sourceImage: ${myImage.selfLink}\n autoDelete: true\n boot: true\n networkInterfaces:\n - network: default\n scheduling:\n preemptible: false\n automaticRestart: true\n metadata:\n gce-software-declaration: |\n {\n \"softwareRecipes\": [{\n \"name\": \"install-gce-service-proxy-agent\",\n \"desired_state\": \"INSTALLED\",\n \"installSteps\": [{\n \"scriptRun\": {\n \"script\": \"#! /bin/bash\\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\\nsudo gsutil cp gs://gce-service-proxy-\"$ZONE\"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\nsudo tar -xzf \"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent-0.2.tgz -C \"$SERVICE_PROXY_AGENT_DIRECTORY\"\\n\"$SERVICE_PROXY_AGENT_DIRECTORY\"/service-proxy-agent/service-proxy-agent-bootstrap.sh\"\n }\n }]\n }]\n }\n gce-service-proxy: |\n {\n \"api-version\": \"0.2\",\n \"proxy-spec\": {\n \"proxy-port\": 15001,\n \"network\": \"my-network\",\n \"tracing\": \"ON\",\n \"access-log\": \"/var/log/envoy/access.log\"\n }\n \"service\": {\n \"serving-ports\": [80, 81]\n },\n \"labels\": {\n \"app_name\": \"bookserver_app\",\n \"app_version\": \"STABLE\"\n }\n }\n enable-guest-attributes: 'true'\n enable-osconfig: 'true'\n serviceAccount:\n email: ${default.email}\n scopes:\n - cloud-platform\n labels:\n gce-service-proxy: on\nvariables:\n default:\n fn::invoke:\n Function: gcp:compute:getDefaultServiceAccount\n Arguments: {}\n myImage:\n fn::invoke:\n Function: gcp:compute:getImage\n Arguments:\n family: debian-11\n project: debian-cloud\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Using with Instance Group Manager\n\nInstance Templates cannot be updated after creation with the Google\nCloud Platform API. In order to update an Instance Template, this provider will\ncreate a replacement. In order to effectively\nuse an Instance Template resource with an [Instance Group Manager resource](https://www.terraform.io/docs/providers/google/r/compute_instance_group_manager.html).\nEither omit the Instance Template `name` attribute, or specify a partial name\nwith `name_prefix`. Example:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.InstanceGroupManager;\nimport com.pulumi.gcp.compute.InstanceGroupManagerArgs;\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 instanceTemplate = new InstanceTemplate(\"instanceTemplate\", InstanceTemplateArgs.builder() \n .disks()\n .networkInterfaces()\n .namePrefix(\"instance-template-\")\n .machineType(\"e2-medium\")\n .region(\"us-central1\")\n .build());\n\n var instanceGroupManager = new InstanceGroupManager(\"instanceGroupManager\", InstanceGroupManagerArgs.builder() \n .name(\"instance-group-manager\")\n .instanceTemplate(instanceTemplate.id())\n .baseInstanceName(\"instance-group-manager\")\n .zone(\"us-central1-f\")\n .targetSize(\"1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: instance_template\n properties:\n disks:\n - {}\n networkInterfaces:\n - {}\n namePrefix: instance-template-\n machineType: e2-medium\n region: us-central1\n instanceGroupManager:\n type: gcp:compute:InstanceGroupManager\n name: instance_group_manager\n properties:\n name: instance-group-manager\n instanceTemplate: ${instanceTemplate.id}\n baseInstanceName: instance-group-manager\n zone: us-central1-f\n targetSize: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nWith this setup, this provider generates a unique name for your Instance\nTemplate and can then update the Instance Group manager without conflict before\ndestroying the previous Instance Template.\n\n## Deploying the Latest Image\n\nA common way to use instance templates and managed instance groups is to deploy the\nlatest image in a family, usually the latest build of your application. There are two\nways to do this in the provider, and they have their pros and cons. The difference ends\nup being in how \"latest\" is interpreted. You can either deploy the latest image available\nwhen the provider runs, or you can have each instance check what the latest image is when\nit's being created, either as part of a scaling event or being rebuilt by the instance\ngroup manager.\n\nIf you're not sure, we recommend deploying the latest image available when the provider runs,\nbecause this means all the instances in your group will be based on the same image, always,\nand means that no upgrades or changes to your instances happen outside of a `pulumi up`.\nYou can achieve this by using the `gcp.compute.Image`\ndata source, which will retrieve the latest image on every `pulumi apply`, and will update\nthe template to use that specific image:\n\n```tf\ndata \"google_compute_image\" \"my_image\" {\n family = \"debian-11\"\n project = \"debian-cloud\"\n}\n\nresource \"google_compute_instance_template\" \"instance_template\" {\n name_prefix = \"instance-template-\"\n machine_type = \"e2-medium\"\n region = \"us-central1\"\n\n // boot disk\n disk {\n source_image = data.google_compute_image.my_image.self_link\n }\n}\n```\n\nTo have instances update to the latest on every scaling event or instance re-creation,\nuse the family as the image for the disk, and it will use GCP's default behavior, setting\nthe image for the template to the family:\n\n```tf\nresource \"google_compute_instance_template\" \"instance_template\" {\n name_prefix = \"instance-template-\"\n machine_type = \"e2-medium\"\n region = \"us-central1\"\n\n // boot disk\n disk {\n source_image = \"debian-cloud/debian-11\"\n }\n}\n```\n\n## Import\n\nInstance templates can be imported using any of these accepted formats:\n\n* `projects/{{project}}/global/instanceTemplates/{{name}}`\n\n* `{{project}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, instance templates can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/instanceTemplate:InstanceTemplate default projects/{{project}}/global/instanceTemplates/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/instanceTemplate:InstanceTemplate default {{project}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/instanceTemplate:InstanceTemplate default {{name}}\n```\n\n", "properties": { "advancedMachineFeatures": { "$ref": "#/types/gcp:compute/InstanceTemplateAdvancedMachineFeatures:InstanceTemplateAdvancedMachineFeatures", @@ -151940,7 +151940,7 @@ } }, "gcp:compute/regionUrlMap:RegionUrlMap": { - "description": "UrlMaps are used to route requests to a backend service based on rules\nthat you define for the host and path of an incoming URL.\n\n\n\n## Example Usage\n\n### Region Url Map Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionHealthCheck(\"default\", {\n region: \"us-central1\",\n name: \"health-check\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n httpHealthCheck: {\n port: 80,\n requestPath: \"/\",\n },\n});\nconst login = new gcp.compute.RegionBackendService(\"login\", {\n region: \"us-central1\",\n name: \"login\",\n protocol: \"HTTP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n timeoutSec: 10,\n healthChecks: _default.id,\n});\nconst home = new gcp.compute.RegionBackendService(\"home\", {\n region: \"us-central1\",\n name: \"home\",\n protocol: \"HTTP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n timeoutSec: 10,\n healthChecks: _default.id,\n});\nconst regionurlmap = new gcp.compute.RegionUrlMap(\"regionurlmap\", {\n region: \"us-central1\",\n name: \"regionurlmap\",\n description: \"a description\",\n defaultService: home.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: home.id,\n pathRules: [\n {\n paths: [\"/home\"],\n service: home.id,\n },\n {\n paths: [\"/login\"],\n service: login.id,\n },\n ],\n }],\n tests: [{\n service: home.id,\n host: \"hi.com\",\n path: \"/home\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionHealthCheck(\"default\",\n region=\"us-central1\",\n name=\"health-check\",\n check_interval_sec=1,\n timeout_sec=1,\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n request_path=\"/\",\n ))\nlogin = gcp.compute.RegionBackendService(\"login\",\n region=\"us-central1\",\n name=\"login\",\n protocol=\"HTTP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n timeout_sec=10,\n health_checks=default.id)\nhome = gcp.compute.RegionBackendService(\"home\",\n region=\"us-central1\",\n name=\"home\",\n protocol=\"HTTP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n timeout_sec=10,\n health_checks=default.id)\nregionurlmap = gcp.compute.RegionUrlMap(\"regionurlmap\",\n region=\"us-central1\",\n name=\"regionurlmap\",\n description=\"a description\",\n default_service=home.id,\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=home.id,\n path_rules=[\n gcp.compute.RegionUrlMapPathMatcherPathRuleArgs(\n paths=[\"/home\"],\n service=home.id,\n ),\n gcp.compute.RegionUrlMapPathMatcherPathRuleArgs(\n paths=[\"/login\"],\n service=login.id,\n ),\n ],\n )],\n tests=[gcp.compute.RegionUrlMapTestArgs(\n service=home.id,\n host=\"hi.com\",\n path=\"/home\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"health-check\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n RequestPath = \"/\",\n },\n });\n\n var login = new Gcp.Compute.RegionBackendService(\"login\", new()\n {\n Region = \"us-central1\",\n Name = \"login\",\n Protocol = \"HTTP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n });\n\n var home = new Gcp.Compute.RegionBackendService(\"home\", new()\n {\n Region = \"us-central1\",\n Name = \"home\",\n Protocol = \"HTTP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n });\n\n var regionurlmap = new Gcp.Compute.RegionUrlMap(\"regionurlmap\", new()\n {\n Region = \"us-central1\",\n Name = \"regionurlmap\",\n Description = \"a description\",\n DefaultService = home.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = home.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/home\",\n },\n Service = home.Id,\n },\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/login\",\n },\n Service = login.Id,\n },\n },\n },\n },\n Tests = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapTestArgs\n {\n Service = home.Id,\n Host = \"hi.com\",\n Path = \"/home\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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 := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlogin, err := compute.NewRegionBackendService(ctx, \"login\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"login\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thome, err := compute.NewRegionBackendService(ctx, \"home\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"home\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionUrlMap(ctx, \"regionurlmap\", \u0026compute.RegionUrlMapArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"regionurlmap\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: home.ID(),\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: home.ID(),\n\t\t\t\t\tPathRules: compute.RegionUrlMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/home\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: home.ID(),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/login\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: login.ID(),\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\tTests: compute.RegionUrlMapTestArray{\n\t\t\t\t\u0026compute.RegionUrlMapTestArgs{\n\t\t\t\t\tService: home.ID(),\n\t\t\t\t\tHost: pulumi.String(\"hi.com\"),\n\t\t\t\t\tPath: pulumi.String(\"/home\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapTestArgs;\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 default_ = new RegionHealthCheck(\"default\", RegionHealthCheckArgs.builder() \n .region(\"us-central1\")\n .name(\"health-check\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .requestPath(\"/\")\n .build())\n .build());\n\n var login = new RegionBackendService(\"login\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"login\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .build());\n\n var home = new RegionBackendService(\"home\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"home\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .build());\n\n var regionurlmap = new RegionUrlMap(\"regionurlmap\", RegionUrlMapArgs.builder() \n .region(\"us-central1\")\n .name(\"regionurlmap\")\n .description(\"a description\")\n .defaultService(home.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(home.id())\n .pathRules( \n RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/home\")\n .service(home.id())\n .build(),\n RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/login\")\n .service(login.id())\n .build())\n .build())\n .tests(RegionUrlMapTestArgs.builder()\n .service(home.id())\n .host(\"hi.com\")\n .path(\"/home\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n regionurlmap:\n type: gcp:compute:RegionUrlMap\n properties:\n region: us-central1\n name: regionurlmap\n description: a description\n defaultService: ${home.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${home.id}\n pathRules:\n - paths:\n - /home\n service: ${home.id}\n - paths:\n - /login\n service: ${login.id}\n tests:\n - service: ${home.id}\n host: hi.com\n path: /home\n login:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: login\n protocol: HTTP\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks: ${default.id}\n home:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: home\n protocol: HTTP\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks: ${default.id}\n default:\n type: gcp:compute:RegionHealthCheck\n properties:\n region: us-central1\n name: health-check\n checkIntervalSec: 1\n timeoutSec: 1\n httpHealthCheck:\n port: 80\n requestPath: /\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Region Url Map Default Route Action\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionHealthCheck(\"default\", {\n region: \"us-central1\",\n name: \"health-check\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n httpHealthCheck: {\n port: 80,\n requestPath: \"/\",\n },\n});\nconst login = new gcp.compute.RegionBackendService(\"login\", {\n region: \"us-central1\",\n name: \"login\",\n protocol: \"HTTP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n timeoutSec: 10,\n healthChecks: _default.id,\n});\nconst home = new gcp.compute.RegionBackendService(\"home\", {\n region: \"us-central1\",\n name: \"home\",\n protocol: \"HTTP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n timeoutSec: 10,\n healthChecks: _default.id,\n});\nconst regionurlmap = new gcp.compute.RegionUrlMap(\"regionurlmap\", {\n region: \"us-central1\",\n name: \"regionurlmap\",\n description: \"a description\",\n defaultRouteAction: {\n retryPolicy: {\n retryConditions: [\n \"5xx\",\n \"gateway-error\",\n ],\n numRetries: 3,\n perTryTimeout: {\n seconds: \"0\",\n nanos: 500,\n },\n },\n requestMirrorPolicy: {\n backendService: home.id,\n },\n weightedBackendServices: [\n {\n backendService: login.id,\n weight: 200,\n headerAction: {\n requestHeadersToAdds: [{\n headerName: \"foo-request-1\",\n headerValue: \"bar\",\n replace: true,\n }],\n requestHeadersToRemoves: [\"fizz\"],\n responseHeadersToAdds: [{\n headerName: \"foo-response-1\",\n headerValue: \"bar\",\n replace: true,\n }],\n responseHeadersToRemoves: [\"buzz\"],\n },\n },\n {\n backendService: home.id,\n weight: 100,\n headerAction: {\n requestHeadersToAdds: [\n {\n headerName: \"foo-request-1\",\n headerValue: \"bar\",\n replace: true,\n },\n {\n headerName: \"foo-request-2\",\n headerValue: \"bar\",\n replace: true,\n },\n ],\n requestHeadersToRemoves: [\"fizz\"],\n responseHeadersToAdds: [\n {\n headerName: \"foo-response-2\",\n headerValue: \"bar\",\n replace: true,\n },\n {\n headerName: \"foo-response-1\",\n headerValue: \"bar\",\n replace: true,\n },\n ],\n responseHeadersToRemoves: [\"buzz\"],\n },\n },\n ],\n urlRewrite: {\n hostRewrite: \"dev.example.com\",\n pathPrefixRewrite: \"/v1/api/\",\n },\n corsPolicy: {\n disabled: false,\n allowCredentials: true,\n allowHeaders: [\"foobar\"],\n allowMethods: [\n \"GET\",\n \"POST\",\n ],\n allowOrigins: [\"example.com\"],\n exposeHeaders: [\"foobar\"],\n maxAge: 60,\n },\n faultInjectionPolicy: {\n delay: {\n fixedDelay: {\n seconds: \"0\",\n nanos: 500,\n },\n percentage: 0.5,\n },\n abort: {\n httpStatus: 500,\n percentage: 0.5,\n },\n },\n timeout: {\n seconds: \"0\",\n nanos: 500,\n },\n },\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: home.id,\n pathRules: [\n {\n paths: [\"/home\"],\n service: home.id,\n },\n {\n paths: [\"/login\"],\n service: login.id,\n },\n ],\n }],\n tests: [{\n service: home.id,\n host: \"hi.com\",\n path: \"/home\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionHealthCheck(\"default\",\n region=\"us-central1\",\n name=\"health-check\",\n check_interval_sec=1,\n timeout_sec=1,\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n request_path=\"/\",\n ))\nlogin = gcp.compute.RegionBackendService(\"login\",\n region=\"us-central1\",\n name=\"login\",\n protocol=\"HTTP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n timeout_sec=10,\n health_checks=default.id)\nhome = gcp.compute.RegionBackendService(\"home\",\n region=\"us-central1\",\n name=\"home\",\n protocol=\"HTTP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n timeout_sec=10,\n health_checks=default.id)\nregionurlmap = gcp.compute.RegionUrlMap(\"regionurlmap\",\n region=\"us-central1\",\n name=\"regionurlmap\",\n description=\"a description\",\n default_route_action=gcp.compute.RegionUrlMapDefaultRouteActionArgs(\n retry_policy=gcp.compute.RegionUrlMapDefaultRouteActionRetryPolicyArgs(\n retry_conditions=[\n \"5xx\",\n \"gateway-error\",\n ],\n num_retries=3,\n per_try_timeout=gcp.compute.RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs(\n seconds=\"0\",\n nanos=500,\n ),\n ),\n request_mirror_policy=gcp.compute.RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs(\n backend_service=home.id,\n ),\n weighted_backend_services=[\n gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs(\n backend_service=login.id,\n weight=200,\n header_action=gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs(\n request_headers_to_adds=[gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs(\n header_name=\"foo-request-1\",\n header_value=\"bar\",\n replace=True,\n )],\n request_headers_to_removes=[\"fizz\"],\n response_headers_to_adds=[gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs(\n header_name=\"foo-response-1\",\n header_value=\"bar\",\n replace=True,\n )],\n response_headers_to_removes=[\"buzz\"],\n ),\n ),\n gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs(\n backend_service=home.id,\n weight=100,\n header_action=gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs(\n request_headers_to_adds=[\n gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs(\n header_name=\"foo-request-1\",\n header_value=\"bar\",\n replace=True,\n ),\n gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs(\n header_name=\"foo-request-2\",\n header_value=\"bar\",\n replace=True,\n ),\n ],\n request_headers_to_removes=[\"fizz\"],\n response_headers_to_adds=[\n gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs(\n header_name=\"foo-response-2\",\n header_value=\"bar\",\n replace=True,\n ),\n gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs(\n header_name=\"foo-response-1\",\n header_value=\"bar\",\n replace=True,\n ),\n ],\n response_headers_to_removes=[\"buzz\"],\n ),\n ),\n ],\n url_rewrite=gcp.compute.RegionUrlMapDefaultRouteActionUrlRewriteArgs(\n host_rewrite=\"dev.example.com\",\n path_prefix_rewrite=\"/v1/api/\",\n ),\n cors_policy=gcp.compute.RegionUrlMapDefaultRouteActionCorsPolicyArgs(\n disabled=False,\n allow_credentials=True,\n allow_headers=[\"foobar\"],\n allow_methods=[\n \"GET\",\n \"POST\",\n ],\n allow_origins=[\"example.com\"],\n expose_headers=[\"foobar\"],\n max_age=60,\n ),\n fault_injection_policy=gcp.compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs(\n delay=gcp.compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs(\n fixed_delay=gcp.compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs(\n seconds=\"0\",\n nanos=500,\n ),\n percentage=0.5,\n ),\n abort=gcp.compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs(\n http_status=500,\n percentage=0.5,\n ),\n ),\n timeout=gcp.compute.RegionUrlMapDefaultRouteActionTimeoutArgs(\n seconds=\"0\",\n nanos=500,\n ),\n ),\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=home.id,\n path_rules=[\n gcp.compute.RegionUrlMapPathMatcherPathRuleArgs(\n paths=[\"/home\"],\n service=home.id,\n ),\n gcp.compute.RegionUrlMapPathMatcherPathRuleArgs(\n paths=[\"/login\"],\n service=login.id,\n ),\n ],\n )],\n tests=[gcp.compute.RegionUrlMapTestArgs(\n service=home.id,\n host=\"hi.com\",\n path=\"/home\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"health-check\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n RequestPath = \"/\",\n },\n });\n\n var login = new Gcp.Compute.RegionBackendService(\"login\", new()\n {\n Region = \"us-central1\",\n Name = \"login\",\n Protocol = \"HTTP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n });\n\n var home = new Gcp.Compute.RegionBackendService(\"home\", new()\n {\n Region = \"us-central1\",\n Name = \"home\",\n Protocol = \"HTTP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n });\n\n var regionurlmap = new Gcp.Compute.RegionUrlMap(\"regionurlmap\", new()\n {\n Region = \"us-central1\",\n Name = \"regionurlmap\",\n Description = \"a description\",\n DefaultRouteAction = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionArgs\n {\n RetryPolicy = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionRetryPolicyArgs\n {\n RetryConditions = new[]\n {\n \"5xx\",\n \"gateway-error\",\n },\n NumRetries = 3,\n PerTryTimeout = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs\n {\n Seconds = \"0\",\n Nanos = 500,\n },\n },\n RequestMirrorPolicy = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs\n {\n BackendService = home.Id,\n },\n WeightedBackendServices = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs\n {\n BackendService = login.Id,\n Weight = 200,\n HeaderAction = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs\n {\n RequestHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs\n {\n HeaderName = \"foo-request-1\",\n HeaderValue = \"bar\",\n Replace = true,\n },\n },\n RequestHeadersToRemoves = new[]\n {\n \"fizz\",\n },\n ResponseHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs\n {\n HeaderName = \"foo-response-1\",\n HeaderValue = \"bar\",\n Replace = true,\n },\n },\n ResponseHeadersToRemoves = new[]\n {\n \"buzz\",\n },\n },\n },\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs\n {\n BackendService = home.Id,\n Weight = 100,\n HeaderAction = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs\n {\n RequestHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs\n {\n HeaderName = \"foo-request-1\",\n HeaderValue = \"bar\",\n Replace = true,\n },\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs\n {\n HeaderName = \"foo-request-2\",\n HeaderValue = \"bar\",\n Replace = true,\n },\n },\n RequestHeadersToRemoves = new[]\n {\n \"fizz\",\n },\n ResponseHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs\n {\n HeaderName = \"foo-response-2\",\n HeaderValue = \"bar\",\n Replace = true,\n },\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs\n {\n HeaderName = \"foo-response-1\",\n HeaderValue = \"bar\",\n Replace = true,\n },\n },\n ResponseHeadersToRemoves = new[]\n {\n \"buzz\",\n },\n },\n },\n },\n UrlRewrite = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionUrlRewriteArgs\n {\n HostRewrite = \"dev.example.com\",\n PathPrefixRewrite = \"/v1/api/\",\n },\n CorsPolicy = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionCorsPolicyArgs\n {\n Disabled = false,\n AllowCredentials = true,\n AllowHeaders = new[]\n {\n \"foobar\",\n },\n AllowMethods = new[]\n {\n \"GET\",\n \"POST\",\n },\n AllowOrigins = new[]\n {\n \"example.com\",\n },\n ExposeHeaders = new[]\n {\n \"foobar\",\n },\n MaxAge = 60,\n },\n FaultInjectionPolicy = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs\n {\n Delay = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs\n {\n FixedDelay = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs\n {\n Seconds = \"0\",\n Nanos = 500,\n },\n Percentage = 0.5,\n },\n Abort = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs\n {\n HttpStatus = 500,\n Percentage = 0.5,\n },\n },\n Timeout = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionTimeoutArgs\n {\n Seconds = \"0\",\n Nanos = 500,\n },\n },\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = home.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/home\",\n },\n Service = home.Id,\n },\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/login\",\n },\n Service = login.Id,\n },\n },\n },\n },\n Tests = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapTestArgs\n {\n Service = home.Id,\n Host = \"hi.com\",\n Path = \"/home\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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 := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlogin, err := compute.NewRegionBackendService(ctx, \"login\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"login\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thome, err := compute.NewRegionBackendService(ctx, \"home\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"home\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionUrlMap(ctx, \"regionurlmap\", \u0026compute.RegionUrlMapArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"regionurlmap\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultRouteAction: \u0026compute.RegionUrlMapDefaultRouteActionArgs{\n\t\t\t\tRetryPolicy: \u0026compute.RegionUrlMapDefaultRouteActionRetryPolicyArgs{\n\t\t\t\t\tRetryConditions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"5xx\"),\n\t\t\t\t\t\tpulumi.String(\"gateway-error\"),\n\t\t\t\t\t},\n\t\t\t\t\tNumRetries: pulumi.Int(3),\n\t\t\t\t\tPerTryTimeout: \u0026compute.RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs{\n\t\t\t\t\t\tSeconds: pulumi.String(\"0\"),\n\t\t\t\t\t\tNanos: pulumi.Int(500),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequestMirrorPolicy: \u0026compute.RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs{\n\t\t\t\t\tBackendService: home.ID(),\n\t\t\t\t},\n\t\t\t\tWeightedBackendServices: compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceArray{\n\t\t\t\t\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs{\n\t\t\t\t\t\tBackendService: login.ID(),\n\t\t\t\t\t\tWeight: pulumi.Int(200),\n\t\t\t\t\t\tHeaderAction: \u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs{\n\t\t\t\t\t\t\tRequestHeadersToAdds: compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"foo-request-1\"),\n\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"bar\"),\n\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tRequestHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"fizz\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tResponseHeadersToAdds: compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"foo-response-1\"),\n\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"bar\"),\n\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tResponseHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"buzz\"),\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\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs{\n\t\t\t\t\t\tBackendService: home.ID(),\n\t\t\t\t\t\tWeight: pulumi.Int(100),\n\t\t\t\t\t\tHeaderAction: \u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs{\n\t\t\t\t\t\t\tRequestHeadersToAdds: compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"foo-request-1\"),\n\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"bar\"),\n\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"foo-request-2\"),\n\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"bar\"),\n\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tRequestHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"fizz\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tResponseHeadersToAdds: compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"foo-response-2\"),\n\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"bar\"),\n\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"foo-response-1\"),\n\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"bar\"),\n\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tResponseHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"buzz\"),\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},\n\t\t\t\tUrlRewrite: \u0026compute.RegionUrlMapDefaultRouteActionUrlRewriteArgs{\n\t\t\t\t\tHostRewrite: pulumi.String(\"dev.example.com\"),\n\t\t\t\t\tPathPrefixRewrite: pulumi.String(\"/v1/api/\"),\n\t\t\t\t},\n\t\t\t\tCorsPolicy: \u0026compute.RegionUrlMapDefaultRouteActionCorsPolicyArgs{\n\t\t\t\t\tDisabled: pulumi.Bool(false),\n\t\t\t\t\tAllowCredentials: pulumi.Bool(true),\n\t\t\t\t\tAllowHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"foobar\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\tpulumi.String(\"POST\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowOrigins: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tExposeHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"foobar\"),\n\t\t\t\t\t},\n\t\t\t\t\tMaxAge: pulumi.Int(60),\n\t\t\t\t},\n\t\t\t\tFaultInjectionPolicy: \u0026compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs{\n\t\t\t\t\tDelay: \u0026compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs{\n\t\t\t\t\t\tFixedDelay: \u0026compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{\n\t\t\t\t\t\t\tSeconds: pulumi.String(\"0\"),\n\t\t\t\t\t\t\tNanos: pulumi.Int(500),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPercentage: pulumi.Float64(0.5),\n\t\t\t\t\t},\n\t\t\t\t\tAbort: \u0026compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs{\n\t\t\t\t\t\tHttpStatus: pulumi.Int(500),\n\t\t\t\t\t\tPercentage: pulumi.Float64(0.5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tTimeout: \u0026compute.RegionUrlMapDefaultRouteActionTimeoutArgs{\n\t\t\t\t\tSeconds: pulumi.String(\"0\"),\n\t\t\t\t\tNanos: pulumi.Int(500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: home.ID(),\n\t\t\t\t\tPathRules: compute.RegionUrlMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/home\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: home.ID(),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/login\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: login.ID(),\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\tTests: compute.RegionUrlMapTestArray{\n\t\t\t\t\u0026compute.RegionUrlMapTestArgs{\n\t\t\t\t\tService: home.ID(),\n\t\t\t\t\tHost: pulumi.String(\"hi.com\"),\n\t\t\t\t\tPath: pulumi.String(\"/home\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionRetryPolicyArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionUrlRewriteArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionCorsPolicyArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionTimeoutArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapTestArgs;\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 default_ = new RegionHealthCheck(\"default\", RegionHealthCheckArgs.builder() \n .region(\"us-central1\")\n .name(\"health-check\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .requestPath(\"/\")\n .build())\n .build());\n\n var login = new RegionBackendService(\"login\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"login\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .build());\n\n var home = new RegionBackendService(\"home\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"home\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .build());\n\n var regionurlmap = new RegionUrlMap(\"regionurlmap\", RegionUrlMapArgs.builder() \n .region(\"us-central1\")\n .name(\"regionurlmap\")\n .description(\"a description\")\n .defaultRouteAction(RegionUrlMapDefaultRouteActionArgs.builder()\n .retryPolicy(RegionUrlMapDefaultRouteActionRetryPolicyArgs.builder()\n .retryConditions( \n \"5xx\",\n \"gateway-error\")\n .numRetries(3)\n .perTryTimeout(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs.builder()\n .seconds(0)\n .nanos(500)\n .build())\n .build())\n .requestMirrorPolicy(RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs.builder()\n .backendService(home.id())\n .build())\n .weightedBackendServices( \n RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs.builder()\n .backendService(login.id())\n .weight(200)\n .headerAction(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs.builder()\n .requestHeadersToAdds(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs.builder()\n .headerName(\"foo-request-1\")\n .headerValue(\"bar\")\n .replace(true)\n .build())\n .requestHeadersToRemoves(\"fizz\")\n .responseHeadersToAdds(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs.builder()\n .headerName(\"foo-response-1\")\n .headerValue(\"bar\")\n .replace(true)\n .build())\n .responseHeadersToRemoves(\"buzz\")\n .build())\n .build(),\n RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs.builder()\n .backendService(home.id())\n .weight(100)\n .headerAction(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs.builder()\n .requestHeadersToAdds( \n RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs.builder()\n .headerName(\"foo-request-1\")\n .headerValue(\"bar\")\n .replace(true)\n .build(),\n RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs.builder()\n .headerName(\"foo-request-2\")\n .headerValue(\"bar\")\n .replace(true)\n .build())\n .requestHeadersToRemoves(\"fizz\")\n .responseHeadersToAdds( \n RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs.builder()\n .headerName(\"foo-response-2\")\n .headerValue(\"bar\")\n .replace(true)\n .build(),\n RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs.builder()\n .headerName(\"foo-response-1\")\n .headerValue(\"bar\")\n .replace(true)\n .build())\n .responseHeadersToRemoves(\"buzz\")\n .build())\n .build())\n .urlRewrite(RegionUrlMapDefaultRouteActionUrlRewriteArgs.builder()\n .hostRewrite(\"dev.example.com\")\n .pathPrefixRewrite(\"/v1/api/\")\n .build())\n .corsPolicy(RegionUrlMapDefaultRouteActionCorsPolicyArgs.builder()\n .disabled(false)\n .allowCredentials(true)\n .allowHeaders(\"foobar\")\n .allowMethods( \n \"GET\",\n \"POST\")\n .allowOrigins(\"example.com\")\n .exposeHeaders(\"foobar\")\n .maxAge(60)\n .build())\n .faultInjectionPolicy(RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs.builder()\n .delay(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs.builder()\n .fixedDelay(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs.builder()\n .seconds(0)\n .nanos(500)\n .build())\n .percentage(0.5)\n .build())\n .abort(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs.builder()\n .httpStatus(500)\n .percentage(0.5)\n .build())\n .build())\n .timeout(RegionUrlMapDefaultRouteActionTimeoutArgs.builder()\n .seconds(0)\n .nanos(500)\n .build())\n .build())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(home.id())\n .pathRules( \n RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/home\")\n .service(home.id())\n .build(),\n RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/login\")\n .service(login.id())\n .build())\n .build())\n .tests(RegionUrlMapTestArgs.builder()\n .service(home.id())\n .host(\"hi.com\")\n .path(\"/home\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n regionurlmap:\n type: gcp:compute:RegionUrlMap\n properties:\n region: us-central1\n name: regionurlmap\n description: a description\n defaultRouteAction:\n retryPolicy:\n retryConditions:\n - 5xx\n - gateway-error\n numRetries: 3\n perTryTimeout:\n seconds: 0\n nanos: 500\n requestMirrorPolicy:\n backendService: ${home.id}\n weightedBackendServices:\n - backendService: ${login.id}\n weight: 200\n headerAction:\n requestHeadersToAdds:\n - headerName: foo-request-1\n headerValue: bar\n replace: true\n requestHeadersToRemoves:\n - fizz\n responseHeadersToAdds:\n - headerName: foo-response-1\n headerValue: bar\n replace: true\n responseHeadersToRemoves:\n - buzz\n - backendService: ${home.id}\n weight: 100\n headerAction:\n requestHeadersToAdds:\n - headerName: foo-request-1\n headerValue: bar\n replace: true\n - headerName: foo-request-2\n headerValue: bar\n replace: true\n requestHeadersToRemoves:\n - fizz\n responseHeadersToAdds:\n - headerName: foo-response-2\n headerValue: bar\n replace: true\n - headerName: foo-response-1\n headerValue: bar\n replace: true\n responseHeadersToRemoves:\n - buzz\n urlRewrite:\n hostRewrite: dev.example.com\n pathPrefixRewrite: /v1/api/\n corsPolicy:\n disabled: false\n allowCredentials: true\n allowHeaders:\n - foobar\n allowMethods:\n - GET\n - POST\n allowOrigins:\n - example.com\n exposeHeaders:\n - foobar\n maxAge: 60\n faultInjectionPolicy:\n delay:\n fixedDelay:\n seconds: 0\n nanos: 500\n percentage: 0.5\n abort:\n httpStatus: 500\n percentage: 0.5\n timeout:\n seconds: 0\n nanos: 500\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${home.id}\n pathRules:\n - paths:\n - /home\n service: ${home.id}\n - paths:\n - /login\n service: ${login.id}\n tests:\n - service: ${home.id}\n host: hi.com\n path: /home\n login:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: login\n protocol: HTTP\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks: ${default.id}\n home:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: home\n protocol: HTTP\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks: ${default.id}\n default:\n type: gcp:compute:RegionHealthCheck\n properties:\n region: us-central1\n name: health-check\n checkIntervalSec: 1\n timeoutSec: 1\n httpHealthCheck:\n port: 80\n requestPath: /\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Region Url Map L7 Ilb Path\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionHealthCheck(\"default\", {\n name: \"health-check\",\n httpHealthCheck: {\n port: 80,\n },\n});\nconst home = new gcp.compute.RegionBackendService(\"home\", {\n name: \"home\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n healthChecks: _default.id,\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n});\nconst regionurlmap = new gcp.compute.RegionUrlMap(\"regionurlmap\", {\n name: \"regionurlmap\",\n description: \"a description\",\n defaultService: home.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: home.id,\n pathRules: [{\n paths: [\"/home\"],\n routeAction: {\n corsPolicy: {\n allowCredentials: true,\n allowHeaders: [\"Allowed content\"],\n allowMethods: [\"GET\"],\n allowOrigins: [\"Allowed origin\"],\n exposeHeaders: [\"Exposed header\"],\n maxAge: 30,\n disabled: false,\n },\n faultInjectionPolicy: {\n abort: {\n httpStatus: 234,\n percentage: 5.6,\n },\n delay: {\n fixedDelay: {\n seconds: \"0\",\n nanos: 50000,\n },\n percentage: 7.8,\n },\n },\n requestMirrorPolicy: {\n backendService: home.id,\n },\n retryPolicy: {\n numRetries: 4,\n perTryTimeout: {\n seconds: \"30\",\n },\n retryConditions: [\n \"5xx\",\n \"deadline-exceeded\",\n ],\n },\n timeout: {\n seconds: \"20\",\n nanos: 750000000,\n },\n urlRewrite: {\n hostRewrite: \"dev.example.com\",\n pathPrefixRewrite: \"/v1/api/\",\n },\n weightedBackendServices: [{\n backendService: home.id,\n weight: 400,\n headerAction: {\n requestHeadersToRemoves: [\"RemoveMe\"],\n requestHeadersToAdds: [{\n headerName: \"AddMe\",\n headerValue: \"MyValue\",\n replace: true,\n }],\n responseHeadersToRemoves: [\"RemoveMe\"],\n responseHeadersToAdds: [{\n headerName: \"AddMe\",\n headerValue: \"MyValue\",\n replace: false,\n }],\n },\n }],\n },\n }],\n }],\n tests: [{\n service: home.id,\n host: \"hi.com\",\n path: \"/home\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionHealthCheck(\"default\",\n name=\"health-check\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n ))\nhome = gcp.compute.RegionBackendService(\"home\",\n name=\"home\",\n protocol=\"HTTP\",\n timeout_sec=10,\n health_checks=default.id,\n load_balancing_scheme=\"INTERNAL_MANAGED\")\nregionurlmap = gcp.compute.RegionUrlMap(\"regionurlmap\",\n name=\"regionurlmap\",\n description=\"a description\",\n default_service=home.id,\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=home.id,\n path_rules=[gcp.compute.RegionUrlMapPathMatcherPathRuleArgs(\n paths=[\"/home\"],\n route_action=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionArgs(\n cors_policy=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs(\n allow_credentials=True,\n allow_headers=[\"Allowed content\"],\n allow_methods=[\"GET\"],\n allow_origins=[\"Allowed origin\"],\n expose_headers=[\"Exposed header\"],\n max_age=30,\n disabled=False,\n ),\n fault_injection_policy=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs(\n abort=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs(\n http_status=234,\n percentage=5.6,\n ),\n delay=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs(\n fixed_delay=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs(\n seconds=\"0\",\n nanos=50000,\n ),\n percentage=7.8,\n ),\n ),\n request_mirror_policy=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs(\n backend_service=home.id,\n ),\n retry_policy=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs(\n num_retries=4,\n per_try_timeout=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs(\n seconds=\"30\",\n ),\n retry_conditions=[\n \"5xx\",\n \"deadline-exceeded\",\n ],\n ),\n timeout=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs(\n seconds=\"20\",\n nanos=750000000,\n ),\n url_rewrite=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs(\n host_rewrite=\"dev.example.com\",\n path_prefix_rewrite=\"/v1/api/\",\n ),\n weighted_backend_services=[gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs(\n backend_service=home.id,\n weight=400,\n header_action=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs(\n request_headers_to_removes=[\"RemoveMe\"],\n request_headers_to_adds=[gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs(\n header_name=\"AddMe\",\n header_value=\"MyValue\",\n replace=True,\n )],\n response_headers_to_removes=[\"RemoveMe\"],\n response_headers_to_adds=[gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs(\n header_name=\"AddMe\",\n header_value=\"MyValue\",\n replace=False,\n )],\n ),\n )],\n ),\n )],\n )],\n tests=[gcp.compute.RegionUrlMapTestArgs(\n service=home.id,\n host=\"hi.com\",\n path=\"/home\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var home = new Gcp.Compute.RegionBackendService(\"home\", new()\n {\n Name = \"home\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n });\n\n var regionurlmap = new Gcp.Compute.RegionUrlMap(\"regionurlmap\", new()\n {\n Name = \"regionurlmap\",\n Description = \"a description\",\n DefaultService = home.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = home.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/home\",\n },\n RouteAction = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionArgs\n {\n CorsPolicy = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs\n {\n AllowCredentials = true,\n AllowHeaders = new[]\n {\n \"Allowed content\",\n },\n AllowMethods = new[]\n {\n \"GET\",\n },\n AllowOrigins = new[]\n {\n \"Allowed origin\",\n },\n ExposeHeaders = new[]\n {\n \"Exposed header\",\n },\n MaxAge = 30,\n Disabled = false,\n },\n FaultInjectionPolicy = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs\n {\n Abort = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs\n {\n HttpStatus = 234,\n Percentage = 5.6,\n },\n Delay = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs\n {\n FixedDelay = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs\n {\n Seconds = \"0\",\n Nanos = 50000,\n },\n Percentage = 7.8,\n },\n },\n RequestMirrorPolicy = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs\n {\n BackendService = home.Id,\n },\n RetryPolicy = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs\n {\n NumRetries = 4,\n PerTryTimeout = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs\n {\n Seconds = \"30\",\n },\n RetryConditions = new[]\n {\n \"5xx\",\n \"deadline-exceeded\",\n },\n },\n Timeout = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs\n {\n Seconds = \"20\",\n Nanos = 750000000,\n },\n UrlRewrite = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs\n {\n HostRewrite = \"dev.example.com\",\n PathPrefixRewrite = \"/v1/api/\",\n },\n WeightedBackendServices = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs\n {\n BackendService = home.Id,\n Weight = 400,\n HeaderAction = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs\n {\n RequestHeadersToRemoves = new[]\n {\n \"RemoveMe\",\n },\n RequestHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs\n {\n HeaderName = \"AddMe\",\n HeaderValue = \"MyValue\",\n Replace = true,\n },\n },\n ResponseHeadersToRemoves = new[]\n {\n \"RemoveMe\",\n },\n ResponseHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs\n {\n HeaderName = \"AddMe\",\n HeaderValue = \"MyValue\",\n Replace = false,\n },\n },\n },\n },\n },\n },\n },\n },\n },\n },\n Tests = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapTestArgs\n {\n Service = home.Id,\n Host = \"hi.com\",\n Path = \"/home\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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 := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thome, err := compute.NewRegionBackendService(ctx, \"home\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"home\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionUrlMap(ctx, \"regionurlmap\", \u0026compute.RegionUrlMapArgs{\n\t\t\tName: pulumi.String(\"regionurlmap\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: home.ID(),\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: home.ID(),\n\t\t\t\t\tPathRules: compute.RegionUrlMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/home\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tRouteAction: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionArgs{\n\t\t\t\t\t\t\t\tCorsPolicy: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs{\n\t\t\t\t\t\t\t\t\tAllowCredentials: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\tAllowHeaders: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"Allowed content\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tAllowMethods: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tAllowOrigins: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"Allowed origin\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tExposeHeaders: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"Exposed header\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tMaxAge: pulumi.Int(30),\n\t\t\t\t\t\t\t\t\tDisabled: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tFaultInjectionPolicy: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs{\n\t\t\t\t\t\t\t\t\tAbort: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs{\n\t\t\t\t\t\t\t\t\t\tHttpStatus: pulumi.Int(234),\n\t\t\t\t\t\t\t\t\t\tPercentage: pulumi.Float64(5.6),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tDelay: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs{\n\t\t\t\t\t\t\t\t\t\tFixedDelay: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs{\n\t\t\t\t\t\t\t\t\t\t\tSeconds: pulumi.String(\"0\"),\n\t\t\t\t\t\t\t\t\t\t\tNanos: pulumi.Int(50000),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tPercentage: pulumi.Float64(7.8),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tRequestMirrorPolicy: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs{\n\t\t\t\t\t\t\t\t\tBackendService: home.ID(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tRetryPolicy: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs{\n\t\t\t\t\t\t\t\t\tNumRetries: pulumi.Int(4),\n\t\t\t\t\t\t\t\t\tPerTryTimeout: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs{\n\t\t\t\t\t\t\t\t\t\tSeconds: pulumi.String(\"30\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tRetryConditions: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"5xx\"),\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"deadline-exceeded\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tTimeout: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs{\n\t\t\t\t\t\t\t\t\tSeconds: pulumi.String(\"20\"),\n\t\t\t\t\t\t\t\t\tNanos: pulumi.Int(750000000),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tUrlRewrite: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs{\n\t\t\t\t\t\t\t\t\tHostRewrite: pulumi.String(\"dev.example.com\"),\n\t\t\t\t\t\t\t\t\tPathPrefixRewrite: pulumi.String(\"/v1/api/\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tWeightedBackendServices: compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray{\n\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs{\n\t\t\t\t\t\t\t\t\t\tBackendService: home.ID(),\n\t\t\t\t\t\t\t\t\t\tWeight: pulumi.Int(400),\n\t\t\t\t\t\t\t\t\t\tHeaderAction: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs{\n\t\t\t\t\t\t\t\t\t\t\tRequestHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\t\t\tpulumi.String(\"RemoveMe\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tRequestHeadersToAdds: compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{\n\t\t\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"AddMe\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"MyValue\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tResponseHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\t\t\tpulumi.String(\"RemoveMe\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tResponseHeadersToAdds: compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{\n\t\t\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"AddMe\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"MyValue\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\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},\n\t\t\t},\n\t\t\tTests: compute.RegionUrlMapTestArray{\n\t\t\t\t\u0026compute.RegionUrlMapTestArgs{\n\t\t\t\t\tService: home.ID(),\n\t\t\t\t\tHost: pulumi.String(\"hi.com\"),\n\t\t\t\t\tPath: pulumi.String(\"/home\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapTestArgs;\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 default_ = new RegionHealthCheck(\"default\", RegionHealthCheckArgs.builder() \n .name(\"health-check\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var home = new RegionBackendService(\"home\", RegionBackendServiceArgs.builder() \n .name(\"home\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .build());\n\n var regionurlmap = new RegionUrlMap(\"regionurlmap\", RegionUrlMapArgs.builder() \n .name(\"regionurlmap\")\n .description(\"a description\")\n .defaultService(home.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(home.id())\n .pathRules(RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/home\")\n .routeAction(RegionUrlMapPathMatcherPathRuleRouteActionArgs.builder()\n .corsPolicy(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs.builder()\n .allowCredentials(true)\n .allowHeaders(\"Allowed content\")\n .allowMethods(\"GET\")\n .allowOrigins(\"Allowed origin\")\n .exposeHeaders(\"Exposed header\")\n .maxAge(30)\n .disabled(false)\n .build())\n .faultInjectionPolicy(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs.builder()\n .abort(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs.builder()\n .httpStatus(234)\n .percentage(5.6)\n .build())\n .delay(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs.builder()\n .fixedDelay(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs.builder()\n .seconds(0)\n .nanos(50000)\n .build())\n .percentage(7.8)\n .build())\n .build())\n .requestMirrorPolicy(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs.builder()\n .backendService(home.id())\n .build())\n .retryPolicy(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs.builder()\n .numRetries(4)\n .perTryTimeout(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs.builder()\n .seconds(30)\n .build())\n .retryConditions( \n \"5xx\",\n \"deadline-exceeded\")\n .build())\n .timeout(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs.builder()\n .seconds(20)\n .nanos(750000000)\n .build())\n .urlRewrite(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs.builder()\n .hostRewrite(\"dev.example.com\")\n .pathPrefixRewrite(\"/v1/api/\")\n .build())\n .weightedBackendServices(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs.builder()\n .backendService(home.id())\n .weight(400)\n .headerAction(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs.builder()\n .requestHeadersToRemoves(\"RemoveMe\")\n .requestHeadersToAdds(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs.builder()\n .headerName(\"AddMe\")\n .headerValue(\"MyValue\")\n .replace(true)\n .build())\n .responseHeadersToRemoves(\"RemoveMe\")\n .responseHeadersToAdds(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs.builder()\n .headerName(\"AddMe\")\n .headerValue(\"MyValue\")\n .replace(false)\n .build())\n .build())\n .build())\n .build())\n .build())\n .build())\n .tests(RegionUrlMapTestArgs.builder()\n .service(home.id())\n .host(\"hi.com\")\n .path(\"/home\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n regionurlmap:\n type: gcp:compute:RegionUrlMap\n properties:\n name: regionurlmap\n description: a description\n defaultService: ${home.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${home.id}\n pathRules:\n - paths:\n - /home\n routeAction:\n corsPolicy:\n allowCredentials: true\n allowHeaders:\n - Allowed content\n allowMethods:\n - GET\n allowOrigins:\n - Allowed origin\n exposeHeaders:\n - Exposed header\n maxAge: 30\n disabled: false\n faultInjectionPolicy:\n abort:\n httpStatus: 234\n percentage: 5.6\n delay:\n fixedDelay:\n seconds: 0\n nanos: 50000\n percentage: 7.8\n requestMirrorPolicy:\n backendService: ${home.id}\n retryPolicy:\n numRetries: 4\n perTryTimeout:\n seconds: 30\n retryConditions:\n - 5xx\n - deadline-exceeded\n timeout:\n seconds: 20\n nanos: 7.5e+08\n urlRewrite:\n hostRewrite: dev.example.com\n pathPrefixRewrite: /v1/api/\n weightedBackendServices:\n - backendService: ${home.id}\n weight: 400\n headerAction:\n requestHeadersToRemoves:\n - RemoveMe\n requestHeadersToAdds:\n - headerName: AddMe\n headerValue: MyValue\n replace: true\n responseHeadersToRemoves:\n - RemoveMe\n responseHeadersToAdds:\n - headerName: AddMe\n headerValue: MyValue\n replace: false\n tests:\n - service: ${home.id}\n host: hi.com\n path: /home\n home:\n type: gcp:compute:RegionBackendService\n properties:\n name: home\n protocol: HTTP\n timeoutSec: 10\n healthChecks: ${default.id}\n loadBalancingScheme: INTERNAL_MANAGED\n default:\n type: gcp:compute:RegionHealthCheck\n properties:\n name: health-check\n httpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Region Url Map L7 Ilb Path Partial\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionHealthCheck(\"default\", {\n name: \"health-check\",\n httpHealthCheck: {\n port: 80,\n },\n});\nconst home = new gcp.compute.RegionBackendService(\"home\", {\n name: \"home\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n healthChecks: _default.id,\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n});\nconst regionurlmap = new gcp.compute.RegionUrlMap(\"regionurlmap\", {\n name: \"regionurlmap\",\n description: \"a description\",\n defaultService: home.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: home.id,\n pathRules: [{\n paths: [\"/home\"],\n routeAction: {\n retryPolicy: {\n numRetries: 4,\n perTryTimeout: {\n seconds: \"30\",\n },\n retryConditions: [\n \"5xx\",\n \"deadline-exceeded\",\n ],\n },\n timeout: {\n seconds: \"20\",\n nanos: 750000000,\n },\n urlRewrite: {\n hostRewrite: \"dev.example.com\",\n pathPrefixRewrite: \"/v1/api/\",\n },\n weightedBackendServices: [{\n backendService: home.id,\n weight: 400,\n headerAction: {\n responseHeadersToAdds: [{\n headerName: \"AddMe\",\n headerValue: \"MyValue\",\n replace: false,\n }],\n },\n }],\n },\n }],\n }],\n tests: [{\n service: home.id,\n host: \"hi.com\",\n path: \"/home\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionHealthCheck(\"default\",\n name=\"health-check\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n ))\nhome = gcp.compute.RegionBackendService(\"home\",\n name=\"home\",\n protocol=\"HTTP\",\n timeout_sec=10,\n health_checks=default.id,\n load_balancing_scheme=\"INTERNAL_MANAGED\")\nregionurlmap = gcp.compute.RegionUrlMap(\"regionurlmap\",\n name=\"regionurlmap\",\n description=\"a description\",\n default_service=home.id,\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=home.id,\n path_rules=[gcp.compute.RegionUrlMapPathMatcherPathRuleArgs(\n paths=[\"/home\"],\n route_action=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionArgs(\n retry_policy=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs(\n num_retries=4,\n per_try_timeout=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs(\n seconds=\"30\",\n ),\n retry_conditions=[\n \"5xx\",\n \"deadline-exceeded\",\n ],\n ),\n timeout=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs(\n seconds=\"20\",\n nanos=750000000,\n ),\n url_rewrite=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs(\n host_rewrite=\"dev.example.com\",\n path_prefix_rewrite=\"/v1/api/\",\n ),\n weighted_backend_services=[gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs(\n backend_service=home.id,\n weight=400,\n header_action=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs(\n response_headers_to_adds=[gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs(\n header_name=\"AddMe\",\n header_value=\"MyValue\",\n replace=False,\n )],\n ),\n )],\n ),\n )],\n )],\n tests=[gcp.compute.RegionUrlMapTestArgs(\n service=home.id,\n host=\"hi.com\",\n path=\"/home\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var home = new Gcp.Compute.RegionBackendService(\"home\", new()\n {\n Name = \"home\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n });\n\n var regionurlmap = new Gcp.Compute.RegionUrlMap(\"regionurlmap\", new()\n {\n Name = \"regionurlmap\",\n Description = \"a description\",\n DefaultService = home.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = home.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/home\",\n },\n RouteAction = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionArgs\n {\n RetryPolicy = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs\n {\n NumRetries = 4,\n PerTryTimeout = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs\n {\n Seconds = \"30\",\n },\n RetryConditions = new[]\n {\n \"5xx\",\n \"deadline-exceeded\",\n },\n },\n Timeout = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs\n {\n Seconds = \"20\",\n Nanos = 750000000,\n },\n UrlRewrite = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs\n {\n HostRewrite = \"dev.example.com\",\n PathPrefixRewrite = \"/v1/api/\",\n },\n WeightedBackendServices = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs\n {\n BackendService = home.Id,\n Weight = 400,\n HeaderAction = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs\n {\n ResponseHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs\n {\n HeaderName = \"AddMe\",\n HeaderValue = \"MyValue\",\n Replace = false,\n },\n },\n },\n },\n },\n },\n },\n },\n },\n },\n Tests = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapTestArgs\n {\n Service = home.Id,\n Host = \"hi.com\",\n Path = \"/home\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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 := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thome, err := compute.NewRegionBackendService(ctx, \"home\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"home\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionUrlMap(ctx, \"regionurlmap\", \u0026compute.RegionUrlMapArgs{\n\t\t\tName: pulumi.String(\"regionurlmap\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: home.ID(),\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: home.ID(),\n\t\t\t\t\tPathRules: compute.RegionUrlMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/home\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tRouteAction: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionArgs{\n\t\t\t\t\t\t\t\tRetryPolicy: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs{\n\t\t\t\t\t\t\t\t\tNumRetries: pulumi.Int(4),\n\t\t\t\t\t\t\t\t\tPerTryTimeout: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs{\n\t\t\t\t\t\t\t\t\t\tSeconds: pulumi.String(\"30\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tRetryConditions: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"5xx\"),\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"deadline-exceeded\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tTimeout: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs{\n\t\t\t\t\t\t\t\t\tSeconds: pulumi.String(\"20\"),\n\t\t\t\t\t\t\t\t\tNanos: pulumi.Int(750000000),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tUrlRewrite: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs{\n\t\t\t\t\t\t\t\t\tHostRewrite: pulumi.String(\"dev.example.com\"),\n\t\t\t\t\t\t\t\t\tPathPrefixRewrite: pulumi.String(\"/v1/api/\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tWeightedBackendServices: compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray{\n\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs{\n\t\t\t\t\t\t\t\t\t\tBackendService: home.ID(),\n\t\t\t\t\t\t\t\t\t\tWeight: pulumi.Int(400),\n\t\t\t\t\t\t\t\t\t\tHeaderAction: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs{\n\t\t\t\t\t\t\t\t\t\t\tResponseHeadersToAdds: compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{\n\t\t\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"AddMe\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"MyValue\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\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},\n\t\t\t},\n\t\t\tTests: compute.RegionUrlMapTestArray{\n\t\t\t\t\u0026compute.RegionUrlMapTestArgs{\n\t\t\t\t\tService: home.ID(),\n\t\t\t\t\tHost: pulumi.String(\"hi.com\"),\n\t\t\t\t\tPath: pulumi.String(\"/home\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapTestArgs;\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 default_ = new RegionHealthCheck(\"default\", RegionHealthCheckArgs.builder() \n .name(\"health-check\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var home = new RegionBackendService(\"home\", RegionBackendServiceArgs.builder() \n .name(\"home\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .build());\n\n var regionurlmap = new RegionUrlMap(\"regionurlmap\", RegionUrlMapArgs.builder() \n .name(\"regionurlmap\")\n .description(\"a description\")\n .defaultService(home.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(home.id())\n .pathRules(RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/home\")\n .routeAction(RegionUrlMapPathMatcherPathRuleRouteActionArgs.builder()\n .retryPolicy(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs.builder()\n .numRetries(4)\n .perTryTimeout(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs.builder()\n .seconds(30)\n .build())\n .retryConditions( \n \"5xx\",\n \"deadline-exceeded\")\n .build())\n .timeout(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs.builder()\n .seconds(20)\n .nanos(750000000)\n .build())\n .urlRewrite(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs.builder()\n .hostRewrite(\"dev.example.com\")\n .pathPrefixRewrite(\"/v1/api/\")\n .build())\n .weightedBackendServices(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs.builder()\n .backendService(home.id())\n .weight(400)\n .headerAction(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs.builder()\n .responseHeadersToAdds(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs.builder()\n .headerName(\"AddMe\")\n .headerValue(\"MyValue\")\n .replace(false)\n .build())\n .build())\n .build())\n .build())\n .build())\n .build())\n .tests(RegionUrlMapTestArgs.builder()\n .service(home.id())\n .host(\"hi.com\")\n .path(\"/home\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n regionurlmap:\n type: gcp:compute:RegionUrlMap\n properties:\n name: regionurlmap\n description: a description\n defaultService: ${home.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${home.id}\n pathRules:\n - paths:\n - /home\n routeAction:\n retryPolicy:\n numRetries: 4\n perTryTimeout:\n seconds: 30\n retryConditions:\n - 5xx\n - deadline-exceeded\n timeout:\n seconds: 20\n nanos: 7.5e+08\n urlRewrite:\n hostRewrite: dev.example.com\n pathPrefixRewrite: /v1/api/\n weightedBackendServices:\n - backendService: ${home.id}\n weight: 400\n headerAction:\n responseHeadersToAdds:\n - headerName: AddMe\n headerValue: MyValue\n replace: false\n tests:\n - service: ${home.id}\n host: hi.com\n path: /home\n home:\n type: gcp:compute:RegionBackendService\n properties:\n name: home\n protocol: HTTP\n timeoutSec: 10\n healthChecks: ${default.id}\n loadBalancingScheme: INTERNAL_MANAGED\n default:\n type: gcp:compute:RegionHealthCheck\n properties:\n name: health-check\n httpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Region Url Map L7 Ilb Route\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionHealthCheck(\"default\", {\n name: \"health-check\",\n httpHealthCheck: {\n port: 80,\n },\n});\nconst home = new gcp.compute.RegionBackendService(\"home\", {\n name: \"home\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n healthChecks: _default.id,\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n});\nconst regionurlmap = new gcp.compute.RegionUrlMap(\"regionurlmap\", {\n name: \"regionurlmap\",\n description: \"a description\",\n defaultService: home.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: home.id,\n routeRules: [{\n priority: 1,\n headerAction: {\n requestHeadersToRemoves: [\"RemoveMe2\"],\n requestHeadersToAdds: [{\n headerName: \"AddSomethingElse\",\n headerValue: \"MyOtherValue\",\n replace: true,\n }],\n responseHeadersToRemoves: [\"RemoveMe3\"],\n responseHeadersToAdds: [{\n headerName: \"AddMe\",\n headerValue: \"MyValue\",\n replace: false,\n }],\n },\n matchRules: [{\n fullPathMatch: \"a full path\",\n headerMatches: [{\n headerName: \"someheader\",\n exactMatch: \"match this exactly\",\n invertMatch: true,\n }],\n ignoreCase: true,\n metadataFilters: [{\n filterMatchCriteria: \"MATCH_ANY\",\n filterLabels: [{\n name: \"PLANET\",\n value: \"MARS\",\n }],\n }],\n queryParameterMatches: [{\n name: \"a query parameter\",\n presentMatch: true,\n }],\n }],\n urlRedirect: {\n hostRedirect: \"A host\",\n httpsRedirect: false,\n pathRedirect: \"some/path\",\n redirectResponseCode: \"TEMPORARY_REDIRECT\",\n stripQuery: true,\n },\n }],\n }],\n tests: [{\n service: home.id,\n host: \"hi.com\",\n path: \"/home\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionHealthCheck(\"default\",\n name=\"health-check\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n ))\nhome = gcp.compute.RegionBackendService(\"home\",\n name=\"home\",\n protocol=\"HTTP\",\n timeout_sec=10,\n health_checks=default.id,\n load_balancing_scheme=\"INTERNAL_MANAGED\")\nregionurlmap = gcp.compute.RegionUrlMap(\"regionurlmap\",\n name=\"regionurlmap\",\n description=\"a description\",\n default_service=home.id,\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=home.id,\n route_rules=[gcp.compute.RegionUrlMapPathMatcherRouteRuleArgs(\n priority=1,\n header_action=gcp.compute.RegionUrlMapPathMatcherRouteRuleHeaderActionArgs(\n request_headers_to_removes=[\"RemoveMe2\"],\n request_headers_to_adds=[gcp.compute.RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs(\n header_name=\"AddSomethingElse\",\n header_value=\"MyOtherValue\",\n replace=True,\n )],\n response_headers_to_removes=[\"RemoveMe3\"],\n response_headers_to_adds=[gcp.compute.RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs(\n header_name=\"AddMe\",\n header_value=\"MyValue\",\n replace=False,\n )],\n ),\n match_rules=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs(\n full_path_match=\"a full path\",\n header_matches=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs(\n header_name=\"someheader\",\n exact_match=\"match this exactly\",\n invert_match=True,\n )],\n ignore_case=True,\n metadata_filters=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs(\n filter_match_criteria=\"MATCH_ANY\",\n filter_labels=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs(\n name=\"PLANET\",\n value=\"MARS\",\n )],\n )],\n query_parameter_matches=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs(\n name=\"a query parameter\",\n present_match=True,\n )],\n )],\n url_redirect=gcp.compute.RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs(\n host_redirect=\"A host\",\n https_redirect=False,\n path_redirect=\"some/path\",\n redirect_response_code=\"TEMPORARY_REDIRECT\",\n strip_query=True,\n ),\n )],\n )],\n tests=[gcp.compute.RegionUrlMapTestArgs(\n service=home.id,\n host=\"hi.com\",\n path=\"/home\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var home = new Gcp.Compute.RegionBackendService(\"home\", new()\n {\n Name = \"home\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n });\n\n var regionurlmap = new Gcp.Compute.RegionUrlMap(\"regionurlmap\", new()\n {\n Name = \"regionurlmap\",\n Description = \"a description\",\n DefaultService = home.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = home.Id,\n RouteRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleArgs\n {\n Priority = 1,\n HeaderAction = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleHeaderActionArgs\n {\n RequestHeadersToRemoves = new[]\n {\n \"RemoveMe2\",\n },\n RequestHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs\n {\n HeaderName = \"AddSomethingElse\",\n HeaderValue = \"MyOtherValue\",\n Replace = true,\n },\n },\n ResponseHeadersToRemoves = new[]\n {\n \"RemoveMe3\",\n },\n ResponseHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs\n {\n HeaderName = \"AddMe\",\n HeaderValue = \"MyValue\",\n Replace = false,\n },\n },\n },\n MatchRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs\n {\n FullPathMatch = \"a full path\",\n HeaderMatches = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs\n {\n HeaderName = \"someheader\",\n ExactMatch = \"match this exactly\",\n InvertMatch = true,\n },\n },\n IgnoreCase = true,\n MetadataFilters = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs\n {\n FilterMatchCriteria = \"MATCH_ANY\",\n FilterLabels = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs\n {\n Name = \"PLANET\",\n Value = \"MARS\",\n },\n },\n },\n },\n QueryParameterMatches = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs\n {\n Name = \"a query parameter\",\n PresentMatch = true,\n },\n },\n },\n },\n UrlRedirect = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs\n {\n HostRedirect = \"A host\",\n HttpsRedirect = false,\n PathRedirect = \"some/path\",\n RedirectResponseCode = \"TEMPORARY_REDIRECT\",\n StripQuery = true,\n },\n },\n },\n },\n },\n Tests = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapTestArgs\n {\n Service = home.Id,\n Host = \"hi.com\",\n Path = \"/home\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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 := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thome, err := compute.NewRegionBackendService(ctx, \"home\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"home\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionUrlMap(ctx, \"regionurlmap\", \u0026compute.RegionUrlMapArgs{\n\t\t\tName: pulumi.String(\"regionurlmap\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: home.ID(),\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: home.ID(),\n\t\t\t\t\tRouteRules: compute.RegionUrlMapPathMatcherRouteRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleArgs{\n\t\t\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\t\t\tHeaderAction: \u0026compute.RegionUrlMapPathMatcherRouteRuleHeaderActionArgs{\n\t\t\t\t\t\t\t\tRequestHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\tpulumi.String(\"RemoveMe2\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tRequestHeadersToAdds: compute.RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArray{\n\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"AddSomethingElse\"),\n\t\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"MyOtherValue\"),\n\t\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tResponseHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\tpulumi.String(\"RemoveMe3\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tResponseHeadersToAdds: compute.RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArray{\n\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"AddMe\"),\n\t\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"MyValue\"),\n\t\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tMatchRules: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs{\n\t\t\t\t\t\t\t\t\tFullPathMatch: pulumi.String(\"a full path\"),\n\t\t\t\t\t\t\t\t\tHeaderMatches: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray{\n\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs{\n\t\t\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"someheader\"),\n\t\t\t\t\t\t\t\t\t\t\tExactMatch: pulumi.String(\"match this exactly\"),\n\t\t\t\t\t\t\t\t\t\t\tInvertMatch: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tIgnoreCase: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\tMetadataFilters: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArray{\n\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs{\n\t\t\t\t\t\t\t\t\t\t\tFilterMatchCriteria: pulumi.String(\"MATCH_ANY\"),\n\t\t\t\t\t\t\t\t\t\t\tFilterLabels: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArray{\n\t\t\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs{\n\t\t\t\t\t\t\t\t\t\t\t\t\tName: pulumi.String(\"PLANET\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tValue: pulumi.String(\"MARS\"),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tQueryParameterMatches: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray{\n\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs{\n\t\t\t\t\t\t\t\t\t\t\tName: pulumi.String(\"a query parameter\"),\n\t\t\t\t\t\t\t\t\t\t\tPresentMatch: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tUrlRedirect: \u0026compute.RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs{\n\t\t\t\t\t\t\t\tHostRedirect: pulumi.String(\"A host\"),\n\t\t\t\t\t\t\t\tHttpsRedirect: pulumi.Bool(false),\n\t\t\t\t\t\t\t\tPathRedirect: pulumi.String(\"some/path\"),\n\t\t\t\t\t\t\t\tRedirectResponseCode: pulumi.String(\"TEMPORARY_REDIRECT\"),\n\t\t\t\t\t\t\t\tStripQuery: pulumi.Bool(true),\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},\n\t\t\t},\n\t\t\tTests: compute.RegionUrlMapTestArray{\n\t\t\t\t\u0026compute.RegionUrlMapTestArgs{\n\t\t\t\t\tService: home.ID(),\n\t\t\t\t\tHost: pulumi.String(\"hi.com\"),\n\t\t\t\t\tPath: pulumi.String(\"/home\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapTestArgs;\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 default_ = new RegionHealthCheck(\"default\", RegionHealthCheckArgs.builder() \n .name(\"health-check\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var home = new RegionBackendService(\"home\", RegionBackendServiceArgs.builder() \n .name(\"home\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .build());\n\n var regionurlmap = new RegionUrlMap(\"regionurlmap\", RegionUrlMapArgs.builder() \n .name(\"regionurlmap\")\n .description(\"a description\")\n .defaultService(home.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(home.id())\n .routeRules(RegionUrlMapPathMatcherRouteRuleArgs.builder()\n .priority(1)\n .headerAction(RegionUrlMapPathMatcherRouteRuleHeaderActionArgs.builder()\n .requestHeadersToRemoves(\"RemoveMe2\")\n .requestHeadersToAdds(RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs.builder()\n .headerName(\"AddSomethingElse\")\n .headerValue(\"MyOtherValue\")\n .replace(true)\n .build())\n .responseHeadersToRemoves(\"RemoveMe3\")\n .responseHeadersToAdds(RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs.builder()\n .headerName(\"AddMe\")\n .headerValue(\"MyValue\")\n .replace(false)\n .build())\n .build())\n .matchRules(RegionUrlMapPathMatcherRouteRuleMatchRuleArgs.builder()\n .fullPathMatch(\"a full path\")\n .headerMatches(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs.builder()\n .headerName(\"someheader\")\n .exactMatch(\"match this exactly\")\n .invertMatch(true)\n .build())\n .ignoreCase(true)\n .metadataFilters(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs.builder()\n .filterMatchCriteria(\"MATCH_ANY\")\n .filterLabels(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs.builder()\n .name(\"PLANET\")\n .value(\"MARS\")\n .build())\n .build())\n .queryParameterMatches(RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs.builder()\n .name(\"a query parameter\")\n .presentMatch(true)\n .build())\n .build())\n .urlRedirect(RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs.builder()\n .hostRedirect(\"A host\")\n .httpsRedirect(false)\n .pathRedirect(\"some/path\")\n .redirectResponseCode(\"TEMPORARY_REDIRECT\")\n .stripQuery(true)\n .build())\n .build())\n .build())\n .tests(RegionUrlMapTestArgs.builder()\n .service(home.id())\n .host(\"hi.com\")\n .path(\"/home\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n regionurlmap:\n type: gcp:compute:RegionUrlMap\n properties:\n name: regionurlmap\n description: a description\n defaultService: ${home.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${home.id}\n routeRules:\n - priority: 1\n headerAction:\n requestHeadersToRemoves:\n - RemoveMe2\n requestHeadersToAdds:\n - headerName: AddSomethingElse\n headerValue: MyOtherValue\n replace: true\n responseHeadersToRemoves:\n - RemoveMe3\n responseHeadersToAdds:\n - headerName: AddMe\n headerValue: MyValue\n replace: false\n matchRules:\n - fullPathMatch: a full path\n headerMatches:\n - headerName: someheader\n exactMatch: match this exactly\n invertMatch: true\n ignoreCase: true\n metadataFilters:\n - filterMatchCriteria: MATCH_ANY\n filterLabels:\n - name: PLANET\n value: MARS\n queryParameterMatches:\n - name: a query parameter\n presentMatch: true\n urlRedirect:\n hostRedirect: A host\n httpsRedirect: false\n pathRedirect: some/path\n redirectResponseCode: TEMPORARY_REDIRECT\n stripQuery: true\n tests:\n - service: ${home.id}\n host: hi.com\n path: /home\n home:\n type: gcp:compute:RegionBackendService\n properties:\n name: home\n protocol: HTTP\n timeoutSec: 10\n healthChecks: ${default.id}\n loadBalancingScheme: INTERNAL_MANAGED\n default:\n type: gcp:compute:RegionHealthCheck\n properties:\n name: health-check\n httpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Region Url Map L7 Ilb Route Partial\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionHealthCheck(\"default\", {\n name: \"health-check\",\n httpHealthCheck: {\n port: 80,\n },\n});\nconst home = new gcp.compute.RegionBackendService(\"home\", {\n name: \"home\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n healthChecks: _default.id,\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n});\nconst regionurlmap = new gcp.compute.RegionUrlMap(\"regionurlmap\", {\n name: \"regionurlmap\",\n description: \"a description\",\n defaultService: home.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: home.id,\n routeRules: [{\n priority: 1,\n service: home.id,\n headerAction: {\n requestHeadersToRemoves: [\"RemoveMe2\"],\n },\n matchRules: [{\n fullPathMatch: \"a full path\",\n headerMatches: [{\n headerName: \"someheader\",\n exactMatch: \"match this exactly\",\n invertMatch: true,\n }],\n queryParameterMatches: [{\n name: \"a query parameter\",\n presentMatch: true,\n }],\n }],\n }],\n }],\n tests: [{\n service: home.id,\n host: \"hi.com\",\n path: \"/home\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionHealthCheck(\"default\",\n name=\"health-check\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n ))\nhome = gcp.compute.RegionBackendService(\"home\",\n name=\"home\",\n protocol=\"HTTP\",\n timeout_sec=10,\n health_checks=default.id,\n load_balancing_scheme=\"INTERNAL_MANAGED\")\nregionurlmap = gcp.compute.RegionUrlMap(\"regionurlmap\",\n name=\"regionurlmap\",\n description=\"a description\",\n default_service=home.id,\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=home.id,\n route_rules=[gcp.compute.RegionUrlMapPathMatcherRouteRuleArgs(\n priority=1,\n service=home.id,\n header_action=gcp.compute.RegionUrlMapPathMatcherRouteRuleHeaderActionArgs(\n request_headers_to_removes=[\"RemoveMe2\"],\n ),\n match_rules=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs(\n full_path_match=\"a full path\",\n header_matches=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs(\n header_name=\"someheader\",\n exact_match=\"match this exactly\",\n invert_match=True,\n )],\n query_parameter_matches=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs(\n name=\"a query parameter\",\n present_match=True,\n )],\n )],\n )],\n )],\n tests=[gcp.compute.RegionUrlMapTestArgs(\n service=home.id,\n host=\"hi.com\",\n path=\"/home\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var home = new Gcp.Compute.RegionBackendService(\"home\", new()\n {\n Name = \"home\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n });\n\n var regionurlmap = new Gcp.Compute.RegionUrlMap(\"regionurlmap\", new()\n {\n Name = \"regionurlmap\",\n Description = \"a description\",\n DefaultService = home.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = home.Id,\n RouteRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleArgs\n {\n Priority = 1,\n Service = home.Id,\n HeaderAction = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleHeaderActionArgs\n {\n RequestHeadersToRemoves = new[]\n {\n \"RemoveMe2\",\n },\n },\n MatchRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs\n {\n FullPathMatch = \"a full path\",\n HeaderMatches = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs\n {\n HeaderName = \"someheader\",\n ExactMatch = \"match this exactly\",\n InvertMatch = true,\n },\n },\n QueryParameterMatches = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs\n {\n Name = \"a query parameter\",\n PresentMatch = true,\n },\n },\n },\n },\n },\n },\n },\n },\n Tests = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapTestArgs\n {\n Service = home.Id,\n Host = \"hi.com\",\n Path = \"/home\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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 := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thome, err := compute.NewRegionBackendService(ctx, \"home\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"home\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionUrlMap(ctx, \"regionurlmap\", \u0026compute.RegionUrlMapArgs{\n\t\t\tName: pulumi.String(\"regionurlmap\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: home.ID(),\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: home.ID(),\n\t\t\t\t\tRouteRules: compute.RegionUrlMapPathMatcherRouteRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleArgs{\n\t\t\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\t\t\tService: home.ID(),\n\t\t\t\t\t\t\tHeaderAction: \u0026compute.RegionUrlMapPathMatcherRouteRuleHeaderActionArgs{\n\t\t\t\t\t\t\t\tRequestHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\tpulumi.String(\"RemoveMe2\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tMatchRules: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs{\n\t\t\t\t\t\t\t\t\tFullPathMatch: pulumi.String(\"a full path\"),\n\t\t\t\t\t\t\t\t\tHeaderMatches: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray{\n\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs{\n\t\t\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"someheader\"),\n\t\t\t\t\t\t\t\t\t\t\tExactMatch: pulumi.String(\"match this exactly\"),\n\t\t\t\t\t\t\t\t\t\t\tInvertMatch: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tQueryParameterMatches: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray{\n\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs{\n\t\t\t\t\t\t\t\t\t\t\tName: pulumi.String(\"a query parameter\"),\n\t\t\t\t\t\t\t\t\t\t\tPresentMatch: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\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},\n\t\t\t},\n\t\t\tTests: compute.RegionUrlMapTestArray{\n\t\t\t\t\u0026compute.RegionUrlMapTestArgs{\n\t\t\t\t\tService: home.ID(),\n\t\t\t\t\tHost: pulumi.String(\"hi.com\"),\n\t\t\t\t\tPath: pulumi.String(\"/home\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapTestArgs;\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 default_ = new RegionHealthCheck(\"default\", RegionHealthCheckArgs.builder() \n .name(\"health-check\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var home = new RegionBackendService(\"home\", RegionBackendServiceArgs.builder() \n .name(\"home\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .build());\n\n var regionurlmap = new RegionUrlMap(\"regionurlmap\", RegionUrlMapArgs.builder() \n .name(\"regionurlmap\")\n .description(\"a description\")\n .defaultService(home.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(home.id())\n .routeRules(RegionUrlMapPathMatcherRouteRuleArgs.builder()\n .priority(1)\n .service(home.id())\n .headerAction(RegionUrlMapPathMatcherRouteRuleHeaderActionArgs.builder()\n .requestHeadersToRemoves(\"RemoveMe2\")\n .build())\n .matchRules(RegionUrlMapPathMatcherRouteRuleMatchRuleArgs.builder()\n .fullPathMatch(\"a full path\")\n .headerMatches(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs.builder()\n .headerName(\"someheader\")\n .exactMatch(\"match this exactly\")\n .invertMatch(true)\n .build())\n .queryParameterMatches(RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs.builder()\n .name(\"a query parameter\")\n .presentMatch(true)\n .build())\n .build())\n .build())\n .build())\n .tests(RegionUrlMapTestArgs.builder()\n .service(home.id())\n .host(\"hi.com\")\n .path(\"/home\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n regionurlmap:\n type: gcp:compute:RegionUrlMap\n properties:\n name: regionurlmap\n description: a description\n defaultService: ${home.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${home.id}\n routeRules:\n - priority: 1\n service: ${home.id}\n headerAction:\n requestHeadersToRemoves:\n - RemoveMe2\n matchRules:\n - fullPathMatch: a full path\n headerMatches:\n - headerName: someheader\n exactMatch: match this exactly\n invertMatch: true\n queryParameterMatches:\n - name: a query parameter\n presentMatch: true\n tests:\n - service: ${home.id}\n host: hi.com\n path: /home\n home:\n type: gcp:compute:RegionBackendService\n properties:\n name: home\n protocol: HTTP\n timeoutSec: 10\n healthChecks: ${default.id}\n loadBalancingScheme: INTERNAL_MANAGED\n default:\n type: gcp:compute:RegionHealthCheck\n properties:\n name: health-check\n httpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Int Https Lb Https Redirect\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as tls from \"@pulumi/tls\";\n\n// Internal HTTPS load balancer with HTTP-to-HTTPS redirect\n// VPC network\nconst _default = new gcp.compute.Network(\"default\", {\n name: \"l7-ilb-network\",\n autoCreateSubnetworks: false,\n});\n// Proxy-only subnet\nconst proxySubnet = new gcp.compute.Subnetwork(\"proxy_subnet\", {\n name: \"l7-ilb-proxy-subnet\",\n ipCidrRange: \"10.0.0.0/24\",\n region: \"europe-west1\",\n purpose: \"REGIONAL_MANAGED_PROXY\",\n role: \"ACTIVE\",\n network: _default.id,\n});\n// Backend subnet\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"l7-ilb-subnet\",\n ipCidrRange: \"10.0.1.0/24\",\n region: \"europe-west1\",\n network: _default.id,\n});\n// Reserved internal address\nconst defaultAddress = new gcp.compute.Address(\"default\", {\n name: \"l7-ilb-ip\",\n subnetwork: defaultSubnetwork.id,\n addressType: \"INTERNAL\",\n address: \"10.0.1.5\",\n region: \"europe-west1\",\n purpose: \"SHARED_LOADBALANCER_VIP\",\n});\n// Self-signed regional SSL certificate for testing\nconst defaultPrivateKey = new tls.PrivateKey(\"default\", {\n algorithm: \"RSA\",\n rsaBits: 2048,\n});\nconst defaultSelfSignedCert = new tls.SelfSignedCert(\"default\", {\n keyAlgorithm: defaultPrivateKey.algorithm,\n privateKeyPem: defaultPrivateKey.privateKeyPem,\n validityPeriodHours: 12,\n earlyRenewalHours: 3,\n allowedUses: [\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ],\n dnsNames: [\"example.com\"],\n subject: {\n commonName: \"example.com\",\n organization: \"ACME Examples, Inc\",\n },\n});\nconst defaultRegionSslCertificate = new gcp.compute.RegionSslCertificate(\"default\", {\n namePrefix: \"my-certificate-\",\n privateKey: defaultPrivateKey.privateKeyPem,\n certificate: defaultSelfSignedCert.certPem,\n region: \"europe-west1\",\n});\n// Regional health check\nconst defaultRegionHealthCheck = new gcp.compute.RegionHealthCheck(\"default\", {\n name: \"l7-ilb-hc\",\n region: \"europe-west1\",\n httpHealthCheck: {\n portSpecification: \"USE_SERVING_PORT\",\n },\n});\n// Instance template\nconst defaultInstanceTemplate = new gcp.compute.InstanceTemplate(\"default\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: _default.id,\n subnetwork: defaultSubnetwork.id,\n }],\n name: \"l7-ilb-mig-template\",\n machineType: \"e2-small\",\n tags: [\"http-server\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\n// Regional MIG\nconst defaultRegionInstanceGroupManager = new gcp.compute.RegionInstanceGroupManager(\"default\", {\n name: \"l7-ilb-mig1\",\n region: \"europe-west1\",\n versions: [{\n instanceTemplate: defaultInstanceTemplate.id,\n name: \"primary\",\n }],\n namedPorts: [{\n name: \"http-server\",\n port: 80,\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// Regional backend service\nconst defaultRegionBackendService = new gcp.compute.RegionBackendService(\"default\", {\n name: \"l7-ilb-backend-service\",\n region: \"europe-west1\",\n protocol: \"HTTP\",\n portName: \"http-server\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n timeoutSec: 10,\n healthChecks: defaultRegionHealthCheck.id,\n backends: [{\n group: defaultRegionInstanceGroupManager.instanceGroup,\n balancingMode: \"UTILIZATION\",\n capacityScaler: 1,\n }],\n});\n// Regional URL map\nconst httpsLb = new gcp.compute.RegionUrlMap(\"https_lb\", {\n name: \"l7-ilb-regional-url-map\",\n region: \"europe-west1\",\n defaultService: defaultRegionBackendService.id,\n});\n// Regional target HTTPS proxy\nconst defaultRegionTargetHttpsProxy = new gcp.compute.RegionTargetHttpsProxy(\"default\", {\n name: \"l7-ilb-target-https-proxy\",\n region: \"europe-west1\",\n urlMap: httpsLb.id,\n sslCertificates: [defaultRegionSslCertificate.selfLink],\n});\n// Regional forwarding rule\nconst defaultForwardingRule = new gcp.compute.ForwardingRule(\"default\", {\n name: \"l7-ilb-forwarding-rule\",\n region: \"europe-west1\",\n ipProtocol: \"TCP\",\n ipAddress: defaultAddress.id,\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n portRange: \"443\",\n target: defaultRegionTargetHttpsProxy.id,\n network: _default.id,\n subnetwork: defaultSubnetwork.id,\n networkTier: \"PREMIUM\",\n});\n// Allow all access to health check ranges\nconst defaultFirewall = new gcp.compute.Firewall(\"default\", {\n name: \"l7-ilb-fw-allow-hc\",\n direction: \"INGRESS\",\n network: _default.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n});\n// Allow http from proxy subnet to backends\nconst backends = new gcp.compute.Firewall(\"backends\", {\n name: \"l7-ilb-fw-allow-ilb-to-backends\",\n direction: \"INGRESS\",\n network: _default.id,\n sourceRanges: [\"10.0.0.0/24\"],\n targetTags: [\"http-server\"],\n allows: [{\n protocol: \"tcp\",\n ports: [\n \"80\",\n \"443\",\n \"8080\",\n ],\n }],\n});\n// Test instance\nconst defaultInstance = new gcp.compute.Instance(\"default\", {\n name: \"l7-ilb-test-vm\",\n zone: \"europe-west1-b\",\n machineType: \"e2-small\",\n networkInterfaces: [{\n network: _default.id,\n subnetwork: defaultSubnetwork.id,\n }],\n bootDisk: {\n initializeParams: {\n image: \"debian-cloud/debian-10\",\n },\n },\n});\n//## HTTP-to-HTTPS redirect ###\n// Regional URL map\nconst redirectRegionUrlMap = new gcp.compute.RegionUrlMap(\"redirect\", {\n name: \"l7-ilb-redirect-url-map\",\n region: \"europe-west1\",\n defaultService: defaultRegionBackendService.id,\n hostRules: [{\n hosts: [\"*\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: defaultRegionBackendService.id,\n pathRules: [{\n paths: [\"/\"],\n urlRedirect: {\n httpsRedirect: true,\n hostRedirect: \"10.0.1.5:443\",\n redirectResponseCode: \"PERMANENT_REDIRECT\",\n stripQuery: true,\n },\n }],\n }],\n});\n// Regional HTTP proxy\nconst defaultRegionTargetHttpProxy = new gcp.compute.RegionTargetHttpProxy(\"default\", {\n name: \"l7-ilb-target-http-proxy\",\n region: \"europe-west1\",\n urlMap: redirectRegionUrlMap.id,\n});\n// Regional forwarding rule\nconst redirect = new gcp.compute.ForwardingRule(\"redirect\", {\n name: \"l7-ilb-redirect\",\n region: \"europe-west1\",\n ipProtocol: \"TCP\",\n ipAddress: defaultAddress.id,\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n portRange: \"80\",\n target: defaultRegionTargetHttpProxy.id,\n network: _default.id,\n subnetwork: defaultSubnetwork.id,\n networkTier: \"PREMIUM\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_tls as tls\n\n# Internal HTTPS load balancer with HTTP-to-HTTPS redirect\n# VPC network\ndefault = gcp.compute.Network(\"default\",\n name=\"l7-ilb-network\",\n auto_create_subnetworks=False)\n# Proxy-only subnet\nproxy_subnet = gcp.compute.Subnetwork(\"proxy_subnet\",\n name=\"l7-ilb-proxy-subnet\",\n ip_cidr_range=\"10.0.0.0/24\",\n region=\"europe-west1\",\n purpose=\"REGIONAL_MANAGED_PROXY\",\n role=\"ACTIVE\",\n network=default.id)\n# Backend subnet\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"l7-ilb-subnet\",\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"europe-west1\",\n network=default.id)\n# Reserved internal address\ndefault_address = gcp.compute.Address(\"default\",\n name=\"l7-ilb-ip\",\n subnetwork=default_subnetwork.id,\n address_type=\"INTERNAL\",\n address=\"10.0.1.5\",\n region=\"europe-west1\",\n purpose=\"SHARED_LOADBALANCER_VIP\")\n# Self-signed regional SSL certificate for testing\ndefault_private_key = tls.PrivateKey(\"default\",\n algorithm=\"RSA\",\n rsa_bits=2048)\ndefault_self_signed_cert = tls.SelfSignedCert(\"default\",\n key_algorithm=default_private_key.algorithm,\n private_key_pem=default_private_key.private_key_pem,\n validity_period_hours=12,\n early_renewal_hours=3,\n allowed_uses=[\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ],\n dns_names=[\"example.com\"],\n subject=tls.SelfSignedCertSubjectArgs(\n common_name=\"example.com\",\n organization=\"ACME Examples, Inc\",\n ))\ndefault_region_ssl_certificate = gcp.compute.RegionSslCertificate(\"default\",\n name_prefix=\"my-certificate-\",\n private_key=default_private_key.private_key_pem,\n certificate=default_self_signed_cert.cert_pem,\n region=\"europe-west1\")\n# Regional health check\ndefault_region_health_check = gcp.compute.RegionHealthCheck(\"default\",\n name=\"l7-ilb-hc\",\n region=\"europe-west1\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port_specification=\"USE_SERVING_PORT\",\n ))\n# Instance template\ndefault_instance_template = gcp.compute.InstanceTemplate(\"default\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=default.id,\n subnetwork=default_subnetwork.id,\n )],\n name=\"l7-ilb-mig-template\",\n machine_type=\"e2-small\",\n tags=[\"http-server\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\n# Regional MIG\ndefault_region_instance_group_manager = gcp.compute.RegionInstanceGroupManager(\"default\",\n name=\"l7-ilb-mig1\",\n region=\"europe-west1\",\n versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(\n instance_template=default_instance_template.id,\n name=\"primary\",\n )],\n named_ports=[gcp.compute.RegionInstanceGroupManagerNamedPortArgs(\n name=\"http-server\",\n port=80,\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# Regional backend service\ndefault_region_backend_service = gcp.compute.RegionBackendService(\"default\",\n name=\"l7-ilb-backend-service\",\n region=\"europe-west1\",\n protocol=\"HTTP\",\n port_name=\"http-server\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n timeout_sec=10,\n health_checks=default_region_health_check.id,\n backends=[gcp.compute.RegionBackendServiceBackendArgs(\n group=default_region_instance_group_manager.instance_group,\n balancing_mode=\"UTILIZATION\",\n capacity_scaler=1,\n )])\n# Regional URL map\nhttps_lb = gcp.compute.RegionUrlMap(\"https_lb\",\n name=\"l7-ilb-regional-url-map\",\n region=\"europe-west1\",\n default_service=default_region_backend_service.id)\n# Regional target HTTPS proxy\ndefault_region_target_https_proxy = gcp.compute.RegionTargetHttpsProxy(\"default\",\n name=\"l7-ilb-target-https-proxy\",\n region=\"europe-west1\",\n url_map=https_lb.id,\n ssl_certificates=[default_region_ssl_certificate.self_link])\n# Regional forwarding rule\ndefault_forwarding_rule = gcp.compute.ForwardingRule(\"default\",\n name=\"l7-ilb-forwarding-rule\",\n region=\"europe-west1\",\n ip_protocol=\"TCP\",\n ip_address=default_address.id,\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n port_range=\"443\",\n target=default_region_target_https_proxy.id,\n network=default.id,\n subnetwork=default_subnetwork.id,\n network_tier=\"PREMIUM\")\n# Allow all access to health check ranges\ndefault_firewall = gcp.compute.Firewall(\"default\",\n name=\"l7-ilb-fw-allow-hc\",\n direction=\"INGRESS\",\n network=default.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )])\n# Allow http from proxy subnet to backends\nbackends = gcp.compute.Firewall(\"backends\",\n name=\"l7-ilb-fw-allow-ilb-to-backends\",\n direction=\"INGRESS\",\n network=default.id,\n source_ranges=[\"10.0.0.0/24\"],\n target_tags=[\"http-server\"],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\n \"80\",\n \"443\",\n \"8080\",\n ],\n )])\n# Test instance\ndefault_instance = gcp.compute.Instance(\"default\",\n name=\"l7-ilb-test-vm\",\n zone=\"europe-west1-b\",\n machine_type=\"e2-small\",\n network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(\n network=default.id,\n subnetwork=default_subnetwork.id,\n )],\n boot_disk=gcp.compute.InstanceBootDiskArgs(\n initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(\n image=\"debian-cloud/debian-10\",\n ),\n ))\n### HTTP-to-HTTPS redirect ###\n# Regional URL map\nredirect_region_url_map = gcp.compute.RegionUrlMap(\"redirect\",\n name=\"l7-ilb-redirect-url-map\",\n region=\"europe-west1\",\n default_service=default_region_backend_service.id,\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"*\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=default_region_backend_service.id,\n path_rules=[gcp.compute.RegionUrlMapPathMatcherPathRuleArgs(\n paths=[\"/\"],\n url_redirect=gcp.compute.RegionUrlMapPathMatcherPathRuleUrlRedirectArgs(\n https_redirect=True,\n host_redirect=\"10.0.1.5:443\",\n redirect_response_code=\"PERMANENT_REDIRECT\",\n strip_query=True,\n ),\n )],\n )])\n# Regional HTTP proxy\ndefault_region_target_http_proxy = gcp.compute.RegionTargetHttpProxy(\"default\",\n name=\"l7-ilb-target-http-proxy\",\n region=\"europe-west1\",\n url_map=redirect_region_url_map.id)\n# Regional forwarding rule\nredirect = gcp.compute.ForwardingRule(\"redirect\",\n name=\"l7-ilb-redirect\",\n region=\"europe-west1\",\n ip_protocol=\"TCP\",\n ip_address=default_address.id,\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n port_range=\"80\",\n target=default_region_target_http_proxy.id,\n network=default.id,\n subnetwork=default_subnetwork.id,\n network_tier=\"PREMIUM\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Tls = Pulumi.Tls;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Internal HTTPS load balancer with HTTP-to-HTTPS redirect\n // VPC network\n var @default = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"l7-ilb-network\",\n AutoCreateSubnetworks = false,\n });\n\n // Proxy-only subnet\n var proxySubnet = new Gcp.Compute.Subnetwork(\"proxy_subnet\", new()\n {\n Name = \"l7-ilb-proxy-subnet\",\n IpCidrRange = \"10.0.0.0/24\",\n Region = \"europe-west1\",\n Purpose = \"REGIONAL_MANAGED_PROXY\",\n Role = \"ACTIVE\",\n Network = @default.Id,\n });\n\n // Backend subnet\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"l7-ilb-subnet\",\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"europe-west1\",\n Network = @default.Id,\n });\n\n // Reserved internal address\n var defaultAddress = new Gcp.Compute.Address(\"default\", new()\n {\n Name = \"l7-ilb-ip\",\n Subnetwork = defaultSubnetwork.Id,\n AddressType = \"INTERNAL\",\n IPAddress = \"10.0.1.5\",\n Region = \"europe-west1\",\n Purpose = \"SHARED_LOADBALANCER_VIP\",\n });\n\n // Self-signed regional SSL certificate for testing\n var defaultPrivateKey = new Tls.PrivateKey(\"default\", new()\n {\n Algorithm = \"RSA\",\n RsaBits = 2048,\n });\n\n var defaultSelfSignedCert = new Tls.SelfSignedCert(\"default\", new()\n {\n KeyAlgorithm = defaultPrivateKey.Algorithm,\n PrivateKeyPem = defaultPrivateKey.PrivateKeyPem,\n ValidityPeriodHours = 12,\n EarlyRenewalHours = 3,\n AllowedUses = new[]\n {\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n },\n DnsNames = new[]\n {\n \"example.com\",\n },\n Subject = new Tls.Inputs.SelfSignedCertSubjectArgs\n {\n CommonName = \"example.com\",\n Organization = \"ACME Examples, Inc\",\n },\n });\n\n var defaultRegionSslCertificate = new Gcp.Compute.RegionSslCertificate(\"default\", new()\n {\n NamePrefix = \"my-certificate-\",\n PrivateKey = defaultPrivateKey.PrivateKeyPem,\n Certificate = defaultSelfSignedCert.CertPem,\n Region = \"europe-west1\",\n });\n\n // Regional health check\n var defaultRegionHealthCheck = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Name = \"l7-ilb-hc\",\n Region = \"europe-west1\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n PortSpecification = \"USE_SERVING_PORT\",\n },\n });\n\n // Instance template\n var defaultInstanceTemplate = new Gcp.Compute.InstanceTemplate(\"default\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = @default.Id,\n Subnetwork = defaultSubnetwork.Id,\n },\n },\n Name = \"l7-ilb-mig-template\",\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"http-server\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n // Regional MIG\n var defaultRegionInstanceGroupManager = new Gcp.Compute.RegionInstanceGroupManager(\"default\", new()\n {\n Name = \"l7-ilb-mig1\",\n Region = \"europe-west1\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs\n {\n InstanceTemplate = defaultInstanceTemplate.Id,\n Name = \"primary\",\n },\n },\n NamedPorts = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerNamedPortArgs\n {\n Name = \"http-server\",\n Port = 80,\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // Regional backend service\n var defaultRegionBackendService = new Gcp.Compute.RegionBackendService(\"default\", new()\n {\n Name = \"l7-ilb-backend-service\",\n Region = \"europe-west1\",\n Protocol = \"HTTP\",\n PortName = \"http-server\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n TimeoutSec = 10,\n HealthChecks = defaultRegionHealthCheck.Id,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.RegionBackendServiceBackendArgs\n {\n Group = defaultRegionInstanceGroupManager.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n CapacityScaler = 1,\n },\n },\n });\n\n // Regional URL map\n var httpsLb = new Gcp.Compute.RegionUrlMap(\"https_lb\", new()\n {\n Name = \"l7-ilb-regional-url-map\",\n Region = \"europe-west1\",\n DefaultService = defaultRegionBackendService.Id,\n });\n\n // Regional target HTTPS proxy\n var defaultRegionTargetHttpsProxy = new Gcp.Compute.RegionTargetHttpsProxy(\"default\", new()\n {\n Name = \"l7-ilb-target-https-proxy\",\n Region = \"europe-west1\",\n UrlMap = httpsLb.Id,\n SslCertificates = new[]\n {\n defaultRegionSslCertificate.SelfLink,\n },\n });\n\n // Regional forwarding rule\n var defaultForwardingRule = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"l7-ilb-forwarding-rule\",\n Region = \"europe-west1\",\n IpProtocol = \"TCP\",\n IpAddress = defaultAddress.Id,\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n PortRange = \"443\",\n Target = defaultRegionTargetHttpsProxy.Id,\n Network = @default.Id,\n Subnetwork = defaultSubnetwork.Id,\n NetworkTier = \"PREMIUM\",\n });\n\n // Allow all access to health check ranges\n var defaultFirewall = new Gcp.Compute.Firewall(\"default\", new()\n {\n Name = \"l7-ilb-fw-allow-hc\",\n Direction = \"INGRESS\",\n Network = @default.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n });\n\n // Allow http from proxy subnet to backends\n var backends = new Gcp.Compute.Firewall(\"backends\", new()\n {\n Name = \"l7-ilb-fw-allow-ilb-to-backends\",\n Direction = \"INGRESS\",\n Network = @default.Id,\n SourceRanges = new[]\n {\n \"10.0.0.0/24\",\n },\n TargetTags = new[]\n {\n \"http-server\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"80\",\n \"443\",\n \"8080\",\n },\n },\n },\n });\n\n // Test instance\n var defaultInstance = new Gcp.Compute.Instance(\"default\", new()\n {\n Name = \"l7-ilb-test-vm\",\n Zone = \"europe-west1-b\",\n MachineType = \"e2-small\",\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs\n {\n Network = @default.Id,\n Subnetwork = defaultSubnetwork.Id,\n },\n },\n BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs\n {\n InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs\n {\n Image = \"debian-cloud/debian-10\",\n },\n },\n });\n\n //## HTTP-to-HTTPS redirect ###\n // Regional URL map\n var redirectRegionUrlMap = new Gcp.Compute.RegionUrlMap(\"redirect\", new()\n {\n Name = \"l7-ilb-redirect-url-map\",\n Region = \"europe-west1\",\n DefaultService = defaultRegionBackendService.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"*\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = defaultRegionBackendService.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/\",\n },\n UrlRedirect = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleUrlRedirectArgs\n {\n HttpsRedirect = true,\n HostRedirect = \"10.0.1.5:443\",\n RedirectResponseCode = \"PERMANENT_REDIRECT\",\n StripQuery = true,\n },\n },\n },\n },\n },\n });\n\n // Regional HTTP proxy\n var defaultRegionTargetHttpProxy = new Gcp.Compute.RegionTargetHttpProxy(\"default\", new()\n {\n Name = \"l7-ilb-target-http-proxy\",\n Region = \"europe-west1\",\n UrlMap = redirectRegionUrlMap.Id,\n });\n\n // Regional forwarding rule\n var redirect = new Gcp.Compute.ForwardingRule(\"redirect\", new()\n {\n Name = \"l7-ilb-redirect\",\n Region = \"europe-west1\",\n IpProtocol = \"TCP\",\n IpAddress = defaultAddress.Id,\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n PortRange = \"80\",\n Target = defaultRegionTargetHttpProxy.Id,\n Network = @default.Id,\n Subnetwork = defaultSubnetwork.Id,\n NetworkTier = \"PREMIUM\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-tls/sdk/v4/go/tls\"\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// Internal HTTPS load balancer with HTTP-to-HTTPS redirect\n\t\t// VPC network\n\t\t_, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Proxy-only subnet\n\t\t_, err = compute.NewSubnetwork(ctx, \"proxy_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-proxy-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/24\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tPurpose: pulumi.String(\"REGIONAL_MANAGED_PROXY\"),\n\t\t\tRole: pulumi.String(\"ACTIVE\"),\n\t\t\tNetwork: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Backend subnet\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tNetwork: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Reserved internal address\n\t\tdefaultAddress, err := compute.NewAddress(ctx, \"default\", \u0026compute.AddressArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-ip\"),\n\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tAddress: pulumi.String(\"10.0.1.5\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tPurpose: pulumi.String(\"SHARED_LOADBALANCER_VIP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Self-signed regional SSL certificate for testing\n\t\tdefaultPrivateKey, err := tls.NewPrivateKey(ctx, \"default\", \u0026tls.PrivateKeyArgs{\n\t\t\tAlgorithm: pulumi.String(\"RSA\"),\n\t\t\tRsaBits: pulumi.Int(2048),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSelfSignedCert, err := tls.NewSelfSignedCert(ctx, \"default\", \u0026tls.SelfSignedCertArgs{\n\t\t\tKeyAlgorithm: defaultPrivateKey.Algorithm,\n\t\t\tPrivateKeyPem: defaultPrivateKey.PrivateKeyPem,\n\t\t\tValidityPeriodHours: pulumi.Int(12),\n\t\t\tEarlyRenewalHours: pulumi.Int(3),\n\t\t\tAllowedUses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"key_encipherment\"),\n\t\t\t\tpulumi.String(\"digital_signature\"),\n\t\t\t\tpulumi.String(\"server_auth\"),\n\t\t\t},\n\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"example.com\"),\n\t\t\t},\n\t\t\tSubject: \u0026tls.SelfSignedCertSubjectArgs{\n\t\t\t\tCommonName: pulumi.String(\"example.com\"),\n\t\t\t\tOrganization: pulumi.String(\"ACME Examples, Inc\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionSslCertificate, err := compute.NewRegionSslCertificate(ctx, \"default\", \u0026compute.RegionSslCertificateArgs{\n\t\t\tNamePrefix: pulumi.String(\"my-certificate-\"),\n\t\t\tPrivateKey: defaultPrivateKey.PrivateKeyPem,\n\t\t\tCertificate: defaultSelfSignedCert.CertPem,\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional health check\n\t\tdefaultRegionHealthCheck, err := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-hc\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPortSpecification: pulumi.String(\"USE_SERVING_PORT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Instance template\n\t\tdefaultInstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"default\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: _default.ID(),\n\t\t\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"l7-ilb-mig-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional MIG\n\t\tdefaultRegionInstanceGroupManager, err := compute.NewRegionInstanceGroupManager(ctx, \"default\", \u0026compute.RegionInstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-mig1\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tVersions: compute.RegionInstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: defaultInstanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNamedPorts: compute.RegionInstanceGroupManagerNamedPortArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerNamedPortArgs{\n\t\t\t\t\tName: pulumi.String(\"http-server\"),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional backend service\n\t\tdefaultRegionBackendService, err := compute.NewRegionBackendService(ctx, \"default\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-backend-service\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tPortName: pulumi.String(\"http-server\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultRegionHealthCheck.ID(),\n\t\t\tBackends: compute.RegionBackendServiceBackendArray{\n\t\t\t\t\u0026compute.RegionBackendServiceBackendArgs{\n\t\t\t\t\tGroup: defaultRegionInstanceGroupManager.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional URL map\n\t\thttpsLb, err := compute.NewRegionUrlMap(ctx, \"https_lb\", \u0026compute.RegionUrlMapArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-regional-url-map\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tDefaultService: defaultRegionBackendService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional target HTTPS proxy\n\t\tdefaultRegionTargetHttpsProxy, err := compute.NewRegionTargetHttpsProxy(ctx, \"default\", \u0026compute.RegionTargetHttpsProxyArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-target-https-proxy\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tUrlMap: httpsLb.ID(),\n\t\t\tSslCertificates: pulumi.StringArray{\n\t\t\t\tdefaultRegionSslCertificate.SelfLink,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional forwarding rule\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tIpAddress: defaultAddress.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tPortRange: pulumi.String(\"443\"),\n\t\t\tTarget: defaultRegionTargetHttpsProxy.ID(),\n\t\t\tNetwork: _default.ID(),\n\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\tNetworkTier: pulumi.String(\"PREMIUM\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Allow all access to health check ranges\n\t\t_, err = compute.NewFirewall(ctx, \"default\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-fw-allow-hc\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: _default.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t\tpulumi.String(\"35.235.240.0/20\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Allow http from proxy subnet to backends\n\t\t_, err = compute.NewFirewall(ctx, \"backends\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-fw-allow-ilb-to-backends\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: _default.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/24\"),\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"80\"),\n\t\t\t\t\t\tpulumi.String(\"443\"),\n\t\t\t\t\t\tpulumi.String(\"8080\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Test instance\n\t\t_, err = compute.NewInstance(ctx, \"default\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-test-vm\"),\n\t\t\tZone: pulumi.String(\"europe-west1-b\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tNetworkInterfaces: compute.InstanceNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: _default.ID(),\n\t\t\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBootDisk: \u0026compute.InstanceBootDiskArgs{\n\t\t\t\tInitializeParams: \u0026compute.InstanceBootDiskInitializeParamsArgs{\n\t\t\t\t\tImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional URL map\n\t\tredirectRegionUrlMap, err := compute.NewRegionUrlMap(ctx, \"redirect\", \u0026compute.RegionUrlMapArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-redirect-url-map\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tDefaultService: defaultRegionBackendService.ID(),\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: defaultRegionBackendService.ID(),\n\t\t\t\t\tPathRules: compute.RegionUrlMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tUrlRedirect: \u0026compute.RegionUrlMapPathMatcherPathRuleUrlRedirectArgs{\n\t\t\t\t\t\t\t\tHttpsRedirect: pulumi.Bool(true),\n\t\t\t\t\t\t\t\tHostRedirect: pulumi.String(\"10.0.1.5:443\"),\n\t\t\t\t\t\t\t\tRedirectResponseCode: pulumi.String(\"PERMANENT_REDIRECT\"),\n\t\t\t\t\t\t\t\tStripQuery: pulumi.Bool(true),\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},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional HTTP proxy\n\t\tdefaultRegionTargetHttpProxy, err := compute.NewRegionTargetHttpProxy(ctx, \"default\", \u0026compute.RegionTargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-target-http-proxy\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tUrlMap: redirectRegionUrlMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional forwarding rule\n\t\t_, err = compute.NewForwardingRule(ctx, \"redirect\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-redirect\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tIpAddress: defaultAddress.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tTarget: defaultRegionTargetHttpProxy.ID(),\n\t\t\tNetwork: _default.ID(),\n\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\tNetworkTier: pulumi.String(\"PREMIUM\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.Address;\nimport com.pulumi.gcp.compute.AddressArgs;\nimport com.pulumi.tls.PrivateKey;\nimport com.pulumi.tls.PrivateKeyArgs;\nimport com.pulumi.tls.SelfSignedCert;\nimport com.pulumi.tls.SelfSignedCertArgs;\nimport com.pulumi.tls.inputs.SelfSignedCertSubjectArgs;\nimport com.pulumi.gcp.compute.RegionSslCertificate;\nimport com.pulumi.gcp.compute.RegionSslCertificateArgs;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManager;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerNamedPortArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.RegionBackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.RegionTargetHttpsProxy;\nimport com.pulumi.gcp.compute.RegionTargetHttpsProxyArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\nimport com.pulumi.gcp.compute.Instance;\nimport com.pulumi.gcp.compute.InstanceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxy;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxyArgs;\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 // Internal HTTPS load balancer with HTTP-to-HTTPS redirect\n // VPC network\n var default_ = new Network(\"default\", NetworkArgs.builder() \n .name(\"l7-ilb-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n // Proxy-only subnet\n var proxySubnet = new Subnetwork(\"proxySubnet\", SubnetworkArgs.builder() \n .name(\"l7-ilb-proxy-subnet\")\n .ipCidrRange(\"10.0.0.0/24\")\n .region(\"europe-west1\")\n .purpose(\"REGIONAL_MANAGED_PROXY\")\n .role(\"ACTIVE\")\n .network(default_.id())\n .build());\n\n // Backend subnet\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"l7-ilb-subnet\")\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"europe-west1\")\n .network(default_.id())\n .build());\n\n // Reserved internal address\n var defaultAddress = new Address(\"defaultAddress\", AddressArgs.builder() \n .name(\"l7-ilb-ip\")\n .subnetwork(defaultSubnetwork.id())\n .addressType(\"INTERNAL\")\n .address(\"10.0.1.5\")\n .region(\"europe-west1\")\n .purpose(\"SHARED_LOADBALANCER_VIP\")\n .build());\n\n // Self-signed regional SSL certificate for testing\n var defaultPrivateKey = new PrivateKey(\"defaultPrivateKey\", PrivateKeyArgs.builder() \n .algorithm(\"RSA\")\n .rsaBits(2048)\n .build());\n\n var defaultSelfSignedCert = new SelfSignedCert(\"defaultSelfSignedCert\", SelfSignedCertArgs.builder() \n .keyAlgorithm(defaultPrivateKey.algorithm())\n .privateKeyPem(defaultPrivateKey.privateKeyPem())\n .validityPeriodHours(12)\n .earlyRenewalHours(3)\n .allowedUses( \n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\")\n .dnsNames(\"example.com\")\n .subject(SelfSignedCertSubjectArgs.builder()\n .commonName(\"example.com\")\n .organization(\"ACME Examples, Inc\")\n .build())\n .build());\n\n var defaultRegionSslCertificate = new RegionSslCertificate(\"defaultRegionSslCertificate\", RegionSslCertificateArgs.builder() \n .namePrefix(\"my-certificate-\")\n .privateKey(defaultPrivateKey.privateKeyPem())\n .certificate(defaultSelfSignedCert.certPem())\n .region(\"europe-west1\")\n .build());\n\n // Regional health check\n var defaultRegionHealthCheck = new RegionHealthCheck(\"defaultRegionHealthCheck\", RegionHealthCheckArgs.builder() \n .name(\"l7-ilb-hc\")\n .region(\"europe-west1\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .portSpecification(\"USE_SERVING_PORT\")\n .build())\n .build());\n\n // Instance template\n var defaultInstanceTemplate = new InstanceTemplate(\"defaultInstanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(default_.id())\n .subnetwork(defaultSubnetwork.id())\n .build())\n .name(\"l7-ilb-mig-template\")\n .machineType(\"e2-small\")\n .tags(\"http-server\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n // Regional MIG\n var defaultRegionInstanceGroupManager = new RegionInstanceGroupManager(\"defaultRegionInstanceGroupManager\", RegionInstanceGroupManagerArgs.builder() \n .name(\"l7-ilb-mig1\")\n .region(\"europe-west1\")\n .versions(RegionInstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(defaultInstanceTemplate.id())\n .name(\"primary\")\n .build())\n .namedPorts(RegionInstanceGroupManagerNamedPortArgs.builder()\n .name(\"http-server\")\n .port(80)\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // Regional backend service\n var defaultRegionBackendService = new RegionBackendService(\"defaultRegionBackendService\", RegionBackendServiceArgs.builder() \n .name(\"l7-ilb-backend-service\")\n .region(\"europe-west1\")\n .protocol(\"HTTP\")\n .portName(\"http-server\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(defaultRegionHealthCheck.id())\n .backends(RegionBackendServiceBackendArgs.builder()\n .group(defaultRegionInstanceGroupManager.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .capacityScaler(1)\n .build())\n .build());\n\n // Regional URL map\n var httpsLb = new RegionUrlMap(\"httpsLb\", RegionUrlMapArgs.builder() \n .name(\"l7-ilb-regional-url-map\")\n .region(\"europe-west1\")\n .defaultService(defaultRegionBackendService.id())\n .build());\n\n // Regional target HTTPS proxy\n var defaultRegionTargetHttpsProxy = new RegionTargetHttpsProxy(\"defaultRegionTargetHttpsProxy\", RegionTargetHttpsProxyArgs.builder() \n .name(\"l7-ilb-target-https-proxy\")\n .region(\"europe-west1\")\n .urlMap(httpsLb.id())\n .sslCertificates(defaultRegionSslCertificate.selfLink())\n .build());\n\n // Regional forwarding rule\n var defaultForwardingRule = new ForwardingRule(\"defaultForwardingRule\", ForwardingRuleArgs.builder() \n .name(\"l7-ilb-forwarding-rule\")\n .region(\"europe-west1\")\n .ipProtocol(\"TCP\")\n .ipAddress(defaultAddress.id())\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .portRange(\"443\")\n .target(defaultRegionTargetHttpsProxy.id())\n .network(default_.id())\n .subnetwork(defaultSubnetwork.id())\n .networkTier(\"PREMIUM\")\n .build());\n\n // Allow all access to health check ranges\n var defaultFirewall = new Firewall(\"defaultFirewall\", FirewallArgs.builder() \n .name(\"l7-ilb-fw-allow-hc\")\n .direction(\"INGRESS\")\n .network(default_.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .build());\n\n // Allow http from proxy subnet to backends\n var backends = new Firewall(\"backends\", FirewallArgs.builder() \n .name(\"l7-ilb-fw-allow-ilb-to-backends\")\n .direction(\"INGRESS\")\n .network(default_.id())\n .sourceRanges(\"10.0.0.0/24\")\n .targetTags(\"http-server\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports( \n \"80\",\n \"443\",\n \"8080\")\n .build())\n .build());\n\n // Test instance\n var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder() \n .name(\"l7-ilb-test-vm\")\n .zone(\"europe-west1-b\")\n .machineType(\"e2-small\")\n .networkInterfaces(InstanceNetworkInterfaceArgs.builder()\n .network(default_.id())\n .subnetwork(defaultSubnetwork.id())\n .build())\n .bootDisk(InstanceBootDiskArgs.builder()\n .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()\n .image(\"debian-cloud/debian-10\")\n .build())\n .build())\n .build());\n\n //## HTTP-to-HTTPS redirect ###\n // Regional URL map\n var redirectRegionUrlMap = new RegionUrlMap(\"redirectRegionUrlMap\", RegionUrlMapArgs.builder() \n .name(\"l7-ilb-redirect-url-map\")\n .region(\"europe-west1\")\n .defaultService(defaultRegionBackendService.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"*\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(defaultRegionBackendService.id())\n .pathRules(RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/\")\n .urlRedirect(RegionUrlMapPathMatcherPathRuleUrlRedirectArgs.builder()\n .httpsRedirect(true)\n .hostRedirect(\"10.0.1.5:443\")\n .redirectResponseCode(\"PERMANENT_REDIRECT\")\n .stripQuery(true)\n .build())\n .build())\n .build())\n .build());\n\n // Regional HTTP proxy\n var defaultRegionTargetHttpProxy = new RegionTargetHttpProxy(\"defaultRegionTargetHttpProxy\", RegionTargetHttpProxyArgs.builder() \n .name(\"l7-ilb-target-http-proxy\")\n .region(\"europe-west1\")\n .urlMap(redirectRegionUrlMap.id())\n .build());\n\n // Regional forwarding rule\n var redirect = new ForwardingRule(\"redirect\", ForwardingRuleArgs.builder() \n .name(\"l7-ilb-redirect\")\n .region(\"europe-west1\")\n .ipProtocol(\"TCP\")\n .ipAddress(defaultAddress.id())\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .portRange(\"80\")\n .target(defaultRegionTargetHttpProxy.id())\n .network(default_.id())\n .subnetwork(defaultSubnetwork.id())\n .networkTier(\"PREMIUM\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Internal HTTPS load balancer with HTTP-to-HTTPS redirect\n\n\n\n # VPC network\n default:\n type: gcp:compute:Network\n properties:\n name: l7-ilb-network\n autoCreateSubnetworks: false\n # Proxy-only subnet\n proxySubnet:\n type: gcp:compute:Subnetwork\n name: proxy_subnet\n properties:\n name: l7-ilb-proxy-subnet\n ipCidrRange: 10.0.0.0/24\n region: europe-west1\n purpose: REGIONAL_MANAGED_PROXY\n role: ACTIVE\n network: ${default.id}\n # Backend subnet\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: l7-ilb-subnet\n ipCidrRange: 10.0.1.0/24\n region: europe-west1\n network: ${default.id}\n # Reserved internal address\n defaultAddress:\n type: gcp:compute:Address\n name: default\n properties:\n name: l7-ilb-ip\n subnetwork: ${defaultSubnetwork.id}\n addressType: INTERNAL\n address: 10.0.1.5\n region: europe-west1\n purpose: SHARED_LOADBALANCER_VIP\n # Regional forwarding rule\n defaultForwardingRule:\n type: gcp:compute:ForwardingRule\n name: default\n properties:\n name: l7-ilb-forwarding-rule\n region: europe-west1\n ipProtocol: TCP\n ipAddress: ${defaultAddress.id}\n loadBalancingScheme: INTERNAL_MANAGED\n portRange: '443'\n target: ${defaultRegionTargetHttpsProxy.id}\n network: ${default.id}\n subnetwork: ${defaultSubnetwork.id}\n networkTier: PREMIUM\n # Self-signed regional SSL certificate for testing\n defaultPrivateKey:\n type: tls:PrivateKey\n name: default\n properties:\n algorithm: RSA\n rsaBits: 2048\n defaultSelfSignedCert:\n type: tls:SelfSignedCert\n name: default\n properties:\n keyAlgorithm: ${defaultPrivateKey.algorithm}\n privateKeyPem: ${defaultPrivateKey.privateKeyPem}\n validityPeriodHours: 12 # Generate a new certificate if Terraform is run within three\n # # hours of the certificate's expiration time.\n earlyRenewalHours: 3 # Reasonable set of uses for a server SSL certificate.\n allowedUses:\n - key_encipherment\n - digital_signature\n - server_auth\n dnsNames:\n - example.com\n subject:\n commonName: example.com\n organization: ACME Examples, Inc\n defaultRegionSslCertificate:\n type: gcp:compute:RegionSslCertificate\n name: default\n properties:\n namePrefix: my-certificate-\n privateKey: ${defaultPrivateKey.privateKeyPem}\n certificate: ${defaultSelfSignedCert.certPem}\n region: europe-west1\n # Regional target HTTPS proxy\n defaultRegionTargetHttpsProxy:\n type: gcp:compute:RegionTargetHttpsProxy\n name: default\n properties:\n name: l7-ilb-target-https-proxy\n region: europe-west1\n urlMap: ${httpsLb.id}\n sslCertificates:\n - ${defaultRegionSslCertificate.selfLink}\n # Regional URL map\n httpsLb:\n type: gcp:compute:RegionUrlMap\n name: https_lb\n properties:\n name: l7-ilb-regional-url-map\n region: europe-west1\n defaultService: ${defaultRegionBackendService.id}\n # Regional backend service\n defaultRegionBackendService:\n type: gcp:compute:RegionBackendService\n name: default\n properties:\n name: l7-ilb-backend-service\n region: europe-west1\n protocol: HTTP\n portName: http-server\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks: ${defaultRegionHealthCheck.id}\n backends:\n - group: ${defaultRegionInstanceGroupManager.instanceGroup}\n balancingMode: UTILIZATION\n capacityScaler: 1\n # Instance template\n defaultInstanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: default\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${default.id}\n subnetwork: ${defaultSubnetwork.id}\n name: l7-ilb-mig-template\n machineType: e2-small\n tags:\n - http-server\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n # Regional health check\n defaultRegionHealthCheck:\n type: gcp:compute:RegionHealthCheck\n name: default\n properties:\n name: l7-ilb-hc\n region: europe-west1\n httpHealthCheck:\n portSpecification: USE_SERVING_PORT\n # Regional MIG\n defaultRegionInstanceGroupManager:\n type: gcp:compute:RegionInstanceGroupManager\n name: default\n properties:\n name: l7-ilb-mig1\n region: europe-west1\n versions:\n - instanceTemplate: ${defaultInstanceTemplate.id}\n name: primary\n namedPorts:\n - name: http-server\n port: 80\n baseInstanceName: vm\n targetSize: 2\n # Allow all access to health check ranges\n defaultFirewall:\n type: gcp:compute:Firewall\n name: default\n properties:\n name: l7-ilb-fw-allow-hc\n direction: INGRESS\n network: ${default.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n - 35.235.240.0/20\n allows:\n - protocol: tcp\n # Allow http from proxy subnet to backends\n backends:\n type: gcp:compute:Firewall\n properties:\n name: l7-ilb-fw-allow-ilb-to-backends\n direction: INGRESS\n network: ${default.id}\n sourceRanges:\n - 10.0.0.0/24\n targetTags:\n - http-server\n allows:\n - protocol: tcp\n ports:\n - '80'\n - '443'\n - '8080'\n # Test instance\n defaultInstance: ### HTTP-to-HTTPS redirect ###\n type: gcp:compute:Instance\n name: default\n properties:\n name: l7-ilb-test-vm\n zone: europe-west1-b\n machineType: e2-small\n networkInterfaces:\n - network: ${default.id}\n subnetwork: ${defaultSubnetwork.id}\n bootDisk:\n initializeParams:\n image: debian-cloud/debian-10\n # Regional forwarding rule\n redirect:\n type: gcp:compute:ForwardingRule\n properties:\n name: l7-ilb-redirect\n region: europe-west1\n ipProtocol: TCP\n ipAddress: ${defaultAddress.id}\n loadBalancingScheme: INTERNAL_MANAGED\n portRange: '80'\n target: ${defaultRegionTargetHttpProxy.id}\n network: ${default.id}\n subnetwork: ${defaultSubnetwork.id}\n networkTier: PREMIUM\n # Regional HTTP proxy\n defaultRegionTargetHttpProxy:\n type: gcp:compute:RegionTargetHttpProxy\n name: default\n properties:\n name: l7-ilb-target-http-proxy\n region: europe-west1\n urlMap: ${redirectRegionUrlMap.id}\n # Regional URL map\n redirectRegionUrlMap:\n type: gcp:compute:RegionUrlMap\n name: redirect\n properties:\n name: l7-ilb-redirect-url-map\n region: europe-west1\n defaultService: ${defaultRegionBackendService.id}\n hostRules:\n - hosts:\n - '*'\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${defaultRegionBackendService.id}\n pathRules:\n - paths:\n - /\n urlRedirect:\n httpsRedirect: true\n hostRedirect: 10.0.1.5:443\n redirectResponseCode: PERMANENT_REDIRECT\n stripQuery: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Region Url Map Path Template Match\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionHealthCheck(\"default\", {\n region: \"us-central1\",\n name: \"health-check\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n httpHealthCheck: {\n port: 80,\n requestPath: \"/\",\n },\n});\nconst home_backend = new gcp.compute.RegionBackendService(\"home-backend\", {\n region: \"us-central1\",\n name: \"home-service\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n healthChecks: _default.id,\n});\nconst cart_backend = new gcp.compute.RegionBackendService(\"cart-backend\", {\n region: \"us-central1\",\n name: \"cart-service\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n healthChecks: _default.id,\n});\nconst user_backend = new gcp.compute.RegionBackendService(\"user-backend\", {\n region: \"us-central1\",\n name: \"user-service\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n healthChecks: _default.id,\n});\nconst urlmap = new gcp.compute.RegionUrlMap(\"urlmap\", {\n region: \"us-central1\",\n name: \"urlmap\",\n description: \"a description\",\n defaultService: home_backend.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"mysite\",\n }],\n pathMatchers: [{\n name: \"mysite\",\n defaultService: home_backend.id,\n routeRules: [\n {\n matchRules: [{\n pathTemplateMatch: \"/xyzwebservices/v2/xyz/users/{username=*}/carts/{cartid=**}\",\n }],\n service: cart_backend.id,\n priority: 1,\n routeAction: {\n urlRewrite: {\n pathTemplateRewrite: \"/{username}-{cartid}/\",\n },\n },\n },\n {\n matchRules: [{\n pathTemplateMatch: \"/xyzwebservices/v2/xyz/users/*/accountinfo/*\",\n }],\n service: user_backend.id,\n priority: 2,\n },\n ],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionHealthCheck(\"default\",\n region=\"us-central1\",\n name=\"health-check\",\n check_interval_sec=1,\n timeout_sec=1,\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n request_path=\"/\",\n ))\nhome_backend = gcp.compute.RegionBackendService(\"home-backend\",\n region=\"us-central1\",\n name=\"home-service\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n load_balancing_scheme=\"EXTERNAL_MANAGED\",\n health_checks=default.id)\ncart_backend = gcp.compute.RegionBackendService(\"cart-backend\",\n region=\"us-central1\",\n name=\"cart-service\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n load_balancing_scheme=\"EXTERNAL_MANAGED\",\n health_checks=default.id)\nuser_backend = gcp.compute.RegionBackendService(\"user-backend\",\n region=\"us-central1\",\n name=\"user-service\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n load_balancing_scheme=\"EXTERNAL_MANAGED\",\n health_checks=default.id)\nurlmap = gcp.compute.RegionUrlMap(\"urlmap\",\n region=\"us-central1\",\n name=\"urlmap\",\n description=\"a description\",\n default_service=home_backend.id,\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"mysite\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"mysite\",\n default_service=home_backend.id,\n route_rules=[\n gcp.compute.RegionUrlMapPathMatcherRouteRuleArgs(\n match_rules=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs(\n path_template_match=\"/xyzwebservices/v2/xyz/users/{username=*}/carts/{cartid=**}\",\n )],\n service=cart_backend.id,\n priority=1,\n route_action=gcp.compute.RegionUrlMapPathMatcherRouteRuleRouteActionArgs(\n url_rewrite=gcp.compute.RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs(\n path_template_rewrite=\"/{username}-{cartid}/\",\n ),\n ),\n ),\n gcp.compute.RegionUrlMapPathMatcherRouteRuleArgs(\n match_rules=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs(\n path_template_match=\"/xyzwebservices/v2/xyz/users/*/accountinfo/*\",\n )],\n service=user_backend.id,\n priority=2,\n ),\n ],\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"health-check\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n RequestPath = \"/\",\n },\n });\n\n var home_backend = new Gcp.Compute.RegionBackendService(\"home-backend\", new()\n {\n Region = \"us-central1\",\n Name = \"home-service\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n HealthChecks = @default.Id,\n });\n\n var cart_backend = new Gcp.Compute.RegionBackendService(\"cart-backend\", new()\n {\n Region = \"us-central1\",\n Name = \"cart-service\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n HealthChecks = @default.Id,\n });\n\n var user_backend = new Gcp.Compute.RegionBackendService(\"user-backend\", new()\n {\n Region = \"us-central1\",\n Name = \"user-service\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n HealthChecks = @default.Id,\n });\n\n var urlmap = new Gcp.Compute.RegionUrlMap(\"urlmap\", new()\n {\n Region = \"us-central1\",\n Name = \"urlmap\",\n Description = \"a description\",\n DefaultService = home_backend.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"mysite\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"mysite\",\n DefaultService = home_backend.Id,\n RouteRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleArgs\n {\n MatchRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs\n {\n PathTemplateMatch = \"/xyzwebservices/v2/xyz/users/{username=*}/carts/{cartid=**}\",\n },\n },\n Service = cart_backend.Id,\n Priority = 1,\n RouteAction = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleRouteActionArgs\n {\n UrlRewrite = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs\n {\n PathTemplateRewrite = \"/{username}-{cartid}/\",\n },\n },\n },\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleArgs\n {\n MatchRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs\n {\n PathTemplateMatch = \"/xyzwebservices/v2/xyz/users/*/accountinfo/*\",\n },\n },\n Service = user_backend.Id,\n Priority = 2,\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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 := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionBackendService(ctx, \"home-backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"home-service\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\n\t\t\tHealthChecks: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionBackendService(ctx, \"cart-backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"cart-service\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\n\t\t\tHealthChecks: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionBackendService(ctx, \"user-backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"user-service\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\n\t\t\tHealthChecks: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionUrlMap(ctx, \"urlmap\", \u0026compute.RegionUrlMapArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"urlmap\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: home_backend.ID(),\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"mysite\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"mysite\"),\n\t\t\t\t\tDefaultService: home_backend.ID(),\n\t\t\t\t\tRouteRules: compute.RegionUrlMapPathMatcherRouteRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleArgs{\n\t\t\t\t\t\t\tMatchRules: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs{\n\t\t\t\t\t\t\t\t\tPathTemplateMatch: pulumi.String(\"/xyzwebservices/v2/xyz/users/{username=*}/carts/{cartid=**}\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: cart_backend.ID(),\n\t\t\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\t\t\tRouteAction: \u0026compute.RegionUrlMapPathMatcherRouteRuleRouteActionArgs{\n\t\t\t\t\t\t\t\tUrlRewrite: \u0026compute.RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs{\n\t\t\t\t\t\t\t\t\tPathTemplateRewrite: pulumi.String(\"/{username}-{cartid}/\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleArgs{\n\t\t\t\t\t\t\tMatchRules: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs{\n\t\t\t\t\t\t\t\t\tPathTemplateMatch: pulumi.String(\"/xyzwebservices/v2/xyz/users/*/accountinfo/*\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: user_backend.ID(),\n\t\t\t\t\t\t\tPriority: pulumi.Int(2),\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\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 default_ = new RegionHealthCheck(\"default\", RegionHealthCheckArgs.builder() \n .region(\"us-central1\")\n .name(\"health-check\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .requestPath(\"/\")\n .build())\n .build());\n\n var home_backend = new RegionBackendService(\"home-backend\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"home-service\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .healthChecks(default_.id())\n .build());\n\n var cart_backend = new RegionBackendService(\"cart-backend\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"cart-service\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .healthChecks(default_.id())\n .build());\n\n var user_backend = new RegionBackendService(\"user-backend\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"user-service\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .healthChecks(default_.id())\n .build());\n\n var urlmap = new RegionUrlMap(\"urlmap\", RegionUrlMapArgs.builder() \n .region(\"us-central1\")\n .name(\"urlmap\")\n .description(\"a description\")\n .defaultService(home_backend.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"mysite\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"mysite\")\n .defaultService(home_backend.id())\n .routeRules( \n RegionUrlMapPathMatcherRouteRuleArgs.builder()\n .matchRules(RegionUrlMapPathMatcherRouteRuleMatchRuleArgs.builder()\n .pathTemplateMatch(\"/xyzwebservices/v2/xyz/users/{username=*}/carts/{cartid=**}\")\n .build())\n .service(cart_backend.id())\n .priority(1)\n .routeAction(RegionUrlMapPathMatcherRouteRuleRouteActionArgs.builder()\n .urlRewrite(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs.builder()\n .pathTemplateRewrite(\"/{username}-{cartid}/\")\n .build())\n .build())\n .build(),\n RegionUrlMapPathMatcherRouteRuleArgs.builder()\n .matchRules(RegionUrlMapPathMatcherRouteRuleMatchRuleArgs.builder()\n .pathTemplateMatch(\"/xyzwebservices/v2/xyz/users/*/accountinfo/*\")\n .build())\n .service(user_backend.id())\n .priority(2)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n urlmap:\n type: gcp:compute:RegionUrlMap\n properties:\n region: us-central1\n name: urlmap\n description: a description\n defaultService: ${[\"home-backend\"].id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: mysite\n pathMatchers:\n - name: mysite\n defaultService: ${[\"home-backend\"].id}\n routeRules:\n - matchRules:\n - pathTemplateMatch: /xyzwebservices/v2/xyz/users/{username=*}/carts/{cartid=**}\n service: ${[\"cart-backend\"].id}\n priority: 1\n routeAction:\n urlRewrite:\n pathTemplateRewrite: /{username}-{cartid}/\n - matchRules:\n - pathTemplateMatch: /xyzwebservices/v2/xyz/users/*/accountinfo/*\n service: ${[\"user-backend\"].id}\n priority: 2\n home-backend:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: home-service\n portName: http\n protocol: HTTP\n timeoutSec: 10\n loadBalancingScheme: EXTERNAL_MANAGED\n healthChecks: ${default.id}\n cart-backend:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: cart-service\n portName: http\n protocol: HTTP\n timeoutSec: 10\n loadBalancingScheme: EXTERNAL_MANAGED\n healthChecks: ${default.id}\n user-backend:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: user-service\n portName: http\n protocol: HTTP\n timeoutSec: 10\n loadBalancingScheme: EXTERNAL_MANAGED\n healthChecks: ${default.id}\n default:\n type: gcp:compute:RegionHealthCheck\n properties:\n region: us-central1\n name: health-check\n checkIntervalSec: 1\n timeoutSec: 1\n httpHealthCheck:\n port: 80\n requestPath: /\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRegionUrlMap can be imported using any of these accepted formats:\n\n* `projects/{{project}}/regions/{{region}}/urlMaps/{{name}}`\n\n* `{{project}}/{{region}}/{{name}}`\n\n* `{{region}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, RegionUrlMap can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/regionUrlMap:RegionUrlMap default projects/{{project}}/regions/{{region}}/urlMaps/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/regionUrlMap:RegionUrlMap default {{project}}/{{region}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/regionUrlMap:RegionUrlMap default {{region}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/regionUrlMap:RegionUrlMap default {{name}}\n```\n\n", + "description": "UrlMaps are used to route requests to a backend service based on rules\nthat you define for the host and path of an incoming URL.\n\n\n\n## Example Usage\n\n### Region Url Map Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionHealthCheck(\"default\", {\n region: \"us-central1\",\n name: \"health-check\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n httpHealthCheck: {\n port: 80,\n requestPath: \"/\",\n },\n});\nconst login = new gcp.compute.RegionBackendService(\"login\", {\n region: \"us-central1\",\n name: \"login\",\n protocol: \"HTTP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n timeoutSec: 10,\n healthChecks: _default.id,\n});\nconst home = new gcp.compute.RegionBackendService(\"home\", {\n region: \"us-central1\",\n name: \"home\",\n protocol: \"HTTP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n timeoutSec: 10,\n healthChecks: _default.id,\n});\nconst regionurlmap = new gcp.compute.RegionUrlMap(\"regionurlmap\", {\n region: \"us-central1\",\n name: \"regionurlmap\",\n description: \"a description\",\n defaultService: home.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: home.id,\n pathRules: [\n {\n paths: [\"/home\"],\n service: home.id,\n },\n {\n paths: [\"/login\"],\n service: login.id,\n },\n ],\n }],\n tests: [{\n service: home.id,\n host: \"hi.com\",\n path: \"/home\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionHealthCheck(\"default\",\n region=\"us-central1\",\n name=\"health-check\",\n check_interval_sec=1,\n timeout_sec=1,\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n request_path=\"/\",\n ))\nlogin = gcp.compute.RegionBackendService(\"login\",\n region=\"us-central1\",\n name=\"login\",\n protocol=\"HTTP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n timeout_sec=10,\n health_checks=default.id)\nhome = gcp.compute.RegionBackendService(\"home\",\n region=\"us-central1\",\n name=\"home\",\n protocol=\"HTTP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n timeout_sec=10,\n health_checks=default.id)\nregionurlmap = gcp.compute.RegionUrlMap(\"regionurlmap\",\n region=\"us-central1\",\n name=\"regionurlmap\",\n description=\"a description\",\n default_service=home.id,\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=home.id,\n path_rules=[\n gcp.compute.RegionUrlMapPathMatcherPathRuleArgs(\n paths=[\"/home\"],\n service=home.id,\n ),\n gcp.compute.RegionUrlMapPathMatcherPathRuleArgs(\n paths=[\"/login\"],\n service=login.id,\n ),\n ],\n )],\n tests=[gcp.compute.RegionUrlMapTestArgs(\n service=home.id,\n host=\"hi.com\",\n path=\"/home\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"health-check\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n RequestPath = \"/\",\n },\n });\n\n var login = new Gcp.Compute.RegionBackendService(\"login\", new()\n {\n Region = \"us-central1\",\n Name = \"login\",\n Protocol = \"HTTP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n });\n\n var home = new Gcp.Compute.RegionBackendService(\"home\", new()\n {\n Region = \"us-central1\",\n Name = \"home\",\n Protocol = \"HTTP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n });\n\n var regionurlmap = new Gcp.Compute.RegionUrlMap(\"regionurlmap\", new()\n {\n Region = \"us-central1\",\n Name = \"regionurlmap\",\n Description = \"a description\",\n DefaultService = home.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = home.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/home\",\n },\n Service = home.Id,\n },\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/login\",\n },\n Service = login.Id,\n },\n },\n },\n },\n Tests = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapTestArgs\n {\n Service = home.Id,\n Host = \"hi.com\",\n Path = \"/home\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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 := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlogin, err := compute.NewRegionBackendService(ctx, \"login\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"login\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thome, err := compute.NewRegionBackendService(ctx, \"home\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"home\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionUrlMap(ctx, \"regionurlmap\", \u0026compute.RegionUrlMapArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"regionurlmap\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: home.ID(),\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: home.ID(),\n\t\t\t\t\tPathRules: compute.RegionUrlMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/home\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: home.ID(),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/login\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: login.ID(),\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\tTests: compute.RegionUrlMapTestArray{\n\t\t\t\t\u0026compute.RegionUrlMapTestArgs{\n\t\t\t\t\tService: home.ID(),\n\t\t\t\t\tHost: pulumi.String(\"hi.com\"),\n\t\t\t\t\tPath: pulumi.String(\"/home\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapTestArgs;\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 default_ = new RegionHealthCheck(\"default\", RegionHealthCheckArgs.builder() \n .region(\"us-central1\")\n .name(\"health-check\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .requestPath(\"/\")\n .build())\n .build());\n\n var login = new RegionBackendService(\"login\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"login\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .build());\n\n var home = new RegionBackendService(\"home\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"home\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .build());\n\n var regionurlmap = new RegionUrlMap(\"regionurlmap\", RegionUrlMapArgs.builder() \n .region(\"us-central1\")\n .name(\"regionurlmap\")\n .description(\"a description\")\n .defaultService(home.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(home.id())\n .pathRules( \n RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/home\")\n .service(home.id())\n .build(),\n RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/login\")\n .service(login.id())\n .build())\n .build())\n .tests(RegionUrlMapTestArgs.builder()\n .service(home.id())\n .host(\"hi.com\")\n .path(\"/home\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n regionurlmap:\n type: gcp:compute:RegionUrlMap\n properties:\n region: us-central1\n name: regionurlmap\n description: a description\n defaultService: ${home.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${home.id}\n pathRules:\n - paths:\n - /home\n service: ${home.id}\n - paths:\n - /login\n service: ${login.id}\n tests:\n - service: ${home.id}\n host: hi.com\n path: /home\n login:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: login\n protocol: HTTP\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks: ${default.id}\n home:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: home\n protocol: HTTP\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks: ${default.id}\n default:\n type: gcp:compute:RegionHealthCheck\n properties:\n region: us-central1\n name: health-check\n checkIntervalSec: 1\n timeoutSec: 1\n httpHealthCheck:\n port: 80\n requestPath: /\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Region Url Map Default Route Action\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionHealthCheck(\"default\", {\n region: \"us-central1\",\n name: \"health-check\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n httpHealthCheck: {\n port: 80,\n requestPath: \"/\",\n },\n});\nconst login = new gcp.compute.RegionBackendService(\"login\", {\n region: \"us-central1\",\n name: \"login\",\n protocol: \"HTTP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n timeoutSec: 10,\n healthChecks: _default.id,\n});\nconst home = new gcp.compute.RegionBackendService(\"home\", {\n region: \"us-central1\",\n name: \"home\",\n protocol: \"HTTP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n timeoutSec: 10,\n healthChecks: _default.id,\n});\nconst regionurlmap = new gcp.compute.RegionUrlMap(\"regionurlmap\", {\n region: \"us-central1\",\n name: \"regionurlmap\",\n description: \"a description\",\n defaultRouteAction: {\n retryPolicy: {\n retryConditions: [\n \"5xx\",\n \"gateway-error\",\n ],\n numRetries: 3,\n perTryTimeout: {\n seconds: \"0\",\n nanos: 500,\n },\n },\n requestMirrorPolicy: {\n backendService: home.id,\n },\n weightedBackendServices: [\n {\n backendService: login.id,\n weight: 200,\n headerAction: {\n requestHeadersToAdds: [{\n headerName: \"foo-request-1\",\n headerValue: \"bar\",\n replace: true,\n }],\n requestHeadersToRemoves: [\"fizz\"],\n responseHeadersToAdds: [{\n headerName: \"foo-response-1\",\n headerValue: \"bar\",\n replace: true,\n }],\n responseHeadersToRemoves: [\"buzz\"],\n },\n },\n {\n backendService: home.id,\n weight: 100,\n headerAction: {\n requestHeadersToAdds: [\n {\n headerName: \"foo-request-1\",\n headerValue: \"bar\",\n replace: true,\n },\n {\n headerName: \"foo-request-2\",\n headerValue: \"bar\",\n replace: true,\n },\n ],\n requestHeadersToRemoves: [\"fizz\"],\n responseHeadersToAdds: [\n {\n headerName: \"foo-response-2\",\n headerValue: \"bar\",\n replace: true,\n },\n {\n headerName: \"foo-response-1\",\n headerValue: \"bar\",\n replace: true,\n },\n ],\n responseHeadersToRemoves: [\"buzz\"],\n },\n },\n ],\n urlRewrite: {\n hostRewrite: \"dev.example.com\",\n pathPrefixRewrite: \"/v1/api/\",\n },\n corsPolicy: {\n disabled: false,\n allowCredentials: true,\n allowHeaders: [\"foobar\"],\n allowMethods: [\n \"GET\",\n \"POST\",\n ],\n allowOrigins: [\"example.com\"],\n exposeHeaders: [\"foobar\"],\n maxAge: 60,\n },\n faultInjectionPolicy: {\n delay: {\n fixedDelay: {\n seconds: \"0\",\n nanos: 500,\n },\n percentage: 0.5,\n },\n abort: {\n httpStatus: 500,\n percentage: 0.5,\n },\n },\n timeout: {\n seconds: \"0\",\n nanos: 500,\n },\n },\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: home.id,\n pathRules: [\n {\n paths: [\"/home\"],\n service: home.id,\n },\n {\n paths: [\"/login\"],\n service: login.id,\n },\n ],\n }],\n tests: [{\n service: home.id,\n host: \"hi.com\",\n path: \"/home\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionHealthCheck(\"default\",\n region=\"us-central1\",\n name=\"health-check\",\n check_interval_sec=1,\n timeout_sec=1,\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n request_path=\"/\",\n ))\nlogin = gcp.compute.RegionBackendService(\"login\",\n region=\"us-central1\",\n name=\"login\",\n protocol=\"HTTP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n timeout_sec=10,\n health_checks=default.id)\nhome = gcp.compute.RegionBackendService(\"home\",\n region=\"us-central1\",\n name=\"home\",\n protocol=\"HTTP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n timeout_sec=10,\n health_checks=default.id)\nregionurlmap = gcp.compute.RegionUrlMap(\"regionurlmap\",\n region=\"us-central1\",\n name=\"regionurlmap\",\n description=\"a description\",\n default_route_action=gcp.compute.RegionUrlMapDefaultRouteActionArgs(\n retry_policy=gcp.compute.RegionUrlMapDefaultRouteActionRetryPolicyArgs(\n retry_conditions=[\n \"5xx\",\n \"gateway-error\",\n ],\n num_retries=3,\n per_try_timeout=gcp.compute.RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs(\n seconds=\"0\",\n nanos=500,\n ),\n ),\n request_mirror_policy=gcp.compute.RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs(\n backend_service=home.id,\n ),\n weighted_backend_services=[\n gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs(\n backend_service=login.id,\n weight=200,\n header_action=gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs(\n request_headers_to_adds=[gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs(\n header_name=\"foo-request-1\",\n header_value=\"bar\",\n replace=True,\n )],\n request_headers_to_removes=[\"fizz\"],\n response_headers_to_adds=[gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs(\n header_name=\"foo-response-1\",\n header_value=\"bar\",\n replace=True,\n )],\n response_headers_to_removes=[\"buzz\"],\n ),\n ),\n gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs(\n backend_service=home.id,\n weight=100,\n header_action=gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs(\n request_headers_to_adds=[\n gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs(\n header_name=\"foo-request-1\",\n header_value=\"bar\",\n replace=True,\n ),\n gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs(\n header_name=\"foo-request-2\",\n header_value=\"bar\",\n replace=True,\n ),\n ],\n request_headers_to_removes=[\"fizz\"],\n response_headers_to_adds=[\n gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs(\n header_name=\"foo-response-2\",\n header_value=\"bar\",\n replace=True,\n ),\n gcp.compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs(\n header_name=\"foo-response-1\",\n header_value=\"bar\",\n replace=True,\n ),\n ],\n response_headers_to_removes=[\"buzz\"],\n ),\n ),\n ],\n url_rewrite=gcp.compute.RegionUrlMapDefaultRouteActionUrlRewriteArgs(\n host_rewrite=\"dev.example.com\",\n path_prefix_rewrite=\"/v1/api/\",\n ),\n cors_policy=gcp.compute.RegionUrlMapDefaultRouteActionCorsPolicyArgs(\n disabled=False,\n allow_credentials=True,\n allow_headers=[\"foobar\"],\n allow_methods=[\n \"GET\",\n \"POST\",\n ],\n allow_origins=[\"example.com\"],\n expose_headers=[\"foobar\"],\n max_age=60,\n ),\n fault_injection_policy=gcp.compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs(\n delay=gcp.compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs(\n fixed_delay=gcp.compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs(\n seconds=\"0\",\n nanos=500,\n ),\n percentage=0.5,\n ),\n abort=gcp.compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs(\n http_status=500,\n percentage=0.5,\n ),\n ),\n timeout=gcp.compute.RegionUrlMapDefaultRouteActionTimeoutArgs(\n seconds=\"0\",\n nanos=500,\n ),\n ),\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=home.id,\n path_rules=[\n gcp.compute.RegionUrlMapPathMatcherPathRuleArgs(\n paths=[\"/home\"],\n service=home.id,\n ),\n gcp.compute.RegionUrlMapPathMatcherPathRuleArgs(\n paths=[\"/login\"],\n service=login.id,\n ),\n ],\n )],\n tests=[gcp.compute.RegionUrlMapTestArgs(\n service=home.id,\n host=\"hi.com\",\n path=\"/home\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"health-check\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n RequestPath = \"/\",\n },\n });\n\n var login = new Gcp.Compute.RegionBackendService(\"login\", new()\n {\n Region = \"us-central1\",\n Name = \"login\",\n Protocol = \"HTTP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n });\n\n var home = new Gcp.Compute.RegionBackendService(\"home\", new()\n {\n Region = \"us-central1\",\n Name = \"home\",\n Protocol = \"HTTP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n });\n\n var regionurlmap = new Gcp.Compute.RegionUrlMap(\"regionurlmap\", new()\n {\n Region = \"us-central1\",\n Name = \"regionurlmap\",\n Description = \"a description\",\n DefaultRouteAction = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionArgs\n {\n RetryPolicy = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionRetryPolicyArgs\n {\n RetryConditions = new[]\n {\n \"5xx\",\n \"gateway-error\",\n },\n NumRetries = 3,\n PerTryTimeout = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs\n {\n Seconds = \"0\",\n Nanos = 500,\n },\n },\n RequestMirrorPolicy = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs\n {\n BackendService = home.Id,\n },\n WeightedBackendServices = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs\n {\n BackendService = login.Id,\n Weight = 200,\n HeaderAction = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs\n {\n RequestHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs\n {\n HeaderName = \"foo-request-1\",\n HeaderValue = \"bar\",\n Replace = true,\n },\n },\n RequestHeadersToRemoves = new[]\n {\n \"fizz\",\n },\n ResponseHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs\n {\n HeaderName = \"foo-response-1\",\n HeaderValue = \"bar\",\n Replace = true,\n },\n },\n ResponseHeadersToRemoves = new[]\n {\n \"buzz\",\n },\n },\n },\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs\n {\n BackendService = home.Id,\n Weight = 100,\n HeaderAction = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs\n {\n RequestHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs\n {\n HeaderName = \"foo-request-1\",\n HeaderValue = \"bar\",\n Replace = true,\n },\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs\n {\n HeaderName = \"foo-request-2\",\n HeaderValue = \"bar\",\n Replace = true,\n },\n },\n RequestHeadersToRemoves = new[]\n {\n \"fizz\",\n },\n ResponseHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs\n {\n HeaderName = \"foo-response-2\",\n HeaderValue = \"bar\",\n Replace = true,\n },\n new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs\n {\n HeaderName = \"foo-response-1\",\n HeaderValue = \"bar\",\n Replace = true,\n },\n },\n ResponseHeadersToRemoves = new[]\n {\n \"buzz\",\n },\n },\n },\n },\n UrlRewrite = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionUrlRewriteArgs\n {\n HostRewrite = \"dev.example.com\",\n PathPrefixRewrite = \"/v1/api/\",\n },\n CorsPolicy = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionCorsPolicyArgs\n {\n Disabled = false,\n AllowCredentials = true,\n AllowHeaders = new[]\n {\n \"foobar\",\n },\n AllowMethods = new[]\n {\n \"GET\",\n \"POST\",\n },\n AllowOrigins = new[]\n {\n \"example.com\",\n },\n ExposeHeaders = new[]\n {\n \"foobar\",\n },\n MaxAge = 60,\n },\n FaultInjectionPolicy = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs\n {\n Delay = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs\n {\n FixedDelay = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs\n {\n Seconds = \"0\",\n Nanos = 500,\n },\n Percentage = 0.5,\n },\n Abort = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs\n {\n HttpStatus = 500,\n Percentage = 0.5,\n },\n },\n Timeout = new Gcp.Compute.Inputs.RegionUrlMapDefaultRouteActionTimeoutArgs\n {\n Seconds = \"0\",\n Nanos = 500,\n },\n },\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = home.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/home\",\n },\n Service = home.Id,\n },\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/login\",\n },\n Service = login.Id,\n },\n },\n },\n },\n Tests = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapTestArgs\n {\n Service = home.Id,\n Host = \"hi.com\",\n Path = \"/home\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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 := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlogin, err := compute.NewRegionBackendService(ctx, \"login\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"login\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thome, err := compute.NewRegionBackendService(ctx, \"home\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"home\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionUrlMap(ctx, \"regionurlmap\", \u0026compute.RegionUrlMapArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"regionurlmap\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultRouteAction: \u0026compute.RegionUrlMapDefaultRouteActionArgs{\n\t\t\t\tRetryPolicy: \u0026compute.RegionUrlMapDefaultRouteActionRetryPolicyArgs{\n\t\t\t\t\tRetryConditions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"5xx\"),\n\t\t\t\t\t\tpulumi.String(\"gateway-error\"),\n\t\t\t\t\t},\n\t\t\t\t\tNumRetries: pulumi.Int(3),\n\t\t\t\t\tPerTryTimeout: \u0026compute.RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs{\n\t\t\t\t\t\tSeconds: pulumi.String(\"0\"),\n\t\t\t\t\t\tNanos: pulumi.Int(500),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequestMirrorPolicy: \u0026compute.RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs{\n\t\t\t\t\tBackendService: home.ID(),\n\t\t\t\t},\n\t\t\t\tWeightedBackendServices: compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceArray{\n\t\t\t\t\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs{\n\t\t\t\t\t\tBackendService: login.ID(),\n\t\t\t\t\t\tWeight: pulumi.Int(200),\n\t\t\t\t\t\tHeaderAction: \u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs{\n\t\t\t\t\t\t\tRequestHeadersToAdds: compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"foo-request-1\"),\n\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"bar\"),\n\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tRequestHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"fizz\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tResponseHeadersToAdds: compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"foo-response-1\"),\n\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"bar\"),\n\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tResponseHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"buzz\"),\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\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs{\n\t\t\t\t\t\tBackendService: home.ID(),\n\t\t\t\t\t\tWeight: pulumi.Int(100),\n\t\t\t\t\t\tHeaderAction: \u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs{\n\t\t\t\t\t\t\tRequestHeadersToAdds: compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"foo-request-1\"),\n\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"bar\"),\n\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"foo-request-2\"),\n\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"bar\"),\n\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tRequestHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"fizz\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tResponseHeadersToAdds: compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"foo-response-2\"),\n\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"bar\"),\n\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"foo-response-1\"),\n\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"bar\"),\n\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tResponseHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"buzz\"),\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},\n\t\t\t\tUrlRewrite: \u0026compute.RegionUrlMapDefaultRouteActionUrlRewriteArgs{\n\t\t\t\t\tHostRewrite: pulumi.String(\"dev.example.com\"),\n\t\t\t\t\tPathPrefixRewrite: pulumi.String(\"/v1/api/\"),\n\t\t\t\t},\n\t\t\t\tCorsPolicy: \u0026compute.RegionUrlMapDefaultRouteActionCorsPolicyArgs{\n\t\t\t\t\tDisabled: pulumi.Bool(false),\n\t\t\t\t\tAllowCredentials: pulumi.Bool(true),\n\t\t\t\t\tAllowHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"foobar\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\tpulumi.String(\"POST\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowOrigins: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tExposeHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"foobar\"),\n\t\t\t\t\t},\n\t\t\t\t\tMaxAge: pulumi.Int(60),\n\t\t\t\t},\n\t\t\t\tFaultInjectionPolicy: \u0026compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs{\n\t\t\t\t\tDelay: \u0026compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs{\n\t\t\t\t\t\tFixedDelay: \u0026compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{\n\t\t\t\t\t\t\tSeconds: pulumi.String(\"0\"),\n\t\t\t\t\t\t\tNanos: pulumi.Int(500),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPercentage: pulumi.Float64(0.5),\n\t\t\t\t\t},\n\t\t\t\t\tAbort: \u0026compute.RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs{\n\t\t\t\t\t\tHttpStatus: pulumi.Int(500),\n\t\t\t\t\t\tPercentage: pulumi.Float64(0.5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tTimeout: \u0026compute.RegionUrlMapDefaultRouteActionTimeoutArgs{\n\t\t\t\t\tSeconds: pulumi.String(\"0\"),\n\t\t\t\t\tNanos: pulumi.Int(500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: home.ID(),\n\t\t\t\t\tPathRules: compute.RegionUrlMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/home\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: home.ID(),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/login\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: login.ID(),\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\tTests: compute.RegionUrlMapTestArray{\n\t\t\t\t\u0026compute.RegionUrlMapTestArgs{\n\t\t\t\t\tService: home.ID(),\n\t\t\t\t\tHost: pulumi.String(\"hi.com\"),\n\t\t\t\t\tPath: pulumi.String(\"/home\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionRetryPolicyArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionUrlRewriteArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionCorsPolicyArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapDefaultRouteActionTimeoutArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapTestArgs;\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 default_ = new RegionHealthCheck(\"default\", RegionHealthCheckArgs.builder() \n .region(\"us-central1\")\n .name(\"health-check\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .requestPath(\"/\")\n .build())\n .build());\n\n var login = new RegionBackendService(\"login\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"login\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .build());\n\n var home = new RegionBackendService(\"home\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"home\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .build());\n\n var regionurlmap = new RegionUrlMap(\"regionurlmap\", RegionUrlMapArgs.builder() \n .region(\"us-central1\")\n .name(\"regionurlmap\")\n .description(\"a description\")\n .defaultRouteAction(RegionUrlMapDefaultRouteActionArgs.builder()\n .retryPolicy(RegionUrlMapDefaultRouteActionRetryPolicyArgs.builder()\n .retryConditions( \n \"5xx\",\n \"gateway-error\")\n .numRetries(3)\n .perTryTimeout(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs.builder()\n .seconds(0)\n .nanos(500)\n .build())\n .build())\n .requestMirrorPolicy(RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs.builder()\n .backendService(home.id())\n .build())\n .weightedBackendServices( \n RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs.builder()\n .backendService(login.id())\n .weight(200)\n .headerAction(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs.builder()\n .requestHeadersToAdds(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs.builder()\n .headerName(\"foo-request-1\")\n .headerValue(\"bar\")\n .replace(true)\n .build())\n .requestHeadersToRemoves(\"fizz\")\n .responseHeadersToAdds(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs.builder()\n .headerName(\"foo-response-1\")\n .headerValue(\"bar\")\n .replace(true)\n .build())\n .responseHeadersToRemoves(\"buzz\")\n .build())\n .build(),\n RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs.builder()\n .backendService(home.id())\n .weight(100)\n .headerAction(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs.builder()\n .requestHeadersToAdds( \n RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs.builder()\n .headerName(\"foo-request-1\")\n .headerValue(\"bar\")\n .replace(true)\n .build(),\n RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs.builder()\n .headerName(\"foo-request-2\")\n .headerValue(\"bar\")\n .replace(true)\n .build())\n .requestHeadersToRemoves(\"fizz\")\n .responseHeadersToAdds( \n RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs.builder()\n .headerName(\"foo-response-2\")\n .headerValue(\"bar\")\n .replace(true)\n .build(),\n RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs.builder()\n .headerName(\"foo-response-1\")\n .headerValue(\"bar\")\n .replace(true)\n .build())\n .responseHeadersToRemoves(\"buzz\")\n .build())\n .build())\n .urlRewrite(RegionUrlMapDefaultRouteActionUrlRewriteArgs.builder()\n .hostRewrite(\"dev.example.com\")\n .pathPrefixRewrite(\"/v1/api/\")\n .build())\n .corsPolicy(RegionUrlMapDefaultRouteActionCorsPolicyArgs.builder()\n .disabled(false)\n .allowCredentials(true)\n .allowHeaders(\"foobar\")\n .allowMethods( \n \"GET\",\n \"POST\")\n .allowOrigins(\"example.com\")\n .exposeHeaders(\"foobar\")\n .maxAge(60)\n .build())\n .faultInjectionPolicy(RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs.builder()\n .delay(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs.builder()\n .fixedDelay(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs.builder()\n .seconds(0)\n .nanos(500)\n .build())\n .percentage(0.5)\n .build())\n .abort(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs.builder()\n .httpStatus(500)\n .percentage(0.5)\n .build())\n .build())\n .timeout(RegionUrlMapDefaultRouteActionTimeoutArgs.builder()\n .seconds(0)\n .nanos(500)\n .build())\n .build())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(home.id())\n .pathRules( \n RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/home\")\n .service(home.id())\n .build(),\n RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/login\")\n .service(login.id())\n .build())\n .build())\n .tests(RegionUrlMapTestArgs.builder()\n .service(home.id())\n .host(\"hi.com\")\n .path(\"/home\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n regionurlmap:\n type: gcp:compute:RegionUrlMap\n properties:\n region: us-central1\n name: regionurlmap\n description: a description\n defaultRouteAction:\n retryPolicy:\n retryConditions:\n - 5xx\n - gateway-error\n numRetries: 3\n perTryTimeout:\n seconds: 0\n nanos: 500\n requestMirrorPolicy:\n backendService: ${home.id}\n weightedBackendServices:\n - backendService: ${login.id}\n weight: 200\n headerAction:\n requestHeadersToAdds:\n - headerName: foo-request-1\n headerValue: bar\n replace: true\n requestHeadersToRemoves:\n - fizz\n responseHeadersToAdds:\n - headerName: foo-response-1\n headerValue: bar\n replace: true\n responseHeadersToRemoves:\n - buzz\n - backendService: ${home.id}\n weight: 100\n headerAction:\n requestHeadersToAdds:\n - headerName: foo-request-1\n headerValue: bar\n replace: true\n - headerName: foo-request-2\n headerValue: bar\n replace: true\n requestHeadersToRemoves:\n - fizz\n responseHeadersToAdds:\n - headerName: foo-response-2\n headerValue: bar\n replace: true\n - headerName: foo-response-1\n headerValue: bar\n replace: true\n responseHeadersToRemoves:\n - buzz\n urlRewrite:\n hostRewrite: dev.example.com\n pathPrefixRewrite: /v1/api/\n corsPolicy:\n disabled: false\n allowCredentials: true\n allowHeaders:\n - foobar\n allowMethods:\n - GET\n - POST\n allowOrigins:\n - example.com\n exposeHeaders:\n - foobar\n maxAge: 60\n faultInjectionPolicy:\n delay:\n fixedDelay:\n seconds: 0\n nanos: 500\n percentage: 0.5\n abort:\n httpStatus: 500\n percentage: 0.5\n timeout:\n seconds: 0\n nanos: 500\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${home.id}\n pathRules:\n - paths:\n - /home\n service: ${home.id}\n - paths:\n - /login\n service: ${login.id}\n tests:\n - service: ${home.id}\n host: hi.com\n path: /home\n login:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: login\n protocol: HTTP\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks: ${default.id}\n home:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: home\n protocol: HTTP\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks: ${default.id}\n default:\n type: gcp:compute:RegionHealthCheck\n properties:\n region: us-central1\n name: health-check\n checkIntervalSec: 1\n timeoutSec: 1\n httpHealthCheck:\n port: 80\n requestPath: /\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Region Url Map L7 Ilb Path\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionHealthCheck(\"default\", {\n name: \"health-check\",\n httpHealthCheck: {\n port: 80,\n },\n});\nconst home = new gcp.compute.RegionBackendService(\"home\", {\n name: \"home\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n healthChecks: _default.id,\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n});\nconst regionurlmap = new gcp.compute.RegionUrlMap(\"regionurlmap\", {\n name: \"regionurlmap\",\n description: \"a description\",\n defaultService: home.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: home.id,\n pathRules: [{\n paths: [\"/home\"],\n routeAction: {\n corsPolicy: {\n allowCredentials: true,\n allowHeaders: [\"Allowed content\"],\n allowMethods: [\"GET\"],\n allowOrigins: [\"Allowed origin\"],\n exposeHeaders: [\"Exposed header\"],\n maxAge: 30,\n disabled: false,\n },\n faultInjectionPolicy: {\n abort: {\n httpStatus: 234,\n percentage: 5.6,\n },\n delay: {\n fixedDelay: {\n seconds: \"0\",\n nanos: 50000,\n },\n percentage: 7.8,\n },\n },\n requestMirrorPolicy: {\n backendService: home.id,\n },\n retryPolicy: {\n numRetries: 4,\n perTryTimeout: {\n seconds: \"30\",\n },\n retryConditions: [\n \"5xx\",\n \"deadline-exceeded\",\n ],\n },\n timeout: {\n seconds: \"20\",\n nanos: 750000000,\n },\n urlRewrite: {\n hostRewrite: \"dev.example.com\",\n pathPrefixRewrite: \"/v1/api/\",\n },\n weightedBackendServices: [{\n backendService: home.id,\n weight: 400,\n headerAction: {\n requestHeadersToRemoves: [\"RemoveMe\"],\n requestHeadersToAdds: [{\n headerName: \"AddMe\",\n headerValue: \"MyValue\",\n replace: true,\n }],\n responseHeadersToRemoves: [\"RemoveMe\"],\n responseHeadersToAdds: [{\n headerName: \"AddMe\",\n headerValue: \"MyValue\",\n replace: false,\n }],\n },\n }],\n },\n }],\n }],\n tests: [{\n service: home.id,\n host: \"hi.com\",\n path: \"/home\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionHealthCheck(\"default\",\n name=\"health-check\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n ))\nhome = gcp.compute.RegionBackendService(\"home\",\n name=\"home\",\n protocol=\"HTTP\",\n timeout_sec=10,\n health_checks=default.id,\n load_balancing_scheme=\"INTERNAL_MANAGED\")\nregionurlmap = gcp.compute.RegionUrlMap(\"regionurlmap\",\n name=\"regionurlmap\",\n description=\"a description\",\n default_service=home.id,\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=home.id,\n path_rules=[gcp.compute.RegionUrlMapPathMatcherPathRuleArgs(\n paths=[\"/home\"],\n route_action=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionArgs(\n cors_policy=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs(\n allow_credentials=True,\n allow_headers=[\"Allowed content\"],\n allow_methods=[\"GET\"],\n allow_origins=[\"Allowed origin\"],\n expose_headers=[\"Exposed header\"],\n max_age=30,\n disabled=False,\n ),\n fault_injection_policy=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs(\n abort=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs(\n http_status=234,\n percentage=5.6,\n ),\n delay=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs(\n fixed_delay=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs(\n seconds=\"0\",\n nanos=50000,\n ),\n percentage=7.8,\n ),\n ),\n request_mirror_policy=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs(\n backend_service=home.id,\n ),\n retry_policy=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs(\n num_retries=4,\n per_try_timeout=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs(\n seconds=\"30\",\n ),\n retry_conditions=[\n \"5xx\",\n \"deadline-exceeded\",\n ],\n ),\n timeout=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs(\n seconds=\"20\",\n nanos=750000000,\n ),\n url_rewrite=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs(\n host_rewrite=\"dev.example.com\",\n path_prefix_rewrite=\"/v1/api/\",\n ),\n weighted_backend_services=[gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs(\n backend_service=home.id,\n weight=400,\n header_action=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs(\n request_headers_to_removes=[\"RemoveMe\"],\n request_headers_to_adds=[gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs(\n header_name=\"AddMe\",\n header_value=\"MyValue\",\n replace=True,\n )],\n response_headers_to_removes=[\"RemoveMe\"],\n response_headers_to_adds=[gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs(\n header_name=\"AddMe\",\n header_value=\"MyValue\",\n replace=False,\n )],\n ),\n )],\n ),\n )],\n )],\n tests=[gcp.compute.RegionUrlMapTestArgs(\n service=home.id,\n host=\"hi.com\",\n path=\"/home\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var home = new Gcp.Compute.RegionBackendService(\"home\", new()\n {\n Name = \"home\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n });\n\n var regionurlmap = new Gcp.Compute.RegionUrlMap(\"regionurlmap\", new()\n {\n Name = \"regionurlmap\",\n Description = \"a description\",\n DefaultService = home.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = home.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/home\",\n },\n RouteAction = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionArgs\n {\n CorsPolicy = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs\n {\n AllowCredentials = true,\n AllowHeaders = new[]\n {\n \"Allowed content\",\n },\n AllowMethods = new[]\n {\n \"GET\",\n },\n AllowOrigins = new[]\n {\n \"Allowed origin\",\n },\n ExposeHeaders = new[]\n {\n \"Exposed header\",\n },\n MaxAge = 30,\n Disabled = false,\n },\n FaultInjectionPolicy = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs\n {\n Abort = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs\n {\n HttpStatus = 234,\n Percentage = 5.6,\n },\n Delay = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs\n {\n FixedDelay = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs\n {\n Seconds = \"0\",\n Nanos = 50000,\n },\n Percentage = 7.8,\n },\n },\n RequestMirrorPolicy = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs\n {\n BackendService = home.Id,\n },\n RetryPolicy = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs\n {\n NumRetries = 4,\n PerTryTimeout = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs\n {\n Seconds = \"30\",\n },\n RetryConditions = new[]\n {\n \"5xx\",\n \"deadline-exceeded\",\n },\n },\n Timeout = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs\n {\n Seconds = \"20\",\n Nanos = 750000000,\n },\n UrlRewrite = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs\n {\n HostRewrite = \"dev.example.com\",\n PathPrefixRewrite = \"/v1/api/\",\n },\n WeightedBackendServices = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs\n {\n BackendService = home.Id,\n Weight = 400,\n HeaderAction = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs\n {\n RequestHeadersToRemoves = new[]\n {\n \"RemoveMe\",\n },\n RequestHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs\n {\n HeaderName = \"AddMe\",\n HeaderValue = \"MyValue\",\n Replace = true,\n },\n },\n ResponseHeadersToRemoves = new[]\n {\n \"RemoveMe\",\n },\n ResponseHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs\n {\n HeaderName = \"AddMe\",\n HeaderValue = \"MyValue\",\n Replace = false,\n },\n },\n },\n },\n },\n },\n },\n },\n },\n },\n Tests = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapTestArgs\n {\n Service = home.Id,\n Host = \"hi.com\",\n Path = \"/home\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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 := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thome, err := compute.NewRegionBackendService(ctx, \"home\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"home\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionUrlMap(ctx, \"regionurlmap\", \u0026compute.RegionUrlMapArgs{\n\t\t\tName: pulumi.String(\"regionurlmap\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: home.ID(),\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: home.ID(),\n\t\t\t\t\tPathRules: compute.RegionUrlMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/home\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tRouteAction: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionArgs{\n\t\t\t\t\t\t\t\tCorsPolicy: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs{\n\t\t\t\t\t\t\t\t\tAllowCredentials: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\tAllowHeaders: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"Allowed content\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tAllowMethods: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tAllowOrigins: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"Allowed origin\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tExposeHeaders: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"Exposed header\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tMaxAge: pulumi.Int(30),\n\t\t\t\t\t\t\t\t\tDisabled: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tFaultInjectionPolicy: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs{\n\t\t\t\t\t\t\t\t\tAbort: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs{\n\t\t\t\t\t\t\t\t\t\tHttpStatus: pulumi.Int(234),\n\t\t\t\t\t\t\t\t\t\tPercentage: pulumi.Float64(5.6),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tDelay: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs{\n\t\t\t\t\t\t\t\t\t\tFixedDelay: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs{\n\t\t\t\t\t\t\t\t\t\t\tSeconds: pulumi.String(\"0\"),\n\t\t\t\t\t\t\t\t\t\t\tNanos: pulumi.Int(50000),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tPercentage: pulumi.Float64(7.8),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tRequestMirrorPolicy: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs{\n\t\t\t\t\t\t\t\t\tBackendService: home.ID(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tRetryPolicy: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs{\n\t\t\t\t\t\t\t\t\tNumRetries: pulumi.Int(4),\n\t\t\t\t\t\t\t\t\tPerTryTimeout: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs{\n\t\t\t\t\t\t\t\t\t\tSeconds: pulumi.String(\"30\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tRetryConditions: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"5xx\"),\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"deadline-exceeded\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tTimeout: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs{\n\t\t\t\t\t\t\t\t\tSeconds: pulumi.String(\"20\"),\n\t\t\t\t\t\t\t\t\tNanos: pulumi.Int(750000000),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tUrlRewrite: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs{\n\t\t\t\t\t\t\t\t\tHostRewrite: pulumi.String(\"dev.example.com\"),\n\t\t\t\t\t\t\t\t\tPathPrefixRewrite: pulumi.String(\"/v1/api/\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tWeightedBackendServices: compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray{\n\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs{\n\t\t\t\t\t\t\t\t\t\tBackendService: home.ID(),\n\t\t\t\t\t\t\t\t\t\tWeight: pulumi.Int(400),\n\t\t\t\t\t\t\t\t\t\tHeaderAction: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs{\n\t\t\t\t\t\t\t\t\t\t\tRequestHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\t\t\tpulumi.String(\"RemoveMe\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tRequestHeadersToAdds: compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{\n\t\t\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"AddMe\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"MyValue\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tResponseHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\t\t\tpulumi.String(\"RemoveMe\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tResponseHeadersToAdds: compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{\n\t\t\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"AddMe\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"MyValue\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\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},\n\t\t\t},\n\t\t\tTests: compute.RegionUrlMapTestArray{\n\t\t\t\t\u0026compute.RegionUrlMapTestArgs{\n\t\t\t\t\tService: home.ID(),\n\t\t\t\t\tHost: pulumi.String(\"hi.com\"),\n\t\t\t\t\tPath: pulumi.String(\"/home\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapTestArgs;\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 default_ = new RegionHealthCheck(\"default\", RegionHealthCheckArgs.builder() \n .name(\"health-check\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var home = new RegionBackendService(\"home\", RegionBackendServiceArgs.builder() \n .name(\"home\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .build());\n\n var regionurlmap = new RegionUrlMap(\"regionurlmap\", RegionUrlMapArgs.builder() \n .name(\"regionurlmap\")\n .description(\"a description\")\n .defaultService(home.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(home.id())\n .pathRules(RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/home\")\n .routeAction(RegionUrlMapPathMatcherPathRuleRouteActionArgs.builder()\n .corsPolicy(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs.builder()\n .allowCredentials(true)\n .allowHeaders(\"Allowed content\")\n .allowMethods(\"GET\")\n .allowOrigins(\"Allowed origin\")\n .exposeHeaders(\"Exposed header\")\n .maxAge(30)\n .disabled(false)\n .build())\n .faultInjectionPolicy(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs.builder()\n .abort(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs.builder()\n .httpStatus(234)\n .percentage(5.6)\n .build())\n .delay(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs.builder()\n .fixedDelay(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs.builder()\n .seconds(0)\n .nanos(50000)\n .build())\n .percentage(7.8)\n .build())\n .build())\n .requestMirrorPolicy(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs.builder()\n .backendService(home.id())\n .build())\n .retryPolicy(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs.builder()\n .numRetries(4)\n .perTryTimeout(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs.builder()\n .seconds(30)\n .build())\n .retryConditions( \n \"5xx\",\n \"deadline-exceeded\")\n .build())\n .timeout(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs.builder()\n .seconds(20)\n .nanos(750000000)\n .build())\n .urlRewrite(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs.builder()\n .hostRewrite(\"dev.example.com\")\n .pathPrefixRewrite(\"/v1/api/\")\n .build())\n .weightedBackendServices(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs.builder()\n .backendService(home.id())\n .weight(400)\n .headerAction(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs.builder()\n .requestHeadersToRemoves(\"RemoveMe\")\n .requestHeadersToAdds(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs.builder()\n .headerName(\"AddMe\")\n .headerValue(\"MyValue\")\n .replace(true)\n .build())\n .responseHeadersToRemoves(\"RemoveMe\")\n .responseHeadersToAdds(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs.builder()\n .headerName(\"AddMe\")\n .headerValue(\"MyValue\")\n .replace(false)\n .build())\n .build())\n .build())\n .build())\n .build())\n .build())\n .tests(RegionUrlMapTestArgs.builder()\n .service(home.id())\n .host(\"hi.com\")\n .path(\"/home\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n regionurlmap:\n type: gcp:compute:RegionUrlMap\n properties:\n name: regionurlmap\n description: a description\n defaultService: ${home.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${home.id}\n pathRules:\n - paths:\n - /home\n routeAction:\n corsPolicy:\n allowCredentials: true\n allowHeaders:\n - Allowed content\n allowMethods:\n - GET\n allowOrigins:\n - Allowed origin\n exposeHeaders:\n - Exposed header\n maxAge: 30\n disabled: false\n faultInjectionPolicy:\n abort:\n httpStatus: 234\n percentage: 5.6\n delay:\n fixedDelay:\n seconds: 0\n nanos: 50000\n percentage: 7.8\n requestMirrorPolicy:\n backendService: ${home.id}\n retryPolicy:\n numRetries: 4\n perTryTimeout:\n seconds: 30\n retryConditions:\n - 5xx\n - deadline-exceeded\n timeout:\n seconds: 20\n nanos: 7.5e+08\n urlRewrite:\n hostRewrite: dev.example.com\n pathPrefixRewrite: /v1/api/\n weightedBackendServices:\n - backendService: ${home.id}\n weight: 400\n headerAction:\n requestHeadersToRemoves:\n - RemoveMe\n requestHeadersToAdds:\n - headerName: AddMe\n headerValue: MyValue\n replace: true\n responseHeadersToRemoves:\n - RemoveMe\n responseHeadersToAdds:\n - headerName: AddMe\n headerValue: MyValue\n replace: false\n tests:\n - service: ${home.id}\n host: hi.com\n path: /home\n home:\n type: gcp:compute:RegionBackendService\n properties:\n name: home\n protocol: HTTP\n timeoutSec: 10\n healthChecks: ${default.id}\n loadBalancingScheme: INTERNAL_MANAGED\n default:\n type: gcp:compute:RegionHealthCheck\n properties:\n name: health-check\n httpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Region Url Map L7 Ilb Path Partial\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionHealthCheck(\"default\", {\n name: \"health-check\",\n httpHealthCheck: {\n port: 80,\n },\n});\nconst home = new gcp.compute.RegionBackendService(\"home\", {\n name: \"home\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n healthChecks: _default.id,\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n});\nconst regionurlmap = new gcp.compute.RegionUrlMap(\"regionurlmap\", {\n name: \"regionurlmap\",\n description: \"a description\",\n defaultService: home.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: home.id,\n pathRules: [{\n paths: [\"/home\"],\n routeAction: {\n retryPolicy: {\n numRetries: 4,\n perTryTimeout: {\n seconds: \"30\",\n },\n retryConditions: [\n \"5xx\",\n \"deadline-exceeded\",\n ],\n },\n timeout: {\n seconds: \"20\",\n nanos: 750000000,\n },\n urlRewrite: {\n hostRewrite: \"dev.example.com\",\n pathPrefixRewrite: \"/v1/api/\",\n },\n weightedBackendServices: [{\n backendService: home.id,\n weight: 400,\n headerAction: {\n responseHeadersToAdds: [{\n headerName: \"AddMe\",\n headerValue: \"MyValue\",\n replace: false,\n }],\n },\n }],\n },\n }],\n }],\n tests: [{\n service: home.id,\n host: \"hi.com\",\n path: \"/home\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionHealthCheck(\"default\",\n name=\"health-check\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n ))\nhome = gcp.compute.RegionBackendService(\"home\",\n name=\"home\",\n protocol=\"HTTP\",\n timeout_sec=10,\n health_checks=default.id,\n load_balancing_scheme=\"INTERNAL_MANAGED\")\nregionurlmap = gcp.compute.RegionUrlMap(\"regionurlmap\",\n name=\"regionurlmap\",\n description=\"a description\",\n default_service=home.id,\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=home.id,\n path_rules=[gcp.compute.RegionUrlMapPathMatcherPathRuleArgs(\n paths=[\"/home\"],\n route_action=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionArgs(\n retry_policy=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs(\n num_retries=4,\n per_try_timeout=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs(\n seconds=\"30\",\n ),\n retry_conditions=[\n \"5xx\",\n \"deadline-exceeded\",\n ],\n ),\n timeout=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs(\n seconds=\"20\",\n nanos=750000000,\n ),\n url_rewrite=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs(\n host_rewrite=\"dev.example.com\",\n path_prefix_rewrite=\"/v1/api/\",\n ),\n weighted_backend_services=[gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs(\n backend_service=home.id,\n weight=400,\n header_action=gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs(\n response_headers_to_adds=[gcp.compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs(\n header_name=\"AddMe\",\n header_value=\"MyValue\",\n replace=False,\n )],\n ),\n )],\n ),\n )],\n )],\n tests=[gcp.compute.RegionUrlMapTestArgs(\n service=home.id,\n host=\"hi.com\",\n path=\"/home\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var home = new Gcp.Compute.RegionBackendService(\"home\", new()\n {\n Name = \"home\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n });\n\n var regionurlmap = new Gcp.Compute.RegionUrlMap(\"regionurlmap\", new()\n {\n Name = \"regionurlmap\",\n Description = \"a description\",\n DefaultService = home.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = home.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/home\",\n },\n RouteAction = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionArgs\n {\n RetryPolicy = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs\n {\n NumRetries = 4,\n PerTryTimeout = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs\n {\n Seconds = \"30\",\n },\n RetryConditions = new[]\n {\n \"5xx\",\n \"deadline-exceeded\",\n },\n },\n Timeout = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs\n {\n Seconds = \"20\",\n Nanos = 750000000,\n },\n UrlRewrite = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs\n {\n HostRewrite = \"dev.example.com\",\n PathPrefixRewrite = \"/v1/api/\",\n },\n WeightedBackendServices = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs\n {\n BackendService = home.Id,\n Weight = 400,\n HeaderAction = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs\n {\n ResponseHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs\n {\n HeaderName = \"AddMe\",\n HeaderValue = \"MyValue\",\n Replace = false,\n },\n },\n },\n },\n },\n },\n },\n },\n },\n },\n Tests = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapTestArgs\n {\n Service = home.Id,\n Host = \"hi.com\",\n Path = \"/home\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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 := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thome, err := compute.NewRegionBackendService(ctx, \"home\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"home\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionUrlMap(ctx, \"regionurlmap\", \u0026compute.RegionUrlMapArgs{\n\t\t\tName: pulumi.String(\"regionurlmap\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: home.ID(),\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: home.ID(),\n\t\t\t\t\tPathRules: compute.RegionUrlMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/home\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tRouteAction: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionArgs{\n\t\t\t\t\t\t\t\tRetryPolicy: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs{\n\t\t\t\t\t\t\t\t\tNumRetries: pulumi.Int(4),\n\t\t\t\t\t\t\t\t\tPerTryTimeout: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs{\n\t\t\t\t\t\t\t\t\t\tSeconds: pulumi.String(\"30\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tRetryConditions: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"5xx\"),\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"deadline-exceeded\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tTimeout: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs{\n\t\t\t\t\t\t\t\t\tSeconds: pulumi.String(\"20\"),\n\t\t\t\t\t\t\t\t\tNanos: pulumi.Int(750000000),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tUrlRewrite: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs{\n\t\t\t\t\t\t\t\t\tHostRewrite: pulumi.String(\"dev.example.com\"),\n\t\t\t\t\t\t\t\t\tPathPrefixRewrite: pulumi.String(\"/v1/api/\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tWeightedBackendServices: compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray{\n\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs{\n\t\t\t\t\t\t\t\t\t\tBackendService: home.ID(),\n\t\t\t\t\t\t\t\t\t\tWeight: pulumi.Int(400),\n\t\t\t\t\t\t\t\t\t\tHeaderAction: \u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs{\n\t\t\t\t\t\t\t\t\t\t\tResponseHeadersToAdds: compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{\n\t\t\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"AddMe\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"MyValue\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\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},\n\t\t\t},\n\t\t\tTests: compute.RegionUrlMapTestArray{\n\t\t\t\t\u0026compute.RegionUrlMapTestArgs{\n\t\t\t\t\tService: home.ID(),\n\t\t\t\t\tHost: pulumi.String(\"hi.com\"),\n\t\t\t\t\tPath: pulumi.String(\"/home\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapTestArgs;\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 default_ = new RegionHealthCheck(\"default\", RegionHealthCheckArgs.builder() \n .name(\"health-check\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var home = new RegionBackendService(\"home\", RegionBackendServiceArgs.builder() \n .name(\"home\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .build());\n\n var regionurlmap = new RegionUrlMap(\"regionurlmap\", RegionUrlMapArgs.builder() \n .name(\"regionurlmap\")\n .description(\"a description\")\n .defaultService(home.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(home.id())\n .pathRules(RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/home\")\n .routeAction(RegionUrlMapPathMatcherPathRuleRouteActionArgs.builder()\n .retryPolicy(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs.builder()\n .numRetries(4)\n .perTryTimeout(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs.builder()\n .seconds(30)\n .build())\n .retryConditions( \n \"5xx\",\n \"deadline-exceeded\")\n .build())\n .timeout(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs.builder()\n .seconds(20)\n .nanos(750000000)\n .build())\n .urlRewrite(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs.builder()\n .hostRewrite(\"dev.example.com\")\n .pathPrefixRewrite(\"/v1/api/\")\n .build())\n .weightedBackendServices(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs.builder()\n .backendService(home.id())\n .weight(400)\n .headerAction(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs.builder()\n .responseHeadersToAdds(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs.builder()\n .headerName(\"AddMe\")\n .headerValue(\"MyValue\")\n .replace(false)\n .build())\n .build())\n .build())\n .build())\n .build())\n .build())\n .tests(RegionUrlMapTestArgs.builder()\n .service(home.id())\n .host(\"hi.com\")\n .path(\"/home\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n regionurlmap:\n type: gcp:compute:RegionUrlMap\n properties:\n name: regionurlmap\n description: a description\n defaultService: ${home.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${home.id}\n pathRules:\n - paths:\n - /home\n routeAction:\n retryPolicy:\n numRetries: 4\n perTryTimeout:\n seconds: 30\n retryConditions:\n - 5xx\n - deadline-exceeded\n timeout:\n seconds: 20\n nanos: 7.5e+08\n urlRewrite:\n hostRewrite: dev.example.com\n pathPrefixRewrite: /v1/api/\n weightedBackendServices:\n - backendService: ${home.id}\n weight: 400\n headerAction:\n responseHeadersToAdds:\n - headerName: AddMe\n headerValue: MyValue\n replace: false\n tests:\n - service: ${home.id}\n host: hi.com\n path: /home\n home:\n type: gcp:compute:RegionBackendService\n properties:\n name: home\n protocol: HTTP\n timeoutSec: 10\n healthChecks: ${default.id}\n loadBalancingScheme: INTERNAL_MANAGED\n default:\n type: gcp:compute:RegionHealthCheck\n properties:\n name: health-check\n httpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Region Url Map L7 Ilb Route\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionHealthCheck(\"default\", {\n name: \"health-check\",\n httpHealthCheck: {\n port: 80,\n },\n});\nconst home = new gcp.compute.RegionBackendService(\"home\", {\n name: \"home\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n healthChecks: _default.id,\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n});\nconst regionurlmap = new gcp.compute.RegionUrlMap(\"regionurlmap\", {\n name: \"regionurlmap\",\n description: \"a description\",\n defaultService: home.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: home.id,\n routeRules: [{\n priority: 1,\n headerAction: {\n requestHeadersToRemoves: [\"RemoveMe2\"],\n requestHeadersToAdds: [{\n headerName: \"AddSomethingElse\",\n headerValue: \"MyOtherValue\",\n replace: true,\n }],\n responseHeadersToRemoves: [\"RemoveMe3\"],\n responseHeadersToAdds: [{\n headerName: \"AddMe\",\n headerValue: \"MyValue\",\n replace: false,\n }],\n },\n matchRules: [{\n fullPathMatch: \"a full path\",\n headerMatches: [{\n headerName: \"someheader\",\n exactMatch: \"match this exactly\",\n invertMatch: true,\n }],\n ignoreCase: true,\n metadataFilters: [{\n filterMatchCriteria: \"MATCH_ANY\",\n filterLabels: [{\n name: \"PLANET\",\n value: \"MARS\",\n }],\n }],\n queryParameterMatches: [{\n name: \"a query parameter\",\n presentMatch: true,\n }],\n }],\n urlRedirect: {\n hostRedirect: \"A host\",\n httpsRedirect: false,\n pathRedirect: \"some/path\",\n redirectResponseCode: \"TEMPORARY_REDIRECT\",\n stripQuery: true,\n },\n }],\n }],\n tests: [{\n service: home.id,\n host: \"hi.com\",\n path: \"/home\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionHealthCheck(\"default\",\n name=\"health-check\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n ))\nhome = gcp.compute.RegionBackendService(\"home\",\n name=\"home\",\n protocol=\"HTTP\",\n timeout_sec=10,\n health_checks=default.id,\n load_balancing_scheme=\"INTERNAL_MANAGED\")\nregionurlmap = gcp.compute.RegionUrlMap(\"regionurlmap\",\n name=\"regionurlmap\",\n description=\"a description\",\n default_service=home.id,\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=home.id,\n route_rules=[gcp.compute.RegionUrlMapPathMatcherRouteRuleArgs(\n priority=1,\n header_action=gcp.compute.RegionUrlMapPathMatcherRouteRuleHeaderActionArgs(\n request_headers_to_removes=[\"RemoveMe2\"],\n request_headers_to_adds=[gcp.compute.RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs(\n header_name=\"AddSomethingElse\",\n header_value=\"MyOtherValue\",\n replace=True,\n )],\n response_headers_to_removes=[\"RemoveMe3\"],\n response_headers_to_adds=[gcp.compute.RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs(\n header_name=\"AddMe\",\n header_value=\"MyValue\",\n replace=False,\n )],\n ),\n match_rules=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs(\n full_path_match=\"a full path\",\n header_matches=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs(\n header_name=\"someheader\",\n exact_match=\"match this exactly\",\n invert_match=True,\n )],\n ignore_case=True,\n metadata_filters=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs(\n filter_match_criteria=\"MATCH_ANY\",\n filter_labels=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs(\n name=\"PLANET\",\n value=\"MARS\",\n )],\n )],\n query_parameter_matches=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs(\n name=\"a query parameter\",\n present_match=True,\n )],\n )],\n url_redirect=gcp.compute.RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs(\n host_redirect=\"A host\",\n https_redirect=False,\n path_redirect=\"some/path\",\n redirect_response_code=\"TEMPORARY_REDIRECT\",\n strip_query=True,\n ),\n )],\n )],\n tests=[gcp.compute.RegionUrlMapTestArgs(\n service=home.id,\n host=\"hi.com\",\n path=\"/home\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var home = new Gcp.Compute.RegionBackendService(\"home\", new()\n {\n Name = \"home\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n });\n\n var regionurlmap = new Gcp.Compute.RegionUrlMap(\"regionurlmap\", new()\n {\n Name = \"regionurlmap\",\n Description = \"a description\",\n DefaultService = home.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = home.Id,\n RouteRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleArgs\n {\n Priority = 1,\n HeaderAction = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleHeaderActionArgs\n {\n RequestHeadersToRemoves = new[]\n {\n \"RemoveMe2\",\n },\n RequestHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs\n {\n HeaderName = \"AddSomethingElse\",\n HeaderValue = \"MyOtherValue\",\n Replace = true,\n },\n },\n ResponseHeadersToRemoves = new[]\n {\n \"RemoveMe3\",\n },\n ResponseHeadersToAdds = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs\n {\n HeaderName = \"AddMe\",\n HeaderValue = \"MyValue\",\n Replace = false,\n },\n },\n },\n MatchRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs\n {\n FullPathMatch = \"a full path\",\n HeaderMatches = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs\n {\n HeaderName = \"someheader\",\n ExactMatch = \"match this exactly\",\n InvertMatch = true,\n },\n },\n IgnoreCase = true,\n MetadataFilters = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs\n {\n FilterMatchCriteria = \"MATCH_ANY\",\n FilterLabels = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs\n {\n Name = \"PLANET\",\n Value = \"MARS\",\n },\n },\n },\n },\n QueryParameterMatches = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs\n {\n Name = \"a query parameter\",\n PresentMatch = true,\n },\n },\n },\n },\n UrlRedirect = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs\n {\n HostRedirect = \"A host\",\n HttpsRedirect = false,\n PathRedirect = \"some/path\",\n RedirectResponseCode = \"TEMPORARY_REDIRECT\",\n StripQuery = true,\n },\n },\n },\n },\n },\n Tests = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapTestArgs\n {\n Service = home.Id,\n Host = \"hi.com\",\n Path = \"/home\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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 := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thome, err := compute.NewRegionBackendService(ctx, \"home\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"home\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionUrlMap(ctx, \"regionurlmap\", \u0026compute.RegionUrlMapArgs{\n\t\t\tName: pulumi.String(\"regionurlmap\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: home.ID(),\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: home.ID(),\n\t\t\t\t\tRouteRules: compute.RegionUrlMapPathMatcherRouteRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleArgs{\n\t\t\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\t\t\tHeaderAction: \u0026compute.RegionUrlMapPathMatcherRouteRuleHeaderActionArgs{\n\t\t\t\t\t\t\t\tRequestHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\tpulumi.String(\"RemoveMe2\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tRequestHeadersToAdds: compute.RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArray{\n\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"AddSomethingElse\"),\n\t\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"MyOtherValue\"),\n\t\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tResponseHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\tpulumi.String(\"RemoveMe3\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tResponseHeadersToAdds: compute.RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArray{\n\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs{\n\t\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"AddMe\"),\n\t\t\t\t\t\t\t\t\t\tHeaderValue: pulumi.String(\"MyValue\"),\n\t\t\t\t\t\t\t\t\t\tReplace: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tMatchRules: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs{\n\t\t\t\t\t\t\t\t\tFullPathMatch: pulumi.String(\"a full path\"),\n\t\t\t\t\t\t\t\t\tHeaderMatches: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray{\n\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs{\n\t\t\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"someheader\"),\n\t\t\t\t\t\t\t\t\t\t\tExactMatch: pulumi.String(\"match this exactly\"),\n\t\t\t\t\t\t\t\t\t\t\tInvertMatch: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tIgnoreCase: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\tMetadataFilters: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArray{\n\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs{\n\t\t\t\t\t\t\t\t\t\t\tFilterMatchCriteria: pulumi.String(\"MATCH_ANY\"),\n\t\t\t\t\t\t\t\t\t\t\tFilterLabels: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArray{\n\t\t\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs{\n\t\t\t\t\t\t\t\t\t\t\t\t\tName: pulumi.String(\"PLANET\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tValue: pulumi.String(\"MARS\"),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tQueryParameterMatches: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray{\n\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs{\n\t\t\t\t\t\t\t\t\t\t\tName: pulumi.String(\"a query parameter\"),\n\t\t\t\t\t\t\t\t\t\t\tPresentMatch: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tUrlRedirect: \u0026compute.RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs{\n\t\t\t\t\t\t\t\tHostRedirect: pulumi.String(\"A host\"),\n\t\t\t\t\t\t\t\tHttpsRedirect: pulumi.Bool(false),\n\t\t\t\t\t\t\t\tPathRedirect: pulumi.String(\"some/path\"),\n\t\t\t\t\t\t\t\tRedirectResponseCode: pulumi.String(\"TEMPORARY_REDIRECT\"),\n\t\t\t\t\t\t\t\tStripQuery: pulumi.Bool(true),\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},\n\t\t\t},\n\t\t\tTests: compute.RegionUrlMapTestArray{\n\t\t\t\t\u0026compute.RegionUrlMapTestArgs{\n\t\t\t\t\tService: home.ID(),\n\t\t\t\t\tHost: pulumi.String(\"hi.com\"),\n\t\t\t\t\tPath: pulumi.String(\"/home\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapTestArgs;\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 default_ = new RegionHealthCheck(\"default\", RegionHealthCheckArgs.builder() \n .name(\"health-check\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var home = new RegionBackendService(\"home\", RegionBackendServiceArgs.builder() \n .name(\"home\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .build());\n\n var regionurlmap = new RegionUrlMap(\"regionurlmap\", RegionUrlMapArgs.builder() \n .name(\"regionurlmap\")\n .description(\"a description\")\n .defaultService(home.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(home.id())\n .routeRules(RegionUrlMapPathMatcherRouteRuleArgs.builder()\n .priority(1)\n .headerAction(RegionUrlMapPathMatcherRouteRuleHeaderActionArgs.builder()\n .requestHeadersToRemoves(\"RemoveMe2\")\n .requestHeadersToAdds(RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs.builder()\n .headerName(\"AddSomethingElse\")\n .headerValue(\"MyOtherValue\")\n .replace(true)\n .build())\n .responseHeadersToRemoves(\"RemoveMe3\")\n .responseHeadersToAdds(RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs.builder()\n .headerName(\"AddMe\")\n .headerValue(\"MyValue\")\n .replace(false)\n .build())\n .build())\n .matchRules(RegionUrlMapPathMatcherRouteRuleMatchRuleArgs.builder()\n .fullPathMatch(\"a full path\")\n .headerMatches(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs.builder()\n .headerName(\"someheader\")\n .exactMatch(\"match this exactly\")\n .invertMatch(true)\n .build())\n .ignoreCase(true)\n .metadataFilters(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs.builder()\n .filterMatchCriteria(\"MATCH_ANY\")\n .filterLabels(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs.builder()\n .name(\"PLANET\")\n .value(\"MARS\")\n .build())\n .build())\n .queryParameterMatches(RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs.builder()\n .name(\"a query parameter\")\n .presentMatch(true)\n .build())\n .build())\n .urlRedirect(RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs.builder()\n .hostRedirect(\"A host\")\n .httpsRedirect(false)\n .pathRedirect(\"some/path\")\n .redirectResponseCode(\"TEMPORARY_REDIRECT\")\n .stripQuery(true)\n .build())\n .build())\n .build())\n .tests(RegionUrlMapTestArgs.builder()\n .service(home.id())\n .host(\"hi.com\")\n .path(\"/home\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n regionurlmap:\n type: gcp:compute:RegionUrlMap\n properties:\n name: regionurlmap\n description: a description\n defaultService: ${home.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${home.id}\n routeRules:\n - priority: 1\n headerAction:\n requestHeadersToRemoves:\n - RemoveMe2\n requestHeadersToAdds:\n - headerName: AddSomethingElse\n headerValue: MyOtherValue\n replace: true\n responseHeadersToRemoves:\n - RemoveMe3\n responseHeadersToAdds:\n - headerName: AddMe\n headerValue: MyValue\n replace: false\n matchRules:\n - fullPathMatch: a full path\n headerMatches:\n - headerName: someheader\n exactMatch: match this exactly\n invertMatch: true\n ignoreCase: true\n metadataFilters:\n - filterMatchCriteria: MATCH_ANY\n filterLabels:\n - name: PLANET\n value: MARS\n queryParameterMatches:\n - name: a query parameter\n presentMatch: true\n urlRedirect:\n hostRedirect: A host\n httpsRedirect: false\n pathRedirect: some/path\n redirectResponseCode: TEMPORARY_REDIRECT\n stripQuery: true\n tests:\n - service: ${home.id}\n host: hi.com\n path: /home\n home:\n type: gcp:compute:RegionBackendService\n properties:\n name: home\n protocol: HTTP\n timeoutSec: 10\n healthChecks: ${default.id}\n loadBalancingScheme: INTERNAL_MANAGED\n default:\n type: gcp:compute:RegionHealthCheck\n properties:\n name: health-check\n httpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Region Url Map L7 Ilb Route Partial\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionHealthCheck(\"default\", {\n name: \"health-check\",\n httpHealthCheck: {\n port: 80,\n },\n});\nconst home = new gcp.compute.RegionBackendService(\"home\", {\n name: \"home\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n healthChecks: _default.id,\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n});\nconst regionurlmap = new gcp.compute.RegionUrlMap(\"regionurlmap\", {\n name: \"regionurlmap\",\n description: \"a description\",\n defaultService: home.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: home.id,\n routeRules: [{\n priority: 1,\n service: home.id,\n headerAction: {\n requestHeadersToRemoves: [\"RemoveMe2\"],\n },\n matchRules: [{\n fullPathMatch: \"a full path\",\n headerMatches: [{\n headerName: \"someheader\",\n exactMatch: \"match this exactly\",\n invertMatch: true,\n }],\n queryParameterMatches: [{\n name: \"a query parameter\",\n presentMatch: true,\n }],\n }],\n }],\n }],\n tests: [{\n service: home.id,\n host: \"hi.com\",\n path: \"/home\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionHealthCheck(\"default\",\n name=\"health-check\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n ))\nhome = gcp.compute.RegionBackendService(\"home\",\n name=\"home\",\n protocol=\"HTTP\",\n timeout_sec=10,\n health_checks=default.id,\n load_balancing_scheme=\"INTERNAL_MANAGED\")\nregionurlmap = gcp.compute.RegionUrlMap(\"regionurlmap\",\n name=\"regionurlmap\",\n description=\"a description\",\n default_service=home.id,\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=home.id,\n route_rules=[gcp.compute.RegionUrlMapPathMatcherRouteRuleArgs(\n priority=1,\n service=home.id,\n header_action=gcp.compute.RegionUrlMapPathMatcherRouteRuleHeaderActionArgs(\n request_headers_to_removes=[\"RemoveMe2\"],\n ),\n match_rules=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs(\n full_path_match=\"a full path\",\n header_matches=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs(\n header_name=\"someheader\",\n exact_match=\"match this exactly\",\n invert_match=True,\n )],\n query_parameter_matches=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs(\n name=\"a query parameter\",\n present_match=True,\n )],\n )],\n )],\n )],\n tests=[gcp.compute.RegionUrlMapTestArgs(\n service=home.id,\n host=\"hi.com\",\n path=\"/home\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var home = new Gcp.Compute.RegionBackendService(\"home\", new()\n {\n Name = \"home\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n HealthChecks = @default.Id,\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n });\n\n var regionurlmap = new Gcp.Compute.RegionUrlMap(\"regionurlmap\", new()\n {\n Name = \"regionurlmap\",\n Description = \"a description\",\n DefaultService = home.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = home.Id,\n RouteRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleArgs\n {\n Priority = 1,\n Service = home.Id,\n HeaderAction = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleHeaderActionArgs\n {\n RequestHeadersToRemoves = new[]\n {\n \"RemoveMe2\",\n },\n },\n MatchRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs\n {\n FullPathMatch = \"a full path\",\n HeaderMatches = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs\n {\n HeaderName = \"someheader\",\n ExactMatch = \"match this exactly\",\n InvertMatch = true,\n },\n },\n QueryParameterMatches = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs\n {\n Name = \"a query parameter\",\n PresentMatch = true,\n },\n },\n },\n },\n },\n },\n },\n },\n Tests = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapTestArgs\n {\n Service = home.Id,\n Host = \"hi.com\",\n Path = \"/home\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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 := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thome, err := compute.NewRegionBackendService(ctx, \"home\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"home\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: _default.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionUrlMap(ctx, \"regionurlmap\", \u0026compute.RegionUrlMapArgs{\n\t\t\tName: pulumi.String(\"regionurlmap\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: home.ID(),\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: home.ID(),\n\t\t\t\t\tRouteRules: compute.RegionUrlMapPathMatcherRouteRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleArgs{\n\t\t\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\t\t\tService: home.ID(),\n\t\t\t\t\t\t\tHeaderAction: \u0026compute.RegionUrlMapPathMatcherRouteRuleHeaderActionArgs{\n\t\t\t\t\t\t\t\tRequestHeadersToRemoves: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\tpulumi.String(\"RemoveMe2\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tMatchRules: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs{\n\t\t\t\t\t\t\t\t\tFullPathMatch: pulumi.String(\"a full path\"),\n\t\t\t\t\t\t\t\t\tHeaderMatches: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray{\n\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs{\n\t\t\t\t\t\t\t\t\t\t\tHeaderName: pulumi.String(\"someheader\"),\n\t\t\t\t\t\t\t\t\t\t\tExactMatch: pulumi.String(\"match this exactly\"),\n\t\t\t\t\t\t\t\t\t\t\tInvertMatch: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tQueryParameterMatches: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray{\n\t\t\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs{\n\t\t\t\t\t\t\t\t\t\t\tName: pulumi.String(\"a query parameter\"),\n\t\t\t\t\t\t\t\t\t\t\tPresentMatch: pulumi.Bool(true),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\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},\n\t\t\t},\n\t\t\tTests: compute.RegionUrlMapTestArray{\n\t\t\t\t\u0026compute.RegionUrlMapTestArgs{\n\t\t\t\t\tService: home.ID(),\n\t\t\t\t\tHost: pulumi.String(\"hi.com\"),\n\t\t\t\t\tPath: pulumi.String(\"/home\"),\n\t\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapTestArgs;\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 default_ = new RegionHealthCheck(\"default\", RegionHealthCheckArgs.builder() \n .name(\"health-check\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var home = new RegionBackendService(\"home\", RegionBackendServiceArgs.builder() \n .name(\"home\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(default_.id())\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .build());\n\n var regionurlmap = new RegionUrlMap(\"regionurlmap\", RegionUrlMapArgs.builder() \n .name(\"regionurlmap\")\n .description(\"a description\")\n .defaultService(home.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(home.id())\n .routeRules(RegionUrlMapPathMatcherRouteRuleArgs.builder()\n .priority(1)\n .service(home.id())\n .headerAction(RegionUrlMapPathMatcherRouteRuleHeaderActionArgs.builder()\n .requestHeadersToRemoves(\"RemoveMe2\")\n .build())\n .matchRules(RegionUrlMapPathMatcherRouteRuleMatchRuleArgs.builder()\n .fullPathMatch(\"a full path\")\n .headerMatches(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs.builder()\n .headerName(\"someheader\")\n .exactMatch(\"match this exactly\")\n .invertMatch(true)\n .build())\n .queryParameterMatches(RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs.builder()\n .name(\"a query parameter\")\n .presentMatch(true)\n .build())\n .build())\n .build())\n .build())\n .tests(RegionUrlMapTestArgs.builder()\n .service(home.id())\n .host(\"hi.com\")\n .path(\"/home\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n regionurlmap:\n type: gcp:compute:RegionUrlMap\n properties:\n name: regionurlmap\n description: a description\n defaultService: ${home.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${home.id}\n routeRules:\n - priority: 1\n service: ${home.id}\n headerAction:\n requestHeadersToRemoves:\n - RemoveMe2\n matchRules:\n - fullPathMatch: a full path\n headerMatches:\n - headerName: someheader\n exactMatch: match this exactly\n invertMatch: true\n queryParameterMatches:\n - name: a query parameter\n presentMatch: true\n tests:\n - service: ${home.id}\n host: hi.com\n path: /home\n home:\n type: gcp:compute:RegionBackendService\n properties:\n name: home\n protocol: HTTP\n timeoutSec: 10\n healthChecks: ${default.id}\n loadBalancingScheme: INTERNAL_MANAGED\n default:\n type: gcp:compute:RegionHealthCheck\n properties:\n name: health-check\n httpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Int Https Lb Https Redirect\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as tls from \"@pulumi/tls\";\n\n// Internal HTTPS load balancer with HTTP-to-HTTPS redirect\n// VPC network\nconst _default = new gcp.compute.Network(\"default\", {\n name: \"l7-ilb-network\",\n autoCreateSubnetworks: false,\n});\n// Proxy-only subnet\nconst proxySubnet = new gcp.compute.Subnetwork(\"proxy_subnet\", {\n name: \"l7-ilb-proxy-subnet\",\n ipCidrRange: \"10.0.0.0/24\",\n region: \"europe-west1\",\n purpose: \"REGIONAL_MANAGED_PROXY\",\n role: \"ACTIVE\",\n network: _default.id,\n});\n// Backend subnet\nconst defaultSubnetwork = new gcp.compute.Subnetwork(\"default\", {\n name: \"l7-ilb-subnet\",\n ipCidrRange: \"10.0.1.0/24\",\n region: \"europe-west1\",\n network: _default.id,\n});\n// Reserved internal address\nconst defaultAddress = new gcp.compute.Address(\"default\", {\n name: \"l7-ilb-ip\",\n subnetwork: defaultSubnetwork.id,\n addressType: \"INTERNAL\",\n address: \"10.0.1.5\",\n region: \"europe-west1\",\n purpose: \"SHARED_LOADBALANCER_VIP\",\n});\n// Self-signed regional SSL certificate for testing\nconst defaultPrivateKey = new tls.PrivateKey(\"default\", {\n algorithm: \"RSA\",\n rsaBits: 2048,\n});\nconst defaultSelfSignedCert = new tls.SelfSignedCert(\"default\", {\n keyAlgorithm: defaultPrivateKey.algorithm,\n privateKeyPem: defaultPrivateKey.privateKeyPem,\n validityPeriodHours: 12,\n earlyRenewalHours: 3,\n allowedUses: [\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ],\n dnsNames: [\"example.com\"],\n subject: {\n commonName: \"example.com\",\n organization: \"ACME Examples, Inc\",\n },\n});\nconst defaultRegionSslCertificate = new gcp.compute.RegionSslCertificate(\"default\", {\n namePrefix: \"my-certificate-\",\n privateKey: defaultPrivateKey.privateKeyPem,\n certificate: defaultSelfSignedCert.certPem,\n region: \"europe-west1\",\n});\n// Regional health check\nconst defaultRegionHealthCheck = new gcp.compute.RegionHealthCheck(\"default\", {\n name: \"l7-ilb-hc\",\n region: \"europe-west1\",\n httpHealthCheck: {\n portSpecification: \"USE_SERVING_PORT\",\n },\n});\n// Instance template\nconst defaultInstanceTemplate = new gcp.compute.InstanceTemplate(\"default\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: _default.id,\n subnetwork: defaultSubnetwork.id,\n }],\n name: \"l7-ilb-mig-template\",\n machineType: \"e2-small\",\n tags: [\"http-server\"],\n disks: [{\n sourceImage: \"debian-cloud/debian-10\",\n autoDelete: true,\n boot: true,\n }],\n metadata: {\n \"startup-script\": `#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: NAME\nIP: IP\nMetadata: METADATA\n\u003c/pre\u003e\nEOF\n`,\n },\n});\n// Regional MIG\nconst defaultRegionInstanceGroupManager = new gcp.compute.RegionInstanceGroupManager(\"default\", {\n name: \"l7-ilb-mig1\",\n region: \"europe-west1\",\n versions: [{\n instanceTemplate: defaultInstanceTemplate.id,\n name: \"primary\",\n }],\n namedPorts: [{\n name: \"http-server\",\n port: 80,\n }],\n baseInstanceName: \"vm\",\n targetSize: 2,\n});\n// Regional backend service\nconst defaultRegionBackendService = new gcp.compute.RegionBackendService(\"default\", {\n name: \"l7-ilb-backend-service\",\n region: \"europe-west1\",\n protocol: \"HTTP\",\n portName: \"http-server\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n timeoutSec: 10,\n healthChecks: defaultRegionHealthCheck.id,\n backends: [{\n group: defaultRegionInstanceGroupManager.instanceGroup,\n balancingMode: \"UTILIZATION\",\n capacityScaler: 1,\n }],\n});\n// Regional URL map\nconst httpsLb = new gcp.compute.RegionUrlMap(\"https_lb\", {\n name: \"l7-ilb-regional-url-map\",\n region: \"europe-west1\",\n defaultService: defaultRegionBackendService.id,\n});\n// Regional target HTTPS proxy\nconst defaultRegionTargetHttpsProxy = new gcp.compute.RegionTargetHttpsProxy(\"default\", {\n name: \"l7-ilb-target-https-proxy\",\n region: \"europe-west1\",\n urlMap: httpsLb.id,\n sslCertificates: [defaultRegionSslCertificate.selfLink],\n});\n// Regional forwarding rule\nconst defaultForwardingRule = new gcp.compute.ForwardingRule(\"default\", {\n name: \"l7-ilb-forwarding-rule\",\n region: \"europe-west1\",\n ipProtocol: \"TCP\",\n ipAddress: defaultAddress.id,\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n portRange: \"443\",\n target: defaultRegionTargetHttpsProxy.id,\n network: _default.id,\n subnetwork: defaultSubnetwork.id,\n networkTier: \"PREMIUM\",\n});\n// Allow all access to health check ranges\nconst defaultFirewall = new gcp.compute.Firewall(\"default\", {\n name: \"l7-ilb-fw-allow-hc\",\n direction: \"INGRESS\",\n network: _default.id,\n sourceRanges: [\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows: [{\n protocol: \"tcp\",\n }],\n});\n// Allow http from proxy subnet to backends\nconst backends = new gcp.compute.Firewall(\"backends\", {\n name: \"l7-ilb-fw-allow-ilb-to-backends\",\n direction: \"INGRESS\",\n network: _default.id,\n sourceRanges: [\"10.0.0.0/24\"],\n targetTags: [\"http-server\"],\n allows: [{\n protocol: \"tcp\",\n ports: [\n \"80\",\n \"443\",\n \"8080\",\n ],\n }],\n});\n// Test instance\nconst defaultInstance = new gcp.compute.Instance(\"default\", {\n name: \"l7-ilb-test-vm\",\n zone: \"europe-west1-b\",\n machineType: \"e2-small\",\n networkInterfaces: [{\n network: _default.id,\n subnetwork: defaultSubnetwork.id,\n }],\n bootDisk: {\n initializeParams: {\n image: \"debian-cloud/debian-10\",\n },\n },\n});\n//## HTTP-to-HTTPS redirect ###\n// Regional URL map\nconst redirectRegionUrlMap = new gcp.compute.RegionUrlMap(\"redirect\", {\n name: \"l7-ilb-redirect-url-map\",\n region: \"europe-west1\",\n defaultService: defaultRegionBackendService.id,\n hostRules: [{\n hosts: [\"*\"],\n pathMatcher: \"allpaths\",\n }],\n pathMatchers: [{\n name: \"allpaths\",\n defaultService: defaultRegionBackendService.id,\n pathRules: [{\n paths: [\"/\"],\n urlRedirect: {\n httpsRedirect: true,\n hostRedirect: \"10.0.1.5:443\",\n redirectResponseCode: \"PERMANENT_REDIRECT\",\n stripQuery: true,\n },\n }],\n }],\n});\n// Regional HTTP proxy\nconst defaultRegionTargetHttpProxy = new gcp.compute.RegionTargetHttpProxy(\"default\", {\n name: \"l7-ilb-target-http-proxy\",\n region: \"europe-west1\",\n urlMap: redirectRegionUrlMap.id,\n});\n// Regional forwarding rule\nconst redirect = new gcp.compute.ForwardingRule(\"redirect\", {\n name: \"l7-ilb-redirect\",\n region: \"europe-west1\",\n ipProtocol: \"TCP\",\n ipAddress: defaultAddress.id,\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n portRange: \"80\",\n target: defaultRegionTargetHttpProxy.id,\n network: _default.id,\n subnetwork: defaultSubnetwork.id,\n networkTier: \"PREMIUM\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_tls as tls\n\n# Internal HTTPS load balancer with HTTP-to-HTTPS redirect\n# VPC network\ndefault = gcp.compute.Network(\"default\",\n name=\"l7-ilb-network\",\n auto_create_subnetworks=False)\n# Proxy-only subnet\nproxy_subnet = gcp.compute.Subnetwork(\"proxy_subnet\",\n name=\"l7-ilb-proxy-subnet\",\n ip_cidr_range=\"10.0.0.0/24\",\n region=\"europe-west1\",\n purpose=\"REGIONAL_MANAGED_PROXY\",\n role=\"ACTIVE\",\n network=default.id)\n# Backend subnet\ndefault_subnetwork = gcp.compute.Subnetwork(\"default\",\n name=\"l7-ilb-subnet\",\n ip_cidr_range=\"10.0.1.0/24\",\n region=\"europe-west1\",\n network=default.id)\n# Reserved internal address\ndefault_address = gcp.compute.Address(\"default\",\n name=\"l7-ilb-ip\",\n subnetwork=default_subnetwork.id,\n address_type=\"INTERNAL\",\n address=\"10.0.1.5\",\n region=\"europe-west1\",\n purpose=\"SHARED_LOADBALANCER_VIP\")\n# Self-signed regional SSL certificate for testing\ndefault_private_key = tls.PrivateKey(\"default\",\n algorithm=\"RSA\",\n rsa_bits=2048)\ndefault_self_signed_cert = tls.SelfSignedCert(\"default\",\n key_algorithm=default_private_key.algorithm,\n private_key_pem=default_private_key.private_key_pem,\n validity_period_hours=12,\n early_renewal_hours=3,\n allowed_uses=[\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ],\n dns_names=[\"example.com\"],\n subject=tls.SelfSignedCertSubjectArgs(\n common_name=\"example.com\",\n organization=\"ACME Examples, Inc\",\n ))\ndefault_region_ssl_certificate = gcp.compute.RegionSslCertificate(\"default\",\n name_prefix=\"my-certificate-\",\n private_key=default_private_key.private_key_pem,\n certificate=default_self_signed_cert.cert_pem,\n region=\"europe-west1\")\n# Regional health check\ndefault_region_health_check = gcp.compute.RegionHealthCheck(\"default\",\n name=\"l7-ilb-hc\",\n region=\"europe-west1\",\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port_specification=\"USE_SERVING_PORT\",\n ))\n# Instance template\ndefault_instance_template = gcp.compute.InstanceTemplate(\"default\",\n network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(\n access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],\n network=default.id,\n subnetwork=default_subnetwork.id,\n )],\n name=\"l7-ilb-mig-template\",\n machine_type=\"e2-small\",\n tags=[\"http-server\"],\n disks=[gcp.compute.InstanceTemplateDiskArgs(\n source_image=\"debian-cloud/debian-10\",\n auto_delete=True,\n boot=True,\n )],\n metadata={\n \"startup-script\": \"\"\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\"\"\",\n })\n# Regional MIG\ndefault_region_instance_group_manager = gcp.compute.RegionInstanceGroupManager(\"default\",\n name=\"l7-ilb-mig1\",\n region=\"europe-west1\",\n versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(\n instance_template=default_instance_template.id,\n name=\"primary\",\n )],\n named_ports=[gcp.compute.RegionInstanceGroupManagerNamedPortArgs(\n name=\"http-server\",\n port=80,\n )],\n base_instance_name=\"vm\",\n target_size=2)\n# Regional backend service\ndefault_region_backend_service = gcp.compute.RegionBackendService(\"default\",\n name=\"l7-ilb-backend-service\",\n region=\"europe-west1\",\n protocol=\"HTTP\",\n port_name=\"http-server\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n timeout_sec=10,\n health_checks=default_region_health_check.id,\n backends=[gcp.compute.RegionBackendServiceBackendArgs(\n group=default_region_instance_group_manager.instance_group,\n balancing_mode=\"UTILIZATION\",\n capacity_scaler=1,\n )])\n# Regional URL map\nhttps_lb = gcp.compute.RegionUrlMap(\"https_lb\",\n name=\"l7-ilb-regional-url-map\",\n region=\"europe-west1\",\n default_service=default_region_backend_service.id)\n# Regional target HTTPS proxy\ndefault_region_target_https_proxy = gcp.compute.RegionTargetHttpsProxy(\"default\",\n name=\"l7-ilb-target-https-proxy\",\n region=\"europe-west1\",\n url_map=https_lb.id,\n ssl_certificates=[default_region_ssl_certificate.self_link])\n# Regional forwarding rule\ndefault_forwarding_rule = gcp.compute.ForwardingRule(\"default\",\n name=\"l7-ilb-forwarding-rule\",\n region=\"europe-west1\",\n ip_protocol=\"TCP\",\n ip_address=default_address.id,\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n port_range=\"443\",\n target=default_region_target_https_proxy.id,\n network=default.id,\n subnetwork=default_subnetwork.id,\n network_tier=\"PREMIUM\")\n# Allow all access to health check ranges\ndefault_firewall = gcp.compute.Firewall(\"default\",\n name=\"l7-ilb-fw-allow-hc\",\n direction=\"INGRESS\",\n network=default.id,\n source_ranges=[\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n ],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n )])\n# Allow http from proxy subnet to backends\nbackends = gcp.compute.Firewall(\"backends\",\n name=\"l7-ilb-fw-allow-ilb-to-backends\",\n direction=\"INGRESS\",\n network=default.id,\n source_ranges=[\"10.0.0.0/24\"],\n target_tags=[\"http-server\"],\n allows=[gcp.compute.FirewallAllowArgs(\n protocol=\"tcp\",\n ports=[\n \"80\",\n \"443\",\n \"8080\",\n ],\n )])\n# Test instance\ndefault_instance = gcp.compute.Instance(\"default\",\n name=\"l7-ilb-test-vm\",\n zone=\"europe-west1-b\",\n machine_type=\"e2-small\",\n network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(\n network=default.id,\n subnetwork=default_subnetwork.id,\n )],\n boot_disk=gcp.compute.InstanceBootDiskArgs(\n initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(\n image=\"debian-cloud/debian-10\",\n ),\n ))\n### HTTP-to-HTTPS redirect ###\n# Regional URL map\nredirect_region_url_map = gcp.compute.RegionUrlMap(\"redirect\",\n name=\"l7-ilb-redirect-url-map\",\n region=\"europe-west1\",\n default_service=default_region_backend_service.id,\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"*\"],\n path_matcher=\"allpaths\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"allpaths\",\n default_service=default_region_backend_service.id,\n path_rules=[gcp.compute.RegionUrlMapPathMatcherPathRuleArgs(\n paths=[\"/\"],\n url_redirect=gcp.compute.RegionUrlMapPathMatcherPathRuleUrlRedirectArgs(\n https_redirect=True,\n host_redirect=\"10.0.1.5:443\",\n redirect_response_code=\"PERMANENT_REDIRECT\",\n strip_query=True,\n ),\n )],\n )])\n# Regional HTTP proxy\ndefault_region_target_http_proxy = gcp.compute.RegionTargetHttpProxy(\"default\",\n name=\"l7-ilb-target-http-proxy\",\n region=\"europe-west1\",\n url_map=redirect_region_url_map.id)\n# Regional forwarding rule\nredirect = gcp.compute.ForwardingRule(\"redirect\",\n name=\"l7-ilb-redirect\",\n region=\"europe-west1\",\n ip_protocol=\"TCP\",\n ip_address=default_address.id,\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n port_range=\"80\",\n target=default_region_target_http_proxy.id,\n network=default.id,\n subnetwork=default_subnetwork.id,\n network_tier=\"PREMIUM\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Tls = Pulumi.Tls;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Internal HTTPS load balancer with HTTP-to-HTTPS redirect\n // VPC network\n var @default = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"l7-ilb-network\",\n AutoCreateSubnetworks = false,\n });\n\n // Proxy-only subnet\n var proxySubnet = new Gcp.Compute.Subnetwork(\"proxy_subnet\", new()\n {\n Name = \"l7-ilb-proxy-subnet\",\n IpCidrRange = \"10.0.0.0/24\",\n Region = \"europe-west1\",\n Purpose = \"REGIONAL_MANAGED_PROXY\",\n Role = \"ACTIVE\",\n Network = @default.Id,\n });\n\n // Backend subnet\n var defaultSubnetwork = new Gcp.Compute.Subnetwork(\"default\", new()\n {\n Name = \"l7-ilb-subnet\",\n IpCidrRange = \"10.0.1.0/24\",\n Region = \"europe-west1\",\n Network = @default.Id,\n });\n\n // Reserved internal address\n var defaultAddress = new Gcp.Compute.Address(\"default\", new()\n {\n Name = \"l7-ilb-ip\",\n Subnetwork = defaultSubnetwork.Id,\n AddressType = \"INTERNAL\",\n IPAddress = \"10.0.1.5\",\n Region = \"europe-west1\",\n Purpose = \"SHARED_LOADBALANCER_VIP\",\n });\n\n // Self-signed regional SSL certificate for testing\n var defaultPrivateKey = new Tls.PrivateKey(\"default\", new()\n {\n Algorithm = \"RSA\",\n RsaBits = 2048,\n });\n\n var defaultSelfSignedCert = new Tls.SelfSignedCert(\"default\", new()\n {\n KeyAlgorithm = defaultPrivateKey.Algorithm,\n PrivateKeyPem = defaultPrivateKey.PrivateKeyPem,\n ValidityPeriodHours = 12,\n EarlyRenewalHours = 3,\n AllowedUses = new[]\n {\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n },\n DnsNames = new[]\n {\n \"example.com\",\n },\n Subject = new Tls.Inputs.SelfSignedCertSubjectArgs\n {\n CommonName = \"example.com\",\n Organization = \"ACME Examples, Inc\",\n },\n });\n\n var defaultRegionSslCertificate = new Gcp.Compute.RegionSslCertificate(\"default\", new()\n {\n NamePrefix = \"my-certificate-\",\n PrivateKey = defaultPrivateKey.PrivateKeyPem,\n Certificate = defaultSelfSignedCert.CertPem,\n Region = \"europe-west1\",\n });\n\n // Regional health check\n var defaultRegionHealthCheck = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Name = \"l7-ilb-hc\",\n Region = \"europe-west1\",\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n PortSpecification = \"USE_SERVING_PORT\",\n },\n });\n\n // Instance template\n var defaultInstanceTemplate = new Gcp.Compute.InstanceTemplate(\"default\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = @default.Id,\n Subnetwork = defaultSubnetwork.Id,\n },\n },\n Name = \"l7-ilb-mig-template\",\n MachineType = \"e2-small\",\n Tags = new[]\n {\n \"http-server\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.InstanceTemplateDiskArgs\n {\n SourceImage = \"debian-cloud/debian-10\",\n AutoDelete = true,\n Boot = true,\n },\n },\n Metadata = \n {\n { \"startup-script\", @\"#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/hostname\"\")\nIP=$(curl -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\"\")\nMETADATA=$(curl -f -H \"\"Metadata-Flavor: Google\"\" \"\"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\"\" | jq 'del(.[\"\"startup-script\"\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n\" },\n },\n });\n\n // Regional MIG\n var defaultRegionInstanceGroupManager = new Gcp.Compute.RegionInstanceGroupManager(\"default\", new()\n {\n Name = \"l7-ilb-mig1\",\n Region = \"europe-west1\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs\n {\n InstanceTemplate = defaultInstanceTemplate.Id,\n Name = \"primary\",\n },\n },\n NamedPorts = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceGroupManagerNamedPortArgs\n {\n Name = \"http-server\",\n Port = 80,\n },\n },\n BaseInstanceName = \"vm\",\n TargetSize = 2,\n });\n\n // Regional backend service\n var defaultRegionBackendService = new Gcp.Compute.RegionBackendService(\"default\", new()\n {\n Name = \"l7-ilb-backend-service\",\n Region = \"europe-west1\",\n Protocol = \"HTTP\",\n PortName = \"http-server\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n TimeoutSec = 10,\n HealthChecks = defaultRegionHealthCheck.Id,\n Backends = new[]\n {\n new Gcp.Compute.Inputs.RegionBackendServiceBackendArgs\n {\n Group = defaultRegionInstanceGroupManager.InstanceGroup,\n BalancingMode = \"UTILIZATION\",\n CapacityScaler = 1,\n },\n },\n });\n\n // Regional URL map\n var httpsLb = new Gcp.Compute.RegionUrlMap(\"https_lb\", new()\n {\n Name = \"l7-ilb-regional-url-map\",\n Region = \"europe-west1\",\n DefaultService = defaultRegionBackendService.Id,\n });\n\n // Regional target HTTPS proxy\n var defaultRegionTargetHttpsProxy = new Gcp.Compute.RegionTargetHttpsProxy(\"default\", new()\n {\n Name = \"l7-ilb-target-https-proxy\",\n Region = \"europe-west1\",\n UrlMap = httpsLb.Id,\n SslCertificates = new[]\n {\n defaultRegionSslCertificate.SelfLink,\n },\n });\n\n // Regional forwarding rule\n var defaultForwardingRule = new Gcp.Compute.ForwardingRule(\"default\", new()\n {\n Name = \"l7-ilb-forwarding-rule\",\n Region = \"europe-west1\",\n IpProtocol = \"TCP\",\n IpAddress = defaultAddress.Id,\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n PortRange = \"443\",\n Target = defaultRegionTargetHttpsProxy.Id,\n Network = @default.Id,\n Subnetwork = defaultSubnetwork.Id,\n NetworkTier = \"PREMIUM\",\n });\n\n // Allow all access to health check ranges\n var defaultFirewall = new Gcp.Compute.Firewall(\"default\", new()\n {\n Name = \"l7-ilb-fw-allow-hc\",\n Direction = \"INGRESS\",\n Network = @default.Id,\n SourceRanges = new[]\n {\n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n },\n },\n });\n\n // Allow http from proxy subnet to backends\n var backends = new Gcp.Compute.Firewall(\"backends\", new()\n {\n Name = \"l7-ilb-fw-allow-ilb-to-backends\",\n Direction = \"INGRESS\",\n Network = @default.Id,\n SourceRanges = new[]\n {\n \"10.0.0.0/24\",\n },\n TargetTags = new[]\n {\n \"http-server\",\n },\n Allows = new[]\n {\n new Gcp.Compute.Inputs.FirewallAllowArgs\n {\n Protocol = \"tcp\",\n Ports = new[]\n {\n \"80\",\n \"443\",\n \"8080\",\n },\n },\n },\n });\n\n // Test instance\n var defaultInstance = new Gcp.Compute.Instance(\"default\", new()\n {\n Name = \"l7-ilb-test-vm\",\n Zone = \"europe-west1-b\",\n MachineType = \"e2-small\",\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs\n {\n Network = @default.Id,\n Subnetwork = defaultSubnetwork.Id,\n },\n },\n BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs\n {\n InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs\n {\n Image = \"debian-cloud/debian-10\",\n },\n },\n });\n\n //## HTTP-to-HTTPS redirect ###\n // Regional URL map\n var redirectRegionUrlMap = new Gcp.Compute.RegionUrlMap(\"redirect\", new()\n {\n Name = \"l7-ilb-redirect-url-map\",\n Region = \"europe-west1\",\n DefaultService = defaultRegionBackendService.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"*\",\n },\n PathMatcher = \"allpaths\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"allpaths\",\n DefaultService = defaultRegionBackendService.Id,\n PathRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleArgs\n {\n Paths = new[]\n {\n \"/\",\n },\n UrlRedirect = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherPathRuleUrlRedirectArgs\n {\n HttpsRedirect = true,\n HostRedirect = \"10.0.1.5:443\",\n RedirectResponseCode = \"PERMANENT_REDIRECT\",\n StripQuery = true,\n },\n },\n },\n },\n },\n });\n\n // Regional HTTP proxy\n var defaultRegionTargetHttpProxy = new Gcp.Compute.RegionTargetHttpProxy(\"default\", new()\n {\n Name = \"l7-ilb-target-http-proxy\",\n Region = \"europe-west1\",\n UrlMap = redirectRegionUrlMap.Id,\n });\n\n // Regional forwarding rule\n var redirect = new Gcp.Compute.ForwardingRule(\"redirect\", new()\n {\n Name = \"l7-ilb-redirect\",\n Region = \"europe-west1\",\n IpProtocol = \"TCP\",\n IpAddress = defaultAddress.Id,\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n PortRange = \"80\",\n Target = defaultRegionTargetHttpProxy.Id,\n Network = @default.Id,\n Subnetwork = defaultSubnetwork.Id,\n NetworkTier = \"PREMIUM\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-tls/sdk/v4/go/tls\"\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// Internal HTTPS load balancer with HTTP-to-HTTPS redirect\n\t\t// VPC network\n\t\t_, err := compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Proxy-only subnet\n\t\t_, err = compute.NewSubnetwork(ctx, \"proxy_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-proxy-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/24\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tPurpose: pulumi.String(\"REGIONAL_MANAGED_PROXY\"),\n\t\t\tRole: pulumi.String(\"ACTIVE\"),\n\t\t\tNetwork: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Backend subnet\n\t\tdefaultSubnetwork, err := compute.NewSubnetwork(ctx, \"default\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tNetwork: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Reserved internal address\n\t\tdefaultAddress, err := compute.NewAddress(ctx, \"default\", \u0026compute.AddressArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-ip\"),\n\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tAddress: pulumi.String(\"10.0.1.5\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tPurpose: pulumi.String(\"SHARED_LOADBALANCER_VIP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Self-signed regional SSL certificate for testing\n\t\tdefaultPrivateKey, err := tls.NewPrivateKey(ctx, \"default\", \u0026tls.PrivateKeyArgs{\n\t\t\tAlgorithm: pulumi.String(\"RSA\"),\n\t\t\tRsaBits: pulumi.Int(2048),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSelfSignedCert, err := tls.NewSelfSignedCert(ctx, \"default\", \u0026tls.SelfSignedCertArgs{\n\t\t\tKeyAlgorithm: defaultPrivateKey.Algorithm,\n\t\t\tPrivateKeyPem: defaultPrivateKey.PrivateKeyPem,\n\t\t\tValidityPeriodHours: pulumi.Int(12),\n\t\t\tEarlyRenewalHours: pulumi.Int(3),\n\t\t\tAllowedUses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"key_encipherment\"),\n\t\t\t\tpulumi.String(\"digital_signature\"),\n\t\t\t\tpulumi.String(\"server_auth\"),\n\t\t\t},\n\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"example.com\"),\n\t\t\t},\n\t\t\tSubject: \u0026tls.SelfSignedCertSubjectArgs{\n\t\t\t\tCommonName: pulumi.String(\"example.com\"),\n\t\t\t\tOrganization: pulumi.String(\"ACME Examples, Inc\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegionSslCertificate, err := compute.NewRegionSslCertificate(ctx, \"default\", \u0026compute.RegionSslCertificateArgs{\n\t\t\tNamePrefix: pulumi.String(\"my-certificate-\"),\n\t\t\tPrivateKey: defaultPrivateKey.PrivateKeyPem,\n\t\t\tCertificate: defaultSelfSignedCert.CertPem,\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional health check\n\t\tdefaultRegionHealthCheck, err := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-hc\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPortSpecification: pulumi.String(\"USE_SERVING_PORT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Instance template\n\t\tdefaultInstanceTemplate, err := compute.NewInstanceTemplate(ctx, \"default\", \u0026compute.InstanceTemplateArgs{\n\t\t\tNetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: _default.ID(),\n\t\t\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"l7-ilb-mig-template\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tDisks: compute.InstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.InstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"startup-script\": pulumi.Any(`#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional MIG\n\t\tdefaultRegionInstanceGroupManager, err := compute.NewRegionInstanceGroupManager(ctx, \"default\", \u0026compute.RegionInstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-mig1\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tVersions: compute.RegionInstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: defaultInstanceTemplate.ID(),\n\t\t\t\t\tName: pulumi.String(\"primary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNamedPorts: compute.RegionInstanceGroupManagerNamedPortArray{\n\t\t\t\t\u0026compute.RegionInstanceGroupManagerNamedPortArgs{\n\t\t\t\t\tName: pulumi.String(\"http-server\"),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBaseInstanceName: pulumi.String(\"vm\"),\n\t\t\tTargetSize: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional backend service\n\t\tdefaultRegionBackendService, err := compute.NewRegionBackendService(ctx, \"default\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-backend-service\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tPortName: pulumi.String(\"http-server\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tHealthChecks: defaultRegionHealthCheck.ID(),\n\t\t\tBackends: compute.RegionBackendServiceBackendArray{\n\t\t\t\t\u0026compute.RegionBackendServiceBackendArgs{\n\t\t\t\t\tGroup: defaultRegionInstanceGroupManager.InstanceGroup,\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional URL map\n\t\thttpsLb, err := compute.NewRegionUrlMap(ctx, \"https_lb\", \u0026compute.RegionUrlMapArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-regional-url-map\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tDefaultService: defaultRegionBackendService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional target HTTPS proxy\n\t\tdefaultRegionTargetHttpsProxy, err := compute.NewRegionTargetHttpsProxy(ctx, \"default\", \u0026compute.RegionTargetHttpsProxyArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-target-https-proxy\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tUrlMap: httpsLb.ID(),\n\t\t\tSslCertificates: pulumi.StringArray{\n\t\t\t\tdefaultRegionSslCertificate.SelfLink,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional forwarding rule\n\t\t_, err = compute.NewForwardingRule(ctx, \"default\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-forwarding-rule\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tIpAddress: defaultAddress.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tPortRange: pulumi.String(\"443\"),\n\t\t\tTarget: defaultRegionTargetHttpsProxy.ID(),\n\t\t\tNetwork: _default.ID(),\n\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\tNetworkTier: pulumi.String(\"PREMIUM\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Allow all access to health check ranges\n\t\t_, err = compute.NewFirewall(ctx, \"default\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-fw-allow-hc\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: _default.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"130.211.0.0/22\"),\n\t\t\t\tpulumi.String(\"35.191.0.0/16\"),\n\t\t\t\tpulumi.String(\"35.235.240.0/20\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Allow http from proxy subnet to backends\n\t\t_, err = compute.NewFirewall(ctx, \"backends\", \u0026compute.FirewallArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-fw-allow-ilb-to-backends\"),\n\t\t\tDirection: pulumi.String(\"INGRESS\"),\n\t\t\tNetwork: _default.ID(),\n\t\t\tSourceRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/24\"),\n\t\t\t},\n\t\t\tTargetTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"http-server\"),\n\t\t\t},\n\t\t\tAllows: compute.FirewallAllowArray{\n\t\t\t\t\u0026compute.FirewallAllowArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"80\"),\n\t\t\t\t\t\tpulumi.String(\"443\"),\n\t\t\t\t\t\tpulumi.String(\"8080\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Test instance\n\t\t_, err = compute.NewInstance(ctx, \"default\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-test-vm\"),\n\t\t\tZone: pulumi.String(\"europe-west1-b\"),\n\t\t\tMachineType: pulumi.String(\"e2-small\"),\n\t\t\tNetworkInterfaces: compute.InstanceNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: _default.ID(),\n\t\t\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBootDisk: \u0026compute.InstanceBootDiskArgs{\n\t\t\t\tInitializeParams: \u0026compute.InstanceBootDiskInitializeParamsArgs{\n\t\t\t\t\tImage: pulumi.String(\"debian-cloud/debian-10\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional URL map\n\t\tredirectRegionUrlMap, err := compute.NewRegionUrlMap(ctx, \"redirect\", \u0026compute.RegionUrlMapArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-redirect-url-map\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tDefaultService: defaultRegionBackendService.ID(),\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"allpaths\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"allpaths\"),\n\t\t\t\t\tDefaultService: defaultRegionBackendService.ID(),\n\t\t\t\t\tPathRules: compute.RegionUrlMapPathMatcherPathRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherPathRuleArgs{\n\t\t\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"/\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tUrlRedirect: \u0026compute.RegionUrlMapPathMatcherPathRuleUrlRedirectArgs{\n\t\t\t\t\t\t\t\tHttpsRedirect: pulumi.Bool(true),\n\t\t\t\t\t\t\t\tHostRedirect: pulumi.String(\"10.0.1.5:443\"),\n\t\t\t\t\t\t\t\tRedirectResponseCode: pulumi.String(\"PERMANENT_REDIRECT\"),\n\t\t\t\t\t\t\t\tStripQuery: pulumi.Bool(true),\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},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional HTTP proxy\n\t\tdefaultRegionTargetHttpProxy, err := compute.NewRegionTargetHttpProxy(ctx, \"default\", \u0026compute.RegionTargetHttpProxyArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-target-http-proxy\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tUrlMap: redirectRegionUrlMap.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Regional forwarding rule\n\t\t_, err = compute.NewForwardingRule(ctx, \"redirect\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"l7-ilb-redirect\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tIpAddress: defaultAddress.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\tTarget: defaultRegionTargetHttpProxy.ID(),\n\t\t\tNetwork: _default.ID(),\n\t\t\tSubnetwork: defaultSubnetwork.ID(),\n\t\t\tNetworkTier: pulumi.String(\"PREMIUM\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.Address;\nimport com.pulumi.gcp.compute.AddressArgs;\nimport com.pulumi.tls.PrivateKey;\nimport com.pulumi.tls.PrivateKeyArgs;\nimport com.pulumi.tls.SelfSignedCert;\nimport com.pulumi.tls.SelfSignedCertArgs;\nimport com.pulumi.tls.inputs.SelfSignedCertSubjectArgs;\nimport com.pulumi.gcp.compute.RegionSslCertificate;\nimport com.pulumi.gcp.compute.RegionSslCertificateArgs;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.InstanceTemplate;\nimport com.pulumi.gcp.compute.InstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManager;\nimport com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerNamedPortArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.RegionBackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.RegionTargetHttpsProxy;\nimport com.pulumi.gcp.compute.RegionTargetHttpsProxyArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.compute.Firewall;\nimport com.pulumi.gcp.compute.FirewallArgs;\nimport com.pulumi.gcp.compute.inputs.FirewallAllowArgs;\nimport com.pulumi.gcp.compute.Instance;\nimport com.pulumi.gcp.compute.InstanceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxy;\nimport com.pulumi.gcp.compute.RegionTargetHttpProxyArgs;\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 // Internal HTTPS load balancer with HTTP-to-HTTPS redirect\n // VPC network\n var default_ = new Network(\"default\", NetworkArgs.builder() \n .name(\"l7-ilb-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n // Proxy-only subnet\n var proxySubnet = new Subnetwork(\"proxySubnet\", SubnetworkArgs.builder() \n .name(\"l7-ilb-proxy-subnet\")\n .ipCidrRange(\"10.0.0.0/24\")\n .region(\"europe-west1\")\n .purpose(\"REGIONAL_MANAGED_PROXY\")\n .role(\"ACTIVE\")\n .network(default_.id())\n .build());\n\n // Backend subnet\n var defaultSubnetwork = new Subnetwork(\"defaultSubnetwork\", SubnetworkArgs.builder() \n .name(\"l7-ilb-subnet\")\n .ipCidrRange(\"10.0.1.0/24\")\n .region(\"europe-west1\")\n .network(default_.id())\n .build());\n\n // Reserved internal address\n var defaultAddress = new Address(\"defaultAddress\", AddressArgs.builder() \n .name(\"l7-ilb-ip\")\n .subnetwork(defaultSubnetwork.id())\n .addressType(\"INTERNAL\")\n .address(\"10.0.1.5\")\n .region(\"europe-west1\")\n .purpose(\"SHARED_LOADBALANCER_VIP\")\n .build());\n\n // Self-signed regional SSL certificate for testing\n var defaultPrivateKey = new PrivateKey(\"defaultPrivateKey\", PrivateKeyArgs.builder() \n .algorithm(\"RSA\")\n .rsaBits(2048)\n .build());\n\n var defaultSelfSignedCert = new SelfSignedCert(\"defaultSelfSignedCert\", SelfSignedCertArgs.builder() \n .keyAlgorithm(defaultPrivateKey.algorithm())\n .privateKeyPem(defaultPrivateKey.privateKeyPem())\n .validityPeriodHours(12)\n .earlyRenewalHours(3)\n .allowedUses( \n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\")\n .dnsNames(\"example.com\")\n .subject(SelfSignedCertSubjectArgs.builder()\n .commonName(\"example.com\")\n .organization(\"ACME Examples, Inc\")\n .build())\n .build());\n\n var defaultRegionSslCertificate = new RegionSslCertificate(\"defaultRegionSslCertificate\", RegionSslCertificateArgs.builder() \n .namePrefix(\"my-certificate-\")\n .privateKey(defaultPrivateKey.privateKeyPem())\n .certificate(defaultSelfSignedCert.certPem())\n .region(\"europe-west1\")\n .build());\n\n // Regional health check\n var defaultRegionHealthCheck = new RegionHealthCheck(\"defaultRegionHealthCheck\", RegionHealthCheckArgs.builder() \n .name(\"l7-ilb-hc\")\n .region(\"europe-west1\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .portSpecification(\"USE_SERVING_PORT\")\n .build())\n .build());\n\n // Instance template\n var defaultInstanceTemplate = new InstanceTemplate(\"defaultInstanceTemplate\", InstanceTemplateArgs.builder() \n .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(default_.id())\n .subnetwork(defaultSubnetwork.id())\n .build())\n .name(\"l7-ilb-mig-template\")\n .machineType(\"e2-small\")\n .tags(\"http-server\")\n .disks(InstanceTemplateDiskArgs.builder()\n .sourceImage(\"debian-cloud/debian-10\")\n .autoDelete(true)\n .boot(true)\n .build())\n .metadata(Map.of(\"startup-script\", \"\"\"\n#! /bin/bash\nset -euo pipefail\n\nexport DEBIAN_FRONTEND=noninteractive\napt-get update\napt-get install -y nginx-light jq\n\nNAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\nIP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\nMETADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\ncat \u003c\u003cEOF \u003e /var/www/html/index.html\n\u003cpre\u003e\nName: $NAME\nIP: $IP\nMetadata: $METADATA\n\u003c/pre\u003e\nEOF\n \"\"\"))\n .build());\n\n // Regional MIG\n var defaultRegionInstanceGroupManager = new RegionInstanceGroupManager(\"defaultRegionInstanceGroupManager\", RegionInstanceGroupManagerArgs.builder() \n .name(\"l7-ilb-mig1\")\n .region(\"europe-west1\")\n .versions(RegionInstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(defaultInstanceTemplate.id())\n .name(\"primary\")\n .build())\n .namedPorts(RegionInstanceGroupManagerNamedPortArgs.builder()\n .name(\"http-server\")\n .port(80)\n .build())\n .baseInstanceName(\"vm\")\n .targetSize(2)\n .build());\n\n // Regional backend service\n var defaultRegionBackendService = new RegionBackendService(\"defaultRegionBackendService\", RegionBackendServiceArgs.builder() \n .name(\"l7-ilb-backend-service\")\n .region(\"europe-west1\")\n .protocol(\"HTTP\")\n .portName(\"http-server\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(defaultRegionHealthCheck.id())\n .backends(RegionBackendServiceBackendArgs.builder()\n .group(defaultRegionInstanceGroupManager.instanceGroup())\n .balancingMode(\"UTILIZATION\")\n .capacityScaler(1)\n .build())\n .build());\n\n // Regional URL map\n var httpsLb = new RegionUrlMap(\"httpsLb\", RegionUrlMapArgs.builder() \n .name(\"l7-ilb-regional-url-map\")\n .region(\"europe-west1\")\n .defaultService(defaultRegionBackendService.id())\n .build());\n\n // Regional target HTTPS proxy\n var defaultRegionTargetHttpsProxy = new RegionTargetHttpsProxy(\"defaultRegionTargetHttpsProxy\", RegionTargetHttpsProxyArgs.builder() \n .name(\"l7-ilb-target-https-proxy\")\n .region(\"europe-west1\")\n .urlMap(httpsLb.id())\n .sslCertificates(defaultRegionSslCertificate.selfLink())\n .build());\n\n // Regional forwarding rule\n var defaultForwardingRule = new ForwardingRule(\"defaultForwardingRule\", ForwardingRuleArgs.builder() \n .name(\"l7-ilb-forwarding-rule\")\n .region(\"europe-west1\")\n .ipProtocol(\"TCP\")\n .ipAddress(defaultAddress.id())\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .portRange(\"443\")\n .target(defaultRegionTargetHttpsProxy.id())\n .network(default_.id())\n .subnetwork(defaultSubnetwork.id())\n .networkTier(\"PREMIUM\")\n .build());\n\n // Allow all access to health check ranges\n var defaultFirewall = new Firewall(\"defaultFirewall\", FirewallArgs.builder() \n .name(\"l7-ilb-fw-allow-hc\")\n .direction(\"INGRESS\")\n .network(default_.id())\n .sourceRanges( \n \"130.211.0.0/22\",\n \"35.191.0.0/16\",\n \"35.235.240.0/20\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .build())\n .build());\n\n // Allow http from proxy subnet to backends\n var backends = new Firewall(\"backends\", FirewallArgs.builder() \n .name(\"l7-ilb-fw-allow-ilb-to-backends\")\n .direction(\"INGRESS\")\n .network(default_.id())\n .sourceRanges(\"10.0.0.0/24\")\n .targetTags(\"http-server\")\n .allows(FirewallAllowArgs.builder()\n .protocol(\"tcp\")\n .ports( \n \"80\",\n \"443\",\n \"8080\")\n .build())\n .build());\n\n // Test instance\n var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder() \n .name(\"l7-ilb-test-vm\")\n .zone(\"europe-west1-b\")\n .machineType(\"e2-small\")\n .networkInterfaces(InstanceNetworkInterfaceArgs.builder()\n .network(default_.id())\n .subnetwork(defaultSubnetwork.id())\n .build())\n .bootDisk(InstanceBootDiskArgs.builder()\n .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()\n .image(\"debian-cloud/debian-10\")\n .build())\n .build())\n .build());\n\n //## HTTP-to-HTTPS redirect ###\n // Regional URL map\n var redirectRegionUrlMap = new RegionUrlMap(\"redirectRegionUrlMap\", RegionUrlMapArgs.builder() \n .name(\"l7-ilb-redirect-url-map\")\n .region(\"europe-west1\")\n .defaultService(defaultRegionBackendService.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"*\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(defaultRegionBackendService.id())\n .pathRules(RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/\")\n .urlRedirect(RegionUrlMapPathMatcherPathRuleUrlRedirectArgs.builder()\n .httpsRedirect(true)\n .hostRedirect(\"10.0.1.5:443\")\n .redirectResponseCode(\"PERMANENT_REDIRECT\")\n .stripQuery(true)\n .build())\n .build())\n .build())\n .build());\n\n // Regional HTTP proxy\n var defaultRegionTargetHttpProxy = new RegionTargetHttpProxy(\"defaultRegionTargetHttpProxy\", RegionTargetHttpProxyArgs.builder() \n .name(\"l7-ilb-target-http-proxy\")\n .region(\"europe-west1\")\n .urlMap(redirectRegionUrlMap.id())\n .build());\n\n // Regional forwarding rule\n var redirect = new ForwardingRule(\"redirect\", ForwardingRuleArgs.builder() \n .name(\"l7-ilb-redirect\")\n .region(\"europe-west1\")\n .ipProtocol(\"TCP\")\n .ipAddress(defaultAddress.id())\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .portRange(\"80\")\n .target(defaultRegionTargetHttpProxy.id())\n .network(default_.id())\n .subnetwork(defaultSubnetwork.id())\n .networkTier(\"PREMIUM\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Internal HTTPS load balancer with HTTP-to-HTTPS redirect\n\n\n\n # VPC network\n default:\n type: gcp:compute:Network\n properties:\n name: l7-ilb-network\n autoCreateSubnetworks: false\n # Proxy-only subnet\n proxySubnet:\n type: gcp:compute:Subnetwork\n name: proxy_subnet\n properties:\n name: l7-ilb-proxy-subnet\n ipCidrRange: 10.0.0.0/24\n region: europe-west1\n purpose: REGIONAL_MANAGED_PROXY\n role: ACTIVE\n network: ${default.id}\n # Backend subnet\n defaultSubnetwork:\n type: gcp:compute:Subnetwork\n name: default\n properties:\n name: l7-ilb-subnet\n ipCidrRange: 10.0.1.0/24\n region: europe-west1\n network: ${default.id}\n # Reserved internal address\n defaultAddress:\n type: gcp:compute:Address\n name: default\n properties:\n name: l7-ilb-ip\n subnetwork: ${defaultSubnetwork.id}\n addressType: INTERNAL\n address: 10.0.1.5\n region: europe-west1\n purpose: SHARED_LOADBALANCER_VIP\n # Regional forwarding rule\n defaultForwardingRule:\n type: gcp:compute:ForwardingRule\n name: default\n properties:\n name: l7-ilb-forwarding-rule\n region: europe-west1\n ipProtocol: TCP\n ipAddress: ${defaultAddress.id}\n loadBalancingScheme: INTERNAL_MANAGED\n portRange: '443'\n target: ${defaultRegionTargetHttpsProxy.id}\n network: ${default.id}\n subnetwork: ${defaultSubnetwork.id}\n networkTier: PREMIUM\n # Self-signed regional SSL certificate for testing\n defaultPrivateKey:\n type: tls:PrivateKey\n name: default\n properties:\n algorithm: RSA\n rsaBits: 2048\n defaultSelfSignedCert:\n type: tls:SelfSignedCert\n name: default\n properties:\n keyAlgorithm: ${defaultPrivateKey.algorithm}\n privateKeyPem: ${defaultPrivateKey.privateKeyPem}\n validityPeriodHours: 12 # Generate a new certificate if Terraform is run within three\n # # hours of the certificate's expiration time.\n earlyRenewalHours: 3 # Reasonable set of uses for a server SSL certificate.\n allowedUses:\n - key_encipherment\n - digital_signature\n - server_auth\n dnsNames:\n - example.com\n subject:\n commonName: example.com\n organization: ACME Examples, Inc\n defaultRegionSslCertificate:\n type: gcp:compute:RegionSslCertificate\n name: default\n properties:\n namePrefix: my-certificate-\n privateKey: ${defaultPrivateKey.privateKeyPem}\n certificate: ${defaultSelfSignedCert.certPem}\n region: europe-west1\n # Regional target HTTPS proxy\n defaultRegionTargetHttpsProxy:\n type: gcp:compute:RegionTargetHttpsProxy\n name: default\n properties:\n name: l7-ilb-target-https-proxy\n region: europe-west1\n urlMap: ${httpsLb.id}\n sslCertificates:\n - ${defaultRegionSslCertificate.selfLink}\n # Regional URL map\n httpsLb:\n type: gcp:compute:RegionUrlMap\n name: https_lb\n properties:\n name: l7-ilb-regional-url-map\n region: europe-west1\n defaultService: ${defaultRegionBackendService.id}\n # Regional backend service\n defaultRegionBackendService:\n type: gcp:compute:RegionBackendService\n name: default\n properties:\n name: l7-ilb-backend-service\n region: europe-west1\n protocol: HTTP\n portName: http-server\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks: ${defaultRegionHealthCheck.id}\n backends:\n - group: ${defaultRegionInstanceGroupManager.instanceGroup}\n balancingMode: UTILIZATION\n capacityScaler: 1\n # Instance template\n defaultInstanceTemplate:\n type: gcp:compute:InstanceTemplate\n name: default\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: ${default.id}\n subnetwork: ${defaultSubnetwork.id}\n name: l7-ilb-mig-template\n machineType: e2-small\n tags:\n - http-server\n disks:\n - sourceImage: debian-cloud/debian-10\n autoDelete: true\n boot: true\n metadata:\n startup-script: |\n #! /bin/bash\n set -euo pipefail\n\n export DEBIAN_FRONTEND=noninteractive\n apt-get update\n apt-get install -y nginx-light jq\n\n NAME=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/hostname\")\n IP=$(curl -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip\")\n METADATA=$(curl -f -H \"Metadata-Flavor: Google\" \"http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True\" | jq 'del(.[\"startup-script\"])')\n\n cat \u003c\u003cEOF \u003e /var/www/html/index.html\n \u003cpre\u003e\n Name: $NAME\n IP: $IP\n Metadata: $METADATA\n \u003c/pre\u003e\n EOF\n # Regional health check\n defaultRegionHealthCheck:\n type: gcp:compute:RegionHealthCheck\n name: default\n properties:\n name: l7-ilb-hc\n region: europe-west1\n httpHealthCheck:\n portSpecification: USE_SERVING_PORT\n # Regional MIG\n defaultRegionInstanceGroupManager:\n type: gcp:compute:RegionInstanceGroupManager\n name: default\n properties:\n name: l7-ilb-mig1\n region: europe-west1\n versions:\n - instanceTemplate: ${defaultInstanceTemplate.id}\n name: primary\n namedPorts:\n - name: http-server\n port: 80\n baseInstanceName: vm\n targetSize: 2\n # Allow all access to health check ranges\n defaultFirewall:\n type: gcp:compute:Firewall\n name: default\n properties:\n name: l7-ilb-fw-allow-hc\n direction: INGRESS\n network: ${default.id}\n sourceRanges:\n - 130.211.0.0/22\n - 35.191.0.0/16\n - 35.235.240.0/20\n allows:\n - protocol: tcp\n # Allow http from proxy subnet to backends\n backends:\n type: gcp:compute:Firewall\n properties:\n name: l7-ilb-fw-allow-ilb-to-backends\n direction: INGRESS\n network: ${default.id}\n sourceRanges:\n - 10.0.0.0/24\n targetTags:\n - http-server\n allows:\n - protocol: tcp\n ports:\n - '80'\n - '443'\n - '8080'\n # Test instance\n defaultInstance: ### HTTP-to-HTTPS redirect ###\n type: gcp:compute:Instance\n name: default\n properties:\n name: l7-ilb-test-vm\n zone: europe-west1-b\n machineType: e2-small\n networkInterfaces:\n - network: ${default.id}\n subnetwork: ${defaultSubnetwork.id}\n bootDisk:\n initializeParams:\n image: debian-cloud/debian-10\n # Regional forwarding rule\n redirect:\n type: gcp:compute:ForwardingRule\n properties:\n name: l7-ilb-redirect\n region: europe-west1\n ipProtocol: TCP\n ipAddress: ${defaultAddress.id}\n loadBalancingScheme: INTERNAL_MANAGED\n portRange: '80'\n target: ${defaultRegionTargetHttpProxy.id}\n network: ${default.id}\n subnetwork: ${defaultSubnetwork.id}\n networkTier: PREMIUM\n # Regional HTTP proxy\n defaultRegionTargetHttpProxy:\n type: gcp:compute:RegionTargetHttpProxy\n name: default\n properties:\n name: l7-ilb-target-http-proxy\n region: europe-west1\n urlMap: ${redirectRegionUrlMap.id}\n # Regional URL map\n redirectRegionUrlMap:\n type: gcp:compute:RegionUrlMap\n name: redirect\n properties:\n name: l7-ilb-redirect-url-map\n region: europe-west1\n defaultService: ${defaultRegionBackendService.id}\n hostRules:\n - hosts:\n - '*'\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${defaultRegionBackendService.id}\n pathRules:\n - paths:\n - /\n urlRedirect:\n httpsRedirect: true\n hostRedirect: 10.0.1.5:443\n redirectResponseCode: PERMANENT_REDIRECT\n stripQuery: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Region Url Map Path Template Match\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionHealthCheck(\"default\", {\n region: \"us-central1\",\n name: \"health-check\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n httpHealthCheck: {\n port: 80,\n requestPath: \"/\",\n },\n});\nconst home_backend = new gcp.compute.RegionBackendService(\"home-backend\", {\n region: \"us-central1\",\n name: \"home-service\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n healthChecks: _default.id,\n});\nconst cart_backend = new gcp.compute.RegionBackendService(\"cart-backend\", {\n region: \"us-central1\",\n name: \"cart-service\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n healthChecks: _default.id,\n});\nconst user_backend = new gcp.compute.RegionBackendService(\"user-backend\", {\n region: \"us-central1\",\n name: \"user-service\",\n portName: \"http\",\n protocol: \"HTTP\",\n timeoutSec: 10,\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n healthChecks: _default.id,\n});\nconst urlmap = new gcp.compute.RegionUrlMap(\"urlmap\", {\n region: \"us-central1\",\n name: \"urlmap\",\n description: \"a description\",\n defaultService: home_backend.id,\n hostRules: [{\n hosts: [\"mysite.com\"],\n pathMatcher: \"mysite\",\n }],\n pathMatchers: [{\n name: \"mysite\",\n defaultService: home_backend.id,\n routeRules: [\n {\n matchRules: [{\n pathTemplateMatch: \"/xyzwebservices/v2/xyz/users/{username=*}/carts/{cartid=**}\",\n }],\n service: cart_backend.id,\n priority: 1,\n routeAction: {\n urlRewrite: {\n pathTemplateRewrite: \"/{username}-{cartid}/\",\n },\n },\n },\n {\n matchRules: [{\n pathTemplateMatch: \"/xyzwebservices/v2/xyz/users/*/accountinfo/*\",\n }],\n service: user_backend.id,\n priority: 2,\n },\n ],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionHealthCheck(\"default\",\n region=\"us-central1\",\n name=\"health-check\",\n check_interval_sec=1,\n timeout_sec=1,\n http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(\n port=80,\n request_path=\"/\",\n ))\nhome_backend = gcp.compute.RegionBackendService(\"home-backend\",\n region=\"us-central1\",\n name=\"home-service\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n load_balancing_scheme=\"EXTERNAL_MANAGED\",\n health_checks=default.id)\ncart_backend = gcp.compute.RegionBackendService(\"cart-backend\",\n region=\"us-central1\",\n name=\"cart-service\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n load_balancing_scheme=\"EXTERNAL_MANAGED\",\n health_checks=default.id)\nuser_backend = gcp.compute.RegionBackendService(\"user-backend\",\n region=\"us-central1\",\n name=\"user-service\",\n port_name=\"http\",\n protocol=\"HTTP\",\n timeout_sec=10,\n load_balancing_scheme=\"EXTERNAL_MANAGED\",\n health_checks=default.id)\nurlmap = gcp.compute.RegionUrlMap(\"urlmap\",\n region=\"us-central1\",\n name=\"urlmap\",\n description=\"a description\",\n default_service=home_backend.id,\n host_rules=[gcp.compute.RegionUrlMapHostRuleArgs(\n hosts=[\"mysite.com\"],\n path_matcher=\"mysite\",\n )],\n path_matchers=[gcp.compute.RegionUrlMapPathMatcherArgs(\n name=\"mysite\",\n default_service=home_backend.id,\n route_rules=[\n gcp.compute.RegionUrlMapPathMatcherRouteRuleArgs(\n match_rules=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs(\n path_template_match=\"/xyzwebservices/v2/xyz/users/{username=*}/carts/{cartid=**}\",\n )],\n service=cart_backend.id,\n priority=1,\n route_action=gcp.compute.RegionUrlMapPathMatcherRouteRuleRouteActionArgs(\n url_rewrite=gcp.compute.RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs(\n path_template_rewrite=\"/{username}-{cartid}/\",\n ),\n ),\n ),\n gcp.compute.RegionUrlMapPathMatcherRouteRuleArgs(\n match_rules=[gcp.compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs(\n path_template_match=\"/xyzwebservices/v2/xyz/users/*/accountinfo/*\",\n )],\n service=user_backend.id,\n priority=2,\n ),\n ],\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionHealthCheck(\"default\", new()\n {\n Region = \"us-central1\",\n Name = \"health-check\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n HttpHealthCheck = new Gcp.Compute.Inputs.RegionHealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n RequestPath = \"/\",\n },\n });\n\n var home_backend = new Gcp.Compute.RegionBackendService(\"home-backend\", new()\n {\n Region = \"us-central1\",\n Name = \"home-service\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n HealthChecks = @default.Id,\n });\n\n var cart_backend = new Gcp.Compute.RegionBackendService(\"cart-backend\", new()\n {\n Region = \"us-central1\",\n Name = \"cart-service\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n HealthChecks = @default.Id,\n });\n\n var user_backend = new Gcp.Compute.RegionBackendService(\"user-backend\", new()\n {\n Region = \"us-central1\",\n Name = \"user-service\",\n PortName = \"http\",\n Protocol = \"HTTP\",\n TimeoutSec = 10,\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n HealthChecks = @default.Id,\n });\n\n var urlmap = new Gcp.Compute.RegionUrlMap(\"urlmap\", new()\n {\n Region = \"us-central1\",\n Name = \"urlmap\",\n Description = \"a description\",\n DefaultService = home_backend.Id,\n HostRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapHostRuleArgs\n {\n Hosts = new[]\n {\n \"mysite.com\",\n },\n PathMatcher = \"mysite\",\n },\n },\n PathMatchers = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherArgs\n {\n Name = \"mysite\",\n DefaultService = home_backend.Id,\n RouteRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleArgs\n {\n MatchRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs\n {\n PathTemplateMatch = \"/xyzwebservices/v2/xyz/users/{username=*}/carts/{cartid=**}\",\n },\n },\n Service = cart_backend.Id,\n Priority = 1,\n RouteAction = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleRouteActionArgs\n {\n UrlRewrite = new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs\n {\n PathTemplateRewrite = \"/{username}-{cartid}/\",\n },\n },\n },\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleArgs\n {\n MatchRules = new[]\n {\n new Gcp.Compute.Inputs.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs\n {\n PathTemplateMatch = \"/xyzwebservices/v2/xyz/users/*/accountinfo/*\",\n },\n },\n Service = user_backend.Id,\n Priority = 2,\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\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 := compute.NewRegionHealthCheck(ctx, \"default\", \u0026compute.RegionHealthCheckArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t\tHttpHealthCheck: \u0026compute.RegionHealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionBackendService(ctx, \"home-backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"home-service\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\n\t\t\tHealthChecks: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionBackendService(ctx, \"cart-backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"cart-service\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\n\t\t\tHealthChecks: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionBackendService(ctx, \"user-backend\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"user-service\"),\n\t\t\tPortName: pulumi.String(\"http\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\n\t\t\tHealthChecks: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRegionUrlMap(ctx, \"urlmap\", \u0026compute.RegionUrlMapArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tName: pulumi.String(\"urlmap\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tDefaultService: home_backend.ID(),\n\t\t\tHostRules: compute.RegionUrlMapHostRuleArray{\n\t\t\t\t\u0026compute.RegionUrlMapHostRuleArgs{\n\t\t\t\t\tHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mysite.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tPathMatcher: pulumi.String(\"mysite\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPathMatchers: compute.RegionUrlMapPathMatcherArray{\n\t\t\t\t\u0026compute.RegionUrlMapPathMatcherArgs{\n\t\t\t\t\tName: pulumi.String(\"mysite\"),\n\t\t\t\t\tDefaultService: home_backend.ID(),\n\t\t\t\t\tRouteRules: compute.RegionUrlMapPathMatcherRouteRuleArray{\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleArgs{\n\t\t\t\t\t\t\tMatchRules: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs{\n\t\t\t\t\t\t\t\t\tPathTemplateMatch: pulumi.String(\"/xyzwebservices/v2/xyz/users/{username=*}/carts/{cartid=**}\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: cart_backend.ID(),\n\t\t\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\t\t\tRouteAction: \u0026compute.RegionUrlMapPathMatcherRouteRuleRouteActionArgs{\n\t\t\t\t\t\t\t\tUrlRewrite: \u0026compute.RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs{\n\t\t\t\t\t\t\t\t\tPathTemplateRewrite: pulumi.String(\"/{username}-{cartid}/\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleArgs{\n\t\t\t\t\t\t\tMatchRules: compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArray{\n\t\t\t\t\t\t\t\t\u0026compute.RegionUrlMapPathMatcherRouteRuleMatchRuleArgs{\n\t\t\t\t\t\t\t\t\tPathTemplateMatch: pulumi.String(\"/xyzwebservices/v2/xyz/users/*/accountinfo/*\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tService: user_backend.ID(),\n\t\t\t\t\t\t\tPriority: pulumi.Int(2),\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\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 default_ = new RegionHealthCheck(\"default\", RegionHealthCheckArgs.builder() \n .region(\"us-central1\")\n .name(\"health-check\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .requestPath(\"/\")\n .build())\n .build());\n\n var home_backend = new RegionBackendService(\"home-backend\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"home-service\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .healthChecks(default_.id())\n .build());\n\n var cart_backend = new RegionBackendService(\"cart-backend\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"cart-service\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .healthChecks(default_.id())\n .build());\n\n var user_backend = new RegionBackendService(\"user-backend\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .name(\"user-service\")\n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .healthChecks(default_.id())\n .build());\n\n var urlmap = new RegionUrlMap(\"urlmap\", RegionUrlMapArgs.builder() \n .region(\"us-central1\")\n .name(\"urlmap\")\n .description(\"a description\")\n .defaultService(home_backend.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"mysite\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"mysite\")\n .defaultService(home_backend.id())\n .routeRules( \n RegionUrlMapPathMatcherRouteRuleArgs.builder()\n .matchRules(RegionUrlMapPathMatcherRouteRuleMatchRuleArgs.builder()\n .pathTemplateMatch(\"/xyzwebservices/v2/xyz/users/{username=*}/carts/{cartid=**}\")\n .build())\n .service(cart_backend.id())\n .priority(1)\n .routeAction(RegionUrlMapPathMatcherRouteRuleRouteActionArgs.builder()\n .urlRewrite(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs.builder()\n .pathTemplateRewrite(\"/{username}-{cartid}/\")\n .build())\n .build())\n .build(),\n RegionUrlMapPathMatcherRouteRuleArgs.builder()\n .matchRules(RegionUrlMapPathMatcherRouteRuleMatchRuleArgs.builder()\n .pathTemplateMatch(\"/xyzwebservices/v2/xyz/users/*/accountinfo/*\")\n .build())\n .service(user_backend.id())\n .priority(2)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n urlmap:\n type: gcp:compute:RegionUrlMap\n properties:\n region: us-central1\n name: urlmap\n description: a description\n defaultService: ${[\"home-backend\"].id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: mysite\n pathMatchers:\n - name: mysite\n defaultService: ${[\"home-backend\"].id}\n routeRules:\n - matchRules:\n - pathTemplateMatch: /xyzwebservices/v2/xyz/users/{username=*}/carts/{cartid=**}\n service: ${[\"cart-backend\"].id}\n priority: 1\n routeAction:\n urlRewrite:\n pathTemplateRewrite: /{username}-{cartid}/\n - matchRules:\n - pathTemplateMatch: /xyzwebservices/v2/xyz/users/*/accountinfo/*\n service: ${[\"user-backend\"].id}\n priority: 2\n home-backend:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: home-service\n portName: http\n protocol: HTTP\n timeoutSec: 10\n loadBalancingScheme: EXTERNAL_MANAGED\n healthChecks: ${default.id}\n cart-backend:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: cart-service\n portName: http\n protocol: HTTP\n timeoutSec: 10\n loadBalancingScheme: EXTERNAL_MANAGED\n healthChecks: ${default.id}\n user-backend:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n name: user-service\n portName: http\n protocol: HTTP\n timeoutSec: 10\n loadBalancingScheme: EXTERNAL_MANAGED\n healthChecks: ${default.id}\n default:\n type: gcp:compute:RegionHealthCheck\n properties:\n region: us-central1\n name: health-check\n checkIntervalSec: 1\n timeoutSec: 1\n httpHealthCheck:\n port: 80\n requestPath: /\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRegionUrlMap can be imported using any of these accepted formats:\n\n* `projects/{{project}}/regions/{{region}}/urlMaps/{{name}}`\n\n* `{{project}}/{{region}}/{{name}}`\n\n* `{{region}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, RegionUrlMap can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/regionUrlMap:RegionUrlMap default projects/{{project}}/regions/{{region}}/urlMaps/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/regionUrlMap:RegionUrlMap default {{project}}/{{region}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/regionUrlMap:RegionUrlMap default {{region}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/regionUrlMap:RegionUrlMap default {{name}}\n```\n\n", "properties": { "creationTimestamp": { "type": "string", @@ -233088,7 +233088,7 @@ } }, "gcp:workflows/workflow:Workflow": { - "description": "Workflow program to be executed by Workflows.\n\n\nTo get more information about Workflow, see:\n\n* [API documentation](https://cloud.google.com/workflows/docs/reference/rest/v1/projects.locations.workflows)\n* How-to Guides\n * [Managing Workflows](https://cloud.google.com/workflows/docs/creating-updating-workflow)\n\n## Example Usage\n\n### Workflow Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst testAccount = new gcp.serviceaccount.Account(\"test_account\", {\n accountId: \"my-account\",\n displayName: \"Test Service Account\",\n});\nconst example = new gcp.workflows.Workflow(\"example\", {\n name: \"workflow\",\n region: \"us-central1\",\n description: \"Magic\",\n serviceAccount: testAccount.id,\n callLogLevel: \"LOG_ERRORS_ONLY\",\n labels: {\n env: \"test\",\n },\n userEnvVars: {\n url: \"https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam\",\n },\n sourceContents: `# This is a sample workflow. You can replace it with your source code.\n#\n# This workflow does the following:\n# - reads current time and date information from an external API and stores\n# the response in currentTime variable\n# - retrieves a list of Wikipedia articles related to the day of the week\n# from currentTime\n# - returns the list of articles as an output of the workflow\n#\n# Note: In Terraform you need to escape the $$ or it will cause errors.\n\n- getCurrentTime:\n call: http.get\n args:\n url: \\${sys.get_env(\"url\")}\n result: currentTime\n- readWikipedia:\n call: http.get\n args:\n url: https://en.wikipedia.org/w/api.php\n query:\n action: opensearch\n search: \\${currentTime.body.dayOfWeek}\n result: wikiResult\n- returnOutput:\n return: \\${wikiResult.body[1]}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ntest_account = gcp.serviceaccount.Account(\"test_account\",\n account_id=\"my-account\",\n display_name=\"Test Service Account\")\nexample = gcp.workflows.Workflow(\"example\",\n name=\"workflow\",\n region=\"us-central1\",\n description=\"Magic\",\n service_account=test_account.id,\n call_log_level=\"LOG_ERRORS_ONLY\",\n labels={\n \"env\": \"test\",\n },\n user_env_vars={\n \"url\": \"https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam\",\n },\n source_contents=\"\"\"# This is a sample workflow. You can replace it with your source code.\n#\n# This workflow does the following:\n# - reads current time and date information from an external API and stores\n# the response in currentTime variable\n# - retrieves a list of Wikipedia articles related to the day of the week\n# from currentTime\n# - returns the list of articles as an output of the workflow\n#\n# Note: In Terraform you need to escape the $$ or it will cause errors.\n\n- getCurrentTime:\n call: http.get\n args:\n url: ${sys.get_env(\"url\")}\n result: currentTime\n- readWikipedia:\n call: http.get\n args:\n url: https://en.wikipedia.org/w/api.php\n query:\n action: opensearch\n search: ${currentTime.body.dayOfWeek}\n result: wikiResult\n- returnOutput:\n return: ${wikiResult.body[1]}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testAccount = new Gcp.ServiceAccount.Account(\"test_account\", new()\n {\n AccountId = \"my-account\",\n DisplayName = \"Test Service Account\",\n });\n\n var example = new Gcp.Workflows.Workflow(\"example\", new()\n {\n Name = \"workflow\",\n Region = \"us-central1\",\n Description = \"Magic\",\n ServiceAccount = testAccount.Id,\n CallLogLevel = \"LOG_ERRORS_ONLY\",\n Labels = \n {\n { \"env\", \"test\" },\n },\n UserEnvVars = \n {\n { \"url\", \"https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam\" },\n },\n SourceContents = @\"# This is a sample workflow. You can replace it with your source code.\n#\n# This workflow does the following:\n# - reads current time and date information from an external API and stores\n# the response in currentTime variable\n# - retrieves a list of Wikipedia articles related to the day of the week\n# from currentTime\n# - returns the list of articles as an output of the workflow\n#\n# Note: In Terraform you need to escape the $$ or it will cause errors.\n\n- getCurrentTime:\n call: http.get\n args:\n url: ${sys.get_env(\"\"url\"\")}\n result: currentTime\n- readWikipedia:\n call: http.get\n args:\n url: https://en.wikipedia.org/w/api.php\n query:\n action: opensearch\n search: ${currentTime.body.dayOfWeek}\n result: wikiResult\n- returnOutput:\n return: ${wikiResult.body[1]}\n\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/workflows\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestAccount, err := serviceaccount.NewAccount(ctx, \"test_account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"my-account\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = workflows.NewWorkflow(ctx, \"example\", \u0026workflows.WorkflowArgs{\n\t\t\tName: pulumi.String(\"workflow\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"Magic\"),\n\t\t\tServiceAccount: testAccount.ID(),\n\t\t\tCallLogLevel: pulumi.String(\"LOG_ERRORS_ONLY\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"env\": pulumi.String(\"test\"),\n\t\t\t},\n\t\t\tUserEnvVars: pulumi.StringMap{\n\t\t\t\t\"url\": pulumi.String(\"https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam\"),\n\t\t\t},\n\t\t\tSourceContents: pulumi.String(`# This is a sample workflow. You can replace it with your source code.\n#\n# This workflow does the following:\n# - reads current time and date information from an external API and stores\n# the response in currentTime variable\n# - retrieves a list of Wikipedia articles related to the day of the week\n# from currentTime\n# - returns the list of articles as an output of the workflow\n#\n# Note: In Terraform you need to escape the $$ or it will cause errors.\n\n- getCurrentTime:\n call: http.get\n args:\n url: ${sys.get_env(\"url\")}\n result: currentTime\n- readWikipedia:\n call: http.get\n args:\n url: https://en.wikipedia.org/w/api.php\n query:\n action: opensearch\n search: ${currentTime.body.dayOfWeek}\n result: wikiResult\n- returnOutput:\n return: ${wikiResult.body[1]}\n`),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.workflows.Workflow;\nimport com.pulumi.gcp.workflows.WorkflowArgs;\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 testAccount = new Account(\"testAccount\", AccountArgs.builder() \n .accountId(\"my-account\")\n .displayName(\"Test Service Account\")\n .build());\n\n var example = new Workflow(\"example\", WorkflowArgs.builder() \n .name(\"workflow\")\n .region(\"us-central1\")\n .description(\"Magic\")\n .serviceAccount(testAccount.id())\n .callLogLevel(\"LOG_ERRORS_ONLY\")\n .labels(Map.of(\"env\", \"test\"))\n .userEnvVars(Map.of(\"url\", \"https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam\"))\n .sourceContents(\"\"\"\n# This is a sample workflow. You can replace it with your source code.\n#\n# This workflow does the following:\n# - reads current time and date information from an external API and stores\n# the response in currentTime variable\n# - retrieves a list of Wikipedia articles related to the day of the week\n# from currentTime\n# - returns the list of articles as an output of the workflow\n#\n# Note: In Terraform you need to escape the $$ or it will cause errors.\n\n- getCurrentTime:\n call: http.get\n args:\n url: ${sys.get_env(\"url\")}\n result: currentTime\n- readWikipedia:\n call: http.get\n args:\n url: https://en.wikipedia.org/w/api.php\n query:\n action: opensearch\n search: ${currentTime.body.dayOfWeek}\n result: wikiResult\n- returnOutput:\n return: ${wikiResult.body[1]}\n \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testAccount:\n type: gcp:serviceaccount:Account\n name: test_account\n properties:\n accountId: my-account\n displayName: Test Service Account\n example:\n type: gcp:workflows:Workflow\n properties:\n name: workflow\n region: us-central1\n description: Magic\n serviceAccount: ${testAccount.id}\n callLogLevel: LOG_ERRORS_ONLY\n labels:\n env: test\n userEnvVars:\n url: https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam\n sourceContents: |\n # This is a sample workflow. You can replace it with your source code.\n #\n # This workflow does the following:\n # - reads current time and date information from an external API and stores\n # the response in currentTime variable\n # - retrieves a list of Wikipedia articles related to the day of the week\n # from currentTime\n # - returns the list of articles as an output of the workflow\n #\n # Note: In Terraform you need to escape the $$ or it will cause errors.\n\n - getCurrentTime:\n call: http.get\n args:\n url: ${sys.get_env(\"url\")}\n result: currentTime\n - readWikipedia:\n call: http.get\n args:\n url: https://en.wikipedia.org/w/api.php\n query:\n action: opensearch\n search: ${currentTime.body.dayOfWeek}\n result: wikiResult\n - returnOutput:\n return: ${wikiResult.body[1]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource does not support import.\n\n", + "description": "Workflow program to be executed by Workflows.\n\n\nTo get more information about Workflow, see:\n\n* [API documentation](https://cloud.google.com/workflows/docs/reference/rest/v1/projects.locations.workflows)\n* How-to Guides\n * [Managing Workflows](https://cloud.google.com/workflows/docs/creating-updating-workflow)\n\n## Example Usage\n\n### Workflow Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst testAccount = new gcp.serviceaccount.Account(\"test_account\", {\n accountId: \"my-account\",\n displayName: \"Test Service Account\",\n});\nconst example = new gcp.workflows.Workflow(\"example\", {\n name: \"workflow\",\n region: \"us-central1\",\n description: \"Magic\",\n serviceAccount: testAccount.id,\n callLogLevel: \"LOG_ERRORS_ONLY\",\n labels: {\n env: \"test\",\n },\n userEnvVars: {\n url: \"https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam\",\n },\n sourceContents: `# This is a sample workflow. You can replace it with your source code.\n#\n# This workflow does the following:\n# - reads current time and date information from an external API and stores\n# the response in currentTime variable\n# - retrieves a list of Wikipedia articles related to the day of the week\n# from currentTime\n# - returns the list of articles as an output of the workflow\n#\n# Note: In Terraform you need to escape the or it will cause errors.\n\n- getCurrentTime:\n call: http.get\n args:\n url: \\${sys.get_env(\"url\")}\n result: currentTime\n- readWikipedia:\n call: http.get\n args:\n url: https://en.wikipedia.org/w/api.php\n query:\n action: opensearch\n search: \\${currentTime.body.dayOfWeek}\n result: wikiResult\n- returnOutput:\n return: \\${wikiResult.body[1]}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ntest_account = gcp.serviceaccount.Account(\"test_account\",\n account_id=\"my-account\",\n display_name=\"Test Service Account\")\nexample = gcp.workflows.Workflow(\"example\",\n name=\"workflow\",\n region=\"us-central1\",\n description=\"Magic\",\n service_account=test_account.id,\n call_log_level=\"LOG_ERRORS_ONLY\",\n labels={\n \"env\": \"test\",\n },\n user_env_vars={\n \"url\": \"https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam\",\n },\n source_contents=\"\"\"# This is a sample workflow. You can replace it with your source code.\n#\n# This workflow does the following:\n# - reads current time and date information from an external API and stores\n# the response in currentTime variable\n# - retrieves a list of Wikipedia articles related to the day of the week\n# from currentTime\n# - returns the list of articles as an output of the workflow\n#\n# Note: In Terraform you need to escape the $$ or it will cause errors.\n\n- getCurrentTime:\n call: http.get\n args:\n url: ${sys.get_env(\"url\")}\n result: currentTime\n- readWikipedia:\n call: http.get\n args:\n url: https://en.wikipedia.org/w/api.php\n query:\n action: opensearch\n search: ${currentTime.body.dayOfWeek}\n result: wikiResult\n- returnOutput:\n return: ${wikiResult.body[1]}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testAccount = new Gcp.ServiceAccount.Account(\"test_account\", new()\n {\n AccountId = \"my-account\",\n DisplayName = \"Test Service Account\",\n });\n\n var example = new Gcp.Workflows.Workflow(\"example\", new()\n {\n Name = \"workflow\",\n Region = \"us-central1\",\n Description = \"Magic\",\n ServiceAccount = testAccount.Id,\n CallLogLevel = \"LOG_ERRORS_ONLY\",\n Labels = \n {\n { \"env\", \"test\" },\n },\n UserEnvVars = \n {\n { \"url\", \"https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam\" },\n },\n SourceContents = @\"# This is a sample workflow. You can replace it with your source code.\n#\n# This workflow does the following:\n# - reads current time and date information from an external API and stores\n# the response in currentTime variable\n# - retrieves a list of Wikipedia articles related to the day of the week\n# from currentTime\n# - returns the list of articles as an output of the workflow\n#\n# Note: In Terraform you need to escape the $$ or it will cause errors.\n\n- getCurrentTime:\n call: http.get\n args:\n url: ${sys.get_env(\"\"url\"\")}\n result: currentTime\n- readWikipedia:\n call: http.get\n args:\n url: https://en.wikipedia.org/w/api.php\n query:\n action: opensearch\n search: ${currentTime.body.dayOfWeek}\n result: wikiResult\n- returnOutput:\n return: ${wikiResult.body[1]}\n\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/workflows\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestAccount, err := serviceaccount.NewAccount(ctx, \"test_account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"my-account\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = workflows.NewWorkflow(ctx, \"example\", \u0026workflows.WorkflowArgs{\n\t\t\tName: pulumi.String(\"workflow\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"Magic\"),\n\t\t\tServiceAccount: testAccount.ID(),\n\t\t\tCallLogLevel: pulumi.String(\"LOG_ERRORS_ONLY\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"env\": pulumi.String(\"test\"),\n\t\t\t},\n\t\t\tUserEnvVars: pulumi.StringMap{\n\t\t\t\t\"url\": pulumi.String(\"https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam\"),\n\t\t\t},\n\t\t\tSourceContents: pulumi.String(`# This is a sample workflow. You can replace it with your source code.\n#\n# This workflow does the following:\n# - reads current time and date information from an external API and stores\n# the response in currentTime variable\n# - retrieves a list of Wikipedia articles related to the day of the week\n# from currentTime\n# - returns the list of articles as an output of the workflow\n#\n# Note: In Terraform you need to escape the $$ or it will cause errors.\n\n- getCurrentTime:\n call: http.get\n args:\n url: ${sys.get_env(\"url\")}\n result: currentTime\n- readWikipedia:\n call: http.get\n args:\n url: https://en.wikipedia.org/w/api.php\n query:\n action: opensearch\n search: ${currentTime.body.dayOfWeek}\n result: wikiResult\n- returnOutput:\n return: ${wikiResult.body[1]}\n`),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.workflows.Workflow;\nimport com.pulumi.gcp.workflows.WorkflowArgs;\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 testAccount = new Account(\"testAccount\", AccountArgs.builder() \n .accountId(\"my-account\")\n .displayName(\"Test Service Account\")\n .build());\n\n var example = new Workflow(\"example\", WorkflowArgs.builder() \n .name(\"workflow\")\n .region(\"us-central1\")\n .description(\"Magic\")\n .serviceAccount(testAccount.id())\n .callLogLevel(\"LOG_ERRORS_ONLY\")\n .labels(Map.of(\"env\", \"test\"))\n .userEnvVars(Map.of(\"url\", \"https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam\"))\n .sourceContents(\"\"\"\n# This is a sample workflow. You can replace it with your source code.\n#\n# This workflow does the following:\n# - reads current time and date information from an external API and stores\n# the response in currentTime variable\n# - retrieves a list of Wikipedia articles related to the day of the week\n# from currentTime\n# - returns the list of articles as an output of the workflow\n#\n# Note: In Terraform you need to escape the $$ or it will cause errors.\n\n- getCurrentTime:\n call: http.get\n args:\n url: ${sys.get_env(\"url\")}\n result: currentTime\n- readWikipedia:\n call: http.get\n args:\n url: https://en.wikipedia.org/w/api.php\n query:\n action: opensearch\n search: ${currentTime.body.dayOfWeek}\n result: wikiResult\n- returnOutput:\n return: ${wikiResult.body[1]}\n \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testAccount:\n type: gcp:serviceaccount:Account\n name: test_account\n properties:\n accountId: my-account\n displayName: Test Service Account\n example:\n type: gcp:workflows:Workflow\n properties:\n name: workflow\n region: us-central1\n description: Magic\n serviceAccount: ${testAccount.id}\n callLogLevel: LOG_ERRORS_ONLY\n labels:\n env: test\n userEnvVars:\n url: https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam\n sourceContents: |\n # This is a sample workflow. You can replace it with your source code.\n #\n # This workflow does the following:\n # - reads current time and date information from an external API and stores\n # the response in currentTime variable\n # - retrieves a list of Wikipedia articles related to the day of the week\n # from currentTime\n # - returns the list of articles as an output of the workflow\n #\n # Note: In Terraform you need to escape the $$ or it will cause errors.\n\n - getCurrentTime:\n call: http.get\n args:\n url: ${sys.get_env(\"url\")}\n result: currentTime\n - readWikipedia:\n call: http.get\n args:\n url: https://en.wikipedia.org/w/api.php\n query:\n action: opensearch\n search: ${currentTime.body.dayOfWeek}\n result: wikiResult\n - returnOutput:\n return: ${wikiResult.body[1]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource does not support import.\n\n", "properties": { "callLogLevel": { "type": "string", diff --git a/provider/go.mod b/provider/go.mod index ccd0fe5e5b..c99df5881c 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -7,7 +7,7 @@ require ( github.com/hashicorp/terraform-provider-google-beta v0.0.0 github.com/pulumi/providertest v0.0.11 github.com/pulumi/pulumi-terraform-bridge/pf v0.33.0 - github.com/pulumi/pulumi-terraform-bridge/v3 v3.80.1-0.20240409124330-22980d505661 + github.com/pulumi/pulumi-terraform-bridge/v3 v3.80.0 github.com/pulumi/pulumi/pkg/v3 v3.112.0 github.com/pulumi/pulumi/sdk/v3 v3.112.0 github.com/stretchr/testify v1.8.4 @@ -273,3 +273,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect lukechampine.com/frand v1.4.2 // indirect ) + +replace github.com/pulumi/pulumi/pkg/v3 => github.com/pulumi/pulumi/pkg/v3 v3.112.1-0.20240417083406-47ebee5854a0 + +replace github.com/pulumi/pulumi/sdk/v3 => github.com/pulumi/pulumi/sdk/v3 v3.112.1-0.20240417083406-47ebee5854a0 diff --git a/provider/go.sum b/provider/go.sum index 05648ef785..8e547965b8 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -2852,16 +2852,16 @@ github.com/pulumi/pulumi-java/pkg v0.10.0 h1:D1i5MiiNrxYr2uJ1szcj1aQwF9DYv7TTsPm github.com/pulumi/pulumi-java/pkg v0.10.0/go.mod h1:xu6UgYtQm+xXOo1/DZNa2CWVPytu+RMkZVTtI7w7ffY= github.com/pulumi/pulumi-terraform-bridge/pf v0.33.0 h1:uVZamPDL9vlZAXXg3OTl2P6KV4e31QSgX2UVOgJlTnU= github.com/pulumi/pulumi-terraform-bridge/pf v0.33.0/go.mod h1:TKmiJUAmU6beGzYG5DC5EtHf0SSpVtqt+YyVDlGwFWA= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.80.1-0.20240409124330-22980d505661 h1:OeiQaZIbilnSVyfMpqIMLPl170WwHwpjUnW/KM53TN8= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.80.1-0.20240409124330-22980d505661/go.mod h1:VzIl/lDqPfHpYq2UQQvY6YHeSXwt0+riqc8eNpK+ElA= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.80.0 h1:A+LvNkIIPYokCyGJG6eO+rlZge1my/Bj7ouZbiwC7AM= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.80.0/go.mod h1:VzIl/lDqPfHpYq2UQQvY6YHeSXwt0+riqc8eNpK+ElA= github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.9-0.20240227144008-2da15b3d6f6e h1:yON1jwN6gg4cjnOQF607I3fTiFyIDr9WSsQNXHD6wbM= github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.9-0.20240227144008-2da15b3d6f6e/go.mod h1:AvlZujvfRiEu+60frCGEhaLeGttjHwM/g+47+IdPZXw= github.com/pulumi/pulumi-yaml v1.6.0 h1:mb/QkebWXTa1fR+P3ZkCCHGXOYC6iTN8X8By9eNz8xM= github.com/pulumi/pulumi-yaml v1.6.0/go.mod h1:RyEPo4MhL363sbAiFMVKRsQmXpQPDCY1S8pGv3E6Ij0= -github.com/pulumi/pulumi/pkg/v3 v3.112.0 h1:vhoM6sx1eegJntIeUZENtck3VeMtK1zBiQ2E3EPOnHw= -github.com/pulumi/pulumi/pkg/v3 v3.112.0/go.mod h1:GQhNr0v5E8TACF8j0p6UQqyr7mZreUpoMfVjLeu6eY0= -github.com/pulumi/pulumi/sdk/v3 v3.112.0 h1:cq2x5N6iuYhSLdeOdRs+LIq0EneB0Cb54WOlD/VaX3E= -github.com/pulumi/pulumi/sdk/v3 v3.112.0/go.mod h1:JWSzKBoHd8rlncC1DhXLf7YdV+Bk/Qf+hSZOOQh0WwQ= +github.com/pulumi/pulumi/pkg/v3 v3.112.1-0.20240417083406-47ebee5854a0 h1:6mvJKdvZLYKKXaJRaBGNfBZPHstPHWiEccDeGxmyzvQ= +github.com/pulumi/pulumi/pkg/v3 v3.112.1-0.20240417083406-47ebee5854a0/go.mod h1:GQhNr0v5E8TACF8j0p6UQqyr7mZreUpoMfVjLeu6eY0= +github.com/pulumi/pulumi/sdk/v3 v3.112.1-0.20240417083406-47ebee5854a0 h1:d6FFBvnyD5jE99oei5tNSL1AWcezTZC2tyMRyiWzVYA= +github.com/pulumi/pulumi/sdk/v3 v3.112.1-0.20240417083406-47ebee5854a0/go.mod h1:JWSzKBoHd8rlncC1DhXLf7YdV+Bk/Qf+hSZOOQh0WwQ= github.com/pulumi/schema-tools v0.1.2 h1:Fd9xvUjgck4NA+7/jSk7InqCUT4Kj940+EcnbQKpfZo= github.com/pulumi/schema-tools v0.1.2/go.mod h1:62lgj52Tzq11eqWTIaKd+EVyYAu5dEcDJxMhTjvMO/k= github.com/pulumi/terraform-diff-reader v0.0.2 h1:kTE4nEXU3/SYXESvAIem+wyHMI3abqkI3OhJ0G04LLI= diff --git a/sdk/go.mod b/sdk/go.mod index 494e7d2ffa..1731501fbd 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -90,3 +90,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect lukechampine.com/frand v1.4.2 // indirect ) + +replace github.com/pulumi/pulumi/pkg/v3 => github.com/pulumi/pulumi/pkg/v3 v3.112.1-0.20240417083406-47ebee5854a0 + +replace github.com/pulumi/pulumi/sdk/v3 => github.com/pulumi/pulumi/sdk/v3 v3.112.1-0.20240417083406-47ebee5854a0 diff --git a/sdk/go.sum b/sdk/go.sum index 07a091ca15..2f6bd751dc 100644 --- a/sdk/go.sum +++ b/sdk/go.sum @@ -150,8 +150,8 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435 github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/esc v0.6.2 h1:+z+l8cuwIauLSwXQS0uoI3rqB+YG4SzsZYtHfNoXBvw= github.com/pulumi/esc v0.6.2/go.mod h1:jNnYNjzsOgVTjCp0LL24NsCk8ZJxq4IoLQdCT0X7l8k= -github.com/pulumi/pulumi/sdk/v3 v3.112.0 h1:cq2x5N6iuYhSLdeOdRs+LIq0EneB0Cb54WOlD/VaX3E= -github.com/pulumi/pulumi/sdk/v3 v3.112.0/go.mod h1:JWSzKBoHd8rlncC1DhXLf7YdV+Bk/Qf+hSZOOQh0WwQ= +github.com/pulumi/pulumi/sdk/v3 v3.112.1-0.20240417083406-47ebee5854a0 h1:d6FFBvnyD5jE99oei5tNSL1AWcezTZC2tyMRyiWzVYA= +github.com/pulumi/pulumi/sdk/v3 v3.112.1-0.20240417083406-47ebee5854a0/go.mod h1:JWSzKBoHd8rlncC1DhXLf7YdV+Bk/Qf+hSZOOQh0WwQ= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= diff --git a/sdk/nodejs/apphub/workload.ts b/sdk/nodejs/apphub/workload.ts index 453444355d..01a2474aa2 100644 --- a/sdk/nodejs/apphub/workload.ts +++ b/sdk/nodejs/apphub/workload.ts @@ -76,14 +76,14 @@ import * as utilities from "../utilities"; * export DEBIAN_FRONTEND=noninteractive * apt-get update * apt-get install -y nginx-light jq - * NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") - * IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") - * METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') + * NAME=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") + * IP=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") + * METADATA=(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') * cat < /var/www/html/index.html *
- * Name: $NAME
- * IP: $IP
- * Metadata: $METADATA
+ * Name: NAME
+ * IP: IP
+ * Metadata: METADATA
  * 
* EOF * `, @@ -183,14 +183,14 @@ import * as utilities from "../utilities"; * export DEBIAN_FRONTEND=noninteractive * apt-get update * apt-get install -y nginx-light jq - * NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") - * IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") - * METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') + * NAME=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") + * IP=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") + * METADATA=(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') * cat < /var/www/html/index.html *
- * Name: $NAME
- * IP: $IP
- * Metadata: $METADATA
+ * Name: NAME
+ * IP: IP
+ * Metadata: METADATA
  * 
* EOF * `, diff --git a/sdk/nodejs/compute/forwardingRule.ts b/sdk/nodejs/compute/forwardingRule.ts index 132aeba1c4..2c54625a7c 100644 --- a/sdk/nodejs/compute/forwardingRule.ts +++ b/sdk/nodejs/compute/forwardingRule.ts @@ -79,15 +79,15 @@ import * as utilities from "../utilities"; * apt-get update * apt-get install -y nginx-light jq * - * NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") - * IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") - * METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') + * NAME=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") + * IP=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") + * METADATA=(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') * * cat < /var/www/html/index.html *
- * Name: $NAME
- * IP: $IP
- * Metadata: $METADATA
+ * Name: NAME
+ * IP: IP
+ * Metadata: METADATA
  * 
* EOF * `, @@ -243,15 +243,15 @@ import * as utilities from "../utilities"; * apt-get update * apt-get install -y nginx-light jq * - * NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") - * IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") - * METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') + * NAME=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") + * IP=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") + * METADATA=(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') * * cat < /var/www/html/index.html *
- * Name: $NAME
- * IP: $IP
- * Metadata: $METADATA
+ * Name: NAME
+ * IP: IP
+ * Metadata: METADATA
  * 
* EOF * `, diff --git a/sdk/nodejs/compute/globalForwardingRule.ts b/sdk/nodejs/compute/globalForwardingRule.ts index 18cd81b1f7..22e993f51c 100644 --- a/sdk/nodejs/compute/globalForwardingRule.ts +++ b/sdk/nodejs/compute/globalForwardingRule.ts @@ -98,15 +98,15 @@ import * as utilities from "../utilities"; * sudo a2ensite default-ssl * sudo a2enmod ssl * sudo service apache2 restart - * NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") - * IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") - * METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') + * NAME=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") + * IP=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") + * METADATA=(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') * cat < /var/www/html/index.html *

SSL Load Balancer

*
- * Name: $NAME
- * IP: $IP
- * Metadata: $METADATA
+ * Name: NAME
+ * IP: IP
+ * Metadata: METADATA
  * 
* EOF * `, @@ -223,14 +223,14 @@ import * as utilities from "../utilities"; * export DEBIAN_FRONTEND=noninteractive * apt-get update * apt-get install -y nginx-light jq - * NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") - * IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") - * METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') + * NAME=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") + * IP=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") + * METADATA=(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') * cat < /var/www/html/index.html *
- * Name: $NAME
- * IP: $IP
- * Metadata: $METADATA
+ * Name: NAME
+ * IP: IP
+ * Metadata: METADATA
  * 
* EOF * `, @@ -348,15 +348,15 @@ import * as utilities from "../utilities"; * apt-get update * apt-get install -y nginx-light jq * - * NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") - * IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") - * METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') + * NAME=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") + * IP=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") + * METADATA=(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') * * cat < /var/www/html/index.html *
- * Name: $NAME
- * IP: $IP
- * Metadata: $METADATA
+ * Name: NAME
+ * IP: IP
+ * Metadata: METADATA
  * 
* EOF * `, @@ -793,15 +793,15 @@ import * as utilities from "../utilities"; * apt-get update * apt-get install -y nginx-light jq * - * NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") - * IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") - * METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') + * NAME=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") + * IP=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") + * METADATA=(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') * * cat < /var/www/html/index.html *
- * Name: $NAME
- * IP: $IP
- * Metadata: $METADATA
+ * Name: NAME
+ * IP: IP
+ * Metadata: METADATA
  * 
* EOF * `, diff --git a/sdk/nodejs/compute/instanceTemplate.ts b/sdk/nodejs/compute/instanceTemplate.ts index ba18efa50e..c78c87ad0f 100644 --- a/sdk/nodejs/compute/instanceTemplate.ts +++ b/sdk/nodejs/compute/instanceTemplate.ts @@ -131,7 +131,7 @@ import * as utilities from "../utilities"; * "desired_state": "INSTALLED", * "installSteps": [{ * "scriptRun": { - * "script": "#! /bin/bash\\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\\nsudo gsutil cp gs://gce-service-proxy-"$ZONE"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz "$SERVICE_PROXY_AGENT_DIRECTORY" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz "$SERVICE_PROXY_AGENT_DIRECTORY"\\nsudo tar -xzf "$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent-0.2.tgz -C "$SERVICE_PROXY_AGENT_DIRECTORY"\\n"$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent/service-proxy-agent-bootstrap.sh" + * "script": "#! /bin/bash\\nZONE=(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\nexport SERVICE_PROXY_AGENT_DIRECTORY=(mktemp -d)\\nsudo gsutil cp gs://gce-service-proxy-"ZONE"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz "SERVICE_PROXY_AGENT_DIRECTORY" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz "SERVICE_PROXY_AGENT_DIRECTORY"\\nsudo tar -xzf "SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent-0.2.tgz -C "SERVICE_PROXY_AGENT_DIRECTORY"\\n"SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent/service-proxy-agent-bootstrap.sh" * } * }] * }] diff --git a/sdk/nodejs/compute/regionUrlMap.ts b/sdk/nodejs/compute/regionUrlMap.ts index 175a478722..2683da9a7c 100644 --- a/sdk/nodejs/compute/regionUrlMap.ts +++ b/sdk/nodejs/compute/regionUrlMap.ts @@ -660,15 +660,15 @@ import * as utilities from "../utilities"; * apt-get update * apt-get install -y nginx-light jq * - * NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") - * IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") - * METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') + * NAME=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname") + * IP=(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip") + * METADATA=(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])') * * cat < /var/www/html/index.html *
- * Name: $NAME
- * IP: $IP
- * Metadata: $METADATA
+ * Name: NAME
+ * IP: IP
+ * Metadata: METADATA
  * 
* EOF * `, diff --git a/sdk/nodejs/workflows/workflow.ts b/sdk/nodejs/workflows/workflow.ts index 58ea8d603c..b159bdce83 100644 --- a/sdk/nodejs/workflows/workflow.ts +++ b/sdk/nodejs/workflows/workflow.ts @@ -47,7 +47,7 @@ import * as utilities from "../utilities"; * # from currentTime * # - returns the list of articles as an output of the workflow * # - * # Note: In Terraform you need to escape the $$ or it will cause errors. + * # Note: In Terraform you need to escape the or it will cause errors. * * - getCurrentTime: * call: http.get diff --git a/sdk/python/pulumi_gcp/_inputs.py b/sdk/python/pulumi_gcp/_inputs.py index a64532a2c4..75505b3372 100644 --- a/sdk/python/pulumi_gcp/_inputs.py +++ b/sdk/python/pulumi_gcp/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from . import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/accessapproval/get_folder_service_account.py b/sdk/python/pulumi_gcp/accessapproval/get_folder_service_account.py index 3b3ddfe263..69b2425bf8 100644 --- a/sdk/python/pulumi_gcp/accessapproval/get_folder_service_account.py +++ b/sdk/python/pulumi_gcp/accessapproval/get_folder_service_account.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/accessapproval/get_organization_service_account.py b/sdk/python/pulumi_gcp/accessapproval/get_organization_service_account.py index 1267245385..75874ffdcc 100644 --- a/sdk/python/pulumi_gcp/accessapproval/get_organization_service_account.py +++ b/sdk/python/pulumi_gcp/accessapproval/get_organization_service_account.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/accessapproval/get_project_service_account.py b/sdk/python/pulumi_gcp/accessapproval/get_project_service_account.py index 8879177d53..0f3307141f 100644 --- a/sdk/python/pulumi_gcp/accessapproval/get_project_service_account.py +++ b/sdk/python/pulumi_gcp/accessapproval/get_project_service_account.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/_inputs.py b/sdk/python/pulumi_gcp/accesscontextmanager/_inputs.py index af5f134daa..f3df661960 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/_inputs.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/access_level.py b/sdk/python/pulumi_gcp/accesscontextmanager/access_level.py index 817c811851..4ab1f91435 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/access_level.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/access_level.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/access_level_condition.py b/sdk/python/pulumi_gcp/accesscontextmanager/access_level_condition.py index 42d49a74d2..4cdb13d131 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/access_level_condition.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/access_level_condition.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/access_levels.py b/sdk/python/pulumi_gcp/accesscontextmanager/access_levels.py index e95fc9f809..8e5566d33f 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/access_levels.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/access_levels.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/access_policy.py b/sdk/python/pulumi_gcp/accesscontextmanager/access_policy.py index b7641be373..70739f6308 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/access_policy.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/access_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AccessPolicyArgs', 'AccessPolicy'] diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py b/sdk/python/pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py index df0318e474..d877a468de 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/access_policy_iam_member.py b/sdk/python/pulumi_gcp/accesscontextmanager/access_policy_iam_member.py index e5136caa37..66b4ef2c32 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/access_policy_iam_member.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/access_policy_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py b/sdk/python/pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py index 7d940374a7..c331a9b9ba 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AccessPolicyIamPolicyArgs', 'AccessPolicyIamPolicy'] diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/authorized_orgs_desc.py b/sdk/python/pulumi_gcp/accesscontextmanager/authorized_orgs_desc.py index 811dc442cf..881a39a87d 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/authorized_orgs_desc.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/authorized_orgs_desc.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AuthorizedOrgsDescArgs', 'AuthorizedOrgsDesc'] diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/egress_policy.py b/sdk/python/pulumi_gcp/accesscontextmanager/egress_policy.py index 735f14117e..b17ef7303b 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/egress_policy.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/egress_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['EgressPolicyArgs', 'EgressPolicy'] diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py b/sdk/python/pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py index be1e9b6f10..eee57682a8 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['GcpUserAccessBindingArgs', 'GcpUserAccessBinding'] diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/get_access_policy_iam_policy.py b/sdk/python/pulumi_gcp/accesscontextmanager/get_access_policy_iam_policy.py index bc2d4c5573..dcdac1e294 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/get_access_policy_iam_policy.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/get_access_policy_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/ingress_policy.py b/sdk/python/pulumi_gcp/accesscontextmanager/ingress_policy.py index 92118532b7..102340d360 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/ingress_policy.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/ingress_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['IngressPolicyArgs', 'IngressPolicy'] diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/outputs.py b/sdk/python/pulumi_gcp/accesscontextmanager/outputs.py index 45fd2c3a9b..32f4bf9075 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/outputs.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter.py b/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter.py index 86f84422dd..5a35b6e33c 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py b/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py index 609dcc19d4..cd9e6826f8 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ServicePerimeterDryRunResourceArgs', 'ServicePerimeterDryRunResource'] diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py b/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py index edb9e6499e..92ef6008f5 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py b/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py index 209a1fc656..afdfa3d4ac 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_resource.py b/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_resource.py index 53e4c20880..de0cd7d4f0 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_resource.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeter_resource.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ServicePerimeterResourceArgs', 'ServicePerimeterResource'] diff --git a/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeters.py b/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeters.py index 0915149988..0dc7968481 100644 --- a/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeters.py +++ b/sdk/python/pulumi_gcp/accesscontextmanager/service_perimeters.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/activedirectory/domain.py b/sdk/python/pulumi_gcp/activedirectory/domain.py index 575776615d..c147dbb213 100644 --- a/sdk/python/pulumi_gcp/activedirectory/domain.py +++ b/sdk/python/pulumi_gcp/activedirectory/domain.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DomainArgs', 'Domain'] diff --git a/sdk/python/pulumi_gcp/activedirectory/domain_trust.py b/sdk/python/pulumi_gcp/activedirectory/domain_trust.py index 013cce5e69..eaa4570997 100644 --- a/sdk/python/pulumi_gcp/activedirectory/domain_trust.py +++ b/sdk/python/pulumi_gcp/activedirectory/domain_trust.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DomainTrustArgs', 'DomainTrust'] diff --git a/sdk/python/pulumi_gcp/activedirectory/peering.py b/sdk/python/pulumi_gcp/activedirectory/peering.py index 48b816df3c..2f619953fe 100644 --- a/sdk/python/pulumi_gcp/activedirectory/peering.py +++ b/sdk/python/pulumi_gcp/activedirectory/peering.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['PeeringArgs', 'Peering'] diff --git a/sdk/python/pulumi_gcp/alloydb/_inputs.py b/sdk/python/pulumi_gcp/alloydb/_inputs.py index c7ef766c4a..bb13ba0779 100644 --- a/sdk/python/pulumi_gcp/alloydb/_inputs.py +++ b/sdk/python/pulumi_gcp/alloydb/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/alloydb/backup.py b/sdk/python/pulumi_gcp/alloydb/backup.py index 1417af4a79..785ddea232 100644 --- a/sdk/python/pulumi_gcp/alloydb/backup.py +++ b/sdk/python/pulumi_gcp/alloydb/backup.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/alloydb/cluster.py b/sdk/python/pulumi_gcp/alloydb/cluster.py index 2ba4d16c36..c9e41dc126 100644 --- a/sdk/python/pulumi_gcp/alloydb/cluster.py +++ b/sdk/python/pulumi_gcp/alloydb/cluster.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/alloydb/get_locations.py b/sdk/python/pulumi_gcp/alloydb/get_locations.py index cdf1175af2..cf6fb68f81 100644 --- a/sdk/python/pulumi_gcp/alloydb/get_locations.py +++ b/sdk/python/pulumi_gcp/alloydb/get_locations.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/alloydb/get_supported_database_flags.py b/sdk/python/pulumi_gcp/alloydb/get_supported_database_flags.py index 67816800fb..8570e436f0 100644 --- a/sdk/python/pulumi_gcp/alloydb/get_supported_database_flags.py +++ b/sdk/python/pulumi_gcp/alloydb/get_supported_database_flags.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/alloydb/instance.py b/sdk/python/pulumi_gcp/alloydb/instance.py index 0b1f1d3354..46f51b0762 100644 --- a/sdk/python/pulumi_gcp/alloydb/instance.py +++ b/sdk/python/pulumi_gcp/alloydb/instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/alloydb/outputs.py b/sdk/python/pulumi_gcp/alloydb/outputs.py index 1a77ae0bf3..6ab8f96fa4 100644 --- a/sdk/python/pulumi_gcp/alloydb/outputs.py +++ b/sdk/python/pulumi_gcp/alloydb/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/alloydb/user.py b/sdk/python/pulumi_gcp/alloydb/user.py index b8c30c01c8..d89561af78 100644 --- a/sdk/python/pulumi_gcp/alloydb/user.py +++ b/sdk/python/pulumi_gcp/alloydb/user.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['UserArgs', 'User'] diff --git a/sdk/python/pulumi_gcp/apigateway/_inputs.py b/sdk/python/pulumi_gcp/apigateway/_inputs.py index 04e7fc9131..5c8d65ccfa 100644 --- a/sdk/python/pulumi_gcp/apigateway/_inputs.py +++ b/sdk/python/pulumi_gcp/apigateway/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/apigateway/api.py b/sdk/python/pulumi_gcp/apigateway/api.py index 13d2b080e0..11cdd728ea 100644 --- a/sdk/python/pulumi_gcp/apigateway/api.py +++ b/sdk/python/pulumi_gcp/apigateway/api.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ApiArgs', 'Api'] diff --git a/sdk/python/pulumi_gcp/apigateway/api_config.py b/sdk/python/pulumi_gcp/apigateway/api_config.py index 381eeffb65..6d0690084f 100644 --- a/sdk/python/pulumi_gcp/apigateway/api_config.py +++ b/sdk/python/pulumi_gcp/apigateway/api_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigateway/api_config_iam_binding.py b/sdk/python/pulumi_gcp/apigateway/api_config_iam_binding.py index dbb701af54..2bf3363602 100644 --- a/sdk/python/pulumi_gcp/apigateway/api_config_iam_binding.py +++ b/sdk/python/pulumi_gcp/apigateway/api_config_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigateway/api_config_iam_member.py b/sdk/python/pulumi_gcp/apigateway/api_config_iam_member.py index 3f995e1812..4890996cab 100644 --- a/sdk/python/pulumi_gcp/apigateway/api_config_iam_member.py +++ b/sdk/python/pulumi_gcp/apigateway/api_config_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigateway/api_config_iam_policy.py b/sdk/python/pulumi_gcp/apigateway/api_config_iam_policy.py index 41d08e5eb3..9abe032e70 100644 --- a/sdk/python/pulumi_gcp/apigateway/api_config_iam_policy.py +++ b/sdk/python/pulumi_gcp/apigateway/api_config_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ApiConfigIamPolicyArgs', 'ApiConfigIamPolicy'] diff --git a/sdk/python/pulumi_gcp/apigateway/api_iam_binding.py b/sdk/python/pulumi_gcp/apigateway/api_iam_binding.py index 07674c617f..e358a9f388 100644 --- a/sdk/python/pulumi_gcp/apigateway/api_iam_binding.py +++ b/sdk/python/pulumi_gcp/apigateway/api_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigateway/api_iam_member.py b/sdk/python/pulumi_gcp/apigateway/api_iam_member.py index 53c17f1b2a..a408563597 100644 --- a/sdk/python/pulumi_gcp/apigateway/api_iam_member.py +++ b/sdk/python/pulumi_gcp/apigateway/api_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigateway/api_iam_policy.py b/sdk/python/pulumi_gcp/apigateway/api_iam_policy.py index d7b78ef50a..4adaf9f31b 100644 --- a/sdk/python/pulumi_gcp/apigateway/api_iam_policy.py +++ b/sdk/python/pulumi_gcp/apigateway/api_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ApiIamPolicyArgs', 'ApiIamPolicy'] diff --git a/sdk/python/pulumi_gcp/apigateway/gateway.py b/sdk/python/pulumi_gcp/apigateway/gateway.py index 3fb3c27b25..302af3a55a 100644 --- a/sdk/python/pulumi_gcp/apigateway/gateway.py +++ b/sdk/python/pulumi_gcp/apigateway/gateway.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['GatewayArgs', 'Gateway'] diff --git a/sdk/python/pulumi_gcp/apigateway/gateway_iam_binding.py b/sdk/python/pulumi_gcp/apigateway/gateway_iam_binding.py index aa45849591..65360825f3 100644 --- a/sdk/python/pulumi_gcp/apigateway/gateway_iam_binding.py +++ b/sdk/python/pulumi_gcp/apigateway/gateway_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigateway/gateway_iam_member.py b/sdk/python/pulumi_gcp/apigateway/gateway_iam_member.py index 14ea6c13dc..b75b050e5a 100644 --- a/sdk/python/pulumi_gcp/apigateway/gateway_iam_member.py +++ b/sdk/python/pulumi_gcp/apigateway/gateway_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigateway/gateway_iam_policy.py b/sdk/python/pulumi_gcp/apigateway/gateway_iam_policy.py index 878868cf92..ae50d7fcc4 100644 --- a/sdk/python/pulumi_gcp/apigateway/gateway_iam_policy.py +++ b/sdk/python/pulumi_gcp/apigateway/gateway_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['GatewayIamPolicyArgs', 'GatewayIamPolicy'] diff --git a/sdk/python/pulumi_gcp/apigateway/get_api_config_iam_policy.py b/sdk/python/pulumi_gcp/apigateway/get_api_config_iam_policy.py index b0d471a2fd..4ac932bbac 100644 --- a/sdk/python/pulumi_gcp/apigateway/get_api_config_iam_policy.py +++ b/sdk/python/pulumi_gcp/apigateway/get_api_config_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/apigateway/get_api_iam_policy.py b/sdk/python/pulumi_gcp/apigateway/get_api_iam_policy.py index 6da3ad5e59..9f2fff4675 100644 --- a/sdk/python/pulumi_gcp/apigateway/get_api_iam_policy.py +++ b/sdk/python/pulumi_gcp/apigateway/get_api_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/apigateway/get_gateway_iam_policy.py b/sdk/python/pulumi_gcp/apigateway/get_gateway_iam_policy.py index 017cc08486..e3cc813d09 100644 --- a/sdk/python/pulumi_gcp/apigateway/get_gateway_iam_policy.py +++ b/sdk/python/pulumi_gcp/apigateway/get_gateway_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/apigateway/outputs.py b/sdk/python/pulumi_gcp/apigateway/outputs.py index dcbce1ea91..ec7c9374dc 100644 --- a/sdk/python/pulumi_gcp/apigateway/outputs.py +++ b/sdk/python/pulumi_gcp/apigateway/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/apigee/_inputs.py b/sdk/python/pulumi_gcp/apigee/_inputs.py index 1bf52e2a12..66b36bdba1 100644 --- a/sdk/python/pulumi_gcp/apigee/_inputs.py +++ b/sdk/python/pulumi_gcp/apigee/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/apigee/addons_config.py b/sdk/python/pulumi_gcp/apigee/addons_config.py index a1f96e815f..dcf01278e4 100644 --- a/sdk/python/pulumi_gcp/apigee/addons_config.py +++ b/sdk/python/pulumi_gcp/apigee/addons_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigee/endpoint_attachment.py b/sdk/python/pulumi_gcp/apigee/endpoint_attachment.py index 67ac224d2c..0979bb5699 100644 --- a/sdk/python/pulumi_gcp/apigee/endpoint_attachment.py +++ b/sdk/python/pulumi_gcp/apigee/endpoint_attachment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['EndpointAttachmentArgs', 'EndpointAttachment'] diff --git a/sdk/python/pulumi_gcp/apigee/env_group.py b/sdk/python/pulumi_gcp/apigee/env_group.py index 8179975e6b..d22d716d02 100644 --- a/sdk/python/pulumi_gcp/apigee/env_group.py +++ b/sdk/python/pulumi_gcp/apigee/env_group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['EnvGroupArgs', 'EnvGroup'] diff --git a/sdk/python/pulumi_gcp/apigee/env_group_attachment.py b/sdk/python/pulumi_gcp/apigee/env_group_attachment.py index 7bc81fcea5..68163e80b4 100644 --- a/sdk/python/pulumi_gcp/apigee/env_group_attachment.py +++ b/sdk/python/pulumi_gcp/apigee/env_group_attachment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['EnvGroupAttachmentArgs', 'EnvGroupAttachment'] diff --git a/sdk/python/pulumi_gcp/apigee/env_keystore.py b/sdk/python/pulumi_gcp/apigee/env_keystore.py index 63674b181d..16356439ea 100644 --- a/sdk/python/pulumi_gcp/apigee/env_keystore.py +++ b/sdk/python/pulumi_gcp/apigee/env_keystore.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['EnvKeystoreArgs', 'EnvKeystore'] diff --git a/sdk/python/pulumi_gcp/apigee/env_references.py b/sdk/python/pulumi_gcp/apigee/env_references.py index 99eebfaddb..27d6dcf2cf 100644 --- a/sdk/python/pulumi_gcp/apigee/env_references.py +++ b/sdk/python/pulumi_gcp/apigee/env_references.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['EnvReferencesArgs', 'EnvReferences'] diff --git a/sdk/python/pulumi_gcp/apigee/environment.py b/sdk/python/pulumi_gcp/apigee/environment.py index 73c4456da8..4a2569282b 100644 --- a/sdk/python/pulumi_gcp/apigee/environment.py +++ b/sdk/python/pulumi_gcp/apigee/environment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigee/environment_iam_binding.py b/sdk/python/pulumi_gcp/apigee/environment_iam_binding.py index 9d063a3714..904c5e78e2 100644 --- a/sdk/python/pulumi_gcp/apigee/environment_iam_binding.py +++ b/sdk/python/pulumi_gcp/apigee/environment_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigee/environment_iam_member.py b/sdk/python/pulumi_gcp/apigee/environment_iam_member.py index d6cb532ab3..5c951c791e 100644 --- a/sdk/python/pulumi_gcp/apigee/environment_iam_member.py +++ b/sdk/python/pulumi_gcp/apigee/environment_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigee/environment_iam_policy.py b/sdk/python/pulumi_gcp/apigee/environment_iam_policy.py index 2b258107f8..f8b45a3190 100644 --- a/sdk/python/pulumi_gcp/apigee/environment_iam_policy.py +++ b/sdk/python/pulumi_gcp/apigee/environment_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['EnvironmentIamPolicyArgs', 'EnvironmentIamPolicy'] diff --git a/sdk/python/pulumi_gcp/apigee/flowhook.py b/sdk/python/pulumi_gcp/apigee/flowhook.py index fba2d280cf..259affa1e0 100644 --- a/sdk/python/pulumi_gcp/apigee/flowhook.py +++ b/sdk/python/pulumi_gcp/apigee/flowhook.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['FlowhookArgs', 'Flowhook'] diff --git a/sdk/python/pulumi_gcp/apigee/get_environment_iam_policy.py b/sdk/python/pulumi_gcp/apigee/get_environment_iam_policy.py index f9a81871f4..d54b062158 100644 --- a/sdk/python/pulumi_gcp/apigee/get_environment_iam_policy.py +++ b/sdk/python/pulumi_gcp/apigee/get_environment_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/apigee/instance.py b/sdk/python/pulumi_gcp/apigee/instance.py index c1d6796796..0986c886b7 100644 --- a/sdk/python/pulumi_gcp/apigee/instance.py +++ b/sdk/python/pulumi_gcp/apigee/instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['InstanceArgs', 'Instance'] diff --git a/sdk/python/pulumi_gcp/apigee/instance_attachment.py b/sdk/python/pulumi_gcp/apigee/instance_attachment.py index cafa3dc021..2e5f52357b 100644 --- a/sdk/python/pulumi_gcp/apigee/instance_attachment.py +++ b/sdk/python/pulumi_gcp/apigee/instance_attachment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['InstanceAttachmentArgs', 'InstanceAttachment'] diff --git a/sdk/python/pulumi_gcp/apigee/keystores_aliases_key_cert_file.py b/sdk/python/pulumi_gcp/apigee/keystores_aliases_key_cert_file.py index fb716717ae..ca3f782f91 100644 --- a/sdk/python/pulumi_gcp/apigee/keystores_aliases_key_cert_file.py +++ b/sdk/python/pulumi_gcp/apigee/keystores_aliases_key_cert_file.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigee/keystores_aliases_pkcs12.py b/sdk/python/pulumi_gcp/apigee/keystores_aliases_pkcs12.py index 4820cccc00..98182d2b57 100644 --- a/sdk/python/pulumi_gcp/apigee/keystores_aliases_pkcs12.py +++ b/sdk/python/pulumi_gcp/apigee/keystores_aliases_pkcs12.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py b/sdk/python/pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py index 62509bac16..aeb2b6bb3c 100644 --- a/sdk/python/pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py +++ b/sdk/python/pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigee/nat_address.py b/sdk/python/pulumi_gcp/apigee/nat_address.py index b60baf1642..9f8d861533 100644 --- a/sdk/python/pulumi_gcp/apigee/nat_address.py +++ b/sdk/python/pulumi_gcp/apigee/nat_address.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['NatAddressArgs', 'NatAddress'] diff --git a/sdk/python/pulumi_gcp/apigee/organization.py b/sdk/python/pulumi_gcp/apigee/organization.py index 76e7db36e2..d12ebbaa54 100644 --- a/sdk/python/pulumi_gcp/apigee/organization.py +++ b/sdk/python/pulumi_gcp/apigee/organization.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigee/outputs.py b/sdk/python/pulumi_gcp/apigee/outputs.py index a22082d3d4..717a27d278 100644 --- a/sdk/python/pulumi_gcp/apigee/outputs.py +++ b/sdk/python/pulumi_gcp/apigee/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/apigee/sharedflow.py b/sdk/python/pulumi_gcp/apigee/sharedflow.py index 9bedd26631..b036a95777 100644 --- a/sdk/python/pulumi_gcp/apigee/sharedflow.py +++ b/sdk/python/pulumi_gcp/apigee/sharedflow.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apigee/sharedflow_deployment.py b/sdk/python/pulumi_gcp/apigee/sharedflow_deployment.py index 8973d28ffd..2a96955aea 100644 --- a/sdk/python/pulumi_gcp/apigee/sharedflow_deployment.py +++ b/sdk/python/pulumi_gcp/apigee/sharedflow_deployment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SharedflowDeploymentArgs', 'SharedflowDeployment'] diff --git a/sdk/python/pulumi_gcp/apigee/sync_authorization.py b/sdk/python/pulumi_gcp/apigee/sync_authorization.py index 7e44d38eb5..03ba673e47 100644 --- a/sdk/python/pulumi_gcp/apigee/sync_authorization.py +++ b/sdk/python/pulumi_gcp/apigee/sync_authorization.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SyncAuthorizationArgs', 'SyncAuthorization'] diff --git a/sdk/python/pulumi_gcp/apigee/target_server.py b/sdk/python/pulumi_gcp/apigee/target_server.py index 36aff2358e..18bcf646ec 100644 --- a/sdk/python/pulumi_gcp/apigee/target_server.py +++ b/sdk/python/pulumi_gcp/apigee/target_server.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/appengine/_inputs.py b/sdk/python/pulumi_gcp/appengine/_inputs.py index 37757e4258..005bd1bc65 100644 --- a/sdk/python/pulumi_gcp/appengine/_inputs.py +++ b/sdk/python/pulumi_gcp/appengine/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/appengine/application.py b/sdk/python/pulumi_gcp/appengine/application.py index e51c356d61..bdef9aee9e 100644 --- a/sdk/python/pulumi_gcp/appengine/application.py +++ b/sdk/python/pulumi_gcp/appengine/application.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/appengine/application_url_dispatch_rules.py b/sdk/python/pulumi_gcp/appengine/application_url_dispatch_rules.py index f66d2fde8b..fd2f671c79 100644 --- a/sdk/python/pulumi_gcp/appengine/application_url_dispatch_rules.py +++ b/sdk/python/pulumi_gcp/appengine/application_url_dispatch_rules.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/appengine/domain_mapping.py b/sdk/python/pulumi_gcp/appengine/domain_mapping.py index 0c5be1815a..d33344f13d 100644 --- a/sdk/python/pulumi_gcp/appengine/domain_mapping.py +++ b/sdk/python/pulumi_gcp/appengine/domain_mapping.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/appengine/engine_split_traffic.py b/sdk/python/pulumi_gcp/appengine/engine_split_traffic.py index 5809cf2fb9..e5f0db271a 100644 --- a/sdk/python/pulumi_gcp/appengine/engine_split_traffic.py +++ b/sdk/python/pulumi_gcp/appengine/engine_split_traffic.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/appengine/firewall_rule.py b/sdk/python/pulumi_gcp/appengine/firewall_rule.py index f752a3c3df..3ecffbe35b 100644 --- a/sdk/python/pulumi_gcp/appengine/firewall_rule.py +++ b/sdk/python/pulumi_gcp/appengine/firewall_rule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['FirewallRuleArgs', 'FirewallRule'] diff --git a/sdk/python/pulumi_gcp/appengine/flexible_app_version.py b/sdk/python/pulumi_gcp/appengine/flexible_app_version.py index 0f6833de51..c3ed39c14c 100644 --- a/sdk/python/pulumi_gcp/appengine/flexible_app_version.py +++ b/sdk/python/pulumi_gcp/appengine/flexible_app_version.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/appengine/get_default_service_account.py b/sdk/python/pulumi_gcp/appengine/get_default_service_account.py index 7748de14f2..f71ae240c3 100644 --- a/sdk/python/pulumi_gcp/appengine/get_default_service_account.py +++ b/sdk/python/pulumi_gcp/appengine/get_default_service_account.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/appengine/outputs.py b/sdk/python/pulumi_gcp/appengine/outputs.py index dbe838767e..13bce598cc 100644 --- a/sdk/python/pulumi_gcp/appengine/outputs.py +++ b/sdk/python/pulumi_gcp/appengine/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/appengine/service_network_settings.py b/sdk/python/pulumi_gcp/appengine/service_network_settings.py index ccc4819962..1fe789b73a 100644 --- a/sdk/python/pulumi_gcp/appengine/service_network_settings.py +++ b/sdk/python/pulumi_gcp/appengine/service_network_settings.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/appengine/standard_app_version.py b/sdk/python/pulumi_gcp/appengine/standard_app_version.py index a162a7d948..493ff38539 100644 --- a/sdk/python/pulumi_gcp/appengine/standard_app_version.py +++ b/sdk/python/pulumi_gcp/appengine/standard_app_version.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apphub/_inputs.py b/sdk/python/pulumi_gcp/apphub/_inputs.py index 2eb832c100..6a57dfa3aa 100644 --- a/sdk/python/pulumi_gcp/apphub/_inputs.py +++ b/sdk/python/pulumi_gcp/apphub/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/apphub/application.py b/sdk/python/pulumi_gcp/apphub/application.py index 4716bf354f..144a8f6281 100644 --- a/sdk/python/pulumi_gcp/apphub/application.py +++ b/sdk/python/pulumi_gcp/apphub/application.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apphub/get_application.py b/sdk/python/pulumi_gcp/apphub/get_application.py index bc82bbb487..892ec16867 100644 --- a/sdk/python/pulumi_gcp/apphub/get_application.py +++ b/sdk/python/pulumi_gcp/apphub/get_application.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/apphub/get_discovered_service.py b/sdk/python/pulumi_gcp/apphub/get_discovered_service.py index c8b50d2004..94e39483bd 100644 --- a/sdk/python/pulumi_gcp/apphub/get_discovered_service.py +++ b/sdk/python/pulumi_gcp/apphub/get_discovered_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/apphub/get_discovered_workload.py b/sdk/python/pulumi_gcp/apphub/get_discovered_workload.py index a44e5c0ecc..f8d6760105 100644 --- a/sdk/python/pulumi_gcp/apphub/get_discovered_workload.py +++ b/sdk/python/pulumi_gcp/apphub/get_discovered_workload.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/apphub/outputs.py b/sdk/python/pulumi_gcp/apphub/outputs.py index f3b3b52b6c..c8c31d8ad2 100644 --- a/sdk/python/pulumi_gcp/apphub/outputs.py +++ b/sdk/python/pulumi_gcp/apphub/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/apphub/service.py b/sdk/python/pulumi_gcp/apphub/service.py index f4b53e8d4f..2135aa8d27 100644 --- a/sdk/python/pulumi_gcp/apphub/service.py +++ b/sdk/python/pulumi_gcp/apphub/service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/apphub/service_project_attachment.py b/sdk/python/pulumi_gcp/apphub/service_project_attachment.py index c37654aa2a..f523db29b0 100644 --- a/sdk/python/pulumi_gcp/apphub/service_project_attachment.py +++ b/sdk/python/pulumi_gcp/apphub/service_project_attachment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ServiceProjectAttachmentArgs', 'ServiceProjectAttachment'] diff --git a/sdk/python/pulumi_gcp/apphub/workload.py b/sdk/python/pulumi_gcp/apphub/workload.py index d83cb3d4ae..34e0bd2e5e 100644 --- a/sdk/python/pulumi_gcp/apphub/workload.py +++ b/sdk/python/pulumi_gcp/apphub/workload.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/applicationintegration/_inputs.py b/sdk/python/pulumi_gcp/applicationintegration/_inputs.py index 9623f1ffb6..2a364f2123 100644 --- a/sdk/python/pulumi_gcp/applicationintegration/_inputs.py +++ b/sdk/python/pulumi_gcp/applicationintegration/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/applicationintegration/client.py b/sdk/python/pulumi_gcp/applicationintegration/client.py index 0225fc7b05..63fbc26bd2 100644 --- a/sdk/python/pulumi_gcp/applicationintegration/client.py +++ b/sdk/python/pulumi_gcp/applicationintegration/client.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/applicationintegration/outputs.py b/sdk/python/pulumi_gcp/applicationintegration/outputs.py index 6299cfe21d..fef4eb27aa 100644 --- a/sdk/python/pulumi_gcp/applicationintegration/outputs.py +++ b/sdk/python/pulumi_gcp/applicationintegration/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/artifactregistry/_inputs.py b/sdk/python/pulumi_gcp/artifactregistry/_inputs.py index 1912a96a9a..73df8fb230 100644 --- a/sdk/python/pulumi_gcp/artifactregistry/_inputs.py +++ b/sdk/python/pulumi_gcp/artifactregistry/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/artifactregistry/get_repository.py b/sdk/python/pulumi_gcp/artifactregistry/get_repository.py index 71b98d804b..93c140f6b7 100644 --- a/sdk/python/pulumi_gcp/artifactregistry/get_repository.py +++ b/sdk/python/pulumi_gcp/artifactregistry/get_repository.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/artifactregistry/get_repository_iam_policy.py b/sdk/python/pulumi_gcp/artifactregistry/get_repository_iam_policy.py index 56320ae479..09ae6e0a38 100644 --- a/sdk/python/pulumi_gcp/artifactregistry/get_repository_iam_policy.py +++ b/sdk/python/pulumi_gcp/artifactregistry/get_repository_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/artifactregistry/outputs.py b/sdk/python/pulumi_gcp/artifactregistry/outputs.py index 6f8264aab7..e14390ed09 100644 --- a/sdk/python/pulumi_gcp/artifactregistry/outputs.py +++ b/sdk/python/pulumi_gcp/artifactregistry/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/artifactregistry/repository.py b/sdk/python/pulumi_gcp/artifactregistry/repository.py index 44843ee5db..407851c6f9 100644 --- a/sdk/python/pulumi_gcp/artifactregistry/repository.py +++ b/sdk/python/pulumi_gcp/artifactregistry/repository.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/artifactregistry/repository_iam_binding.py b/sdk/python/pulumi_gcp/artifactregistry/repository_iam_binding.py index 550c1c659c..c0ddfc566c 100644 --- a/sdk/python/pulumi_gcp/artifactregistry/repository_iam_binding.py +++ b/sdk/python/pulumi_gcp/artifactregistry/repository_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/artifactregistry/repository_iam_member.py b/sdk/python/pulumi_gcp/artifactregistry/repository_iam_member.py index ddf114fbc2..9a919dca0e 100644 --- a/sdk/python/pulumi_gcp/artifactregistry/repository_iam_member.py +++ b/sdk/python/pulumi_gcp/artifactregistry/repository_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/artifactregistry/repository_iam_policy.py b/sdk/python/pulumi_gcp/artifactregistry/repository_iam_policy.py index 0b9627b7fb..7199e70c84 100644 --- a/sdk/python/pulumi_gcp/artifactregistry/repository_iam_policy.py +++ b/sdk/python/pulumi_gcp/artifactregistry/repository_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RepositoryIamPolicyArgs', 'RepositoryIamPolicy'] diff --git a/sdk/python/pulumi_gcp/artifactregistry/vpcsc_config.py b/sdk/python/pulumi_gcp/artifactregistry/vpcsc_config.py index 03588d34b1..6d55135437 100644 --- a/sdk/python/pulumi_gcp/artifactregistry/vpcsc_config.py +++ b/sdk/python/pulumi_gcp/artifactregistry/vpcsc_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['VpcscConfigArgs', 'VpcscConfig'] diff --git a/sdk/python/pulumi_gcp/assuredworkloads/_inputs.py b/sdk/python/pulumi_gcp/assuredworkloads/_inputs.py index 6b74cfad66..e5764b03e3 100644 --- a/sdk/python/pulumi_gcp/assuredworkloads/_inputs.py +++ b/sdk/python/pulumi_gcp/assuredworkloads/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/assuredworkloads/outputs.py b/sdk/python/pulumi_gcp/assuredworkloads/outputs.py index 8da0dfcc88..3f173d204b 100644 --- a/sdk/python/pulumi_gcp/assuredworkloads/outputs.py +++ b/sdk/python/pulumi_gcp/assuredworkloads/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/assuredworkloads/workload.py b/sdk/python/pulumi_gcp/assuredworkloads/workload.py index 21c5b2d730..04e8d04e0f 100644 --- a/sdk/python/pulumi_gcp/assuredworkloads/workload.py +++ b/sdk/python/pulumi_gcp/assuredworkloads/workload.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/backupdisasterrecovery/_inputs.py b/sdk/python/pulumi_gcp/backupdisasterrecovery/_inputs.py index 57b9c5d0c1..0b1d659606 100644 --- a/sdk/python/pulumi_gcp/backupdisasterrecovery/_inputs.py +++ b/sdk/python/pulumi_gcp/backupdisasterrecovery/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/backupdisasterrecovery/get_management_server.py b/sdk/python/pulumi_gcp/backupdisasterrecovery/get_management_server.py index 3f4a49819e..ad3f379192 100644 --- a/sdk/python/pulumi_gcp/backupdisasterrecovery/get_management_server.py +++ b/sdk/python/pulumi_gcp/backupdisasterrecovery/get_management_server.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/backupdisasterrecovery/management_server.py b/sdk/python/pulumi_gcp/backupdisasterrecovery/management_server.py index 610691a2a1..3f38817f46 100644 --- a/sdk/python/pulumi_gcp/backupdisasterrecovery/management_server.py +++ b/sdk/python/pulumi_gcp/backupdisasterrecovery/management_server.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/backupdisasterrecovery/outputs.py b/sdk/python/pulumi_gcp/backupdisasterrecovery/outputs.py index 3da3f4a46c..1944218889 100644 --- a/sdk/python/pulumi_gcp/backupdisasterrecovery/outputs.py +++ b/sdk/python/pulumi_gcp/backupdisasterrecovery/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/beyondcorp/_inputs.py b/sdk/python/pulumi_gcp/beyondcorp/_inputs.py index 5f4c60075a..ecaa26fee6 100644 --- a/sdk/python/pulumi_gcp/beyondcorp/_inputs.py +++ b/sdk/python/pulumi_gcp/beyondcorp/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/beyondcorp/app_connection.py b/sdk/python/pulumi_gcp/beyondcorp/app_connection.py index 2c6a49e90b..0a5d037789 100644 --- a/sdk/python/pulumi_gcp/beyondcorp/app_connection.py +++ b/sdk/python/pulumi_gcp/beyondcorp/app_connection.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/beyondcorp/app_connector.py b/sdk/python/pulumi_gcp/beyondcorp/app_connector.py index df5fa84f67..587acd50f9 100644 --- a/sdk/python/pulumi_gcp/beyondcorp/app_connector.py +++ b/sdk/python/pulumi_gcp/beyondcorp/app_connector.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/beyondcorp/app_gateway.py b/sdk/python/pulumi_gcp/beyondcorp/app_gateway.py index 33e1793049..ac1502e403 100644 --- a/sdk/python/pulumi_gcp/beyondcorp/app_gateway.py +++ b/sdk/python/pulumi_gcp/beyondcorp/app_gateway.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/beyondcorp/get_app_connection.py b/sdk/python/pulumi_gcp/beyondcorp/get_app_connection.py index 2590445890..71d2ffeaf0 100644 --- a/sdk/python/pulumi_gcp/beyondcorp/get_app_connection.py +++ b/sdk/python/pulumi_gcp/beyondcorp/get_app_connection.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/beyondcorp/get_app_connector.py b/sdk/python/pulumi_gcp/beyondcorp/get_app_connector.py index 7224ad8662..91e1cffcc3 100644 --- a/sdk/python/pulumi_gcp/beyondcorp/get_app_connector.py +++ b/sdk/python/pulumi_gcp/beyondcorp/get_app_connector.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/beyondcorp/get_app_gateway.py b/sdk/python/pulumi_gcp/beyondcorp/get_app_gateway.py index 05f5416eaa..50726f1acc 100644 --- a/sdk/python/pulumi_gcp/beyondcorp/get_app_gateway.py +++ b/sdk/python/pulumi_gcp/beyondcorp/get_app_gateway.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/beyondcorp/outputs.py b/sdk/python/pulumi_gcp/beyondcorp/outputs.py index 31087b1c0e..b80a35e975 100644 --- a/sdk/python/pulumi_gcp/beyondcorp/outputs.py +++ b/sdk/python/pulumi_gcp/beyondcorp/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/biglake/_inputs.py b/sdk/python/pulumi_gcp/biglake/_inputs.py index bf5540cedf..2725d2de34 100644 --- a/sdk/python/pulumi_gcp/biglake/_inputs.py +++ b/sdk/python/pulumi_gcp/biglake/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/biglake/catalog.py b/sdk/python/pulumi_gcp/biglake/catalog.py index 84fd4f007b..efcc4f2eb9 100644 --- a/sdk/python/pulumi_gcp/biglake/catalog.py +++ b/sdk/python/pulumi_gcp/biglake/catalog.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['CatalogArgs', 'Catalog'] diff --git a/sdk/python/pulumi_gcp/biglake/database.py b/sdk/python/pulumi_gcp/biglake/database.py index cd0a179efc..01ed464d85 100644 --- a/sdk/python/pulumi_gcp/biglake/database.py +++ b/sdk/python/pulumi_gcp/biglake/database.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/biglake/outputs.py b/sdk/python/pulumi_gcp/biglake/outputs.py index 0693dc6aab..3ad83a95a6 100644 --- a/sdk/python/pulumi_gcp/biglake/outputs.py +++ b/sdk/python/pulumi_gcp/biglake/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/biglake/table.py b/sdk/python/pulumi_gcp/biglake/table.py index 6f199d5c9e..54486d2430 100644 --- a/sdk/python/pulumi_gcp/biglake/table.py +++ b/sdk/python/pulumi_gcp/biglake/table.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/_inputs.py b/sdk/python/pulumi_gcp/bigquery/_inputs.py index fa208ed92a..ce61240014 100644 --- a/sdk/python/pulumi_gcp/bigquery/_inputs.py +++ b/sdk/python/pulumi_gcp/bigquery/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/bigquery/app_profile.py b/sdk/python/pulumi_gcp/bigquery/app_profile.py index 54ee2d477b..c4769847ce 100644 --- a/sdk/python/pulumi_gcp/bigquery/app_profile.py +++ b/sdk/python/pulumi_gcp/bigquery/app_profile.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/bi_reservation.py b/sdk/python/pulumi_gcp/bigquery/bi_reservation.py index 8b903d9d5d..d8794cedb1 100644 --- a/sdk/python/pulumi_gcp/bigquery/bi_reservation.py +++ b/sdk/python/pulumi_gcp/bigquery/bi_reservation.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/capacity_commitment.py b/sdk/python/pulumi_gcp/bigquery/capacity_commitment.py index 0e2b41d4fc..c23ac54cfe 100644 --- a/sdk/python/pulumi_gcp/bigquery/capacity_commitment.py +++ b/sdk/python/pulumi_gcp/bigquery/capacity_commitment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['CapacityCommitmentArgs', 'CapacityCommitment'] diff --git a/sdk/python/pulumi_gcp/bigquery/connection.py b/sdk/python/pulumi_gcp/bigquery/connection.py index f14f4be8ee..3e55cd6250 100644 --- a/sdk/python/pulumi_gcp/bigquery/connection.py +++ b/sdk/python/pulumi_gcp/bigquery/connection.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/connection_iam_binding.py b/sdk/python/pulumi_gcp/bigquery/connection_iam_binding.py index e6e5f01599..21fe3b8259 100644 --- a/sdk/python/pulumi_gcp/bigquery/connection_iam_binding.py +++ b/sdk/python/pulumi_gcp/bigquery/connection_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/connection_iam_member.py b/sdk/python/pulumi_gcp/bigquery/connection_iam_member.py index 337e7850ad..2481825f97 100644 --- a/sdk/python/pulumi_gcp/bigquery/connection_iam_member.py +++ b/sdk/python/pulumi_gcp/bigquery/connection_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/connection_iam_policy.py b/sdk/python/pulumi_gcp/bigquery/connection_iam_policy.py index f2055196cf..8d539580c1 100644 --- a/sdk/python/pulumi_gcp/bigquery/connection_iam_policy.py +++ b/sdk/python/pulumi_gcp/bigquery/connection_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ConnectionIamPolicyArgs', 'ConnectionIamPolicy'] diff --git a/sdk/python/pulumi_gcp/bigquery/data_transfer_config.py b/sdk/python/pulumi_gcp/bigquery/data_transfer_config.py index f452e87994..ef739b285d 100644 --- a/sdk/python/pulumi_gcp/bigquery/data_transfer_config.py +++ b/sdk/python/pulumi_gcp/bigquery/data_transfer_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/dataset.py b/sdk/python/pulumi_gcp/bigquery/dataset.py index 504e89ef02..f076b8e222 100644 --- a/sdk/python/pulumi_gcp/bigquery/dataset.py +++ b/sdk/python/pulumi_gcp/bigquery/dataset.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/dataset_access.py b/sdk/python/pulumi_gcp/bigquery/dataset_access.py index c6cfc4f91f..085c653fb6 100644 --- a/sdk/python/pulumi_gcp/bigquery/dataset_access.py +++ b/sdk/python/pulumi_gcp/bigquery/dataset_access.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/dataset_iam_binding.py b/sdk/python/pulumi_gcp/bigquery/dataset_iam_binding.py index 1b795b281f..3c58c0f94d 100644 --- a/sdk/python/pulumi_gcp/bigquery/dataset_iam_binding.py +++ b/sdk/python/pulumi_gcp/bigquery/dataset_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/dataset_iam_member.py b/sdk/python/pulumi_gcp/bigquery/dataset_iam_member.py index 0ef91cbd34..0aac102fe5 100644 --- a/sdk/python/pulumi_gcp/bigquery/dataset_iam_member.py +++ b/sdk/python/pulumi_gcp/bigquery/dataset_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/dataset_iam_policy.py b/sdk/python/pulumi_gcp/bigquery/dataset_iam_policy.py index 4f54abe053..6161562878 100644 --- a/sdk/python/pulumi_gcp/bigquery/dataset_iam_policy.py +++ b/sdk/python/pulumi_gcp/bigquery/dataset_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DatasetIamPolicyArgs', 'DatasetIamPolicy'] diff --git a/sdk/python/pulumi_gcp/bigquery/get_connection_iam_policy.py b/sdk/python/pulumi_gcp/bigquery/get_connection_iam_policy.py index c1a12127f9..dbf870ab53 100644 --- a/sdk/python/pulumi_gcp/bigquery/get_connection_iam_policy.py +++ b/sdk/python/pulumi_gcp/bigquery/get_connection_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/bigquery/get_dataset.py b/sdk/python/pulumi_gcp/bigquery/get_dataset.py index 860597a64c..84b860f6be 100644 --- a/sdk/python/pulumi_gcp/bigquery/get_dataset.py +++ b/sdk/python/pulumi_gcp/bigquery/get_dataset.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/bigquery/get_dataset_iam_policy.py b/sdk/python/pulumi_gcp/bigquery/get_dataset_iam_policy.py index 5800167cfe..3c856ebc1f 100644 --- a/sdk/python/pulumi_gcp/bigquery/get_dataset_iam_policy.py +++ b/sdk/python/pulumi_gcp/bigquery/get_dataset_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/bigquery/get_default_service_account.py b/sdk/python/pulumi_gcp/bigquery/get_default_service_account.py index 6c724bf2cb..e442cf9f5a 100644 --- a/sdk/python/pulumi_gcp/bigquery/get_default_service_account.py +++ b/sdk/python/pulumi_gcp/bigquery/get_default_service_account.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/bigquery/get_table_iam_policy.py b/sdk/python/pulumi_gcp/bigquery/get_table_iam_policy.py index 5797deb7a8..5228fca1d6 100644 --- a/sdk/python/pulumi_gcp/bigquery/get_table_iam_policy.py +++ b/sdk/python/pulumi_gcp/bigquery/get_table_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/bigquery/iam_binding.py b/sdk/python/pulumi_gcp/bigquery/iam_binding.py index fb361aae85..90704b7880 100644 --- a/sdk/python/pulumi_gcp/bigquery/iam_binding.py +++ b/sdk/python/pulumi_gcp/bigquery/iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/iam_member.py b/sdk/python/pulumi_gcp/bigquery/iam_member.py index 10fa5811fc..542692631e 100644 --- a/sdk/python/pulumi_gcp/bigquery/iam_member.py +++ b/sdk/python/pulumi_gcp/bigquery/iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/iam_policy.py b/sdk/python/pulumi_gcp/bigquery/iam_policy.py index da43020d4e..2758ebe0fd 100644 --- a/sdk/python/pulumi_gcp/bigquery/iam_policy.py +++ b/sdk/python/pulumi_gcp/bigquery/iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['IamPolicyArgs', 'IamPolicy'] diff --git a/sdk/python/pulumi_gcp/bigquery/job.py b/sdk/python/pulumi_gcp/bigquery/job.py index 87faca349a..8c8ee4845d 100644 --- a/sdk/python/pulumi_gcp/bigquery/job.py +++ b/sdk/python/pulumi_gcp/bigquery/job.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/outputs.py b/sdk/python/pulumi_gcp/bigquery/outputs.py index 18d953feb4..7176d6e90d 100644 --- a/sdk/python/pulumi_gcp/bigquery/outputs.py +++ b/sdk/python/pulumi_gcp/bigquery/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/bigquery/reservation.py b/sdk/python/pulumi_gcp/bigquery/reservation.py index d8e08bdf83..43852131fd 100644 --- a/sdk/python/pulumi_gcp/bigquery/reservation.py +++ b/sdk/python/pulumi_gcp/bigquery/reservation.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/reservation_assignment.py b/sdk/python/pulumi_gcp/bigquery/reservation_assignment.py index 4df73373b8..b6b3a2bdad 100644 --- a/sdk/python/pulumi_gcp/bigquery/reservation_assignment.py +++ b/sdk/python/pulumi_gcp/bigquery/reservation_assignment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ReservationAssignmentArgs', 'ReservationAssignment'] diff --git a/sdk/python/pulumi_gcp/bigquery/routine.py b/sdk/python/pulumi_gcp/bigquery/routine.py index 894cceddee..48d3548921 100644 --- a/sdk/python/pulumi_gcp/bigquery/routine.py +++ b/sdk/python/pulumi_gcp/bigquery/routine.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquery/table.py b/sdk/python/pulumi_gcp/bigquery/table.py index 8d8f275b4d..123be6dbdb 100644 --- a/sdk/python/pulumi_gcp/bigquery/table.py +++ b/sdk/python/pulumi_gcp/bigquery/table.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigqueryanalyticshub/_inputs.py b/sdk/python/pulumi_gcp/bigqueryanalyticshub/_inputs.py index 1fa9e09dd8..c52630f528 100644 --- a/sdk/python/pulumi_gcp/bigqueryanalyticshub/_inputs.py +++ b/sdk/python/pulumi_gcp/bigqueryanalyticshub/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange.py b/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange.py index b86f398a92..8b1843a7a5 100644 --- a/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange.py +++ b/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DataExchangeArgs', 'DataExchange'] diff --git a/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py b/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py index 1bd0e22b48..5a5a57b83c 100644 --- a/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +++ b/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py b/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py index 38be78df08..2948a06e13 100644 --- a/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +++ b/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py b/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py index 7a7b395f11..98ff30d86b 100644 --- a/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +++ b/sdk/python/pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DataExchangeIamPolicyArgs', 'DataExchangeIamPolicy'] diff --git a/sdk/python/pulumi_gcp/bigqueryanalyticshub/get_data_exchange_iam_policy.py b/sdk/python/pulumi_gcp/bigqueryanalyticshub/get_data_exchange_iam_policy.py index f54e3392a7..fee78b6c9f 100644 --- a/sdk/python/pulumi_gcp/bigqueryanalyticshub/get_data_exchange_iam_policy.py +++ b/sdk/python/pulumi_gcp/bigqueryanalyticshub/get_data_exchange_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/bigqueryanalyticshub/get_listing_iam_policy.py b/sdk/python/pulumi_gcp/bigqueryanalyticshub/get_listing_iam_policy.py index 18c80f9e65..a3eddada80 100644 --- a/sdk/python/pulumi_gcp/bigqueryanalyticshub/get_listing_iam_policy.py +++ b/sdk/python/pulumi_gcp/bigqueryanalyticshub/get_listing_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing.py b/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing.py index 83f7f5a3a6..625aae90e1 100644 --- a/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing.py +++ b/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py b/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py index db836207e4..638b68122b 100644 --- a/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +++ b/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py b/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py index 0d62aac50a..9085383a7b 100644 --- a/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +++ b/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py b/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py index 78130c0a15..d636886e9c 100644 --- a/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +++ b/sdk/python/pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ListingIamPolicyArgs', 'ListingIamPolicy'] diff --git a/sdk/python/pulumi_gcp/bigqueryanalyticshub/outputs.py b/sdk/python/pulumi_gcp/bigqueryanalyticshub/outputs.py index acd0f39afc..7c7a3616f1 100644 --- a/sdk/python/pulumi_gcp/bigqueryanalyticshub/outputs.py +++ b/sdk/python/pulumi_gcp/bigqueryanalyticshub/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/bigquerydatapolicy/_inputs.py b/sdk/python/pulumi_gcp/bigquerydatapolicy/_inputs.py index 1b2e7dcb4f..0cd0f0f345 100644 --- a/sdk/python/pulumi_gcp/bigquerydatapolicy/_inputs.py +++ b/sdk/python/pulumi_gcp/bigquerydatapolicy/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy.py b/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy.py index 36231e9d46..1064db3a06 100644 --- a/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy.py +++ b/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py b/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py index 17bff24f86..19eb055fd5 100644 --- a/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +++ b/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py b/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py index f39b1e81ad..a194eaba12 100644 --- a/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +++ b/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py b/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py index f03c678b12..d1faa3c6ee 100644 --- a/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +++ b/sdk/python/pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DataPolicyIamPolicyArgs', 'DataPolicyIamPolicy'] diff --git a/sdk/python/pulumi_gcp/bigquerydatapolicy/get_iam_policy.py b/sdk/python/pulumi_gcp/bigquerydatapolicy/get_iam_policy.py index 440754a3ee..2e75579085 100644 --- a/sdk/python/pulumi_gcp/bigquerydatapolicy/get_iam_policy.py +++ b/sdk/python/pulumi_gcp/bigquerydatapolicy/get_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/bigquerydatapolicy/outputs.py b/sdk/python/pulumi_gcp/bigquerydatapolicy/outputs.py index b597e0b1d8..ef079f46ee 100644 --- a/sdk/python/pulumi_gcp/bigquerydatapolicy/outputs.py +++ b/sdk/python/pulumi_gcp/bigquerydatapolicy/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/bigtable/_inputs.py b/sdk/python/pulumi_gcp/bigtable/_inputs.py index c6c1adf158..72fbcdc76a 100644 --- a/sdk/python/pulumi_gcp/bigtable/_inputs.py +++ b/sdk/python/pulumi_gcp/bigtable/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/bigtable/gc_policy.py b/sdk/python/pulumi_gcp/bigtable/gc_policy.py index b4f23fb258..beb484df3a 100644 --- a/sdk/python/pulumi_gcp/bigtable/gc_policy.py +++ b/sdk/python/pulumi_gcp/bigtable/gc_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigtable/get_instance_iam_policy.py b/sdk/python/pulumi_gcp/bigtable/get_instance_iam_policy.py index dd40bd525f..95b02eec7c 100644 --- a/sdk/python/pulumi_gcp/bigtable/get_instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/bigtable/get_instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/bigtable/get_table_iam_policy.py b/sdk/python/pulumi_gcp/bigtable/get_table_iam_policy.py index 9a4b288fc0..01cc38a6ee 100644 --- a/sdk/python/pulumi_gcp/bigtable/get_table_iam_policy.py +++ b/sdk/python/pulumi_gcp/bigtable/get_table_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/bigtable/instance.py b/sdk/python/pulumi_gcp/bigtable/instance.py index facc1bb6ad..f9424a0f1b 100644 --- a/sdk/python/pulumi_gcp/bigtable/instance.py +++ b/sdk/python/pulumi_gcp/bigtable/instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigtable/instance_iam_binding.py b/sdk/python/pulumi_gcp/bigtable/instance_iam_binding.py index 553d12fb6c..cdb44ee4d5 100644 --- a/sdk/python/pulumi_gcp/bigtable/instance_iam_binding.py +++ b/sdk/python/pulumi_gcp/bigtable/instance_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigtable/instance_iam_member.py b/sdk/python/pulumi_gcp/bigtable/instance_iam_member.py index 13199581ed..96f6a25679 100644 --- a/sdk/python/pulumi_gcp/bigtable/instance_iam_member.py +++ b/sdk/python/pulumi_gcp/bigtable/instance_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigtable/instance_iam_policy.py b/sdk/python/pulumi_gcp/bigtable/instance_iam_policy.py index cfb5090ed6..091695b2ce 100644 --- a/sdk/python/pulumi_gcp/bigtable/instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/bigtable/instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['InstanceIamPolicyArgs', 'InstanceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/bigtable/outputs.py b/sdk/python/pulumi_gcp/bigtable/outputs.py index 8af786ca79..9b255a47d5 100644 --- a/sdk/python/pulumi_gcp/bigtable/outputs.py +++ b/sdk/python/pulumi_gcp/bigtable/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/bigtable/table.py b/sdk/python/pulumi_gcp/bigtable/table.py index 7e1b27f9b6..dc5511a73b 100644 --- a/sdk/python/pulumi_gcp/bigtable/table.py +++ b/sdk/python/pulumi_gcp/bigtable/table.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigtable/table_iam_binding.py b/sdk/python/pulumi_gcp/bigtable/table_iam_binding.py index 832e6240e0..e4ff79029a 100644 --- a/sdk/python/pulumi_gcp/bigtable/table_iam_binding.py +++ b/sdk/python/pulumi_gcp/bigtable/table_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigtable/table_iam_member.py b/sdk/python/pulumi_gcp/bigtable/table_iam_member.py index 2d33655c82..c8f531e064 100644 --- a/sdk/python/pulumi_gcp/bigtable/table_iam_member.py +++ b/sdk/python/pulumi_gcp/bigtable/table_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/bigtable/table_iam_policy.py b/sdk/python/pulumi_gcp/bigtable/table_iam_policy.py index 32dd31b6c5..1d2d308dea 100644 --- a/sdk/python/pulumi_gcp/bigtable/table_iam_policy.py +++ b/sdk/python/pulumi_gcp/bigtable/table_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TableIamPolicyArgs', 'TableIamPolicy'] diff --git a/sdk/python/pulumi_gcp/billing/_inputs.py b/sdk/python/pulumi_gcp/billing/_inputs.py index 86702b526b..7fcec61028 100644 --- a/sdk/python/pulumi_gcp/billing/_inputs.py +++ b/sdk/python/pulumi_gcp/billing/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/billing/account_iam_binding.py b/sdk/python/pulumi_gcp/billing/account_iam_binding.py index 36854ed37b..d61c853242 100644 --- a/sdk/python/pulumi_gcp/billing/account_iam_binding.py +++ b/sdk/python/pulumi_gcp/billing/account_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/billing/account_iam_member.py b/sdk/python/pulumi_gcp/billing/account_iam_member.py index 267e25cbab..40d898bf9f 100644 --- a/sdk/python/pulumi_gcp/billing/account_iam_member.py +++ b/sdk/python/pulumi_gcp/billing/account_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/billing/account_iam_policy.py b/sdk/python/pulumi_gcp/billing/account_iam_policy.py index 8f40ac8a64..49c0a98499 100644 --- a/sdk/python/pulumi_gcp/billing/account_iam_policy.py +++ b/sdk/python/pulumi_gcp/billing/account_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AccountIamPolicyArgs', 'AccountIamPolicy'] diff --git a/sdk/python/pulumi_gcp/billing/budget.py b/sdk/python/pulumi_gcp/billing/budget.py index 34cf3a78f0..bcb10f1b60 100644 --- a/sdk/python/pulumi_gcp/billing/budget.py +++ b/sdk/python/pulumi_gcp/billing/budget.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/billing/get_account_iam_policy.py b/sdk/python/pulumi_gcp/billing/get_account_iam_policy.py index 751d946fe0..43cc94feb6 100644 --- a/sdk/python/pulumi_gcp/billing/get_account_iam_policy.py +++ b/sdk/python/pulumi_gcp/billing/get_account_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/billing/outputs.py b/sdk/python/pulumi_gcp/billing/outputs.py index d96921b5c5..91a4709c79 100644 --- a/sdk/python/pulumi_gcp/billing/outputs.py +++ b/sdk/python/pulumi_gcp/billing/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/billing/project_info.py b/sdk/python/pulumi_gcp/billing/project_info.py index 7026dff9f8..c4793e979c 100644 --- a/sdk/python/pulumi_gcp/billing/project_info.py +++ b/sdk/python/pulumi_gcp/billing/project_info.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ProjectInfoArgs', 'ProjectInfo'] diff --git a/sdk/python/pulumi_gcp/billing/sub_account.py b/sdk/python/pulumi_gcp/billing/sub_account.py index 73831bba37..20f513d393 100644 --- a/sdk/python/pulumi_gcp/billing/sub_account.py +++ b/sdk/python/pulumi_gcp/billing/sub_account.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SubAccountArgs', 'SubAccount'] diff --git a/sdk/python/pulumi_gcp/binaryauthorization/_inputs.py b/sdk/python/pulumi_gcp/binaryauthorization/_inputs.py index 1fc7e47ea1..51ad817fe7 100644 --- a/sdk/python/pulumi_gcp/binaryauthorization/_inputs.py +++ b/sdk/python/pulumi_gcp/binaryauthorization/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/binaryauthorization/attestor.py b/sdk/python/pulumi_gcp/binaryauthorization/attestor.py index c91f80263b..2c63385f91 100644 --- a/sdk/python/pulumi_gcp/binaryauthorization/attestor.py +++ b/sdk/python/pulumi_gcp/binaryauthorization/attestor.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/binaryauthorization/attestor_iam_binding.py b/sdk/python/pulumi_gcp/binaryauthorization/attestor_iam_binding.py index 38aa65d96b..b06b4267be 100644 --- a/sdk/python/pulumi_gcp/binaryauthorization/attestor_iam_binding.py +++ b/sdk/python/pulumi_gcp/binaryauthorization/attestor_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/binaryauthorization/attestor_iam_member.py b/sdk/python/pulumi_gcp/binaryauthorization/attestor_iam_member.py index 7a630a1687..b23b520b6c 100644 --- a/sdk/python/pulumi_gcp/binaryauthorization/attestor_iam_member.py +++ b/sdk/python/pulumi_gcp/binaryauthorization/attestor_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/binaryauthorization/attestor_iam_policy.py b/sdk/python/pulumi_gcp/binaryauthorization/attestor_iam_policy.py index d2e99dbbb8..7623fa4a11 100644 --- a/sdk/python/pulumi_gcp/binaryauthorization/attestor_iam_policy.py +++ b/sdk/python/pulumi_gcp/binaryauthorization/attestor_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AttestorIamPolicyArgs', 'AttestorIamPolicy'] diff --git a/sdk/python/pulumi_gcp/binaryauthorization/get_attestor_iam_policy.py b/sdk/python/pulumi_gcp/binaryauthorization/get_attestor_iam_policy.py index a5986344ea..a2f385b152 100644 --- a/sdk/python/pulumi_gcp/binaryauthorization/get_attestor_iam_policy.py +++ b/sdk/python/pulumi_gcp/binaryauthorization/get_attestor_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/binaryauthorization/outputs.py b/sdk/python/pulumi_gcp/binaryauthorization/outputs.py index dbafe6ce8c..d2da815dd7 100644 --- a/sdk/python/pulumi_gcp/binaryauthorization/outputs.py +++ b/sdk/python/pulumi_gcp/binaryauthorization/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/binaryauthorization/policy.py b/sdk/python/pulumi_gcp/binaryauthorization/policy.py index 316db768cb..8ea345f98d 100644 --- a/sdk/python/pulumi_gcp/binaryauthorization/policy.py +++ b/sdk/python/pulumi_gcp/binaryauthorization/policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/blockchainnodeengine/_inputs.py b/sdk/python/pulumi_gcp/blockchainnodeengine/_inputs.py index 8c860e97fd..bc7d03b11f 100644 --- a/sdk/python/pulumi_gcp/blockchainnodeengine/_inputs.py +++ b/sdk/python/pulumi_gcp/blockchainnodeengine/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/blockchainnodeengine/blockchain_nodes.py b/sdk/python/pulumi_gcp/blockchainnodeengine/blockchain_nodes.py index 086ac74275..074fd80cdf 100644 --- a/sdk/python/pulumi_gcp/blockchainnodeengine/blockchain_nodes.py +++ b/sdk/python/pulumi_gcp/blockchainnodeengine/blockchain_nodes.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/blockchainnodeengine/outputs.py b/sdk/python/pulumi_gcp/blockchainnodeengine/outputs.py index f6ac259efc..cae2a70ab5 100644 --- a/sdk/python/pulumi_gcp/blockchainnodeengine/outputs.py +++ b/sdk/python/pulumi_gcp/blockchainnodeengine/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/certificateauthority/_inputs.py b/sdk/python/pulumi_gcp/certificateauthority/_inputs.py index aeb0e387bc..1b8d955dff 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/_inputs.py +++ b/sdk/python/pulumi_gcp/certificateauthority/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/certificateauthority/authority.py b/sdk/python/pulumi_gcp/certificateauthority/authority.py index 296b8c5254..38146a9be8 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/authority.py +++ b/sdk/python/pulumi_gcp/certificateauthority/authority.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/certificateauthority/ca_pool.py b/sdk/python/pulumi_gcp/certificateauthority/ca_pool.py index d18f1f86b6..1bb02fa868 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/ca_pool.py +++ b/sdk/python/pulumi_gcp/certificateauthority/ca_pool.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/certificateauthority/ca_pool_iam_binding.py b/sdk/python/pulumi_gcp/certificateauthority/ca_pool_iam_binding.py index 62208033dd..558d217f77 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/ca_pool_iam_binding.py +++ b/sdk/python/pulumi_gcp/certificateauthority/ca_pool_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/certificateauthority/ca_pool_iam_member.py b/sdk/python/pulumi_gcp/certificateauthority/ca_pool_iam_member.py index 01d6184766..5d5bed1467 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/ca_pool_iam_member.py +++ b/sdk/python/pulumi_gcp/certificateauthority/ca_pool_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/certificateauthority/ca_pool_iam_policy.py b/sdk/python/pulumi_gcp/certificateauthority/ca_pool_iam_policy.py index c7d9d84fa0..3e5c360210 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/ca_pool_iam_policy.py +++ b/sdk/python/pulumi_gcp/certificateauthority/ca_pool_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['CaPoolIamPolicyArgs', 'CaPoolIamPolicy'] diff --git a/sdk/python/pulumi_gcp/certificateauthority/certificate.py b/sdk/python/pulumi_gcp/certificateauthority/certificate.py index fc43db0b73..cf62f1371b 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/certificate.py +++ b/sdk/python/pulumi_gcp/certificateauthority/certificate.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/certificateauthority/certificate_template.py b/sdk/python/pulumi_gcp/certificateauthority/certificate_template.py index bfa82cb646..6a53033edb 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/certificate_template.py +++ b/sdk/python/pulumi_gcp/certificateauthority/certificate_template.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/certificateauthority/certificate_template_iam_binding.py b/sdk/python/pulumi_gcp/certificateauthority/certificate_template_iam_binding.py index 95fb1d4853..6ff22891e1 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/certificate_template_iam_binding.py +++ b/sdk/python/pulumi_gcp/certificateauthority/certificate_template_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/certificateauthority/certificate_template_iam_member.py b/sdk/python/pulumi_gcp/certificateauthority/certificate_template_iam_member.py index a911573c23..e4fe5c96af 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/certificate_template_iam_member.py +++ b/sdk/python/pulumi_gcp/certificateauthority/certificate_template_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/certificateauthority/certificate_template_iam_policy.py b/sdk/python/pulumi_gcp/certificateauthority/certificate_template_iam_policy.py index 0c1699e762..817acf2ab7 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/certificate_template_iam_policy.py +++ b/sdk/python/pulumi_gcp/certificateauthority/certificate_template_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['CertificateTemplateIamPolicyArgs', 'CertificateTemplateIamPolicy'] diff --git a/sdk/python/pulumi_gcp/certificateauthority/get_authority.py b/sdk/python/pulumi_gcp/certificateauthority/get_authority.py index 2e12c2ace4..f14e95db5b 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/get_authority.py +++ b/sdk/python/pulumi_gcp/certificateauthority/get_authority.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/certificateauthority/get_ca_pool_iam_policy.py b/sdk/python/pulumi_gcp/certificateauthority/get_ca_pool_iam_policy.py index f10042abbe..af2ba60742 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/get_ca_pool_iam_policy.py +++ b/sdk/python/pulumi_gcp/certificateauthority/get_ca_pool_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/certificateauthority/get_certificate_template_iam_policy.py b/sdk/python/pulumi_gcp/certificateauthority/get_certificate_template_iam_policy.py index 7e58640656..70bc05d1af 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/get_certificate_template_iam_policy.py +++ b/sdk/python/pulumi_gcp/certificateauthority/get_certificate_template_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/certificateauthority/outputs.py b/sdk/python/pulumi_gcp/certificateauthority/outputs.py index 725b882136..2327ff548c 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/outputs.py +++ b/sdk/python/pulumi_gcp/certificateauthority/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/certificatemanager/_inputs.py b/sdk/python/pulumi_gcp/certificatemanager/_inputs.py index c7a4a545d8..b4933cb152 100644 --- a/sdk/python/pulumi_gcp/certificatemanager/_inputs.py +++ b/sdk/python/pulumi_gcp/certificatemanager/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/certificatemanager/certificate.py b/sdk/python/pulumi_gcp/certificatemanager/certificate.py index c87d680c1e..506c75ebb8 100644 --- a/sdk/python/pulumi_gcp/certificatemanager/certificate.py +++ b/sdk/python/pulumi_gcp/certificatemanager/certificate.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/certificatemanager/certificate_issuance_config.py b/sdk/python/pulumi_gcp/certificatemanager/certificate_issuance_config.py index 096b4c7108..c7f76f05fb 100644 --- a/sdk/python/pulumi_gcp/certificatemanager/certificate_issuance_config.py +++ b/sdk/python/pulumi_gcp/certificatemanager/certificate_issuance_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/certificatemanager/certificate_map.py b/sdk/python/pulumi_gcp/certificatemanager/certificate_map.py index 46a2b3164b..6055fb0a31 100644 --- a/sdk/python/pulumi_gcp/certificatemanager/certificate_map.py +++ b/sdk/python/pulumi_gcp/certificatemanager/certificate_map.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/certificatemanager/certificate_map_entry.py b/sdk/python/pulumi_gcp/certificatemanager/certificate_map_entry.py index 40109d2592..32bd12f1f6 100644 --- a/sdk/python/pulumi_gcp/certificatemanager/certificate_map_entry.py +++ b/sdk/python/pulumi_gcp/certificatemanager/certificate_map_entry.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['CertificateMapEntryArgs', 'CertificateMapEntry'] diff --git a/sdk/python/pulumi_gcp/certificatemanager/dns_authorization.py b/sdk/python/pulumi_gcp/certificatemanager/dns_authorization.py index 187cb562ba..f53aa93e2e 100644 --- a/sdk/python/pulumi_gcp/certificatemanager/dns_authorization.py +++ b/sdk/python/pulumi_gcp/certificatemanager/dns_authorization.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/certificatemanager/get_certificate_map.py b/sdk/python/pulumi_gcp/certificatemanager/get_certificate_map.py index 9b60f8245e..21249c4bde 100644 --- a/sdk/python/pulumi_gcp/certificatemanager/get_certificate_map.py +++ b/sdk/python/pulumi_gcp/certificatemanager/get_certificate_map.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/certificatemanager/outputs.py b/sdk/python/pulumi_gcp/certificatemanager/outputs.py index 0e3d52683d..92a04d5661 100644 --- a/sdk/python/pulumi_gcp/certificatemanager/outputs.py +++ b/sdk/python/pulumi_gcp/certificatemanager/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/certificatemanager/trust_config.py b/sdk/python/pulumi_gcp/certificatemanager/trust_config.py index 06a840f4f4..fb94e60748 100644 --- a/sdk/python/pulumi_gcp/certificatemanager/trust_config.py +++ b/sdk/python/pulumi_gcp/certificatemanager/trust_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudasset/_inputs.py b/sdk/python/pulumi_gcp/cloudasset/_inputs.py index 6d1505727c..61f6356b99 100644 --- a/sdk/python/pulumi_gcp/cloudasset/_inputs.py +++ b/sdk/python/pulumi_gcp/cloudasset/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudasset/folder_feed.py b/sdk/python/pulumi_gcp/cloudasset/folder_feed.py index af24c5e0c2..4bcff1e8cd 100644 --- a/sdk/python/pulumi_gcp/cloudasset/folder_feed.py +++ b/sdk/python/pulumi_gcp/cloudasset/folder_feed.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudasset/get_resources_search_all.py b/sdk/python/pulumi_gcp/cloudasset/get_resources_search_all.py index 9dae52428b..2df602a3af 100644 --- a/sdk/python/pulumi_gcp/cloudasset/get_resources_search_all.py +++ b/sdk/python/pulumi_gcp/cloudasset/get_resources_search_all.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudasset/organization_feed.py b/sdk/python/pulumi_gcp/cloudasset/organization_feed.py index 34e4051de0..7ed5cb7e95 100644 --- a/sdk/python/pulumi_gcp/cloudasset/organization_feed.py +++ b/sdk/python/pulumi_gcp/cloudasset/organization_feed.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudasset/outputs.py b/sdk/python/pulumi_gcp/cloudasset/outputs.py index fefb2634d3..c4d6375fe3 100644 --- a/sdk/python/pulumi_gcp/cloudasset/outputs.py +++ b/sdk/python/pulumi_gcp/cloudasset/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudasset/project_feed.py b/sdk/python/pulumi_gcp/cloudasset/project_feed.py index e8234ebf54..c6a679028d 100644 --- a/sdk/python/pulumi_gcp/cloudasset/project_feed.py +++ b/sdk/python/pulumi_gcp/cloudasset/project_feed.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudbuild/_inputs.py b/sdk/python/pulumi_gcp/cloudbuild/_inputs.py index bc8a056d3b..b26bbcb4e6 100644 --- a/sdk/python/pulumi_gcp/cloudbuild/_inputs.py +++ b/sdk/python/pulumi_gcp/cloudbuild/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudbuild/bitbucket_server_config.py b/sdk/python/pulumi_gcp/cloudbuild/bitbucket_server_config.py index b8570a3041..4e68749595 100644 --- a/sdk/python/pulumi_gcp/cloudbuild/bitbucket_server_config.py +++ b/sdk/python/pulumi_gcp/cloudbuild/bitbucket_server_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudbuild/get_trigger.py b/sdk/python/pulumi_gcp/cloudbuild/get_trigger.py index 4c5d2f723c..94b9ee2ffd 100644 --- a/sdk/python/pulumi_gcp/cloudbuild/get_trigger.py +++ b/sdk/python/pulumi_gcp/cloudbuild/get_trigger.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudbuild/outputs.py b/sdk/python/pulumi_gcp/cloudbuild/outputs.py index 4fed5a18fb..0f67b81410 100644 --- a/sdk/python/pulumi_gcp/cloudbuild/outputs.py +++ b/sdk/python/pulumi_gcp/cloudbuild/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudbuild/trigger.py b/sdk/python/pulumi_gcp/cloudbuild/trigger.py index c3e9c498b4..242be9e010 100644 --- a/sdk/python/pulumi_gcp/cloudbuild/trigger.py +++ b/sdk/python/pulumi_gcp/cloudbuild/trigger.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudbuild/worker_pool.py b/sdk/python/pulumi_gcp/cloudbuild/worker_pool.py index 772401db74..9fd200c208 100644 --- a/sdk/python/pulumi_gcp/cloudbuild/worker_pool.py +++ b/sdk/python/pulumi_gcp/cloudbuild/worker_pool.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudbuildv2/_inputs.py b/sdk/python/pulumi_gcp/cloudbuildv2/_inputs.py index 548ee05c9d..3c8eda6a02 100644 --- a/sdk/python/pulumi_gcp/cloudbuildv2/_inputs.py +++ b/sdk/python/pulumi_gcp/cloudbuildv2/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudbuildv2/connection.py b/sdk/python/pulumi_gcp/cloudbuildv2/connection.py index cc3683ad3b..53c057db8b 100644 --- a/sdk/python/pulumi_gcp/cloudbuildv2/connection.py +++ b/sdk/python/pulumi_gcp/cloudbuildv2/connection.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_binding.py b/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_binding.py index 63b02abdd3..8cd274968a 100644 --- a/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_binding.py +++ b/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_member.py b/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_member.py index 16c5bba58f..a40dc0c83f 100644 --- a/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_member.py +++ b/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_policy.py b/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_policy.py index 69b395b6fa..1a55f7eab1 100644 --- a/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_policy.py +++ b/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ConnectionIAMPolicyArgs', 'ConnectionIAMPolicy'] diff --git a/sdk/python/pulumi_gcp/cloudbuildv2/get_connection_iam_policy.py b/sdk/python/pulumi_gcp/cloudbuildv2/get_connection_iam_policy.py index 5b02257246..424429fb52 100644 --- a/sdk/python/pulumi_gcp/cloudbuildv2/get_connection_iam_policy.py +++ b/sdk/python/pulumi_gcp/cloudbuildv2/get_connection_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudbuildv2/outputs.py b/sdk/python/pulumi_gcp/cloudbuildv2/outputs.py index 99da6228ca..0b28e37964 100644 --- a/sdk/python/pulumi_gcp/cloudbuildv2/outputs.py +++ b/sdk/python/pulumi_gcp/cloudbuildv2/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudbuildv2/repository.py b/sdk/python/pulumi_gcp/cloudbuildv2/repository.py index 332ece4220..5200eaf3fe 100644 --- a/sdk/python/pulumi_gcp/cloudbuildv2/repository.py +++ b/sdk/python/pulumi_gcp/cloudbuildv2/repository.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RepositoryArgs', 'Repository'] diff --git a/sdk/python/pulumi_gcp/clouddeploy/_inputs.py b/sdk/python/pulumi_gcp/clouddeploy/_inputs.py index 11f376d145..99ebfd6a53 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/_inputs.py +++ b/sdk/python/pulumi_gcp/clouddeploy/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/clouddeploy/automation.py b/sdk/python/pulumi_gcp/clouddeploy/automation.py index fafe74fbba..190e79cc7b 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/automation.py +++ b/sdk/python/pulumi_gcp/clouddeploy/automation.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/clouddeploy/custom_target_type.py b/sdk/python/pulumi_gcp/clouddeploy/custom_target_type.py index 42eb9cc0a7..45560ffe2e 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/custom_target_type.py +++ b/sdk/python/pulumi_gcp/clouddeploy/custom_target_type.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/clouddeploy/custom_target_type_iam_binding.py b/sdk/python/pulumi_gcp/clouddeploy/custom_target_type_iam_binding.py index 40568649e5..4306a19fd7 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/custom_target_type_iam_binding.py +++ b/sdk/python/pulumi_gcp/clouddeploy/custom_target_type_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/clouddeploy/custom_target_type_iam_member.py b/sdk/python/pulumi_gcp/clouddeploy/custom_target_type_iam_member.py index 2b4fe1f833..9cc8b79dd6 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/custom_target_type_iam_member.py +++ b/sdk/python/pulumi_gcp/clouddeploy/custom_target_type_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/clouddeploy/custom_target_type_iam_policy.py b/sdk/python/pulumi_gcp/clouddeploy/custom_target_type_iam_policy.py index 1014ad3430..994ff60c94 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/custom_target_type_iam_policy.py +++ b/sdk/python/pulumi_gcp/clouddeploy/custom_target_type_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['CustomTargetTypeIamPolicyArgs', 'CustomTargetTypeIamPolicy'] diff --git a/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline.py b/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline.py index fb6b629ec8..39e092b7a1 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline.py +++ b/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline_iam_binding.py b/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline_iam_binding.py index 5cbe9da169..6f0cd65ae1 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline_iam_binding.py +++ b/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline_iam_member.py b/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline_iam_member.py index c387dfc9f7..ccf0cf3053 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline_iam_member.py +++ b/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline_iam_policy.py b/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline_iam_policy.py index 78c77940a9..535a4eb2be 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline_iam_policy.py +++ b/sdk/python/pulumi_gcp/clouddeploy/delivery_pipeline_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DeliveryPipelineIamPolicyArgs', 'DeliveryPipelineIamPolicy'] diff --git a/sdk/python/pulumi_gcp/clouddeploy/get_custom_target_type_iam_policy.py b/sdk/python/pulumi_gcp/clouddeploy/get_custom_target_type_iam_policy.py index ac271de2dc..ff12ce0b30 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/get_custom_target_type_iam_policy.py +++ b/sdk/python/pulumi_gcp/clouddeploy/get_custom_target_type_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/clouddeploy/get_delivery_pipeline_iam_policy.py b/sdk/python/pulumi_gcp/clouddeploy/get_delivery_pipeline_iam_policy.py index 9fe74a3f2b..e301a1e40d 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/get_delivery_pipeline_iam_policy.py +++ b/sdk/python/pulumi_gcp/clouddeploy/get_delivery_pipeline_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/clouddeploy/get_target_iam_policy.py b/sdk/python/pulumi_gcp/clouddeploy/get_target_iam_policy.py index ab743985fa..37e06f4d9a 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/get_target_iam_policy.py +++ b/sdk/python/pulumi_gcp/clouddeploy/get_target_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/clouddeploy/outputs.py b/sdk/python/pulumi_gcp/clouddeploy/outputs.py index f0eefa3bd7..df06fdb606 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/outputs.py +++ b/sdk/python/pulumi_gcp/clouddeploy/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/clouddeploy/target.py b/sdk/python/pulumi_gcp/clouddeploy/target.py index c0650d717f..1e36e747be 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/target.py +++ b/sdk/python/pulumi_gcp/clouddeploy/target.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/clouddeploy/target_iam_binding.py b/sdk/python/pulumi_gcp/clouddeploy/target_iam_binding.py index 272e4d603e..c013c74e61 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/target_iam_binding.py +++ b/sdk/python/pulumi_gcp/clouddeploy/target_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/clouddeploy/target_iam_member.py b/sdk/python/pulumi_gcp/clouddeploy/target_iam_member.py index 1095b618fc..0e1bf42427 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/target_iam_member.py +++ b/sdk/python/pulumi_gcp/clouddeploy/target_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/clouddeploy/target_iam_policy.py b/sdk/python/pulumi_gcp/clouddeploy/target_iam_policy.py index 457a62680d..310050bd4d 100644 --- a/sdk/python/pulumi_gcp/clouddeploy/target_iam_policy.py +++ b/sdk/python/pulumi_gcp/clouddeploy/target_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TargetIamPolicyArgs', 'TargetIamPolicy'] diff --git a/sdk/python/pulumi_gcp/clouddomains/_inputs.py b/sdk/python/pulumi_gcp/clouddomains/_inputs.py index a1c2dbffed..b00c094d95 100644 --- a/sdk/python/pulumi_gcp/clouddomains/_inputs.py +++ b/sdk/python/pulumi_gcp/clouddomains/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/clouddomains/outputs.py b/sdk/python/pulumi_gcp/clouddomains/outputs.py index 68859e433e..809413b19d 100644 --- a/sdk/python/pulumi_gcp/clouddomains/outputs.py +++ b/sdk/python/pulumi_gcp/clouddomains/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/clouddomains/registration.py b/sdk/python/pulumi_gcp/clouddomains/registration.py index 7732342da3..9951d850b6 100644 --- a/sdk/python/pulumi_gcp/clouddomains/registration.py +++ b/sdk/python/pulumi_gcp/clouddomains/registration.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudfunctions/_inputs.py b/sdk/python/pulumi_gcp/cloudfunctions/_inputs.py index af8ca88ab2..e2fdec0466 100644 --- a/sdk/python/pulumi_gcp/cloudfunctions/_inputs.py +++ b/sdk/python/pulumi_gcp/cloudfunctions/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudfunctions/function.py b/sdk/python/pulumi_gcp/cloudfunctions/function.py index 5c61e91c61..a3cb5c49a5 100644 --- a/sdk/python/pulumi_gcp/cloudfunctions/function.py +++ b/sdk/python/pulumi_gcp/cloudfunctions/function.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudfunctions/function_iam_binding.py b/sdk/python/pulumi_gcp/cloudfunctions/function_iam_binding.py index ce64e3798f..b7b56f654d 100644 --- a/sdk/python/pulumi_gcp/cloudfunctions/function_iam_binding.py +++ b/sdk/python/pulumi_gcp/cloudfunctions/function_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudfunctions/function_iam_member.py b/sdk/python/pulumi_gcp/cloudfunctions/function_iam_member.py index a7c0c3adaa..1d74e54974 100644 --- a/sdk/python/pulumi_gcp/cloudfunctions/function_iam_member.py +++ b/sdk/python/pulumi_gcp/cloudfunctions/function_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudfunctions/function_iam_policy.py b/sdk/python/pulumi_gcp/cloudfunctions/function_iam_policy.py index c051bae1db..3a781e52be 100644 --- a/sdk/python/pulumi_gcp/cloudfunctions/function_iam_policy.py +++ b/sdk/python/pulumi_gcp/cloudfunctions/function_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['FunctionIamPolicyArgs', 'FunctionIamPolicy'] diff --git a/sdk/python/pulumi_gcp/cloudfunctions/get_function.py b/sdk/python/pulumi_gcp/cloudfunctions/get_function.py index e35cf80469..0b0ce424d9 100644 --- a/sdk/python/pulumi_gcp/cloudfunctions/get_function.py +++ b/sdk/python/pulumi_gcp/cloudfunctions/get_function.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudfunctions/get_function_iam_policy.py b/sdk/python/pulumi_gcp/cloudfunctions/get_function_iam_policy.py index 38eec05ff0..ef0d4a33fa 100644 --- a/sdk/python/pulumi_gcp/cloudfunctions/get_function_iam_policy.py +++ b/sdk/python/pulumi_gcp/cloudfunctions/get_function_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudfunctions/outputs.py b/sdk/python/pulumi_gcp/cloudfunctions/outputs.py index c427b59cf2..bdb2754264 100644 --- a/sdk/python/pulumi_gcp/cloudfunctions/outputs.py +++ b/sdk/python/pulumi_gcp/cloudfunctions/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudfunctionsv2/_inputs.py b/sdk/python/pulumi_gcp/cloudfunctionsv2/_inputs.py index 955d4f71e5..9f71379bfa 100644 --- a/sdk/python/pulumi_gcp/cloudfunctionsv2/_inputs.py +++ b/sdk/python/pulumi_gcp/cloudfunctionsv2/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudfunctionsv2/function.py b/sdk/python/pulumi_gcp/cloudfunctionsv2/function.py index aa968b9a81..18094b9794 100644 --- a/sdk/python/pulumi_gcp/cloudfunctionsv2/function.py +++ b/sdk/python/pulumi_gcp/cloudfunctionsv2/function.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudfunctionsv2/function_iam_binding.py b/sdk/python/pulumi_gcp/cloudfunctionsv2/function_iam_binding.py index 44b9b9bfc9..4a50f5ba03 100644 --- a/sdk/python/pulumi_gcp/cloudfunctionsv2/function_iam_binding.py +++ b/sdk/python/pulumi_gcp/cloudfunctionsv2/function_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudfunctionsv2/function_iam_member.py b/sdk/python/pulumi_gcp/cloudfunctionsv2/function_iam_member.py index 76d12d70f6..2c3513775f 100644 --- a/sdk/python/pulumi_gcp/cloudfunctionsv2/function_iam_member.py +++ b/sdk/python/pulumi_gcp/cloudfunctionsv2/function_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudfunctionsv2/function_iam_policy.py b/sdk/python/pulumi_gcp/cloudfunctionsv2/function_iam_policy.py index 9c1da02e78..817d594976 100644 --- a/sdk/python/pulumi_gcp/cloudfunctionsv2/function_iam_policy.py +++ b/sdk/python/pulumi_gcp/cloudfunctionsv2/function_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['FunctionIamPolicyArgs', 'FunctionIamPolicy'] diff --git a/sdk/python/pulumi_gcp/cloudfunctionsv2/get_function.py b/sdk/python/pulumi_gcp/cloudfunctionsv2/get_function.py index 3059f00c13..07826e2ba2 100644 --- a/sdk/python/pulumi_gcp/cloudfunctionsv2/get_function.py +++ b/sdk/python/pulumi_gcp/cloudfunctionsv2/get_function.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudfunctionsv2/get_function_iam_policy.py b/sdk/python/pulumi_gcp/cloudfunctionsv2/get_function_iam_policy.py index bb2c0514a6..dd4df00e81 100644 --- a/sdk/python/pulumi_gcp/cloudfunctionsv2/get_function_iam_policy.py +++ b/sdk/python/pulumi_gcp/cloudfunctionsv2/get_function_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudfunctionsv2/outputs.py b/sdk/python/pulumi_gcp/cloudfunctionsv2/outputs.py index 1aa5e37bcc..605d2fd5d0 100644 --- a/sdk/python/pulumi_gcp/cloudfunctionsv2/outputs.py +++ b/sdk/python/pulumi_gcp/cloudfunctionsv2/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudidentity/_inputs.py b/sdk/python/pulumi_gcp/cloudidentity/_inputs.py index 809c00daa1..a02cdb32ea 100644 --- a/sdk/python/pulumi_gcp/cloudidentity/_inputs.py +++ b/sdk/python/pulumi_gcp/cloudidentity/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudidentity/get_group_lookup.py b/sdk/python/pulumi_gcp/cloudidentity/get_group_lookup.py index d35f6ed128..3f9679ec80 100644 --- a/sdk/python/pulumi_gcp/cloudidentity/get_group_lookup.py +++ b/sdk/python/pulumi_gcp/cloudidentity/get_group_lookup.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudidentity/get_group_memberships.py b/sdk/python/pulumi_gcp/cloudidentity/get_group_memberships.py index f1bb795d1e..0592b1edf7 100644 --- a/sdk/python/pulumi_gcp/cloudidentity/get_group_memberships.py +++ b/sdk/python/pulumi_gcp/cloudidentity/get_group_memberships.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudidentity/get_groups.py b/sdk/python/pulumi_gcp/cloudidentity/get_groups.py index 6fc53b2622..57d490c7df 100644 --- a/sdk/python/pulumi_gcp/cloudidentity/get_groups.py +++ b/sdk/python/pulumi_gcp/cloudidentity/get_groups.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudidentity/group.py b/sdk/python/pulumi_gcp/cloudidentity/group.py index cc24ff519c..719f000ce1 100644 --- a/sdk/python/pulumi_gcp/cloudidentity/group.py +++ b/sdk/python/pulumi_gcp/cloudidentity/group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudidentity/group_membership.py b/sdk/python/pulumi_gcp/cloudidentity/group_membership.py index fe58c21b38..d0b67034a5 100644 --- a/sdk/python/pulumi_gcp/cloudidentity/group_membership.py +++ b/sdk/python/pulumi_gcp/cloudidentity/group_membership.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudidentity/outputs.py b/sdk/python/pulumi_gcp/cloudidentity/outputs.py index 6d55d4e630..9280d57e6c 100644 --- a/sdk/python/pulumi_gcp/cloudidentity/outputs.py +++ b/sdk/python/pulumi_gcp/cloudidentity/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudids/endpoint.py b/sdk/python/pulumi_gcp/cloudids/endpoint.py index 9f8aadb8b9..ae4910dc50 100644 --- a/sdk/python/pulumi_gcp/cloudids/endpoint.py +++ b/sdk/python/pulumi_gcp/cloudids/endpoint.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['EndpointArgs', 'Endpoint'] diff --git a/sdk/python/pulumi_gcp/cloudquota/_inputs.py b/sdk/python/pulumi_gcp/cloudquota/_inputs.py index 0fc3c22eb9..4fcab652a7 100644 --- a/sdk/python/pulumi_gcp/cloudquota/_inputs.py +++ b/sdk/python/pulumi_gcp/cloudquota/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudquota/get_s_quota_info.py b/sdk/python/pulumi_gcp/cloudquota/get_s_quota_info.py index 4948d6bced..3fad54c08d 100644 --- a/sdk/python/pulumi_gcp/cloudquota/get_s_quota_info.py +++ b/sdk/python/pulumi_gcp/cloudquota/get_s_quota_info.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudquota/get_s_quota_infos.py b/sdk/python/pulumi_gcp/cloudquota/get_s_quota_infos.py index 09adebcb2b..53f0bc1d50 100644 --- a/sdk/python/pulumi_gcp/cloudquota/get_s_quota_infos.py +++ b/sdk/python/pulumi_gcp/cloudquota/get_s_quota_infos.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudquota/outputs.py b/sdk/python/pulumi_gcp/cloudquota/outputs.py index 335f0e669f..55512c93d5 100644 --- a/sdk/python/pulumi_gcp/cloudquota/outputs.py +++ b/sdk/python/pulumi_gcp/cloudquota/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudquota/s_quota_preference.py b/sdk/python/pulumi_gcp/cloudquota/s_quota_preference.py index 49a663d73c..2c6753d1fe 100644 --- a/sdk/python/pulumi_gcp/cloudquota/s_quota_preference.py +++ b/sdk/python/pulumi_gcp/cloudquota/s_quota_preference.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudrun/_inputs.py b/sdk/python/pulumi_gcp/cloudrun/_inputs.py index 1ad3cd9f51..7cd16c2951 100644 --- a/sdk/python/pulumi_gcp/cloudrun/_inputs.py +++ b/sdk/python/pulumi_gcp/cloudrun/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudrun/domain_mapping.py b/sdk/python/pulumi_gcp/cloudrun/domain_mapping.py index ee7dccd007..b20fb95e7d 100644 --- a/sdk/python/pulumi_gcp/cloudrun/domain_mapping.py +++ b/sdk/python/pulumi_gcp/cloudrun/domain_mapping.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudrun/get_locations.py b/sdk/python/pulumi_gcp/cloudrun/get_locations.py index 410cdd724b..f551a4cf11 100644 --- a/sdk/python/pulumi_gcp/cloudrun/get_locations.py +++ b/sdk/python/pulumi_gcp/cloudrun/get_locations.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudrun/get_service.py b/sdk/python/pulumi_gcp/cloudrun/get_service.py index 519b025704..2b998c846b 100644 --- a/sdk/python/pulumi_gcp/cloudrun/get_service.py +++ b/sdk/python/pulumi_gcp/cloudrun/get_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudrun/get_service_iam_policy.py b/sdk/python/pulumi_gcp/cloudrun/get_service_iam_policy.py index badd8b3652..5b56c673a5 100644 --- a/sdk/python/pulumi_gcp/cloudrun/get_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/cloudrun/get_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudrun/iam_binding.py b/sdk/python/pulumi_gcp/cloudrun/iam_binding.py index 4e382b3fb3..dffd64d59b 100644 --- a/sdk/python/pulumi_gcp/cloudrun/iam_binding.py +++ b/sdk/python/pulumi_gcp/cloudrun/iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudrun/iam_member.py b/sdk/python/pulumi_gcp/cloudrun/iam_member.py index 4e2e99ec89..f3d901f042 100644 --- a/sdk/python/pulumi_gcp/cloudrun/iam_member.py +++ b/sdk/python/pulumi_gcp/cloudrun/iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudrun/iam_policy.py b/sdk/python/pulumi_gcp/cloudrun/iam_policy.py index 809be2e9af..8d084391e4 100644 --- a/sdk/python/pulumi_gcp/cloudrun/iam_policy.py +++ b/sdk/python/pulumi_gcp/cloudrun/iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['IamPolicyArgs', 'IamPolicy'] diff --git a/sdk/python/pulumi_gcp/cloudrun/outputs.py b/sdk/python/pulumi_gcp/cloudrun/outputs.py index 269c67a092..70d1d16895 100644 --- a/sdk/python/pulumi_gcp/cloudrun/outputs.py +++ b/sdk/python/pulumi_gcp/cloudrun/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudrun/service.py b/sdk/python/pulumi_gcp/cloudrun/service.py index 37fd2511bd..208a254d5c 100644 --- a/sdk/python/pulumi_gcp/cloudrun/service.py +++ b/sdk/python/pulumi_gcp/cloudrun/service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudrunv2/_inputs.py b/sdk/python/pulumi_gcp/cloudrunv2/_inputs.py index 64a522de0a..327d0474ea 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/_inputs.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudrunv2/get_job.py b/sdk/python/pulumi_gcp/cloudrunv2/get_job.py index fbc8674d96..9729d00000 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/get_job.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/get_job.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudrunv2/get_job_iam_policy.py b/sdk/python/pulumi_gcp/cloudrunv2/get_job_iam_policy.py index 5fd879cb17..e5eeedd092 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/get_job_iam_policy.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/get_job_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudrunv2/get_service.py b/sdk/python/pulumi_gcp/cloudrunv2/get_service.py index 736067973d..a5baee5dc0 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/get_service.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/get_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudrunv2/get_service_iam_policy.py b/sdk/python/pulumi_gcp/cloudrunv2/get_service_iam_policy.py index fd9ed1b52f..34daa7c868 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/get_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/get_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudrunv2/job.py b/sdk/python/pulumi_gcp/cloudrunv2/job.py index 404ac95645..bc45ae92b5 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/job.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/job.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudrunv2/job_iam_binding.py b/sdk/python/pulumi_gcp/cloudrunv2/job_iam_binding.py index 1b639f21df..44dca252bb 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/job_iam_binding.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/job_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudrunv2/job_iam_member.py b/sdk/python/pulumi_gcp/cloudrunv2/job_iam_member.py index 5adcf00b72..47b71efa74 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/job_iam_member.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/job_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudrunv2/job_iam_policy.py b/sdk/python/pulumi_gcp/cloudrunv2/job_iam_policy.py index 0d9206ca77..54499596d0 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/job_iam_policy.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/job_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['JobIamPolicyArgs', 'JobIamPolicy'] diff --git a/sdk/python/pulumi_gcp/cloudrunv2/outputs.py b/sdk/python/pulumi_gcp/cloudrunv2/outputs.py index caf6bc9176..52ff061812 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/outputs.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudrunv2/service.py b/sdk/python/pulumi_gcp/cloudrunv2/service.py index 1302cd5a79..0001099e5b 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/service.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudrunv2/service_iam_binding.py b/sdk/python/pulumi_gcp/cloudrunv2/service_iam_binding.py index afa6eb8ed2..caaf16db22 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/service_iam_binding.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/service_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudrunv2/service_iam_member.py b/sdk/python/pulumi_gcp/cloudrunv2/service_iam_member.py index 11f9355506..d2bc8ff8bf 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/service_iam_member.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/service_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudrunv2/service_iam_policy.py b/sdk/python/pulumi_gcp/cloudrunv2/service_iam_policy.py index ff93d78ac3..15798a8317 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/service_iam_policy.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ServiceIamPolicyArgs', 'ServiceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/cloudscheduler/_inputs.py b/sdk/python/pulumi_gcp/cloudscheduler/_inputs.py index 7d73f049a4..2f6b4a448f 100644 --- a/sdk/python/pulumi_gcp/cloudscheduler/_inputs.py +++ b/sdk/python/pulumi_gcp/cloudscheduler/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudscheduler/job.py b/sdk/python/pulumi_gcp/cloudscheduler/job.py index d0b3245c44..854f37de73 100644 --- a/sdk/python/pulumi_gcp/cloudscheduler/job.py +++ b/sdk/python/pulumi_gcp/cloudscheduler/job.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudscheduler/outputs.py b/sdk/python/pulumi_gcp/cloudscheduler/outputs.py index 822d883660..7b1935d7b6 100644 --- a/sdk/python/pulumi_gcp/cloudscheduler/outputs.py +++ b/sdk/python/pulumi_gcp/cloudscheduler/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudtasks/_inputs.py b/sdk/python/pulumi_gcp/cloudtasks/_inputs.py index cd4ccef247..246cdc0cc3 100644 --- a/sdk/python/pulumi_gcp/cloudtasks/_inputs.py +++ b/sdk/python/pulumi_gcp/cloudtasks/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudtasks/get_queue_iam_policy.py b/sdk/python/pulumi_gcp/cloudtasks/get_queue_iam_policy.py index 66dc2b4bc5..8c76aa765d 100644 --- a/sdk/python/pulumi_gcp/cloudtasks/get_queue_iam_policy.py +++ b/sdk/python/pulumi_gcp/cloudtasks/get_queue_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudtasks/outputs.py b/sdk/python/pulumi_gcp/cloudtasks/outputs.py index 28ba4cceab..989ee71578 100644 --- a/sdk/python/pulumi_gcp/cloudtasks/outputs.py +++ b/sdk/python/pulumi_gcp/cloudtasks/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/cloudtasks/queue.py b/sdk/python/pulumi_gcp/cloudtasks/queue.py index cf98b3e7d5..1a1212cdd6 100644 --- a/sdk/python/pulumi_gcp/cloudtasks/queue.py +++ b/sdk/python/pulumi_gcp/cloudtasks/queue.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudtasks/queue_iam_binding.py b/sdk/python/pulumi_gcp/cloudtasks/queue_iam_binding.py index b796fcb6f6..1fc9910706 100644 --- a/sdk/python/pulumi_gcp/cloudtasks/queue_iam_binding.py +++ b/sdk/python/pulumi_gcp/cloudtasks/queue_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudtasks/queue_iam_member.py b/sdk/python/pulumi_gcp/cloudtasks/queue_iam_member.py index 1cd06c7b81..292aad5d8f 100644 --- a/sdk/python/pulumi_gcp/cloudtasks/queue_iam_member.py +++ b/sdk/python/pulumi_gcp/cloudtasks/queue_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/cloudtasks/queue_iam_policy.py b/sdk/python/pulumi_gcp/cloudtasks/queue_iam_policy.py index 16b9bb3781..0ad2b8a9b6 100644 --- a/sdk/python/pulumi_gcp/cloudtasks/queue_iam_policy.py +++ b/sdk/python/pulumi_gcp/cloudtasks/queue_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['QueueIamPolicyArgs', 'QueueIamPolicy'] diff --git a/sdk/python/pulumi_gcp/composer/_inputs.py b/sdk/python/pulumi_gcp/composer/_inputs.py index ce7a00b065..05fba77c1b 100644 --- a/sdk/python/pulumi_gcp/composer/_inputs.py +++ b/sdk/python/pulumi_gcp/composer/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/composer/environment.py b/sdk/python/pulumi_gcp/composer/environment.py index 751af75f88..0c5fcf1f64 100644 --- a/sdk/python/pulumi_gcp/composer/environment.py +++ b/sdk/python/pulumi_gcp/composer/environment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/composer/get_environment.py b/sdk/python/pulumi_gcp/composer/get_environment.py index ec7ca48807..fa51d9a992 100644 --- a/sdk/python/pulumi_gcp/composer/get_environment.py +++ b/sdk/python/pulumi_gcp/composer/get_environment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/composer/get_image_versions.py b/sdk/python/pulumi_gcp/composer/get_image_versions.py index 67c7fe9440..777eeee5d3 100644 --- a/sdk/python/pulumi_gcp/composer/get_image_versions.py +++ b/sdk/python/pulumi_gcp/composer/get_image_versions.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/composer/outputs.py b/sdk/python/pulumi_gcp/composer/outputs.py index ea48e67edb..5dab1522be 100644 --- a/sdk/python/pulumi_gcp/composer/outputs.py +++ b/sdk/python/pulumi_gcp/composer/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/_inputs.py b/sdk/python/pulumi_gcp/compute/_inputs.py index 8324f03ed9..471df85596 100644 --- a/sdk/python/pulumi_gcp/compute/_inputs.py +++ b/sdk/python/pulumi_gcp/compute/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/address.py b/sdk/python/pulumi_gcp/compute/address.py index 80b3d2d8fc..eb12990337 100644 --- a/sdk/python/pulumi_gcp/compute/address.py +++ b/sdk/python/pulumi_gcp/compute/address.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AddressArgs', 'Address'] diff --git a/sdk/python/pulumi_gcp/compute/attached_disk.py b/sdk/python/pulumi_gcp/compute/attached_disk.py index 8d4bfa7a60..d9650d9d15 100644 --- a/sdk/python/pulumi_gcp/compute/attached_disk.py +++ b/sdk/python/pulumi_gcp/compute/attached_disk.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AttachedDiskArgs', 'AttachedDisk'] diff --git a/sdk/python/pulumi_gcp/compute/autoscaler.py b/sdk/python/pulumi_gcp/compute/autoscaler.py index 8c73cdd220..105e8a37d0 100644 --- a/sdk/python/pulumi_gcp/compute/autoscaler.py +++ b/sdk/python/pulumi_gcp/compute/autoscaler.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/backend_bucket.py b/sdk/python/pulumi_gcp/compute/backend_bucket.py index b56db1e26d..a9c17afba7 100644 --- a/sdk/python/pulumi_gcp/compute/backend_bucket.py +++ b/sdk/python/pulumi_gcp/compute/backend_bucket.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/backend_bucket_iam_binding.py b/sdk/python/pulumi_gcp/compute/backend_bucket_iam_binding.py index 866e8a4e04..c4acb4108b 100644 --- a/sdk/python/pulumi_gcp/compute/backend_bucket_iam_binding.py +++ b/sdk/python/pulumi_gcp/compute/backend_bucket_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/backend_bucket_iam_member.py b/sdk/python/pulumi_gcp/compute/backend_bucket_iam_member.py index 48645b0871..17f36dd15f 100644 --- a/sdk/python/pulumi_gcp/compute/backend_bucket_iam_member.py +++ b/sdk/python/pulumi_gcp/compute/backend_bucket_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/backend_bucket_iam_policy.py b/sdk/python/pulumi_gcp/compute/backend_bucket_iam_policy.py index 0f126dd567..6c4f2f75ea 100644 --- a/sdk/python/pulumi_gcp/compute/backend_bucket_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/backend_bucket_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['BackendBucketIamPolicyArgs', 'BackendBucketIamPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/backend_bucket_signed_url_key.py b/sdk/python/pulumi_gcp/compute/backend_bucket_signed_url_key.py index b8b41ddab0..3984fbc6be 100644 --- a/sdk/python/pulumi_gcp/compute/backend_bucket_signed_url_key.py +++ b/sdk/python/pulumi_gcp/compute/backend_bucket_signed_url_key.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['BackendBucketSignedUrlKeyArgs', 'BackendBucketSignedUrlKey'] diff --git a/sdk/python/pulumi_gcp/compute/backend_service.py b/sdk/python/pulumi_gcp/compute/backend_service.py index 8343c5c3e0..5e14a44ee7 100644 --- a/sdk/python/pulumi_gcp/compute/backend_service.py +++ b/sdk/python/pulumi_gcp/compute/backend_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/backend_service_iam_binding.py b/sdk/python/pulumi_gcp/compute/backend_service_iam_binding.py index 15510c040f..07027518a5 100644 --- a/sdk/python/pulumi_gcp/compute/backend_service_iam_binding.py +++ b/sdk/python/pulumi_gcp/compute/backend_service_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/backend_service_iam_member.py b/sdk/python/pulumi_gcp/compute/backend_service_iam_member.py index 9c413ef57c..c65de31a7e 100644 --- a/sdk/python/pulumi_gcp/compute/backend_service_iam_member.py +++ b/sdk/python/pulumi_gcp/compute/backend_service_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/backend_service_iam_policy.py b/sdk/python/pulumi_gcp/compute/backend_service_iam_policy.py index 0f618c2cf1..c09457f669 100644 --- a/sdk/python/pulumi_gcp/compute/backend_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/backend_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['BackendServiceIamPolicyArgs', 'BackendServiceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/backend_service_signed_url_key.py b/sdk/python/pulumi_gcp/compute/backend_service_signed_url_key.py index e07d0c750f..146838d7b2 100644 --- a/sdk/python/pulumi_gcp/compute/backend_service_signed_url_key.py +++ b/sdk/python/pulumi_gcp/compute/backend_service_signed_url_key.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['BackendServiceSignedUrlKeyArgs', 'BackendServiceSignedUrlKey'] diff --git a/sdk/python/pulumi_gcp/compute/ca_external_account_key.py b/sdk/python/pulumi_gcp/compute/ca_external_account_key.py index ddd64a70fd..5ec49bdf76 100644 --- a/sdk/python/pulumi_gcp/compute/ca_external_account_key.py +++ b/sdk/python/pulumi_gcp/compute/ca_external_account_key.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['CaExternalAccountKeyArgs', 'CaExternalAccountKey'] diff --git a/sdk/python/pulumi_gcp/compute/disk.py b/sdk/python/pulumi_gcp/compute/disk.py index 56a2e88c1f..69e9c7d36b 100644 --- a/sdk/python/pulumi_gcp/compute/disk.py +++ b/sdk/python/pulumi_gcp/compute/disk.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/disk_async_replication.py b/sdk/python/pulumi_gcp/compute/disk_async_replication.py index b7f2cb5635..008d238fb5 100644 --- a/sdk/python/pulumi_gcp/compute/disk_async_replication.py +++ b/sdk/python/pulumi_gcp/compute/disk_async_replication.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/disk_iam_binding.py b/sdk/python/pulumi_gcp/compute/disk_iam_binding.py index 92acca474d..322c34a523 100644 --- a/sdk/python/pulumi_gcp/compute/disk_iam_binding.py +++ b/sdk/python/pulumi_gcp/compute/disk_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/disk_iam_member.py b/sdk/python/pulumi_gcp/compute/disk_iam_member.py index 9de810ba36..ff7c2e75d1 100644 --- a/sdk/python/pulumi_gcp/compute/disk_iam_member.py +++ b/sdk/python/pulumi_gcp/compute/disk_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/disk_iam_policy.py b/sdk/python/pulumi_gcp/compute/disk_iam_policy.py index 4d71d0a98e..bd4ffebc63 100644 --- a/sdk/python/pulumi_gcp/compute/disk_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/disk_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DiskIamPolicyArgs', 'DiskIamPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/disk_resource_policy_attachment.py b/sdk/python/pulumi_gcp/compute/disk_resource_policy_attachment.py index 362df86d08..410cae7bfd 100644 --- a/sdk/python/pulumi_gcp/compute/disk_resource_policy_attachment.py +++ b/sdk/python/pulumi_gcp/compute/disk_resource_policy_attachment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DiskResourcePolicyAttachmentArgs', 'DiskResourcePolicyAttachment'] diff --git a/sdk/python/pulumi_gcp/compute/external_vpn_gateway.py b/sdk/python/pulumi_gcp/compute/external_vpn_gateway.py index ad4c08be9e..076041c123 100644 --- a/sdk/python/pulumi_gcp/compute/external_vpn_gateway.py +++ b/sdk/python/pulumi_gcp/compute/external_vpn_gateway.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/firewall.py b/sdk/python/pulumi_gcp/compute/firewall.py index 1c69b9c9d2..ef09300615 100644 --- a/sdk/python/pulumi_gcp/compute/firewall.py +++ b/sdk/python/pulumi_gcp/compute/firewall.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/firewall_policy.py b/sdk/python/pulumi_gcp/compute/firewall_policy.py index 2ade12845f..9c9b07bed3 100644 --- a/sdk/python/pulumi_gcp/compute/firewall_policy.py +++ b/sdk/python/pulumi_gcp/compute/firewall_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['FirewallPolicyArgs', 'FirewallPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/firewall_policy_association.py b/sdk/python/pulumi_gcp/compute/firewall_policy_association.py index 614bd923c3..83c1c70629 100644 --- a/sdk/python/pulumi_gcp/compute/firewall_policy_association.py +++ b/sdk/python/pulumi_gcp/compute/firewall_policy_association.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['FirewallPolicyAssociationArgs', 'FirewallPolicyAssociation'] diff --git a/sdk/python/pulumi_gcp/compute/firewall_policy_rule.py b/sdk/python/pulumi_gcp/compute/firewall_policy_rule.py index b2fe42a67b..d1606c8d32 100644 --- a/sdk/python/pulumi_gcp/compute/firewall_policy_rule.py +++ b/sdk/python/pulumi_gcp/compute/firewall_policy_rule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/forwarding_rule.py b/sdk/python/pulumi_gcp/compute/forwarding_rule.py index 02d67ffccf..843f3897a0 100644 --- a/sdk/python/pulumi_gcp/compute/forwarding_rule.py +++ b/sdk/python/pulumi_gcp/compute/forwarding_rule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/get_address.py b/sdk/python/pulumi_gcp/compute/get_address.py index fbb83fbdd5..09d271bf4b 100644 --- a/sdk/python/pulumi_gcp/compute/get_address.py +++ b/sdk/python/pulumi_gcp/compute/get_address.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_addresses.py b/sdk/python/pulumi_gcp/compute/get_addresses.py index 28e65ceeff..853d4b52bd 100644 --- a/sdk/python/pulumi_gcp/compute/get_addresses.py +++ b/sdk/python/pulumi_gcp/compute/get_addresses.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_backend_bucket.py b/sdk/python/pulumi_gcp/compute/get_backend_bucket.py index 8d21b4e16e..a0735772cc 100644 --- a/sdk/python/pulumi_gcp/compute/get_backend_bucket.py +++ b/sdk/python/pulumi_gcp/compute/get_backend_bucket.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_backend_bucket_iam_policy.py b/sdk/python/pulumi_gcp/compute/get_backend_bucket_iam_policy.py index c1128249c5..002e30c3f6 100644 --- a/sdk/python/pulumi_gcp/compute/get_backend_bucket_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/get_backend_bucket_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_backend_service.py b/sdk/python/pulumi_gcp/compute/get_backend_service.py index c0911f0660..d55686c5dc 100644 --- a/sdk/python/pulumi_gcp/compute/get_backend_service.py +++ b/sdk/python/pulumi_gcp/compute/get_backend_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_backend_service_iam_policy.py b/sdk/python/pulumi_gcp/compute/get_backend_service_iam_policy.py index 766d4ad481..8edc9a4c4b 100644 --- a/sdk/python/pulumi_gcp/compute/get_backend_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/get_backend_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_certificate.py b/sdk/python/pulumi_gcp/compute/get_certificate.py index 71116afdd3..c423d8ebfc 100644 --- a/sdk/python/pulumi_gcp/compute/get_certificate.py +++ b/sdk/python/pulumi_gcp/compute/get_certificate.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_default_service_account.py b/sdk/python/pulumi_gcp/compute/get_default_service_account.py index 15043339f6..2678dd88d4 100644 --- a/sdk/python/pulumi_gcp/compute/get_default_service_account.py +++ b/sdk/python/pulumi_gcp/compute/get_default_service_account.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_disk.py b/sdk/python/pulumi_gcp/compute/get_disk.py index d8557f803e..56ba34f60c 100644 --- a/sdk/python/pulumi_gcp/compute/get_disk.py +++ b/sdk/python/pulumi_gcp/compute/get_disk.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_disk_iam_policy.py b/sdk/python/pulumi_gcp/compute/get_disk_iam_policy.py index a64bc0c953..ad768ae5b7 100644 --- a/sdk/python/pulumi_gcp/compute/get_disk_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/get_disk_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_forwarding_rule.py b/sdk/python/pulumi_gcp/compute/get_forwarding_rule.py index e3ff244db9..99a6b9226a 100644 --- a/sdk/python/pulumi_gcp/compute/get_forwarding_rule.py +++ b/sdk/python/pulumi_gcp/compute/get_forwarding_rule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_forwarding_rules.py b/sdk/python/pulumi_gcp/compute/get_forwarding_rules.py index a3d111c5d1..36c4a543ed 100644 --- a/sdk/python/pulumi_gcp/compute/get_forwarding_rules.py +++ b/sdk/python/pulumi_gcp/compute/get_forwarding_rules.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_global_address.py b/sdk/python/pulumi_gcp/compute/get_global_address.py index a662e689bc..0e168dbc91 100644 --- a/sdk/python/pulumi_gcp/compute/get_global_address.py +++ b/sdk/python/pulumi_gcp/compute/get_global_address.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_global_forwarding_rule.py b/sdk/python/pulumi_gcp/compute/get_global_forwarding_rule.py index 743664f962..c476e4d2e6 100644 --- a/sdk/python/pulumi_gcp/compute/get_global_forwarding_rule.py +++ b/sdk/python/pulumi_gcp/compute/get_global_forwarding_rule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_hc_vpn_gateway.py b/sdk/python/pulumi_gcp/compute/get_hc_vpn_gateway.py index 14e7470362..08e08777c0 100644 --- a/sdk/python/pulumi_gcp/compute/get_hc_vpn_gateway.py +++ b/sdk/python/pulumi_gcp/compute/get_hc_vpn_gateway.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_health_check.py b/sdk/python/pulumi_gcp/compute/get_health_check.py index 92e6e05b98..49df424117 100644 --- a/sdk/python/pulumi_gcp/compute/get_health_check.py +++ b/sdk/python/pulumi_gcp/compute/get_health_check.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_image.py b/sdk/python/pulumi_gcp/compute/get_image.py index 5e741c1593..86311bab80 100644 --- a/sdk/python/pulumi_gcp/compute/get_image.py +++ b/sdk/python/pulumi_gcp/compute/get_image.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_image_iam_policy.py b/sdk/python/pulumi_gcp/compute/get_image_iam_policy.py index f357dc70aa..4bbf387302 100644 --- a/sdk/python/pulumi_gcp/compute/get_image_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/get_image_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_instance.py b/sdk/python/pulumi_gcp/compute/get_instance.py index 582588d24e..9c45d9d18b 100644 --- a/sdk/python/pulumi_gcp/compute/get_instance.py +++ b/sdk/python/pulumi_gcp/compute/get_instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_instance_group.py b/sdk/python/pulumi_gcp/compute/get_instance_group.py index f8959f18be..575de135b7 100644 --- a/sdk/python/pulumi_gcp/compute/get_instance_group.py +++ b/sdk/python/pulumi_gcp/compute/get_instance_group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_instance_group_manager.py b/sdk/python/pulumi_gcp/compute/get_instance_group_manager.py index 40184a662c..4da0a1a244 100644 --- a/sdk/python/pulumi_gcp/compute/get_instance_group_manager.py +++ b/sdk/python/pulumi_gcp/compute/get_instance_group_manager.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_instance_iam_policy.py b/sdk/python/pulumi_gcp/compute/get_instance_iam_policy.py index 246229cad6..17976e2854 100644 --- a/sdk/python/pulumi_gcp/compute/get_instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/get_instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_instance_serial_port.py b/sdk/python/pulumi_gcp/compute/get_instance_serial_port.py index 2b1d7564c3..e386045757 100644 --- a/sdk/python/pulumi_gcp/compute/get_instance_serial_port.py +++ b/sdk/python/pulumi_gcp/compute/get_instance_serial_port.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_instance_template.py b/sdk/python/pulumi_gcp/compute/get_instance_template.py index 21b00c0dc9..c2ec5f8e54 100644 --- a/sdk/python/pulumi_gcp/compute/get_instance_template.py +++ b/sdk/python/pulumi_gcp/compute/get_instance_template.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_lbip_ranges.py b/sdk/python/pulumi_gcp/compute/get_lbip_ranges.py index 58db64a0c7..b8474d38c2 100644 --- a/sdk/python/pulumi_gcp/compute/get_lbip_ranges.py +++ b/sdk/python/pulumi_gcp/compute/get_lbip_ranges.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_machine_image_iam_policy.py b/sdk/python/pulumi_gcp/compute/get_machine_image_iam_policy.py index 866f3a09bf..22d7c3e8a9 100644 --- a/sdk/python/pulumi_gcp/compute/get_machine_image_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/get_machine_image_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_machine_types.py b/sdk/python/pulumi_gcp/compute/get_machine_types.py index 77ae2bc010..b96348033b 100644 --- a/sdk/python/pulumi_gcp/compute/get_machine_types.py +++ b/sdk/python/pulumi_gcp/compute/get_machine_types.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_netblock_ip_ranges.py b/sdk/python/pulumi_gcp/compute/get_netblock_ip_ranges.py index 378f9c0da5..45ba928ec9 100644 --- a/sdk/python/pulumi_gcp/compute/get_netblock_ip_ranges.py +++ b/sdk/python/pulumi_gcp/compute/get_netblock_ip_ranges.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_network.py b/sdk/python/pulumi_gcp/compute/get_network.py index 5319550054..2a8f19afe8 100644 --- a/sdk/python/pulumi_gcp/compute/get_network.py +++ b/sdk/python/pulumi_gcp/compute/get_network.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_network_endpoint_group.py b/sdk/python/pulumi_gcp/compute/get_network_endpoint_group.py index 5336ec2020..29da3d7563 100644 --- a/sdk/python/pulumi_gcp/compute/get_network_endpoint_group.py +++ b/sdk/python/pulumi_gcp/compute/get_network_endpoint_group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_network_peering.py b/sdk/python/pulumi_gcp/compute/get_network_peering.py index df007cf6aa..e918acec3c 100644 --- a/sdk/python/pulumi_gcp/compute/get_network_peering.py +++ b/sdk/python/pulumi_gcp/compute/get_network_peering.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_networks.py b/sdk/python/pulumi_gcp/compute/get_networks.py index 10db82c75d..5180b8afed 100644 --- a/sdk/python/pulumi_gcp/compute/get_networks.py +++ b/sdk/python/pulumi_gcp/compute/get_networks.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_node_types.py b/sdk/python/pulumi_gcp/compute/get_node_types.py index 85b86d298f..df7501c671 100644 --- a/sdk/python/pulumi_gcp/compute/get_node_types.py +++ b/sdk/python/pulumi_gcp/compute/get_node_types.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_region_backend_service_iam_policy.py b/sdk/python/pulumi_gcp/compute/get_region_backend_service_iam_policy.py index 48172983f9..6da98a1ffd 100644 --- a/sdk/python/pulumi_gcp/compute/get_region_backend_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/get_region_backend_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_region_disk.py b/sdk/python/pulumi_gcp/compute/get_region_disk.py index 84be874122..0e2cacc9d9 100644 --- a/sdk/python/pulumi_gcp/compute/get_region_disk.py +++ b/sdk/python/pulumi_gcp/compute/get_region_disk.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_region_disk_iam_policy.py b/sdk/python/pulumi_gcp/compute/get_region_disk_iam_policy.py index 8ca43c273a..f43e909ace 100644 --- a/sdk/python/pulumi_gcp/compute/get_region_disk_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/get_region_disk_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_region_instance_group.py b/sdk/python/pulumi_gcp/compute/get_region_instance_group.py index 9fd3b4689b..807b9790e1 100644 --- a/sdk/python/pulumi_gcp/compute/get_region_instance_group.py +++ b/sdk/python/pulumi_gcp/compute/get_region_instance_group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_region_instance_template.py b/sdk/python/pulumi_gcp/compute/get_region_instance_template.py index bad4350379..478b2d7437 100644 --- a/sdk/python/pulumi_gcp/compute/get_region_instance_template.py +++ b/sdk/python/pulumi_gcp/compute/get_region_instance_template.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_region_network_endpoint_group.py b/sdk/python/pulumi_gcp/compute/get_region_network_endpoint_group.py index 1721f49873..004763d760 100644 --- a/sdk/python/pulumi_gcp/compute/get_region_network_endpoint_group.py +++ b/sdk/python/pulumi_gcp/compute/get_region_network_endpoint_group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_region_ssl_certificate.py b/sdk/python/pulumi_gcp/compute/get_region_ssl_certificate.py index 646de712ba..a4f0b07fa3 100644 --- a/sdk/python/pulumi_gcp/compute/get_region_ssl_certificate.py +++ b/sdk/python/pulumi_gcp/compute/get_region_ssl_certificate.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_regions.py b/sdk/python/pulumi_gcp/compute/get_regions.py index 538ff8e9ce..3291e7fd90 100644 --- a/sdk/python/pulumi_gcp/compute/get_regions.py +++ b/sdk/python/pulumi_gcp/compute/get_regions.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_reservation.py b/sdk/python/pulumi_gcp/compute/get_reservation.py index 06f05976e1..8c03a929fb 100644 --- a/sdk/python/pulumi_gcp/compute/get_reservation.py +++ b/sdk/python/pulumi_gcp/compute/get_reservation.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_resource_policy.py b/sdk/python/pulumi_gcp/compute/get_resource_policy.py index 9fde76eb61..34bd88098d 100644 --- a/sdk/python/pulumi_gcp/compute/get_resource_policy.py +++ b/sdk/python/pulumi_gcp/compute/get_resource_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_router.py b/sdk/python/pulumi_gcp/compute/get_router.py index ac23ad637a..95e39c5bc7 100644 --- a/sdk/python/pulumi_gcp/compute/get_router.py +++ b/sdk/python/pulumi_gcp/compute/get_router.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_router_nat.py b/sdk/python/pulumi_gcp/compute/get_router_nat.py index 883f3f3f0a..d8e8387ba1 100644 --- a/sdk/python/pulumi_gcp/compute/get_router_nat.py +++ b/sdk/python/pulumi_gcp/compute/get_router_nat.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_router_status.py b/sdk/python/pulumi_gcp/compute/get_router_status.py index 2eb99ccf7b..82eb45a3c2 100644 --- a/sdk/python/pulumi_gcp/compute/get_router_status.py +++ b/sdk/python/pulumi_gcp/compute/get_router_status.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_snapshot.py b/sdk/python/pulumi_gcp/compute/get_snapshot.py index edf3fe7b5f..7d2677eef8 100644 --- a/sdk/python/pulumi_gcp/compute/get_snapshot.py +++ b/sdk/python/pulumi_gcp/compute/get_snapshot.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_snapshot_iam_policy.py b/sdk/python/pulumi_gcp/compute/get_snapshot_iam_policy.py index e9467803b7..f74eb78305 100644 --- a/sdk/python/pulumi_gcp/compute/get_snapshot_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/get_snapshot_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_ssl_policy.py b/sdk/python/pulumi_gcp/compute/get_ssl_policy.py index e418f0703a..4dc30a48dc 100644 --- a/sdk/python/pulumi_gcp/compute/get_ssl_policy.py +++ b/sdk/python/pulumi_gcp/compute/get_ssl_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_subnetwork.py b/sdk/python/pulumi_gcp/compute/get_subnetwork.py index b65bb16053..408195fb50 100644 --- a/sdk/python/pulumi_gcp/compute/get_subnetwork.py +++ b/sdk/python/pulumi_gcp/compute/get_subnetwork.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/get_subnetwork_iam_policy.py b/sdk/python/pulumi_gcp/compute/get_subnetwork_iam_policy.py index cf62295169..aea0fe34d7 100644 --- a/sdk/python/pulumi_gcp/compute/get_subnetwork_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/get_subnetwork_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_vpn_gateway.py b/sdk/python/pulumi_gcp/compute/get_vpn_gateway.py index 698804b7b6..01944d73e3 100644 --- a/sdk/python/pulumi_gcp/compute/get_vpn_gateway.py +++ b/sdk/python/pulumi_gcp/compute/get_vpn_gateway.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/get_zones.py b/sdk/python/pulumi_gcp/compute/get_zones.py index 6e8d866d85..827545fbb0 100644 --- a/sdk/python/pulumi_gcp/compute/get_zones.py +++ b/sdk/python/pulumi_gcp/compute/get_zones.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/compute/global_address.py b/sdk/python/pulumi_gcp/compute/global_address.py index c5a653954a..0d908d4dbf 100644 --- a/sdk/python/pulumi_gcp/compute/global_address.py +++ b/sdk/python/pulumi_gcp/compute/global_address.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['GlobalAddressArgs', 'GlobalAddress'] diff --git a/sdk/python/pulumi_gcp/compute/global_forwarding_rule.py b/sdk/python/pulumi_gcp/compute/global_forwarding_rule.py index 04ac31064e..fa431636ce 100644 --- a/sdk/python/pulumi_gcp/compute/global_forwarding_rule.py +++ b/sdk/python/pulumi_gcp/compute/global_forwarding_rule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/global_network_endpoint.py b/sdk/python/pulumi_gcp/compute/global_network_endpoint.py index 356fade289..22116cd634 100644 --- a/sdk/python/pulumi_gcp/compute/global_network_endpoint.py +++ b/sdk/python/pulumi_gcp/compute/global_network_endpoint.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['GlobalNetworkEndpointArgs', 'GlobalNetworkEndpoint'] diff --git a/sdk/python/pulumi_gcp/compute/global_network_endpoint_group.py b/sdk/python/pulumi_gcp/compute/global_network_endpoint_group.py index 3da6cea312..6867c5554d 100644 --- a/sdk/python/pulumi_gcp/compute/global_network_endpoint_group.py +++ b/sdk/python/pulumi_gcp/compute/global_network_endpoint_group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['GlobalNetworkEndpointGroupArgs', 'GlobalNetworkEndpointGroup'] diff --git a/sdk/python/pulumi_gcp/compute/ha_vpn_gateway.py b/sdk/python/pulumi_gcp/compute/ha_vpn_gateway.py index 2144ef9ea6..9045a48375 100644 --- a/sdk/python/pulumi_gcp/compute/ha_vpn_gateway.py +++ b/sdk/python/pulumi_gcp/compute/ha_vpn_gateway.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/health_check.py b/sdk/python/pulumi_gcp/compute/health_check.py index 58d1dcd051..44426e6640 100644 --- a/sdk/python/pulumi_gcp/compute/health_check.py +++ b/sdk/python/pulumi_gcp/compute/health_check.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/http_health_check.py b/sdk/python/pulumi_gcp/compute/http_health_check.py index 004360a5e0..ffe9bb48d6 100644 --- a/sdk/python/pulumi_gcp/compute/http_health_check.py +++ b/sdk/python/pulumi_gcp/compute/http_health_check.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['HttpHealthCheckArgs', 'HttpHealthCheck'] diff --git a/sdk/python/pulumi_gcp/compute/https_health_check.py b/sdk/python/pulumi_gcp/compute/https_health_check.py index 2ea33dc7b6..65a9ac322e 100644 --- a/sdk/python/pulumi_gcp/compute/https_health_check.py +++ b/sdk/python/pulumi_gcp/compute/https_health_check.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['HttpsHealthCheckArgs', 'HttpsHealthCheck'] diff --git a/sdk/python/pulumi_gcp/compute/image.py b/sdk/python/pulumi_gcp/compute/image.py index 078a8e786a..8d821c9b1f 100644 --- a/sdk/python/pulumi_gcp/compute/image.py +++ b/sdk/python/pulumi_gcp/compute/image.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/image_iam_binding.py b/sdk/python/pulumi_gcp/compute/image_iam_binding.py index fa0333a6f2..6166fb515e 100644 --- a/sdk/python/pulumi_gcp/compute/image_iam_binding.py +++ b/sdk/python/pulumi_gcp/compute/image_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/image_iam_member.py b/sdk/python/pulumi_gcp/compute/image_iam_member.py index 8025d24120..8753ec193f 100644 --- a/sdk/python/pulumi_gcp/compute/image_iam_member.py +++ b/sdk/python/pulumi_gcp/compute/image_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/image_iam_policy.py b/sdk/python/pulumi_gcp/compute/image_iam_policy.py index 1e44cbb478..69d492c978 100644 --- a/sdk/python/pulumi_gcp/compute/image_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/image_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ImageIamPolicyArgs', 'ImageIamPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/instance.py b/sdk/python/pulumi_gcp/compute/instance.py index 72dd8c9de9..efd35d5464 100644 --- a/sdk/python/pulumi_gcp/compute/instance.py +++ b/sdk/python/pulumi_gcp/compute/instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/instance_from_machine_image.py b/sdk/python/pulumi_gcp/compute/instance_from_machine_image.py index e2cf22ef31..c8c0db7ad5 100644 --- a/sdk/python/pulumi_gcp/compute/instance_from_machine_image.py +++ b/sdk/python/pulumi_gcp/compute/instance_from_machine_image.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/instance_from_template.py b/sdk/python/pulumi_gcp/compute/instance_from_template.py index 42f35c22a0..e077197c00 100644 --- a/sdk/python/pulumi_gcp/compute/instance_from_template.py +++ b/sdk/python/pulumi_gcp/compute/instance_from_template.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/instance_group.py b/sdk/python/pulumi_gcp/compute/instance_group.py index c1ba89796c..a53a93d4ef 100644 --- a/sdk/python/pulumi_gcp/compute/instance_group.py +++ b/sdk/python/pulumi_gcp/compute/instance_group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/instance_group_manager.py b/sdk/python/pulumi_gcp/compute/instance_group_manager.py index 13a48bbbcc..b3f3dadf50 100644 --- a/sdk/python/pulumi_gcp/compute/instance_group_manager.py +++ b/sdk/python/pulumi_gcp/compute/instance_group_manager.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/instance_group_membership.py b/sdk/python/pulumi_gcp/compute/instance_group_membership.py index f39d02536d..85dc233884 100644 --- a/sdk/python/pulumi_gcp/compute/instance_group_membership.py +++ b/sdk/python/pulumi_gcp/compute/instance_group_membership.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['InstanceGroupMembershipArgs', 'InstanceGroupMembership'] diff --git a/sdk/python/pulumi_gcp/compute/instance_group_named_port.py b/sdk/python/pulumi_gcp/compute/instance_group_named_port.py index 43180eb82c..4d13a8c1eb 100644 --- a/sdk/python/pulumi_gcp/compute/instance_group_named_port.py +++ b/sdk/python/pulumi_gcp/compute/instance_group_named_port.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['InstanceGroupNamedPortInitArgs', 'InstanceGroupNamedPort'] diff --git a/sdk/python/pulumi_gcp/compute/instance_iam_binding.py b/sdk/python/pulumi_gcp/compute/instance_iam_binding.py index c70de39351..a86d23c217 100644 --- a/sdk/python/pulumi_gcp/compute/instance_iam_binding.py +++ b/sdk/python/pulumi_gcp/compute/instance_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/instance_iam_member.py b/sdk/python/pulumi_gcp/compute/instance_iam_member.py index 822a030988..dc52c55e99 100644 --- a/sdk/python/pulumi_gcp/compute/instance_iam_member.py +++ b/sdk/python/pulumi_gcp/compute/instance_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/instance_iam_policy.py b/sdk/python/pulumi_gcp/compute/instance_iam_policy.py index d5600f7d43..87c6e0aa45 100644 --- a/sdk/python/pulumi_gcp/compute/instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['InstanceIAMPolicyArgs', 'InstanceIAMPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/instance_settings.py b/sdk/python/pulumi_gcp/compute/instance_settings.py index a6e132c2b1..5e46a3717d 100644 --- a/sdk/python/pulumi_gcp/compute/instance_settings.py +++ b/sdk/python/pulumi_gcp/compute/instance_settings.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/instance_template.py b/sdk/python/pulumi_gcp/compute/instance_template.py index 1ee72a8f75..c3a4441825 100644 --- a/sdk/python/pulumi_gcp/compute/instance_template.py +++ b/sdk/python/pulumi_gcp/compute/instance_template.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/interconnect_attachment.py b/sdk/python/pulumi_gcp/compute/interconnect_attachment.py index a2659a06fb..b94a9e8b3b 100644 --- a/sdk/python/pulumi_gcp/compute/interconnect_attachment.py +++ b/sdk/python/pulumi_gcp/compute/interconnect_attachment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/machine_image.py b/sdk/python/pulumi_gcp/compute/machine_image.py index be7b53d011..eb53a9aa69 100644 --- a/sdk/python/pulumi_gcp/compute/machine_image.py +++ b/sdk/python/pulumi_gcp/compute/machine_image.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/machine_image_iam_binding.py b/sdk/python/pulumi_gcp/compute/machine_image_iam_binding.py index 1249043dc9..7b9ecbfccd 100644 --- a/sdk/python/pulumi_gcp/compute/machine_image_iam_binding.py +++ b/sdk/python/pulumi_gcp/compute/machine_image_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/machine_image_iam_member.py b/sdk/python/pulumi_gcp/compute/machine_image_iam_member.py index ec744aedfa..c88f1dce66 100644 --- a/sdk/python/pulumi_gcp/compute/machine_image_iam_member.py +++ b/sdk/python/pulumi_gcp/compute/machine_image_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/machine_image_iam_policy.py b/sdk/python/pulumi_gcp/compute/machine_image_iam_policy.py index 8c65b20bbc..ec21a78478 100644 --- a/sdk/python/pulumi_gcp/compute/machine_image_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/machine_image_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['MachineImageIamPolicyArgs', 'MachineImageIamPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/managed_ssl_certificate.py b/sdk/python/pulumi_gcp/compute/managed_ssl_certificate.py index e6fd6d4c8b..b45cadcf03 100644 --- a/sdk/python/pulumi_gcp/compute/managed_ssl_certificate.py +++ b/sdk/python/pulumi_gcp/compute/managed_ssl_certificate.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/manged_ssl_certificate.py b/sdk/python/pulumi_gcp/compute/manged_ssl_certificate.py index 3acac1ffc0..a37be45a1a 100644 --- a/sdk/python/pulumi_gcp/compute/manged_ssl_certificate.py +++ b/sdk/python/pulumi_gcp/compute/manged_ssl_certificate.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/network.py b/sdk/python/pulumi_gcp/compute/network.py index 2927d92911..abdb001763 100644 --- a/sdk/python/pulumi_gcp/compute/network.py +++ b/sdk/python/pulumi_gcp/compute/network.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['NetworkArgs', 'Network'] diff --git a/sdk/python/pulumi_gcp/compute/network_attachment.py b/sdk/python/pulumi_gcp/compute/network_attachment.py index cbc9d65360..d58f98b2ba 100644 --- a/sdk/python/pulumi_gcp/compute/network_attachment.py +++ b/sdk/python/pulumi_gcp/compute/network_attachment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/network_edge_security_service.py b/sdk/python/pulumi_gcp/compute/network_edge_security_service.py index df1c1e3db3..b2b6fa545d 100644 --- a/sdk/python/pulumi_gcp/compute/network_edge_security_service.py +++ b/sdk/python/pulumi_gcp/compute/network_edge_security_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['NetworkEdgeSecurityServiceArgs', 'NetworkEdgeSecurityService'] diff --git a/sdk/python/pulumi_gcp/compute/network_endpoint.py b/sdk/python/pulumi_gcp/compute/network_endpoint.py index f895951bfe..2edb42e69e 100644 --- a/sdk/python/pulumi_gcp/compute/network_endpoint.py +++ b/sdk/python/pulumi_gcp/compute/network_endpoint.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['NetworkEndpointArgs', 'NetworkEndpoint'] diff --git a/sdk/python/pulumi_gcp/compute/network_endpoint_group.py b/sdk/python/pulumi_gcp/compute/network_endpoint_group.py index d81717bcc5..5c87ea3dbf 100644 --- a/sdk/python/pulumi_gcp/compute/network_endpoint_group.py +++ b/sdk/python/pulumi_gcp/compute/network_endpoint_group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['NetworkEndpointGroupArgs', 'NetworkEndpointGroup'] diff --git a/sdk/python/pulumi_gcp/compute/network_endpoint_list.py b/sdk/python/pulumi_gcp/compute/network_endpoint_list.py index 3847e2db96..ad64b49347 100644 --- a/sdk/python/pulumi_gcp/compute/network_endpoint_list.py +++ b/sdk/python/pulumi_gcp/compute/network_endpoint_list.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/network_firewall_policy.py b/sdk/python/pulumi_gcp/compute/network_firewall_policy.py index f9cb66261a..1fa1d35d50 100644 --- a/sdk/python/pulumi_gcp/compute/network_firewall_policy.py +++ b/sdk/python/pulumi_gcp/compute/network_firewall_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['NetworkFirewallPolicyArgs', 'NetworkFirewallPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/network_firewall_policy_association.py b/sdk/python/pulumi_gcp/compute/network_firewall_policy_association.py index 92465f151e..c0fc45facf 100644 --- a/sdk/python/pulumi_gcp/compute/network_firewall_policy_association.py +++ b/sdk/python/pulumi_gcp/compute/network_firewall_policy_association.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['NetworkFirewallPolicyAssociationArgs', 'NetworkFirewallPolicyAssociation'] diff --git a/sdk/python/pulumi_gcp/compute/network_firewall_policy_rule.py b/sdk/python/pulumi_gcp/compute/network_firewall_policy_rule.py index 85bb98669c..9b74c6bba6 100644 --- a/sdk/python/pulumi_gcp/compute/network_firewall_policy_rule.py +++ b/sdk/python/pulumi_gcp/compute/network_firewall_policy_rule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/network_peering.py b/sdk/python/pulumi_gcp/compute/network_peering.py index 6d37f849ff..f8f89d94c2 100644 --- a/sdk/python/pulumi_gcp/compute/network_peering.py +++ b/sdk/python/pulumi_gcp/compute/network_peering.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['NetworkPeeringArgs', 'NetworkPeering'] diff --git a/sdk/python/pulumi_gcp/compute/network_peering_routes_config.py b/sdk/python/pulumi_gcp/compute/network_peering_routes_config.py index c6015c310f..cf6814a4b4 100644 --- a/sdk/python/pulumi_gcp/compute/network_peering_routes_config.py +++ b/sdk/python/pulumi_gcp/compute/network_peering_routes_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['NetworkPeeringRoutesConfigArgs', 'NetworkPeeringRoutesConfig'] diff --git a/sdk/python/pulumi_gcp/compute/node_group.py b/sdk/python/pulumi_gcp/compute/node_group.py index d3f9d23121..df75a749d6 100644 --- a/sdk/python/pulumi_gcp/compute/node_group.py +++ b/sdk/python/pulumi_gcp/compute/node_group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/node_template.py b/sdk/python/pulumi_gcp/compute/node_template.py index 34e6ade9e7..0095f8f63a 100644 --- a/sdk/python/pulumi_gcp/compute/node_template.py +++ b/sdk/python/pulumi_gcp/compute/node_template.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/organization_security_policy.py b/sdk/python/pulumi_gcp/compute/organization_security_policy.py index 93feb8d169..9d328c49aa 100644 --- a/sdk/python/pulumi_gcp/compute/organization_security_policy.py +++ b/sdk/python/pulumi_gcp/compute/organization_security_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['OrganizationSecurityPolicyArgs', 'OrganizationSecurityPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/organization_security_policy_association.py b/sdk/python/pulumi_gcp/compute/organization_security_policy_association.py index b8c5755726..0aa087993d 100644 --- a/sdk/python/pulumi_gcp/compute/organization_security_policy_association.py +++ b/sdk/python/pulumi_gcp/compute/organization_security_policy_association.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['OrganizationSecurityPolicyAssociationArgs', 'OrganizationSecurityPolicyAssociation'] diff --git a/sdk/python/pulumi_gcp/compute/organization_security_policy_rule.py b/sdk/python/pulumi_gcp/compute/organization_security_policy_rule.py index 230539c82f..2cd9209f71 100644 --- a/sdk/python/pulumi_gcp/compute/organization_security_policy_rule.py +++ b/sdk/python/pulumi_gcp/compute/organization_security_policy_rule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/outputs.py b/sdk/python/pulumi_gcp/compute/outputs.py index a229d0b6fe..03cccb3508 100644 --- a/sdk/python/pulumi_gcp/compute/outputs.py +++ b/sdk/python/pulumi_gcp/compute/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/packet_mirroring.py b/sdk/python/pulumi_gcp/compute/packet_mirroring.py index 430d3fdd32..74a15d9d72 100644 --- a/sdk/python/pulumi_gcp/compute/packet_mirroring.py +++ b/sdk/python/pulumi_gcp/compute/packet_mirroring.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/per_instance_config.py b/sdk/python/pulumi_gcp/compute/per_instance_config.py index d5cefa77d4..8d7dce91f9 100644 --- a/sdk/python/pulumi_gcp/compute/per_instance_config.py +++ b/sdk/python/pulumi_gcp/compute/per_instance_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/project_default_network_tier.py b/sdk/python/pulumi_gcp/compute/project_default_network_tier.py index c1cecce8d0..5805788a99 100644 --- a/sdk/python/pulumi_gcp/compute/project_default_network_tier.py +++ b/sdk/python/pulumi_gcp/compute/project_default_network_tier.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ProjectDefaultNetworkTierArgs', 'ProjectDefaultNetworkTier'] diff --git a/sdk/python/pulumi_gcp/compute/project_metadata.py b/sdk/python/pulumi_gcp/compute/project_metadata.py index 864f480c00..79ffbe4d30 100644 --- a/sdk/python/pulumi_gcp/compute/project_metadata.py +++ b/sdk/python/pulumi_gcp/compute/project_metadata.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ProjectMetadataArgs', 'ProjectMetadata'] diff --git a/sdk/python/pulumi_gcp/compute/project_metadata_item.py b/sdk/python/pulumi_gcp/compute/project_metadata_item.py index 564c1d5cdd..65582b159d 100644 --- a/sdk/python/pulumi_gcp/compute/project_metadata_item.py +++ b/sdk/python/pulumi_gcp/compute/project_metadata_item.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ProjectMetadataItemArgs', 'ProjectMetadataItem'] diff --git a/sdk/python/pulumi_gcp/compute/public_advertised_prefix.py b/sdk/python/pulumi_gcp/compute/public_advertised_prefix.py index 6fd0ffe0ef..6dd8562aa6 100644 --- a/sdk/python/pulumi_gcp/compute/public_advertised_prefix.py +++ b/sdk/python/pulumi_gcp/compute/public_advertised_prefix.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['PublicAdvertisedPrefixArgs', 'PublicAdvertisedPrefix'] diff --git a/sdk/python/pulumi_gcp/compute/public_delegated_prefix.py b/sdk/python/pulumi_gcp/compute/public_delegated_prefix.py index 1f8785f12b..8002e9bd13 100644 --- a/sdk/python/pulumi_gcp/compute/public_delegated_prefix.py +++ b/sdk/python/pulumi_gcp/compute/public_delegated_prefix.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['PublicDelegatedPrefixArgs', 'PublicDelegatedPrefix'] diff --git a/sdk/python/pulumi_gcp/compute/region_autoscaler.py b/sdk/python/pulumi_gcp/compute/region_autoscaler.py index d802713bc2..b4cd57281b 100644 --- a/sdk/python/pulumi_gcp/compute/region_autoscaler.py +++ b/sdk/python/pulumi_gcp/compute/region_autoscaler.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_backend_service.py b/sdk/python/pulumi_gcp/compute/region_backend_service.py index ecdcbbe1c7..dbf39b288b 100644 --- a/sdk/python/pulumi_gcp/compute/region_backend_service.py +++ b/sdk/python/pulumi_gcp/compute/region_backend_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_backend_service_iam_binding.py b/sdk/python/pulumi_gcp/compute/region_backend_service_iam_binding.py index 0c8662188d..3911b00aad 100644 --- a/sdk/python/pulumi_gcp/compute/region_backend_service_iam_binding.py +++ b/sdk/python/pulumi_gcp/compute/region_backend_service_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_backend_service_iam_member.py b/sdk/python/pulumi_gcp/compute/region_backend_service_iam_member.py index 91607f865b..10b0aef517 100644 --- a/sdk/python/pulumi_gcp/compute/region_backend_service_iam_member.py +++ b/sdk/python/pulumi_gcp/compute/region_backend_service_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_backend_service_iam_policy.py b/sdk/python/pulumi_gcp/compute/region_backend_service_iam_policy.py index 1b63f16df7..3c9400aa41 100644 --- a/sdk/python/pulumi_gcp/compute/region_backend_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/region_backend_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RegionBackendServiceIamPolicyArgs', 'RegionBackendServiceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/region_commitment.py b/sdk/python/pulumi_gcp/compute/region_commitment.py index 1eeb8456e6..440c569b19 100644 --- a/sdk/python/pulumi_gcp/compute/region_commitment.py +++ b/sdk/python/pulumi_gcp/compute/region_commitment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_disk.py b/sdk/python/pulumi_gcp/compute/region_disk.py index 400616bef2..82ffb81756 100644 --- a/sdk/python/pulumi_gcp/compute/region_disk.py +++ b/sdk/python/pulumi_gcp/compute/region_disk.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_disk_iam_binding.py b/sdk/python/pulumi_gcp/compute/region_disk_iam_binding.py index 005faa57d7..86d0d11883 100644 --- a/sdk/python/pulumi_gcp/compute/region_disk_iam_binding.py +++ b/sdk/python/pulumi_gcp/compute/region_disk_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_disk_iam_member.py b/sdk/python/pulumi_gcp/compute/region_disk_iam_member.py index 388ac3e5f1..2c9b05d0a5 100644 --- a/sdk/python/pulumi_gcp/compute/region_disk_iam_member.py +++ b/sdk/python/pulumi_gcp/compute/region_disk_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_disk_iam_policy.py b/sdk/python/pulumi_gcp/compute/region_disk_iam_policy.py index 9703d5ece0..d046d6d354 100644 --- a/sdk/python/pulumi_gcp/compute/region_disk_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/region_disk_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RegionDiskIamPolicyArgs', 'RegionDiskIamPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/region_disk_resource_policy_attachment.py b/sdk/python/pulumi_gcp/compute/region_disk_resource_policy_attachment.py index 4e89542bae..de00ed9bc9 100644 --- a/sdk/python/pulumi_gcp/compute/region_disk_resource_policy_attachment.py +++ b/sdk/python/pulumi_gcp/compute/region_disk_resource_policy_attachment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RegionDiskResourcePolicyAttachmentArgs', 'RegionDiskResourcePolicyAttachment'] diff --git a/sdk/python/pulumi_gcp/compute/region_health_check.py b/sdk/python/pulumi_gcp/compute/region_health_check.py index 8898ec6f38..59af8a48a6 100644 --- a/sdk/python/pulumi_gcp/compute/region_health_check.py +++ b/sdk/python/pulumi_gcp/compute/region_health_check.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_instance_group_manager.py b/sdk/python/pulumi_gcp/compute/region_instance_group_manager.py index 48cb469e21..a69633cd6a 100644 --- a/sdk/python/pulumi_gcp/compute/region_instance_group_manager.py +++ b/sdk/python/pulumi_gcp/compute/region_instance_group_manager.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_instance_template.py b/sdk/python/pulumi_gcp/compute/region_instance_template.py index 7e381a9fbd..0f4d5543dc 100644 --- a/sdk/python/pulumi_gcp/compute/region_instance_template.py +++ b/sdk/python/pulumi_gcp/compute/region_instance_template.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_network_endpoint.py b/sdk/python/pulumi_gcp/compute/region_network_endpoint.py index 67dc0639fc..f0d02741cc 100644 --- a/sdk/python/pulumi_gcp/compute/region_network_endpoint.py +++ b/sdk/python/pulumi_gcp/compute/region_network_endpoint.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RegionNetworkEndpointArgs', 'RegionNetworkEndpoint'] diff --git a/sdk/python/pulumi_gcp/compute/region_network_endpoint_group.py b/sdk/python/pulumi_gcp/compute/region_network_endpoint_group.py index cd61506f0f..8bd7e53fcb 100644 --- a/sdk/python/pulumi_gcp/compute/region_network_endpoint_group.py +++ b/sdk/python/pulumi_gcp/compute/region_network_endpoint_group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_network_firewall_policy.py b/sdk/python/pulumi_gcp/compute/region_network_firewall_policy.py index f64659c189..fe382935a1 100644 --- a/sdk/python/pulumi_gcp/compute/region_network_firewall_policy.py +++ b/sdk/python/pulumi_gcp/compute/region_network_firewall_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RegionNetworkFirewallPolicyArgs', 'RegionNetworkFirewallPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_association.py b/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_association.py index ebb08f5cee..8624b9709f 100644 --- a/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_association.py +++ b/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_association.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RegionNetworkFirewallPolicyAssociationArgs', 'RegionNetworkFirewallPolicyAssociation'] diff --git a/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_rule.py b/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_rule.py index 0b9bcec6fb..46d81038b3 100644 --- a/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_rule.py +++ b/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_rule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_per_instance_config.py b/sdk/python/pulumi_gcp/compute/region_per_instance_config.py index dd20c5aaab..9fb509a34e 100644 --- a/sdk/python/pulumi_gcp/compute/region_per_instance_config.py +++ b/sdk/python/pulumi_gcp/compute/region_per_instance_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_security_policy.py b/sdk/python/pulumi_gcp/compute/region_security_policy.py index a41454b4bb..fde4d87ab8 100644 --- a/sdk/python/pulumi_gcp/compute/region_security_policy.py +++ b/sdk/python/pulumi_gcp/compute/region_security_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_security_policy_rule.py b/sdk/python/pulumi_gcp/compute/region_security_policy_rule.py index fc877cb33d..d9db7307e5 100644 --- a/sdk/python/pulumi_gcp/compute/region_security_policy_rule.py +++ b/sdk/python/pulumi_gcp/compute/region_security_policy_rule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/region_ssl_certificate.py b/sdk/python/pulumi_gcp/compute/region_ssl_certificate.py index 8b5beff250..56206ed9d9 100644 --- a/sdk/python/pulumi_gcp/compute/region_ssl_certificate.py +++ b/sdk/python/pulumi_gcp/compute/region_ssl_certificate.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RegionSslCertificateArgs', 'RegionSslCertificate'] diff --git a/sdk/python/pulumi_gcp/compute/region_ssl_policy.py b/sdk/python/pulumi_gcp/compute/region_ssl_policy.py index f33f417b70..d3ce9bcd95 100644 --- a/sdk/python/pulumi_gcp/compute/region_ssl_policy.py +++ b/sdk/python/pulumi_gcp/compute/region_ssl_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RegionSslPolicyArgs', 'RegionSslPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/region_target_http_proxy.py b/sdk/python/pulumi_gcp/compute/region_target_http_proxy.py index 8f9381475f..7ee305b79c 100644 --- a/sdk/python/pulumi_gcp/compute/region_target_http_proxy.py +++ b/sdk/python/pulumi_gcp/compute/region_target_http_proxy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RegionTargetHttpProxyArgs', 'RegionTargetHttpProxy'] diff --git a/sdk/python/pulumi_gcp/compute/region_target_https_proxy.py b/sdk/python/pulumi_gcp/compute/region_target_https_proxy.py index 2409c6cc0b..50a6befd11 100644 --- a/sdk/python/pulumi_gcp/compute/region_target_https_proxy.py +++ b/sdk/python/pulumi_gcp/compute/region_target_https_proxy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RegionTargetHttpsProxyArgs', 'RegionTargetHttpsProxy'] diff --git a/sdk/python/pulumi_gcp/compute/region_target_tcp_proxy.py b/sdk/python/pulumi_gcp/compute/region_target_tcp_proxy.py index 5dbcadefaf..971aa86a18 100644 --- a/sdk/python/pulumi_gcp/compute/region_target_tcp_proxy.py +++ b/sdk/python/pulumi_gcp/compute/region_target_tcp_proxy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RegionTargetTcpProxyArgs', 'RegionTargetTcpProxy'] diff --git a/sdk/python/pulumi_gcp/compute/region_url_map.py b/sdk/python/pulumi_gcp/compute/region_url_map.py index d990b54ed2..58e7fe2b95 100644 --- a/sdk/python/pulumi_gcp/compute/region_url_map.py +++ b/sdk/python/pulumi_gcp/compute/region_url_map.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/reservation.py b/sdk/python/pulumi_gcp/compute/reservation.py index 483acec733..b771a65d52 100644 --- a/sdk/python/pulumi_gcp/compute/reservation.py +++ b/sdk/python/pulumi_gcp/compute/reservation.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/resource_policy.py b/sdk/python/pulumi_gcp/compute/resource_policy.py index c4e9bbc01f..63a7adb343 100644 --- a/sdk/python/pulumi_gcp/compute/resource_policy.py +++ b/sdk/python/pulumi_gcp/compute/resource_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/route.py b/sdk/python/pulumi_gcp/compute/route.py index ab6479ac94..93a8b3fdd2 100644 --- a/sdk/python/pulumi_gcp/compute/route.py +++ b/sdk/python/pulumi_gcp/compute/route.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RouteArgs', 'Route'] diff --git a/sdk/python/pulumi_gcp/compute/router.py b/sdk/python/pulumi_gcp/compute/router.py index d72edc8a50..3a1d0db7d9 100644 --- a/sdk/python/pulumi_gcp/compute/router.py +++ b/sdk/python/pulumi_gcp/compute/router.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/router_interface.py b/sdk/python/pulumi_gcp/compute/router_interface.py index b9082202b0..098d7654c6 100644 --- a/sdk/python/pulumi_gcp/compute/router_interface.py +++ b/sdk/python/pulumi_gcp/compute/router_interface.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RouterInterfaceArgs', 'RouterInterface'] diff --git a/sdk/python/pulumi_gcp/compute/router_nat.py b/sdk/python/pulumi_gcp/compute/router_nat.py index 0ecbfaaf7e..df2849d404 100644 --- a/sdk/python/pulumi_gcp/compute/router_nat.py +++ b/sdk/python/pulumi_gcp/compute/router_nat.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/router_peer.py b/sdk/python/pulumi_gcp/compute/router_peer.py index 57d056d6e4..b405fcde87 100644 --- a/sdk/python/pulumi_gcp/compute/router_peer.py +++ b/sdk/python/pulumi_gcp/compute/router_peer.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/router_status.py b/sdk/python/pulumi_gcp/compute/router_status.py index 5a6200d337..124df9facb 100644 --- a/sdk/python/pulumi_gcp/compute/router_status.py +++ b/sdk/python/pulumi_gcp/compute/router_status.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/compute/security_policy.py b/sdk/python/pulumi_gcp/compute/security_policy.py index 3e95fcb193..3571ab0227 100644 --- a/sdk/python/pulumi_gcp/compute/security_policy.py +++ b/sdk/python/pulumi_gcp/compute/security_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/security_scan_config.py b/sdk/python/pulumi_gcp/compute/security_scan_config.py index f58a1b263d..b3cec0ad7d 100644 --- a/sdk/python/pulumi_gcp/compute/security_scan_config.py +++ b/sdk/python/pulumi_gcp/compute/security_scan_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/service_attachment.py b/sdk/python/pulumi_gcp/compute/service_attachment.py index 381621d68e..768887198e 100644 --- a/sdk/python/pulumi_gcp/compute/service_attachment.py +++ b/sdk/python/pulumi_gcp/compute/service_attachment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/shared_vpc_host_project.py b/sdk/python/pulumi_gcp/compute/shared_vpc_host_project.py index 5c19da192c..2f94756ec2 100644 --- a/sdk/python/pulumi_gcp/compute/shared_vpc_host_project.py +++ b/sdk/python/pulumi_gcp/compute/shared_vpc_host_project.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SharedVPCHostProjectArgs', 'SharedVPCHostProject'] diff --git a/sdk/python/pulumi_gcp/compute/shared_vpc_service_project.py b/sdk/python/pulumi_gcp/compute/shared_vpc_service_project.py index 170e97ff13..647a061abe 100644 --- a/sdk/python/pulumi_gcp/compute/shared_vpc_service_project.py +++ b/sdk/python/pulumi_gcp/compute/shared_vpc_service_project.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SharedVPCServiceProjectArgs', 'SharedVPCServiceProject'] diff --git a/sdk/python/pulumi_gcp/compute/snapshot.py b/sdk/python/pulumi_gcp/compute/snapshot.py index 0cf91b1914..20429f8c04 100644 --- a/sdk/python/pulumi_gcp/compute/snapshot.py +++ b/sdk/python/pulumi_gcp/compute/snapshot.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/snapshot_iam_binding.py b/sdk/python/pulumi_gcp/compute/snapshot_iam_binding.py index 605d29db56..0d5ff3c5bf 100644 --- a/sdk/python/pulumi_gcp/compute/snapshot_iam_binding.py +++ b/sdk/python/pulumi_gcp/compute/snapshot_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/snapshot_iam_member.py b/sdk/python/pulumi_gcp/compute/snapshot_iam_member.py index 04a71af182..05a54a4790 100644 --- a/sdk/python/pulumi_gcp/compute/snapshot_iam_member.py +++ b/sdk/python/pulumi_gcp/compute/snapshot_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/snapshot_iam_policy.py b/sdk/python/pulumi_gcp/compute/snapshot_iam_policy.py index 2da9bee3b5..b98d9a51a2 100644 --- a/sdk/python/pulumi_gcp/compute/snapshot_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/snapshot_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SnapshotIamPolicyArgs', 'SnapshotIamPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/ssl_certificate.py b/sdk/python/pulumi_gcp/compute/ssl_certificate.py index ad0e2a8bff..34a070dd8b 100644 --- a/sdk/python/pulumi_gcp/compute/ssl_certificate.py +++ b/sdk/python/pulumi_gcp/compute/ssl_certificate.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SSLCertificateArgs', 'SSLCertificate'] diff --git a/sdk/python/pulumi_gcp/compute/ssl_policy.py b/sdk/python/pulumi_gcp/compute/ssl_policy.py index 9e1d39e15f..25e5acaeab 100644 --- a/sdk/python/pulumi_gcp/compute/ssl_policy.py +++ b/sdk/python/pulumi_gcp/compute/ssl_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SSLPolicyArgs', 'SSLPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/subnetwork.py b/sdk/python/pulumi_gcp/compute/subnetwork.py index 027400279c..e1da17d380 100644 --- a/sdk/python/pulumi_gcp/compute/subnetwork.py +++ b/sdk/python/pulumi_gcp/compute/subnetwork.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/subnetwork_iam_binding.py b/sdk/python/pulumi_gcp/compute/subnetwork_iam_binding.py index e8e41f8e54..cc77cecb4c 100644 --- a/sdk/python/pulumi_gcp/compute/subnetwork_iam_binding.py +++ b/sdk/python/pulumi_gcp/compute/subnetwork_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/subnetwork_iam_member.py b/sdk/python/pulumi_gcp/compute/subnetwork_iam_member.py index d9a810c08d..412a17f60b 100644 --- a/sdk/python/pulumi_gcp/compute/subnetwork_iam_member.py +++ b/sdk/python/pulumi_gcp/compute/subnetwork_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/subnetwork_iam_policy.py b/sdk/python/pulumi_gcp/compute/subnetwork_iam_policy.py index ad2a4d6f32..f5b1013a51 100644 --- a/sdk/python/pulumi_gcp/compute/subnetwork_iam_policy.py +++ b/sdk/python/pulumi_gcp/compute/subnetwork_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SubnetworkIAMPolicyArgs', 'SubnetworkIAMPolicy'] diff --git a/sdk/python/pulumi_gcp/compute/target_grpc_proxy.py b/sdk/python/pulumi_gcp/compute/target_grpc_proxy.py index f09e1dc07b..eacab4ab52 100644 --- a/sdk/python/pulumi_gcp/compute/target_grpc_proxy.py +++ b/sdk/python/pulumi_gcp/compute/target_grpc_proxy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TargetGrpcProxyArgs', 'TargetGrpcProxy'] diff --git a/sdk/python/pulumi_gcp/compute/target_http_proxy.py b/sdk/python/pulumi_gcp/compute/target_http_proxy.py index 6cce9dcebc..76b02eaafe 100644 --- a/sdk/python/pulumi_gcp/compute/target_http_proxy.py +++ b/sdk/python/pulumi_gcp/compute/target_http_proxy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TargetHttpProxyArgs', 'TargetHttpProxy'] diff --git a/sdk/python/pulumi_gcp/compute/target_https_proxy.py b/sdk/python/pulumi_gcp/compute/target_https_proxy.py index 69dc7c9c84..49898fef0f 100644 --- a/sdk/python/pulumi_gcp/compute/target_https_proxy.py +++ b/sdk/python/pulumi_gcp/compute/target_https_proxy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TargetHttpsProxyArgs', 'TargetHttpsProxy'] diff --git a/sdk/python/pulumi_gcp/compute/target_instance.py b/sdk/python/pulumi_gcp/compute/target_instance.py index fb0d8b6e66..efdc9a4e4c 100644 --- a/sdk/python/pulumi_gcp/compute/target_instance.py +++ b/sdk/python/pulumi_gcp/compute/target_instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TargetInstanceArgs', 'TargetInstance'] diff --git a/sdk/python/pulumi_gcp/compute/target_pool.py b/sdk/python/pulumi_gcp/compute/target_pool.py index 8fc9d7ddd8..78d63abfaf 100644 --- a/sdk/python/pulumi_gcp/compute/target_pool.py +++ b/sdk/python/pulumi_gcp/compute/target_pool.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TargetPoolArgs', 'TargetPool'] diff --git a/sdk/python/pulumi_gcp/compute/target_ssl_proxy.py b/sdk/python/pulumi_gcp/compute/target_ssl_proxy.py index 4018ec6a47..b1401ecaaf 100644 --- a/sdk/python/pulumi_gcp/compute/target_ssl_proxy.py +++ b/sdk/python/pulumi_gcp/compute/target_ssl_proxy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TargetSSLProxyArgs', 'TargetSSLProxy'] diff --git a/sdk/python/pulumi_gcp/compute/target_tcp_proxy.py b/sdk/python/pulumi_gcp/compute/target_tcp_proxy.py index 4ecd2b466c..0676b9834a 100644 --- a/sdk/python/pulumi_gcp/compute/target_tcp_proxy.py +++ b/sdk/python/pulumi_gcp/compute/target_tcp_proxy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TargetTCPProxyArgs', 'TargetTCPProxy'] diff --git a/sdk/python/pulumi_gcp/compute/url_map.py b/sdk/python/pulumi_gcp/compute/url_map.py index f5b38b31a5..623a9ae180 100644 --- a/sdk/python/pulumi_gcp/compute/url_map.py +++ b/sdk/python/pulumi_gcp/compute/url_map.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/compute/vpn_gateway.py b/sdk/python/pulumi_gcp/compute/vpn_gateway.py index a4b276420e..4128438b7d 100644 --- a/sdk/python/pulumi_gcp/compute/vpn_gateway.py +++ b/sdk/python/pulumi_gcp/compute/vpn_gateway.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['VPNGatewayArgs', 'VPNGateway'] diff --git a/sdk/python/pulumi_gcp/compute/vpn_tunnel.py b/sdk/python/pulumi_gcp/compute/vpn_tunnel.py index d4b172567a..d6e105ff4c 100644 --- a/sdk/python/pulumi_gcp/compute/vpn_tunnel.py +++ b/sdk/python/pulumi_gcp/compute/vpn_tunnel.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['VPNTunnelArgs', 'VPNTunnel'] diff --git a/sdk/python/pulumi_gcp/config/__init__.pyi b/sdk/python/pulumi_gcp/config/__init__.pyi index 7dab2b314a..ffb2041c94 100644 --- a/sdk/python/pulumi_gcp/config/__init__.pyi +++ b/sdk/python/pulumi_gcp/config/__init__.pyi @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/config/outputs.py b/sdk/python/pulumi_gcp/config/outputs.py index 08d9077cb0..e64e0f6a55 100644 --- a/sdk/python/pulumi_gcp/config/outputs.py +++ b/sdk/python/pulumi_gcp/config/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/config/vars.py b/sdk/python/pulumi_gcp/config/vars.py index 8b9958861b..9ddfb20144 100644 --- a/sdk/python/pulumi_gcp/config/vars.py +++ b/sdk/python/pulumi_gcp/config/vars.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/container/_inputs.py b/sdk/python/pulumi_gcp/container/_inputs.py index 69ba3c3223..ec023a2cc5 100644 --- a/sdk/python/pulumi_gcp/container/_inputs.py +++ b/sdk/python/pulumi_gcp/container/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/container/attached_cluster.py b/sdk/python/pulumi_gcp/container/attached_cluster.py index abae9a9945..ee1060f222 100644 --- a/sdk/python/pulumi_gcp/container/attached_cluster.py +++ b/sdk/python/pulumi_gcp/container/attached_cluster.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/container/aws_cluster.py b/sdk/python/pulumi_gcp/container/aws_cluster.py index 0c39c0252c..58622f89ae 100644 --- a/sdk/python/pulumi_gcp/container/aws_cluster.py +++ b/sdk/python/pulumi_gcp/container/aws_cluster.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/container/aws_node_pool.py b/sdk/python/pulumi_gcp/container/aws_node_pool.py index b64bc9ecb8..7ccf7bf4c9 100644 --- a/sdk/python/pulumi_gcp/container/aws_node_pool.py +++ b/sdk/python/pulumi_gcp/container/aws_node_pool.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/container/azure_client.py b/sdk/python/pulumi_gcp/container/azure_client.py index fd572b2dc1..bdea8a9d6b 100644 --- a/sdk/python/pulumi_gcp/container/azure_client.py +++ b/sdk/python/pulumi_gcp/container/azure_client.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AzureClientArgs', 'AzureClient'] diff --git a/sdk/python/pulumi_gcp/container/azure_cluster.py b/sdk/python/pulumi_gcp/container/azure_cluster.py index 1705417e6d..ba79f3a4c3 100644 --- a/sdk/python/pulumi_gcp/container/azure_cluster.py +++ b/sdk/python/pulumi_gcp/container/azure_cluster.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/container/azure_node_pool.py b/sdk/python/pulumi_gcp/container/azure_node_pool.py index 88bb8380fb..443f0b6418 100644 --- a/sdk/python/pulumi_gcp/container/azure_node_pool.py +++ b/sdk/python/pulumi_gcp/container/azure_node_pool.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/container/cluster.py b/sdk/python/pulumi_gcp/container/cluster.py index d9537fead0..974a52d198 100644 --- a/sdk/python/pulumi_gcp/container/cluster.py +++ b/sdk/python/pulumi_gcp/container/cluster.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/container/get_attached_install_manifest.py b/sdk/python/pulumi_gcp/container/get_attached_install_manifest.py index c187311016..7f187d4e1c 100644 --- a/sdk/python/pulumi_gcp/container/get_attached_install_manifest.py +++ b/sdk/python/pulumi_gcp/container/get_attached_install_manifest.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/container/get_attached_versions.py b/sdk/python/pulumi_gcp/container/get_attached_versions.py index eeb9b1716f..ab57ef8070 100644 --- a/sdk/python/pulumi_gcp/container/get_attached_versions.py +++ b/sdk/python/pulumi_gcp/container/get_attached_versions.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/container/get_aws_versions.py b/sdk/python/pulumi_gcp/container/get_aws_versions.py index 98053882ee..16824ec9ac 100644 --- a/sdk/python/pulumi_gcp/container/get_aws_versions.py +++ b/sdk/python/pulumi_gcp/container/get_aws_versions.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/container/get_azure_versions.py b/sdk/python/pulumi_gcp/container/get_azure_versions.py index 2f7a9448ff..3a35df6cb4 100644 --- a/sdk/python/pulumi_gcp/container/get_azure_versions.py +++ b/sdk/python/pulumi_gcp/container/get_azure_versions.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/container/get_cluster.py b/sdk/python/pulumi_gcp/container/get_cluster.py index 7cee620a00..5433e7575c 100644 --- a/sdk/python/pulumi_gcp/container/get_cluster.py +++ b/sdk/python/pulumi_gcp/container/get_cluster.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/container/get_engine_versions.py b/sdk/python/pulumi_gcp/container/get_engine_versions.py index a2a0595c36..129ef74897 100644 --- a/sdk/python/pulumi_gcp/container/get_engine_versions.py +++ b/sdk/python/pulumi_gcp/container/get_engine_versions.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/container/get_registry_image.py b/sdk/python/pulumi_gcp/container/get_registry_image.py index a21746821f..7d3e35bbed 100644 --- a/sdk/python/pulumi_gcp/container/get_registry_image.py +++ b/sdk/python/pulumi_gcp/container/get_registry_image.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/container/get_registry_repository.py b/sdk/python/pulumi_gcp/container/get_registry_repository.py index 5a992040da..599b359f58 100644 --- a/sdk/python/pulumi_gcp/container/get_registry_repository.py +++ b/sdk/python/pulumi_gcp/container/get_registry_repository.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/container/node_pool.py b/sdk/python/pulumi_gcp/container/node_pool.py index bea096b08c..c2fa4d58d3 100644 --- a/sdk/python/pulumi_gcp/container/node_pool.py +++ b/sdk/python/pulumi_gcp/container/node_pool.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/container/outputs.py b/sdk/python/pulumi_gcp/container/outputs.py index ae058ef763..5167705f34 100644 --- a/sdk/python/pulumi_gcp/container/outputs.py +++ b/sdk/python/pulumi_gcp/container/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/container/registry.py b/sdk/python/pulumi_gcp/container/registry.py index 159fec7f24..d4807b76bc 100644 --- a/sdk/python/pulumi_gcp/container/registry.py +++ b/sdk/python/pulumi_gcp/container/registry.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RegistryArgs', 'Registry'] diff --git a/sdk/python/pulumi_gcp/containeranalysis/_inputs.py b/sdk/python/pulumi_gcp/containeranalysis/_inputs.py index aef986f10d..a4f557fbc7 100644 --- a/sdk/python/pulumi_gcp/containeranalysis/_inputs.py +++ b/sdk/python/pulumi_gcp/containeranalysis/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/containeranalysis/get_note_iam_policy.py b/sdk/python/pulumi_gcp/containeranalysis/get_note_iam_policy.py index 0ffbba6ea3..b18f27823b 100644 --- a/sdk/python/pulumi_gcp/containeranalysis/get_note_iam_policy.py +++ b/sdk/python/pulumi_gcp/containeranalysis/get_note_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/containeranalysis/note.py b/sdk/python/pulumi_gcp/containeranalysis/note.py index 682b3bb3af..f08b64e87e 100644 --- a/sdk/python/pulumi_gcp/containeranalysis/note.py +++ b/sdk/python/pulumi_gcp/containeranalysis/note.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/containeranalysis/note_iam_binding.py b/sdk/python/pulumi_gcp/containeranalysis/note_iam_binding.py index 45d2cd76ad..0b88201a79 100644 --- a/sdk/python/pulumi_gcp/containeranalysis/note_iam_binding.py +++ b/sdk/python/pulumi_gcp/containeranalysis/note_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/containeranalysis/note_iam_member.py b/sdk/python/pulumi_gcp/containeranalysis/note_iam_member.py index 3bf0eede3d..b64bb42611 100644 --- a/sdk/python/pulumi_gcp/containeranalysis/note_iam_member.py +++ b/sdk/python/pulumi_gcp/containeranalysis/note_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/containeranalysis/note_iam_policy.py b/sdk/python/pulumi_gcp/containeranalysis/note_iam_policy.py index eef71d0be0..3c291be9fb 100644 --- a/sdk/python/pulumi_gcp/containeranalysis/note_iam_policy.py +++ b/sdk/python/pulumi_gcp/containeranalysis/note_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['NoteIamPolicyArgs', 'NoteIamPolicy'] diff --git a/sdk/python/pulumi_gcp/containeranalysis/occurence.py b/sdk/python/pulumi_gcp/containeranalysis/occurence.py index 0b0cad3455..3674567eb3 100644 --- a/sdk/python/pulumi_gcp/containeranalysis/occurence.py +++ b/sdk/python/pulumi_gcp/containeranalysis/occurence.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/containeranalysis/outputs.py b/sdk/python/pulumi_gcp/containeranalysis/outputs.py index da68f1728b..557fdd96b7 100644 --- a/sdk/python/pulumi_gcp/containeranalysis/outputs.py +++ b/sdk/python/pulumi_gcp/containeranalysis/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/databasemigrationservice/_inputs.py b/sdk/python/pulumi_gcp/databasemigrationservice/_inputs.py index 0a56d9350a..090b412165 100644 --- a/sdk/python/pulumi_gcp/databasemigrationservice/_inputs.py +++ b/sdk/python/pulumi_gcp/databasemigrationservice/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/databasemigrationservice/connection_profile.py b/sdk/python/pulumi_gcp/databasemigrationservice/connection_profile.py index 7c4d207952..e43ff781c1 100644 --- a/sdk/python/pulumi_gcp/databasemigrationservice/connection_profile.py +++ b/sdk/python/pulumi_gcp/databasemigrationservice/connection_profile.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/databasemigrationservice/outputs.py b/sdk/python/pulumi_gcp/databasemigrationservice/outputs.py index 089c0ce8ef..96b5f64eae 100644 --- a/sdk/python/pulumi_gcp/databasemigrationservice/outputs.py +++ b/sdk/python/pulumi_gcp/databasemigrationservice/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/databasemigrationservice/private_connection.py b/sdk/python/pulumi_gcp/databasemigrationservice/private_connection.py index 8088a02154..9f68fe9ac2 100644 --- a/sdk/python/pulumi_gcp/databasemigrationservice/private_connection.py +++ b/sdk/python/pulumi_gcp/databasemigrationservice/private_connection.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datacatalog/_inputs.py b/sdk/python/pulumi_gcp/datacatalog/_inputs.py index 664258024f..3a9fefe67b 100644 --- a/sdk/python/pulumi_gcp/datacatalog/_inputs.py +++ b/sdk/python/pulumi_gcp/datacatalog/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/datacatalog/entry.py b/sdk/python/pulumi_gcp/datacatalog/entry.py index 389923ecf0..139a0599d9 100644 --- a/sdk/python/pulumi_gcp/datacatalog/entry.py +++ b/sdk/python/pulumi_gcp/datacatalog/entry.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datacatalog/entry_group.py b/sdk/python/pulumi_gcp/datacatalog/entry_group.py index 156827354d..7c60545ca5 100644 --- a/sdk/python/pulumi_gcp/datacatalog/entry_group.py +++ b/sdk/python/pulumi_gcp/datacatalog/entry_group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['EntryGroupArgs', 'EntryGroup'] diff --git a/sdk/python/pulumi_gcp/datacatalog/entry_group_iam_binding.py b/sdk/python/pulumi_gcp/datacatalog/entry_group_iam_binding.py index c1364ca5bd..518716ecbb 100644 --- a/sdk/python/pulumi_gcp/datacatalog/entry_group_iam_binding.py +++ b/sdk/python/pulumi_gcp/datacatalog/entry_group_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datacatalog/entry_group_iam_member.py b/sdk/python/pulumi_gcp/datacatalog/entry_group_iam_member.py index bf1e92cac9..c5ef61b3de 100644 --- a/sdk/python/pulumi_gcp/datacatalog/entry_group_iam_member.py +++ b/sdk/python/pulumi_gcp/datacatalog/entry_group_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datacatalog/entry_group_iam_policy.py b/sdk/python/pulumi_gcp/datacatalog/entry_group_iam_policy.py index 416ea44dc3..556178f81a 100644 --- a/sdk/python/pulumi_gcp/datacatalog/entry_group_iam_policy.py +++ b/sdk/python/pulumi_gcp/datacatalog/entry_group_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['EntryGroupIamPolicyArgs', 'EntryGroupIamPolicy'] diff --git a/sdk/python/pulumi_gcp/datacatalog/get_entry_group_iam_policy.py b/sdk/python/pulumi_gcp/datacatalog/get_entry_group_iam_policy.py index db3abb414c..83646b852f 100644 --- a/sdk/python/pulumi_gcp/datacatalog/get_entry_group_iam_policy.py +++ b/sdk/python/pulumi_gcp/datacatalog/get_entry_group_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/datacatalog/get_policy_tag_iam_policy.py b/sdk/python/pulumi_gcp/datacatalog/get_policy_tag_iam_policy.py index 5dbe13dae4..0fdfe97b6c 100644 --- a/sdk/python/pulumi_gcp/datacatalog/get_policy_tag_iam_policy.py +++ b/sdk/python/pulumi_gcp/datacatalog/get_policy_tag_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/datacatalog/get_tag_template_iam_policy.py b/sdk/python/pulumi_gcp/datacatalog/get_tag_template_iam_policy.py index 9cc82885e3..20fbb62ee2 100644 --- a/sdk/python/pulumi_gcp/datacatalog/get_tag_template_iam_policy.py +++ b/sdk/python/pulumi_gcp/datacatalog/get_tag_template_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/datacatalog/get_taxonomy_iam_policy.py b/sdk/python/pulumi_gcp/datacatalog/get_taxonomy_iam_policy.py index 1539254485..177b6b3801 100644 --- a/sdk/python/pulumi_gcp/datacatalog/get_taxonomy_iam_policy.py +++ b/sdk/python/pulumi_gcp/datacatalog/get_taxonomy_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/datacatalog/outputs.py b/sdk/python/pulumi_gcp/datacatalog/outputs.py index 80dcef8285..7e99b95a8a 100644 --- a/sdk/python/pulumi_gcp/datacatalog/outputs.py +++ b/sdk/python/pulumi_gcp/datacatalog/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/datacatalog/policy_tag.py b/sdk/python/pulumi_gcp/datacatalog/policy_tag.py index 8fc9e10ae9..baffacfbfb 100644 --- a/sdk/python/pulumi_gcp/datacatalog/policy_tag.py +++ b/sdk/python/pulumi_gcp/datacatalog/policy_tag.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['PolicyTagArgs', 'PolicyTag'] diff --git a/sdk/python/pulumi_gcp/datacatalog/policy_tag_iam_binding.py b/sdk/python/pulumi_gcp/datacatalog/policy_tag_iam_binding.py index 46457a7188..c482eb496b 100644 --- a/sdk/python/pulumi_gcp/datacatalog/policy_tag_iam_binding.py +++ b/sdk/python/pulumi_gcp/datacatalog/policy_tag_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datacatalog/policy_tag_iam_member.py b/sdk/python/pulumi_gcp/datacatalog/policy_tag_iam_member.py index aec2c5bc97..10cea64337 100644 --- a/sdk/python/pulumi_gcp/datacatalog/policy_tag_iam_member.py +++ b/sdk/python/pulumi_gcp/datacatalog/policy_tag_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datacatalog/policy_tag_iam_policy.py b/sdk/python/pulumi_gcp/datacatalog/policy_tag_iam_policy.py index 7a10cf35e6..779f0c82d4 100644 --- a/sdk/python/pulumi_gcp/datacatalog/policy_tag_iam_policy.py +++ b/sdk/python/pulumi_gcp/datacatalog/policy_tag_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['PolicyTagIamPolicyArgs', 'PolicyTagIamPolicy'] diff --git a/sdk/python/pulumi_gcp/datacatalog/tag.py b/sdk/python/pulumi_gcp/datacatalog/tag.py index 7356417f52..477d4ff8c9 100644 --- a/sdk/python/pulumi_gcp/datacatalog/tag.py +++ b/sdk/python/pulumi_gcp/datacatalog/tag.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datacatalog/tag_template.py b/sdk/python/pulumi_gcp/datacatalog/tag_template.py index e2e3a0cc68..da27174851 100644 --- a/sdk/python/pulumi_gcp/datacatalog/tag_template.py +++ b/sdk/python/pulumi_gcp/datacatalog/tag_template.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datacatalog/tag_template_iam_binding.py b/sdk/python/pulumi_gcp/datacatalog/tag_template_iam_binding.py index 3ddd5f5762..2148930ceb 100644 --- a/sdk/python/pulumi_gcp/datacatalog/tag_template_iam_binding.py +++ b/sdk/python/pulumi_gcp/datacatalog/tag_template_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datacatalog/tag_template_iam_member.py b/sdk/python/pulumi_gcp/datacatalog/tag_template_iam_member.py index 05195d5d83..41401a58be 100644 --- a/sdk/python/pulumi_gcp/datacatalog/tag_template_iam_member.py +++ b/sdk/python/pulumi_gcp/datacatalog/tag_template_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datacatalog/tag_template_iam_policy.py b/sdk/python/pulumi_gcp/datacatalog/tag_template_iam_policy.py index 4d51adea2b..f2e4c9142a 100644 --- a/sdk/python/pulumi_gcp/datacatalog/tag_template_iam_policy.py +++ b/sdk/python/pulumi_gcp/datacatalog/tag_template_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TagTemplateIamPolicyArgs', 'TagTemplateIamPolicy'] diff --git a/sdk/python/pulumi_gcp/datacatalog/taxonomy.py b/sdk/python/pulumi_gcp/datacatalog/taxonomy.py index 083d9efc4f..d337b85ac2 100644 --- a/sdk/python/pulumi_gcp/datacatalog/taxonomy.py +++ b/sdk/python/pulumi_gcp/datacatalog/taxonomy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TaxonomyArgs', 'Taxonomy'] diff --git a/sdk/python/pulumi_gcp/datacatalog/taxonomy_iam_binding.py b/sdk/python/pulumi_gcp/datacatalog/taxonomy_iam_binding.py index 7f14126824..451fbfeef9 100644 --- a/sdk/python/pulumi_gcp/datacatalog/taxonomy_iam_binding.py +++ b/sdk/python/pulumi_gcp/datacatalog/taxonomy_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datacatalog/taxonomy_iam_member.py b/sdk/python/pulumi_gcp/datacatalog/taxonomy_iam_member.py index adcb26a2ab..00729cab3e 100644 --- a/sdk/python/pulumi_gcp/datacatalog/taxonomy_iam_member.py +++ b/sdk/python/pulumi_gcp/datacatalog/taxonomy_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datacatalog/taxonomy_iam_policy.py b/sdk/python/pulumi_gcp/datacatalog/taxonomy_iam_policy.py index b71ed80627..e9d22d6b9f 100644 --- a/sdk/python/pulumi_gcp/datacatalog/taxonomy_iam_policy.py +++ b/sdk/python/pulumi_gcp/datacatalog/taxonomy_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TaxonomyIamPolicyArgs', 'TaxonomyIamPolicy'] diff --git a/sdk/python/pulumi_gcp/dataflow/_inputs.py b/sdk/python/pulumi_gcp/dataflow/_inputs.py index 02089ba84f..bc3755ae34 100644 --- a/sdk/python/pulumi_gcp/dataflow/_inputs.py +++ b/sdk/python/pulumi_gcp/dataflow/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataflow/flex_template_job.py b/sdk/python/pulumi_gcp/dataflow/flex_template_job.py index 66aece4150..aebe32e70f 100644 --- a/sdk/python/pulumi_gcp/dataflow/flex_template_job.py +++ b/sdk/python/pulumi_gcp/dataflow/flex_template_job.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['FlexTemplateJobArgs', 'FlexTemplateJob'] diff --git a/sdk/python/pulumi_gcp/dataflow/job.py b/sdk/python/pulumi_gcp/dataflow/job.py index c2abe6eca8..2845a4d689 100644 --- a/sdk/python/pulumi_gcp/dataflow/job.py +++ b/sdk/python/pulumi_gcp/dataflow/job.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['JobArgs', 'Job'] diff --git a/sdk/python/pulumi_gcp/dataflow/outputs.py b/sdk/python/pulumi_gcp/dataflow/outputs.py index 344cde7e31..7ff3bb7c2e 100644 --- a/sdk/python/pulumi_gcp/dataflow/outputs.py +++ b/sdk/python/pulumi_gcp/dataflow/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/dataflow/pipeline.py b/sdk/python/pulumi_gcp/dataflow/pipeline.py index d1bb34a27f..398bf29695 100644 --- a/sdk/python/pulumi_gcp/dataflow/pipeline.py +++ b/sdk/python/pulumi_gcp/dataflow/pipeline.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataform/_inputs.py b/sdk/python/pulumi_gcp/dataform/_inputs.py index 3af4c6738c..eed03386a9 100644 --- a/sdk/python/pulumi_gcp/dataform/_inputs.py +++ b/sdk/python/pulumi_gcp/dataform/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataform/get_repository_iam_policy.py b/sdk/python/pulumi_gcp/dataform/get_repository_iam_policy.py index c88fd2ca8b..99b65d3c90 100644 --- a/sdk/python/pulumi_gcp/dataform/get_repository_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataform/get_repository_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataform/outputs.py b/sdk/python/pulumi_gcp/dataform/outputs.py index 9ef6bfdb2c..2d4a50a071 100644 --- a/sdk/python/pulumi_gcp/dataform/outputs.py +++ b/sdk/python/pulumi_gcp/dataform/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/dataform/repository.py b/sdk/python/pulumi_gcp/dataform/repository.py index 306fad6681..0a3b6d0016 100644 --- a/sdk/python/pulumi_gcp/dataform/repository.py +++ b/sdk/python/pulumi_gcp/dataform/repository.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataform/repository_iam_binding.py b/sdk/python/pulumi_gcp/dataform/repository_iam_binding.py index 05faae40dc..b14c0c4858 100644 --- a/sdk/python/pulumi_gcp/dataform/repository_iam_binding.py +++ b/sdk/python/pulumi_gcp/dataform/repository_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataform/repository_iam_member.py b/sdk/python/pulumi_gcp/dataform/repository_iam_member.py index 30d53c1e87..6f502f186b 100644 --- a/sdk/python/pulumi_gcp/dataform/repository_iam_member.py +++ b/sdk/python/pulumi_gcp/dataform/repository_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataform/repository_iam_policy.py b/sdk/python/pulumi_gcp/dataform/repository_iam_policy.py index 6167ce82f7..28821a12be 100644 --- a/sdk/python/pulumi_gcp/dataform/repository_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataform/repository_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RepositoryIamPolicyArgs', 'RepositoryIamPolicy'] diff --git a/sdk/python/pulumi_gcp/dataform/repository_release_config.py b/sdk/python/pulumi_gcp/dataform/repository_release_config.py index fefed748f3..10ab7a97c3 100644 --- a/sdk/python/pulumi_gcp/dataform/repository_release_config.py +++ b/sdk/python/pulumi_gcp/dataform/repository_release_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataform/repository_workflow_config.py b/sdk/python/pulumi_gcp/dataform/repository_workflow_config.py index e143ae616b..ced486f9a2 100644 --- a/sdk/python/pulumi_gcp/dataform/repository_workflow_config.py +++ b/sdk/python/pulumi_gcp/dataform/repository_workflow_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datafusion/_inputs.py b/sdk/python/pulumi_gcp/datafusion/_inputs.py index ef7db82b7b..4c1a75342a 100644 --- a/sdk/python/pulumi_gcp/datafusion/_inputs.py +++ b/sdk/python/pulumi_gcp/datafusion/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/datafusion/get_instance_iam_policy.py b/sdk/python/pulumi_gcp/datafusion/get_instance_iam_policy.py index ff03ae53f7..e247213db5 100644 --- a/sdk/python/pulumi_gcp/datafusion/get_instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/datafusion/get_instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/datafusion/instance.py b/sdk/python/pulumi_gcp/datafusion/instance.py index 5856e2c253..03fb2e1aad 100644 --- a/sdk/python/pulumi_gcp/datafusion/instance.py +++ b/sdk/python/pulumi_gcp/datafusion/instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datafusion/outputs.py b/sdk/python/pulumi_gcp/datafusion/outputs.py index 798890b075..e54b58b5b6 100644 --- a/sdk/python/pulumi_gcp/datafusion/outputs.py +++ b/sdk/python/pulumi_gcp/datafusion/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataloss/_inputs.py b/sdk/python/pulumi_gcp/dataloss/_inputs.py index 2d0fda18d3..fdfd4cecad 100644 --- a/sdk/python/pulumi_gcp/dataloss/_inputs.py +++ b/sdk/python/pulumi_gcp/dataloss/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataloss/outputs.py b/sdk/python/pulumi_gcp/dataloss/outputs.py index 3d020f3e6e..60fe7d4030 100644 --- a/sdk/python/pulumi_gcp/dataloss/outputs.py +++ b/sdk/python/pulumi_gcp/dataloss/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/dataloss/prevention_deidentify_template.py b/sdk/python/pulumi_gcp/dataloss/prevention_deidentify_template.py index c3573e739f..f39343bcb1 100644 --- a/sdk/python/pulumi_gcp/dataloss/prevention_deidentify_template.py +++ b/sdk/python/pulumi_gcp/dataloss/prevention_deidentify_template.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataloss/prevention_inspect_template.py b/sdk/python/pulumi_gcp/dataloss/prevention_inspect_template.py index 3b659c2e9c..ef0daae10c 100644 --- a/sdk/python/pulumi_gcp/dataloss/prevention_inspect_template.py +++ b/sdk/python/pulumi_gcp/dataloss/prevention_inspect_template.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataloss/prevention_job_trigger.py b/sdk/python/pulumi_gcp/dataloss/prevention_job_trigger.py index 9252829cd2..6a4f08499f 100644 --- a/sdk/python/pulumi_gcp/dataloss/prevention_job_trigger.py +++ b/sdk/python/pulumi_gcp/dataloss/prevention_job_trigger.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataloss/prevention_stored_info_type.py b/sdk/python/pulumi_gcp/dataloss/prevention_stored_info_type.py index 5af1e9f06f..4d2762f4ef 100644 --- a/sdk/python/pulumi_gcp/dataloss/prevention_stored_info_type.py +++ b/sdk/python/pulumi_gcp/dataloss/prevention_stored_info_type.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/_inputs.py b/sdk/python/pulumi_gcp/dataplex/_inputs.py index 49c72eee2c..cc6041067e 100644 --- a/sdk/python/pulumi_gcp/dataplex/_inputs.py +++ b/sdk/python/pulumi_gcp/dataplex/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataplex/asset.py b/sdk/python/pulumi_gcp/dataplex/asset.py index e90cac1eb6..e9e872b978 100644 --- a/sdk/python/pulumi_gcp/dataplex/asset.py +++ b/sdk/python/pulumi_gcp/dataplex/asset.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/asset_iam_binding.py b/sdk/python/pulumi_gcp/dataplex/asset_iam_binding.py index 7ec7a0b622..d0127fdd60 100644 --- a/sdk/python/pulumi_gcp/dataplex/asset_iam_binding.py +++ b/sdk/python/pulumi_gcp/dataplex/asset_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/asset_iam_member.py b/sdk/python/pulumi_gcp/dataplex/asset_iam_member.py index f19b5276cb..ad080ff254 100644 --- a/sdk/python/pulumi_gcp/dataplex/asset_iam_member.py +++ b/sdk/python/pulumi_gcp/dataplex/asset_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/asset_iam_policy.py b/sdk/python/pulumi_gcp/dataplex/asset_iam_policy.py index 363dd73a29..d097e7391e 100644 --- a/sdk/python/pulumi_gcp/dataplex/asset_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataplex/asset_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AssetIamPolicyArgs', 'AssetIamPolicy'] diff --git a/sdk/python/pulumi_gcp/dataplex/datascan.py b/sdk/python/pulumi_gcp/dataplex/datascan.py index 529b73d64f..ba6bef224f 100644 --- a/sdk/python/pulumi_gcp/dataplex/datascan.py +++ b/sdk/python/pulumi_gcp/dataplex/datascan.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/datascan_iam_binding.py b/sdk/python/pulumi_gcp/dataplex/datascan_iam_binding.py index 83ef25b22d..9d2ae02742 100644 --- a/sdk/python/pulumi_gcp/dataplex/datascan_iam_binding.py +++ b/sdk/python/pulumi_gcp/dataplex/datascan_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/datascan_iam_member.py b/sdk/python/pulumi_gcp/dataplex/datascan_iam_member.py index f05bfeb60e..dfa4bda195 100644 --- a/sdk/python/pulumi_gcp/dataplex/datascan_iam_member.py +++ b/sdk/python/pulumi_gcp/dataplex/datascan_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/datascan_iam_policy.py b/sdk/python/pulumi_gcp/dataplex/datascan_iam_policy.py index 2c0da17323..774fc58673 100644 --- a/sdk/python/pulumi_gcp/dataplex/datascan_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataplex/datascan_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DatascanIamPolicyArgs', 'DatascanIamPolicy'] diff --git a/sdk/python/pulumi_gcp/dataplex/get_asset_iam_policy.py b/sdk/python/pulumi_gcp/dataplex/get_asset_iam_policy.py index fa142b5da1..aa822fb794 100644 --- a/sdk/python/pulumi_gcp/dataplex/get_asset_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataplex/get_asset_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataplex/get_datascan_iam_policy.py b/sdk/python/pulumi_gcp/dataplex/get_datascan_iam_policy.py index fd61eaee68..4b29b9439b 100644 --- a/sdk/python/pulumi_gcp/dataplex/get_datascan_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataplex/get_datascan_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataplex/get_lake_iam_policy.py b/sdk/python/pulumi_gcp/dataplex/get_lake_iam_policy.py index 5a5d7c07e8..3840ac1ba5 100644 --- a/sdk/python/pulumi_gcp/dataplex/get_lake_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataplex/get_lake_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataplex/get_task_iam_policy.py b/sdk/python/pulumi_gcp/dataplex/get_task_iam_policy.py index ed5d62149a..4496f78b97 100644 --- a/sdk/python/pulumi_gcp/dataplex/get_task_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataplex/get_task_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataplex/get_zone_iam_policy.py b/sdk/python/pulumi_gcp/dataplex/get_zone_iam_policy.py index 967576b1a2..19ca0a4a53 100644 --- a/sdk/python/pulumi_gcp/dataplex/get_zone_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataplex/get_zone_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataplex/lake.py b/sdk/python/pulumi_gcp/dataplex/lake.py index 05c95221f7..15a4609f53 100644 --- a/sdk/python/pulumi_gcp/dataplex/lake.py +++ b/sdk/python/pulumi_gcp/dataplex/lake.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/lake_iam_binding.py b/sdk/python/pulumi_gcp/dataplex/lake_iam_binding.py index 703f461a07..138f838e17 100644 --- a/sdk/python/pulumi_gcp/dataplex/lake_iam_binding.py +++ b/sdk/python/pulumi_gcp/dataplex/lake_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/lake_iam_member.py b/sdk/python/pulumi_gcp/dataplex/lake_iam_member.py index 936162a9e3..9f4fa4b264 100644 --- a/sdk/python/pulumi_gcp/dataplex/lake_iam_member.py +++ b/sdk/python/pulumi_gcp/dataplex/lake_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/lake_iam_policy.py b/sdk/python/pulumi_gcp/dataplex/lake_iam_policy.py index 327bdcaa7e..fd6e8a05d2 100644 --- a/sdk/python/pulumi_gcp/dataplex/lake_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataplex/lake_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['LakeIamPolicyArgs', 'LakeIamPolicy'] diff --git a/sdk/python/pulumi_gcp/dataplex/outputs.py b/sdk/python/pulumi_gcp/dataplex/outputs.py index 1771de1704..7811566de5 100644 --- a/sdk/python/pulumi_gcp/dataplex/outputs.py +++ b/sdk/python/pulumi_gcp/dataplex/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/dataplex/task.py b/sdk/python/pulumi_gcp/dataplex/task.py index 6d16b5f568..c19ace0892 100644 --- a/sdk/python/pulumi_gcp/dataplex/task.py +++ b/sdk/python/pulumi_gcp/dataplex/task.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/task_iam_binding.py b/sdk/python/pulumi_gcp/dataplex/task_iam_binding.py index d8849fca11..598380084b 100644 --- a/sdk/python/pulumi_gcp/dataplex/task_iam_binding.py +++ b/sdk/python/pulumi_gcp/dataplex/task_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/task_iam_member.py b/sdk/python/pulumi_gcp/dataplex/task_iam_member.py index ef36b8d9ee..9179f40c18 100644 --- a/sdk/python/pulumi_gcp/dataplex/task_iam_member.py +++ b/sdk/python/pulumi_gcp/dataplex/task_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/task_iam_policy.py b/sdk/python/pulumi_gcp/dataplex/task_iam_policy.py index 7d33597aa8..9598b3af55 100644 --- a/sdk/python/pulumi_gcp/dataplex/task_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataplex/task_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TaskIamPolicyArgs', 'TaskIamPolicy'] diff --git a/sdk/python/pulumi_gcp/dataplex/zone.py b/sdk/python/pulumi_gcp/dataplex/zone.py index 9e3e841827..665e91b350 100644 --- a/sdk/python/pulumi_gcp/dataplex/zone.py +++ b/sdk/python/pulumi_gcp/dataplex/zone.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/zone_iam_binding.py b/sdk/python/pulumi_gcp/dataplex/zone_iam_binding.py index 29a8edb860..0141c3dc7b 100644 --- a/sdk/python/pulumi_gcp/dataplex/zone_iam_binding.py +++ b/sdk/python/pulumi_gcp/dataplex/zone_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/zone_iam_member.py b/sdk/python/pulumi_gcp/dataplex/zone_iam_member.py index bef380f32c..d78722f167 100644 --- a/sdk/python/pulumi_gcp/dataplex/zone_iam_member.py +++ b/sdk/python/pulumi_gcp/dataplex/zone_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataplex/zone_iam_policy.py b/sdk/python/pulumi_gcp/dataplex/zone_iam_policy.py index 33fc1e39b8..e1505560ef 100644 --- a/sdk/python/pulumi_gcp/dataplex/zone_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataplex/zone_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ZoneIamPolicyArgs', 'ZoneIamPolicy'] diff --git a/sdk/python/pulumi_gcp/dataproc/_inputs.py b/sdk/python/pulumi_gcp/dataproc/_inputs.py index 3da58cbcb7..127fcfaaae 100644 --- a/sdk/python/pulumi_gcp/dataproc/_inputs.py +++ b/sdk/python/pulumi_gcp/dataproc/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataproc/autoscaling_policy.py b/sdk/python/pulumi_gcp/dataproc/autoscaling_policy.py index c1a9739483..0ed9b1073f 100644 --- a/sdk/python/pulumi_gcp/dataproc/autoscaling_policy.py +++ b/sdk/python/pulumi_gcp/dataproc/autoscaling_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py b/sdk/python/pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py index 77a7a1fe83..547c5ae05d 100644 --- a/sdk/python/pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +++ b/sdk/python/pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataproc/autoscaling_policy_iam_member.py b/sdk/python/pulumi_gcp/dataproc/autoscaling_policy_iam_member.py index b0f59c8dad..b30e8ae73c 100644 --- a/sdk/python/pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +++ b/sdk/python/pulumi_gcp/dataproc/autoscaling_policy_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py b/sdk/python/pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py index 8ee8d7488e..ed5acc9887 100644 --- a/sdk/python/pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AutoscalingPolicyIamPolicyArgs', 'AutoscalingPolicyIamPolicy'] diff --git a/sdk/python/pulumi_gcp/dataproc/cluster.py b/sdk/python/pulumi_gcp/dataproc/cluster.py index b7fe3bad9f..d69637b2f2 100644 --- a/sdk/python/pulumi_gcp/dataproc/cluster.py +++ b/sdk/python/pulumi_gcp/dataproc/cluster.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataproc/cluster_iam_binding.py b/sdk/python/pulumi_gcp/dataproc/cluster_iam_binding.py index 079ec4048d..c95bc0c003 100644 --- a/sdk/python/pulumi_gcp/dataproc/cluster_iam_binding.py +++ b/sdk/python/pulumi_gcp/dataproc/cluster_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataproc/cluster_iam_member.py b/sdk/python/pulumi_gcp/dataproc/cluster_iam_member.py index dfb959475f..cdcbe32b27 100644 --- a/sdk/python/pulumi_gcp/dataproc/cluster_iam_member.py +++ b/sdk/python/pulumi_gcp/dataproc/cluster_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataproc/cluster_iam_policy.py b/sdk/python/pulumi_gcp/dataproc/cluster_iam_policy.py index d9be91b26a..79ffd14780 100644 --- a/sdk/python/pulumi_gcp/dataproc/cluster_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataproc/cluster_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ClusterIAMPolicyArgs', 'ClusterIAMPolicy'] diff --git a/sdk/python/pulumi_gcp/dataproc/get_autoscaling_policy_iam_policy.py b/sdk/python/pulumi_gcp/dataproc/get_autoscaling_policy_iam_policy.py index c6282529f5..6009c04f08 100644 --- a/sdk/python/pulumi_gcp/dataproc/get_autoscaling_policy_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataproc/get_autoscaling_policy_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataproc/get_cluster_iam_policy.py b/sdk/python/pulumi_gcp/dataproc/get_cluster_iam_policy.py index 53bb28a548..a2d98e6ad1 100644 --- a/sdk/python/pulumi_gcp/dataproc/get_cluster_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataproc/get_cluster_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataproc/get_job_iam_policy.py b/sdk/python/pulumi_gcp/dataproc/get_job_iam_policy.py index 8143ad1ebe..3d13726869 100644 --- a/sdk/python/pulumi_gcp/dataproc/get_job_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataproc/get_job_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py b/sdk/python/pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py index a023e5b47f..464fed9154 100644 --- a/sdk/python/pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataproc/get_metastore_service.py b/sdk/python/pulumi_gcp/dataproc/get_metastore_service.py index 35ad55bc99..fe278c0c59 100644 --- a/sdk/python/pulumi_gcp/dataproc/get_metastore_service.py +++ b/sdk/python/pulumi_gcp/dataproc/get_metastore_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/dataproc/get_metastore_service_iam_policy.py b/sdk/python/pulumi_gcp/dataproc/get_metastore_service_iam_policy.py index ab9cf32b1d..16b9fefd8c 100644 --- a/sdk/python/pulumi_gcp/dataproc/get_metastore_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataproc/get_metastore_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dataproc/job.py b/sdk/python/pulumi_gcp/dataproc/job.py index cadb06fb22..b41008a66e 100644 --- a/sdk/python/pulumi_gcp/dataproc/job.py +++ b/sdk/python/pulumi_gcp/dataproc/job.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataproc/job_iam_binding.py b/sdk/python/pulumi_gcp/dataproc/job_iam_binding.py index e862bd7968..bbb29975bc 100644 --- a/sdk/python/pulumi_gcp/dataproc/job_iam_binding.py +++ b/sdk/python/pulumi_gcp/dataproc/job_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataproc/job_iam_member.py b/sdk/python/pulumi_gcp/dataproc/job_iam_member.py index 9b5a0b92e7..d39213e519 100644 --- a/sdk/python/pulumi_gcp/dataproc/job_iam_member.py +++ b/sdk/python/pulumi_gcp/dataproc/job_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataproc/job_iam_policy.py b/sdk/python/pulumi_gcp/dataproc/job_iam_policy.py index 48446c4878..0d9a18eb87 100644 --- a/sdk/python/pulumi_gcp/dataproc/job_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataproc/job_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['JobIAMPolicyArgs', 'JobIAMPolicy'] diff --git a/sdk/python/pulumi_gcp/dataproc/metastore_federation.py b/sdk/python/pulumi_gcp/dataproc/metastore_federation.py index f0b2c392d3..7307893207 100644 --- a/sdk/python/pulumi_gcp/dataproc/metastore_federation.py +++ b/sdk/python/pulumi_gcp/dataproc/metastore_federation.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataproc/metastore_federation_iam_binding.py b/sdk/python/pulumi_gcp/dataproc/metastore_federation_iam_binding.py index 15cc815305..20b5e863b2 100644 --- a/sdk/python/pulumi_gcp/dataproc/metastore_federation_iam_binding.py +++ b/sdk/python/pulumi_gcp/dataproc/metastore_federation_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataproc/metastore_federation_iam_member.py b/sdk/python/pulumi_gcp/dataproc/metastore_federation_iam_member.py index db5aefa39d..6da3d107e2 100644 --- a/sdk/python/pulumi_gcp/dataproc/metastore_federation_iam_member.py +++ b/sdk/python/pulumi_gcp/dataproc/metastore_federation_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataproc/metastore_federation_iam_policy.py b/sdk/python/pulumi_gcp/dataproc/metastore_federation_iam_policy.py index 50ccc1e0bb..847ae3217e 100644 --- a/sdk/python/pulumi_gcp/dataproc/metastore_federation_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataproc/metastore_federation_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['MetastoreFederationIamPolicyArgs', 'MetastoreFederationIamPolicy'] diff --git a/sdk/python/pulumi_gcp/dataproc/metastore_service.py b/sdk/python/pulumi_gcp/dataproc/metastore_service.py index 05a44abbe3..5c3ee67525 100644 --- a/sdk/python/pulumi_gcp/dataproc/metastore_service.py +++ b/sdk/python/pulumi_gcp/dataproc/metastore_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataproc/metastore_service_iam_binding.py b/sdk/python/pulumi_gcp/dataproc/metastore_service_iam_binding.py index 272fa46743..169cd32c64 100644 --- a/sdk/python/pulumi_gcp/dataproc/metastore_service_iam_binding.py +++ b/sdk/python/pulumi_gcp/dataproc/metastore_service_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataproc/metastore_service_iam_member.py b/sdk/python/pulumi_gcp/dataproc/metastore_service_iam_member.py index fa0c185e0d..946ba9efb9 100644 --- a/sdk/python/pulumi_gcp/dataproc/metastore_service_iam_member.py +++ b/sdk/python/pulumi_gcp/dataproc/metastore_service_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dataproc/metastore_service_iam_policy.py b/sdk/python/pulumi_gcp/dataproc/metastore_service_iam_policy.py index b4256f604a..ef47f7983e 100644 --- a/sdk/python/pulumi_gcp/dataproc/metastore_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/dataproc/metastore_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['MetastoreServiceIamPolicyArgs', 'MetastoreServiceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/dataproc/outputs.py b/sdk/python/pulumi_gcp/dataproc/outputs.py index 24f1212a1d..beeab113a3 100644 --- a/sdk/python/pulumi_gcp/dataproc/outputs.py +++ b/sdk/python/pulumi_gcp/dataproc/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/dataproc/workflow_template.py b/sdk/python/pulumi_gcp/dataproc/workflow_template.py index 2ccb03c4a0..ad85a7dfe4 100644 --- a/sdk/python/pulumi_gcp/dataproc/workflow_template.py +++ b/sdk/python/pulumi_gcp/dataproc/workflow_template.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datastore/_inputs.py b/sdk/python/pulumi_gcp/datastore/_inputs.py index 00c8f08508..56cfd39e3a 100644 --- a/sdk/python/pulumi_gcp/datastore/_inputs.py +++ b/sdk/python/pulumi_gcp/datastore/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/datastore/data_store_index.py b/sdk/python/pulumi_gcp/datastore/data_store_index.py index e4037ca174..f245123f58 100644 --- a/sdk/python/pulumi_gcp/datastore/data_store_index.py +++ b/sdk/python/pulumi_gcp/datastore/data_store_index.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datastore/outputs.py b/sdk/python/pulumi_gcp/datastore/outputs.py index a6b952c6d4..29a9070906 100644 --- a/sdk/python/pulumi_gcp/datastore/outputs.py +++ b/sdk/python/pulumi_gcp/datastore/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/datastream/_inputs.py b/sdk/python/pulumi_gcp/datastream/_inputs.py index 14b6d4be99..3c3ca0c7f8 100644 --- a/sdk/python/pulumi_gcp/datastream/_inputs.py +++ b/sdk/python/pulumi_gcp/datastream/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/datastream/connection_profile.py b/sdk/python/pulumi_gcp/datastream/connection_profile.py index 116f95b3f5..0a91623b1a 100644 --- a/sdk/python/pulumi_gcp/datastream/connection_profile.py +++ b/sdk/python/pulumi_gcp/datastream/connection_profile.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datastream/get_static_ips.py b/sdk/python/pulumi_gcp/datastream/get_static_ips.py index f90eb4779d..b7030c249e 100644 --- a/sdk/python/pulumi_gcp/datastream/get_static_ips.py +++ b/sdk/python/pulumi_gcp/datastream/get_static_ips.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/datastream/outputs.py b/sdk/python/pulumi_gcp/datastream/outputs.py index e0fc0a415c..c10a563df0 100644 --- a/sdk/python/pulumi_gcp/datastream/outputs.py +++ b/sdk/python/pulumi_gcp/datastream/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/datastream/private_connection.py b/sdk/python/pulumi_gcp/datastream/private_connection.py index 570a1d5088..f201f6a5ab 100644 --- a/sdk/python/pulumi_gcp/datastream/private_connection.py +++ b/sdk/python/pulumi_gcp/datastream/private_connection.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/datastream/stream.py b/sdk/python/pulumi_gcp/datastream/stream.py index 8349afb1fc..fbacce84be 100644 --- a/sdk/python/pulumi_gcp/datastream/stream.py +++ b/sdk/python/pulumi_gcp/datastream/stream.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/deploymentmanager/_inputs.py b/sdk/python/pulumi_gcp/deploymentmanager/_inputs.py index fd7768b81c..b969771179 100644 --- a/sdk/python/pulumi_gcp/deploymentmanager/_inputs.py +++ b/sdk/python/pulumi_gcp/deploymentmanager/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/deploymentmanager/deployment.py b/sdk/python/pulumi_gcp/deploymentmanager/deployment.py index 3f226148f6..926d3fa8be 100644 --- a/sdk/python/pulumi_gcp/deploymentmanager/deployment.py +++ b/sdk/python/pulumi_gcp/deploymentmanager/deployment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/deploymentmanager/outputs.py b/sdk/python/pulumi_gcp/deploymentmanager/outputs.py index 49e27efb4c..0303774118 100644 --- a/sdk/python/pulumi_gcp/deploymentmanager/outputs.py +++ b/sdk/python/pulumi_gcp/deploymentmanager/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/diagflow/_inputs.py b/sdk/python/pulumi_gcp/diagflow/_inputs.py index 492691b21b..307ad4199c 100644 --- a/sdk/python/pulumi_gcp/diagflow/_inputs.py +++ b/sdk/python/pulumi_gcp/diagflow/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/diagflow/agent.py b/sdk/python/pulumi_gcp/diagflow/agent.py index 6fca34b72e..a2c989f485 100644 --- a/sdk/python/pulumi_gcp/diagflow/agent.py +++ b/sdk/python/pulumi_gcp/diagflow/agent.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AgentArgs', 'Agent'] diff --git a/sdk/python/pulumi_gcp/diagflow/cx_agent.py b/sdk/python/pulumi_gcp/diagflow/cx_agent.py index d46e7c38a1..4858eada67 100644 --- a/sdk/python/pulumi_gcp/diagflow/cx_agent.py +++ b/sdk/python/pulumi_gcp/diagflow/cx_agent.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/diagflow/cx_entity_type.py b/sdk/python/pulumi_gcp/diagflow/cx_entity_type.py index af963cf493..9704ba95fb 100644 --- a/sdk/python/pulumi_gcp/diagflow/cx_entity_type.py +++ b/sdk/python/pulumi_gcp/diagflow/cx_entity_type.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/diagflow/cx_environment.py b/sdk/python/pulumi_gcp/diagflow/cx_environment.py index 79bc34053d..675816a696 100644 --- a/sdk/python/pulumi_gcp/diagflow/cx_environment.py +++ b/sdk/python/pulumi_gcp/diagflow/cx_environment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/diagflow/cx_flow.py b/sdk/python/pulumi_gcp/diagflow/cx_flow.py index 2f2d542b58..d582056740 100644 --- a/sdk/python/pulumi_gcp/diagflow/cx_flow.py +++ b/sdk/python/pulumi_gcp/diagflow/cx_flow.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/diagflow/cx_intent.py b/sdk/python/pulumi_gcp/diagflow/cx_intent.py index 3380059b94..da0de8b17f 100644 --- a/sdk/python/pulumi_gcp/diagflow/cx_intent.py +++ b/sdk/python/pulumi_gcp/diagflow/cx_intent.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/diagflow/cx_page.py b/sdk/python/pulumi_gcp/diagflow/cx_page.py index 8e4236053a..b28dc6f3a6 100644 --- a/sdk/python/pulumi_gcp/diagflow/cx_page.py +++ b/sdk/python/pulumi_gcp/diagflow/cx_page.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/diagflow/cx_security_settings.py b/sdk/python/pulumi_gcp/diagflow/cx_security_settings.py index 901c08cd5e..1226ad96cb 100644 --- a/sdk/python/pulumi_gcp/diagflow/cx_security_settings.py +++ b/sdk/python/pulumi_gcp/diagflow/cx_security_settings.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/diagflow/cx_test_case.py b/sdk/python/pulumi_gcp/diagflow/cx_test_case.py index 021eb4f8b6..932e1cbc41 100644 --- a/sdk/python/pulumi_gcp/diagflow/cx_test_case.py +++ b/sdk/python/pulumi_gcp/diagflow/cx_test_case.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/diagflow/cx_version.py b/sdk/python/pulumi_gcp/diagflow/cx_version.py index d1527b152a..6059a95003 100644 --- a/sdk/python/pulumi_gcp/diagflow/cx_version.py +++ b/sdk/python/pulumi_gcp/diagflow/cx_version.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/diagflow/cx_webhook.py b/sdk/python/pulumi_gcp/diagflow/cx_webhook.py index 9c0cb18059..28494142a5 100644 --- a/sdk/python/pulumi_gcp/diagflow/cx_webhook.py +++ b/sdk/python/pulumi_gcp/diagflow/cx_webhook.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/diagflow/entity_type.py b/sdk/python/pulumi_gcp/diagflow/entity_type.py index 1c2c4cd963..c782c1ce8c 100644 --- a/sdk/python/pulumi_gcp/diagflow/entity_type.py +++ b/sdk/python/pulumi_gcp/diagflow/entity_type.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/diagflow/fulfillment.py b/sdk/python/pulumi_gcp/diagflow/fulfillment.py index e05e9ea0c8..425c3fcd35 100644 --- a/sdk/python/pulumi_gcp/diagflow/fulfillment.py +++ b/sdk/python/pulumi_gcp/diagflow/fulfillment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/diagflow/intent.py b/sdk/python/pulumi_gcp/diagflow/intent.py index c5a01e6bea..3d6c32b0dd 100644 --- a/sdk/python/pulumi_gcp/diagflow/intent.py +++ b/sdk/python/pulumi_gcp/diagflow/intent.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/diagflow/outputs.py b/sdk/python/pulumi_gcp/diagflow/outputs.py index 7f0f8bebc4..83308e760f 100644 --- a/sdk/python/pulumi_gcp/diagflow/outputs.py +++ b/sdk/python/pulumi_gcp/diagflow/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/discoveryengine/_inputs.py b/sdk/python/pulumi_gcp/discoveryengine/_inputs.py index 32033efe0c..b271e7b728 100644 --- a/sdk/python/pulumi_gcp/discoveryengine/_inputs.py +++ b/sdk/python/pulumi_gcp/discoveryengine/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/discoveryengine/chat_engine.py b/sdk/python/pulumi_gcp/discoveryengine/chat_engine.py index e15930f127..f8cd9164ae 100644 --- a/sdk/python/pulumi_gcp/discoveryengine/chat_engine.py +++ b/sdk/python/pulumi_gcp/discoveryengine/chat_engine.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/discoveryengine/data_store.py b/sdk/python/pulumi_gcp/discoveryengine/data_store.py index 00d020deb6..44d1911c61 100644 --- a/sdk/python/pulumi_gcp/discoveryengine/data_store.py +++ b/sdk/python/pulumi_gcp/discoveryengine/data_store.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DataStoreArgs', 'DataStore'] diff --git a/sdk/python/pulumi_gcp/discoveryengine/outputs.py b/sdk/python/pulumi_gcp/discoveryengine/outputs.py index 401e0af3f9..7503767a38 100644 --- a/sdk/python/pulumi_gcp/discoveryengine/outputs.py +++ b/sdk/python/pulumi_gcp/discoveryengine/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/discoveryengine/search_engine.py b/sdk/python/pulumi_gcp/discoveryengine/search_engine.py index e49b50917a..9828c14d85 100644 --- a/sdk/python/pulumi_gcp/discoveryengine/search_engine.py +++ b/sdk/python/pulumi_gcp/discoveryengine/search_engine.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dns/_inputs.py b/sdk/python/pulumi_gcp/dns/_inputs.py index 59980586c9..5b13f61269 100644 --- a/sdk/python/pulumi_gcp/dns/_inputs.py +++ b/sdk/python/pulumi_gcp/dns/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dns/dns_managed_zone_iam_binding.py b/sdk/python/pulumi_gcp/dns/dns_managed_zone_iam_binding.py index 4134e61e25..5686aa9236 100644 --- a/sdk/python/pulumi_gcp/dns/dns_managed_zone_iam_binding.py +++ b/sdk/python/pulumi_gcp/dns/dns_managed_zone_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dns/dns_managed_zone_iam_member.py b/sdk/python/pulumi_gcp/dns/dns_managed_zone_iam_member.py index d2f1b8d938..2251b8e462 100644 --- a/sdk/python/pulumi_gcp/dns/dns_managed_zone_iam_member.py +++ b/sdk/python/pulumi_gcp/dns/dns_managed_zone_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dns/dns_managed_zone_iam_policy.py b/sdk/python/pulumi_gcp/dns/dns_managed_zone_iam_policy.py index 20664939d4..5f141db0a8 100644 --- a/sdk/python/pulumi_gcp/dns/dns_managed_zone_iam_policy.py +++ b/sdk/python/pulumi_gcp/dns/dns_managed_zone_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DnsManagedZoneIamPolicyArgs', 'DnsManagedZoneIamPolicy'] diff --git a/sdk/python/pulumi_gcp/dns/get_keys.py b/sdk/python/pulumi_gcp/dns/get_keys.py index a244e88060..e9148cdd25 100644 --- a/sdk/python/pulumi_gcp/dns/get_keys.py +++ b/sdk/python/pulumi_gcp/dns/get_keys.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/dns/get_managed_zone.py b/sdk/python/pulumi_gcp/dns/get_managed_zone.py index 61e28d5b31..3a1557696b 100644 --- a/sdk/python/pulumi_gcp/dns/get_managed_zone.py +++ b/sdk/python/pulumi_gcp/dns/get_managed_zone.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dns/get_managed_zone_iam_policy.py b/sdk/python/pulumi_gcp/dns/get_managed_zone_iam_policy.py index a66c074bd5..66e815f537 100644 --- a/sdk/python/pulumi_gcp/dns/get_managed_zone_iam_policy.py +++ b/sdk/python/pulumi_gcp/dns/get_managed_zone_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dns/get_managed_zones.py b/sdk/python/pulumi_gcp/dns/get_managed_zones.py index b69caa1958..489c3a2e5e 100644 --- a/sdk/python/pulumi_gcp/dns/get_managed_zones.py +++ b/sdk/python/pulumi_gcp/dns/get_managed_zones.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dns/get_record_set.py b/sdk/python/pulumi_gcp/dns/get_record_set.py index 811d5501c4..c1c75fb299 100644 --- a/sdk/python/pulumi_gcp/dns/get_record_set.py +++ b/sdk/python/pulumi_gcp/dns/get_record_set.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/dns/managed_zone.py b/sdk/python/pulumi_gcp/dns/managed_zone.py index 460c9961fd..8e681b4a3d 100644 --- a/sdk/python/pulumi_gcp/dns/managed_zone.py +++ b/sdk/python/pulumi_gcp/dns/managed_zone.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dns/outputs.py b/sdk/python/pulumi_gcp/dns/outputs.py index cfe7fe4473..c39eb54c63 100644 --- a/sdk/python/pulumi_gcp/dns/outputs.py +++ b/sdk/python/pulumi_gcp/dns/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/dns/policy.py b/sdk/python/pulumi_gcp/dns/policy.py index 854f00d16a..4395f0cee1 100644 --- a/sdk/python/pulumi_gcp/dns/policy.py +++ b/sdk/python/pulumi_gcp/dns/policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dns/record_set.py b/sdk/python/pulumi_gcp/dns/record_set.py index 4a8be148cb..5239eba2e3 100644 --- a/sdk/python/pulumi_gcp/dns/record_set.py +++ b/sdk/python/pulumi_gcp/dns/record_set.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dns/response_policy.py b/sdk/python/pulumi_gcp/dns/response_policy.py index 2488f1bb43..ef32255b6c 100644 --- a/sdk/python/pulumi_gcp/dns/response_policy.py +++ b/sdk/python/pulumi_gcp/dns/response_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/dns/response_policy_rule.py b/sdk/python/pulumi_gcp/dns/response_policy_rule.py index bf8b747902..328d503ae9 100644 --- a/sdk/python/pulumi_gcp/dns/response_policy_rule.py +++ b/sdk/python/pulumi_gcp/dns/response_policy_rule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/edgecontainer/_inputs.py b/sdk/python/pulumi_gcp/edgecontainer/_inputs.py index cce57f78fa..35f1f128af 100644 --- a/sdk/python/pulumi_gcp/edgecontainer/_inputs.py +++ b/sdk/python/pulumi_gcp/edgecontainer/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/edgecontainer/cluster.py b/sdk/python/pulumi_gcp/edgecontainer/cluster.py index 67c52c76df..b742375c83 100644 --- a/sdk/python/pulumi_gcp/edgecontainer/cluster.py +++ b/sdk/python/pulumi_gcp/edgecontainer/cluster.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/edgecontainer/node_pool.py b/sdk/python/pulumi_gcp/edgecontainer/node_pool.py index 6baed0d964..719c20df90 100644 --- a/sdk/python/pulumi_gcp/edgecontainer/node_pool.py +++ b/sdk/python/pulumi_gcp/edgecontainer/node_pool.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/edgecontainer/outputs.py b/sdk/python/pulumi_gcp/edgecontainer/outputs.py index d47e7c5b67..2f2b0f885d 100644 --- a/sdk/python/pulumi_gcp/edgecontainer/outputs.py +++ b/sdk/python/pulumi_gcp/edgecontainer/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/edgecontainer/vpn_connection.py b/sdk/python/pulumi_gcp/edgecontainer/vpn_connection.py index 677bec91ea..350a76d93d 100644 --- a/sdk/python/pulumi_gcp/edgecontainer/vpn_connection.py +++ b/sdk/python/pulumi_gcp/edgecontainer/vpn_connection.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/edgenetwork/network.py b/sdk/python/pulumi_gcp/edgenetwork/network.py index 6e0563e98d..cb7cbc17a2 100644 --- a/sdk/python/pulumi_gcp/edgenetwork/network.py +++ b/sdk/python/pulumi_gcp/edgenetwork/network.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['NetworkArgs', 'Network'] diff --git a/sdk/python/pulumi_gcp/edgenetwork/subnet.py b/sdk/python/pulumi_gcp/edgenetwork/subnet.py index 747335e4f9..b609f88426 100644 --- a/sdk/python/pulumi_gcp/edgenetwork/subnet.py +++ b/sdk/python/pulumi_gcp/edgenetwork/subnet.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SubnetArgs', 'Subnet'] diff --git a/sdk/python/pulumi_gcp/endpoints/_inputs.py b/sdk/python/pulumi_gcp/endpoints/_inputs.py index 80a33b1e0c..ae606a5df0 100644 --- a/sdk/python/pulumi_gcp/endpoints/_inputs.py +++ b/sdk/python/pulumi_gcp/endpoints/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/endpoints/consumers_iam_binding.py b/sdk/python/pulumi_gcp/endpoints/consumers_iam_binding.py index 7ffad14748..30cb758114 100644 --- a/sdk/python/pulumi_gcp/endpoints/consumers_iam_binding.py +++ b/sdk/python/pulumi_gcp/endpoints/consumers_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/endpoints/consumers_iam_member.py b/sdk/python/pulumi_gcp/endpoints/consumers_iam_member.py index 14d76ea316..e35b77cda6 100644 --- a/sdk/python/pulumi_gcp/endpoints/consumers_iam_member.py +++ b/sdk/python/pulumi_gcp/endpoints/consumers_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/endpoints/consumers_iam_policy.py b/sdk/python/pulumi_gcp/endpoints/consumers_iam_policy.py index 4bec520491..427703baba 100644 --- a/sdk/python/pulumi_gcp/endpoints/consumers_iam_policy.py +++ b/sdk/python/pulumi_gcp/endpoints/consumers_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ConsumersIamPolicyArgs', 'ConsumersIamPolicy'] diff --git a/sdk/python/pulumi_gcp/endpoints/get_service_consumers_iam_policy.py b/sdk/python/pulumi_gcp/endpoints/get_service_consumers_iam_policy.py index fcdbbbe043..4a97ed54a5 100644 --- a/sdk/python/pulumi_gcp/endpoints/get_service_consumers_iam_policy.py +++ b/sdk/python/pulumi_gcp/endpoints/get_service_consumers_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/endpoints/get_service_iam_policy.py b/sdk/python/pulumi_gcp/endpoints/get_service_iam_policy.py index a7964715eb..8ca341ca46 100644 --- a/sdk/python/pulumi_gcp/endpoints/get_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/endpoints/get_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/endpoints/outputs.py b/sdk/python/pulumi_gcp/endpoints/outputs.py index e756a5204f..5774b61a3a 100644 --- a/sdk/python/pulumi_gcp/endpoints/outputs.py +++ b/sdk/python/pulumi_gcp/endpoints/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/endpoints/service.py b/sdk/python/pulumi_gcp/endpoints/service.py index 8af94f2747..719b470be9 100644 --- a/sdk/python/pulumi_gcp/endpoints/service.py +++ b/sdk/python/pulumi_gcp/endpoints/service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/endpoints/service_iam_binding.py b/sdk/python/pulumi_gcp/endpoints/service_iam_binding.py index 18ab689508..ce65ac6402 100644 --- a/sdk/python/pulumi_gcp/endpoints/service_iam_binding.py +++ b/sdk/python/pulumi_gcp/endpoints/service_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/endpoints/service_iam_member.py b/sdk/python/pulumi_gcp/endpoints/service_iam_member.py index c69cb39907..40cbee37a0 100644 --- a/sdk/python/pulumi_gcp/endpoints/service_iam_member.py +++ b/sdk/python/pulumi_gcp/endpoints/service_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/endpoints/service_iam_policy.py b/sdk/python/pulumi_gcp/endpoints/service_iam_policy.py index 3b4f5adb99..aab53cbd80 100644 --- a/sdk/python/pulumi_gcp/endpoints/service_iam_policy.py +++ b/sdk/python/pulumi_gcp/endpoints/service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ServiceIamPolicyArgs', 'ServiceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/essentialcontacts/_inputs.py b/sdk/python/pulumi_gcp/essentialcontacts/_inputs.py index 019ccfcd23..0781ccc758 100644 --- a/sdk/python/pulumi_gcp/essentialcontacts/_inputs.py +++ b/sdk/python/pulumi_gcp/essentialcontacts/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/essentialcontacts/contact.py b/sdk/python/pulumi_gcp/essentialcontacts/contact.py index 3505bb4eb9..32d5764cca 100644 --- a/sdk/python/pulumi_gcp/essentialcontacts/contact.py +++ b/sdk/python/pulumi_gcp/essentialcontacts/contact.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ContactArgs', 'Contact'] diff --git a/sdk/python/pulumi_gcp/essentialcontacts/document_ai_processor.py b/sdk/python/pulumi_gcp/essentialcontacts/document_ai_processor.py index 7693db0094..c3f43620c5 100644 --- a/sdk/python/pulumi_gcp/essentialcontacts/document_ai_processor.py +++ b/sdk/python/pulumi_gcp/essentialcontacts/document_ai_processor.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DocumentAiProcessorArgs', 'DocumentAiProcessor'] diff --git a/sdk/python/pulumi_gcp/essentialcontacts/document_ai_processor_default_version.py b/sdk/python/pulumi_gcp/essentialcontacts/document_ai_processor_default_version.py index 226a2d44b6..52c0520b1f 100644 --- a/sdk/python/pulumi_gcp/essentialcontacts/document_ai_processor_default_version.py +++ b/sdk/python/pulumi_gcp/essentialcontacts/document_ai_processor_default_version.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DocumentAiProcessorDefaultVersionArgs', 'DocumentAiProcessorDefaultVersion'] diff --git a/sdk/python/pulumi_gcp/essentialcontacts/document_ai_warehouse_document_schema.py b/sdk/python/pulumi_gcp/essentialcontacts/document_ai_warehouse_document_schema.py index 77819758f0..d2335c007d 100644 --- a/sdk/python/pulumi_gcp/essentialcontacts/document_ai_warehouse_document_schema.py +++ b/sdk/python/pulumi_gcp/essentialcontacts/document_ai_warehouse_document_schema.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/essentialcontacts/document_ai_warehouse_location.py b/sdk/python/pulumi_gcp/essentialcontacts/document_ai_warehouse_location.py index a78a7aa057..1751dd41c5 100644 --- a/sdk/python/pulumi_gcp/essentialcontacts/document_ai_warehouse_location.py +++ b/sdk/python/pulumi_gcp/essentialcontacts/document_ai_warehouse_location.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DocumentAiWarehouseLocationArgs', 'DocumentAiWarehouseLocation'] diff --git a/sdk/python/pulumi_gcp/essentialcontacts/outputs.py b/sdk/python/pulumi_gcp/essentialcontacts/outputs.py index 32d4eedf39..8252cd4868 100644 --- a/sdk/python/pulumi_gcp/essentialcontacts/outputs.py +++ b/sdk/python/pulumi_gcp/essentialcontacts/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/eventarc/_inputs.py b/sdk/python/pulumi_gcp/eventarc/_inputs.py index 71c0b95de4..a27850988d 100644 --- a/sdk/python/pulumi_gcp/eventarc/_inputs.py +++ b/sdk/python/pulumi_gcp/eventarc/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/eventarc/channel.py b/sdk/python/pulumi_gcp/eventarc/channel.py index 1fd2b7c7a6..892918e1b9 100644 --- a/sdk/python/pulumi_gcp/eventarc/channel.py +++ b/sdk/python/pulumi_gcp/eventarc/channel.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ChannelArgs', 'Channel'] diff --git a/sdk/python/pulumi_gcp/eventarc/google_channel_config.py b/sdk/python/pulumi_gcp/eventarc/google_channel_config.py index cc942b37af..5f83dbc4ba 100644 --- a/sdk/python/pulumi_gcp/eventarc/google_channel_config.py +++ b/sdk/python/pulumi_gcp/eventarc/google_channel_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['GoogleChannelConfigArgs', 'GoogleChannelConfig'] diff --git a/sdk/python/pulumi_gcp/eventarc/outputs.py b/sdk/python/pulumi_gcp/eventarc/outputs.py index 74a63ea5cc..9102f1675b 100644 --- a/sdk/python/pulumi_gcp/eventarc/outputs.py +++ b/sdk/python/pulumi_gcp/eventarc/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/eventarc/trigger.py b/sdk/python/pulumi_gcp/eventarc/trigger.py index 52a34cb9ee..bb95863928 100644 --- a/sdk/python/pulumi_gcp/eventarc/trigger.py +++ b/sdk/python/pulumi_gcp/eventarc/trigger.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/filestore/_inputs.py b/sdk/python/pulumi_gcp/filestore/_inputs.py index eb1981587d..46ed793d2d 100644 --- a/sdk/python/pulumi_gcp/filestore/_inputs.py +++ b/sdk/python/pulumi_gcp/filestore/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/filestore/backup.py b/sdk/python/pulumi_gcp/filestore/backup.py index 075aabad10..6f3c7d28c5 100644 --- a/sdk/python/pulumi_gcp/filestore/backup.py +++ b/sdk/python/pulumi_gcp/filestore/backup.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['BackupArgs', 'Backup'] diff --git a/sdk/python/pulumi_gcp/filestore/get_instance.py b/sdk/python/pulumi_gcp/filestore/get_instance.py index 4520198c68..2b39eaf6aa 100644 --- a/sdk/python/pulumi_gcp/filestore/get_instance.py +++ b/sdk/python/pulumi_gcp/filestore/get_instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/filestore/instance.py b/sdk/python/pulumi_gcp/filestore/instance.py index cb1a2a1a8d..2d27a0f2e0 100644 --- a/sdk/python/pulumi_gcp/filestore/instance.py +++ b/sdk/python/pulumi_gcp/filestore/instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/filestore/outputs.py b/sdk/python/pulumi_gcp/filestore/outputs.py index 6f17f900a7..8055086e07 100644 --- a/sdk/python/pulumi_gcp/filestore/outputs.py +++ b/sdk/python/pulumi_gcp/filestore/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/filestore/snapshot.py b/sdk/python/pulumi_gcp/filestore/snapshot.py index 2ebef64b15..e0a4352a91 100644 --- a/sdk/python/pulumi_gcp/filestore/snapshot.py +++ b/sdk/python/pulumi_gcp/filestore/snapshot.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SnapshotArgs', 'Snapshot'] diff --git a/sdk/python/pulumi_gcp/firebase/_inputs.py b/sdk/python/pulumi_gcp/firebase/_inputs.py index 8ae48a903c..3b5fc5f7ca 100644 --- a/sdk/python/pulumi_gcp/firebase/_inputs.py +++ b/sdk/python/pulumi_gcp/firebase/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/firebase/android_app.py b/sdk/python/pulumi_gcp/firebase/android_app.py index 8c8888fab2..703ba16b28 100644 --- a/sdk/python/pulumi_gcp/firebase/android_app.py +++ b/sdk/python/pulumi_gcp/firebase/android_app.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AndroidAppArgs', 'AndroidApp'] diff --git a/sdk/python/pulumi_gcp/firebase/app_check_app_attest_config.py b/sdk/python/pulumi_gcp/firebase/app_check_app_attest_config.py index 47fb551752..af8e1b299c 100644 --- a/sdk/python/pulumi_gcp/firebase/app_check_app_attest_config.py +++ b/sdk/python/pulumi_gcp/firebase/app_check_app_attest_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AppCheckAppAttestConfigArgs', 'AppCheckAppAttestConfig'] diff --git a/sdk/python/pulumi_gcp/firebase/app_check_debug_token.py b/sdk/python/pulumi_gcp/firebase/app_check_debug_token.py index c4c21cd250..865b3191e4 100644 --- a/sdk/python/pulumi_gcp/firebase/app_check_debug_token.py +++ b/sdk/python/pulumi_gcp/firebase/app_check_debug_token.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AppCheckDebugTokenArgs', 'AppCheckDebugToken'] diff --git a/sdk/python/pulumi_gcp/firebase/app_check_device_check_config.py b/sdk/python/pulumi_gcp/firebase/app_check_device_check_config.py index b69bc016ac..23a58da336 100644 --- a/sdk/python/pulumi_gcp/firebase/app_check_device_check_config.py +++ b/sdk/python/pulumi_gcp/firebase/app_check_device_check_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AppCheckDeviceCheckConfigArgs', 'AppCheckDeviceCheckConfig'] diff --git a/sdk/python/pulumi_gcp/firebase/app_check_play_integrity_config.py b/sdk/python/pulumi_gcp/firebase/app_check_play_integrity_config.py index c2a74a82fc..747fcc242e 100644 --- a/sdk/python/pulumi_gcp/firebase/app_check_play_integrity_config.py +++ b/sdk/python/pulumi_gcp/firebase/app_check_play_integrity_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AppCheckPlayIntegrityConfigArgs', 'AppCheckPlayIntegrityConfig'] diff --git a/sdk/python/pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py b/sdk/python/pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py index 434bc96a8b..35581d999d 100644 --- a/sdk/python/pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +++ b/sdk/python/pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AppCheckRecaptchaEnterpriseConfigArgs', 'AppCheckRecaptchaEnterpriseConfig'] diff --git a/sdk/python/pulumi_gcp/firebase/app_check_recaptcha_v3_config.py b/sdk/python/pulumi_gcp/firebase/app_check_recaptcha_v3_config.py index 97109080a1..da0968db24 100644 --- a/sdk/python/pulumi_gcp/firebase/app_check_recaptcha_v3_config.py +++ b/sdk/python/pulumi_gcp/firebase/app_check_recaptcha_v3_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AppCheckRecaptchaV3ConfigArgs', 'AppCheckRecaptchaV3Config'] diff --git a/sdk/python/pulumi_gcp/firebase/app_check_service_config.py b/sdk/python/pulumi_gcp/firebase/app_check_service_config.py index ec67fda4ce..b5bcd46fed 100644 --- a/sdk/python/pulumi_gcp/firebase/app_check_service_config.py +++ b/sdk/python/pulumi_gcp/firebase/app_check_service_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AppCheckServiceConfigArgs', 'AppCheckServiceConfig'] diff --git a/sdk/python/pulumi_gcp/firebase/apple_app.py b/sdk/python/pulumi_gcp/firebase/apple_app.py index 9ba2c7668b..1008ec6491 100644 --- a/sdk/python/pulumi_gcp/firebase/apple_app.py +++ b/sdk/python/pulumi_gcp/firebase/apple_app.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AppleAppArgs', 'AppleApp'] diff --git a/sdk/python/pulumi_gcp/firebase/database_instance.py b/sdk/python/pulumi_gcp/firebase/database_instance.py index 7c4f673ccb..f0422e9380 100644 --- a/sdk/python/pulumi_gcp/firebase/database_instance.py +++ b/sdk/python/pulumi_gcp/firebase/database_instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DatabaseInstanceArgs', 'DatabaseInstance'] diff --git a/sdk/python/pulumi_gcp/firebase/extensions_instance.py b/sdk/python/pulumi_gcp/firebase/extensions_instance.py index f841eeb73e..87d73cfdff 100644 --- a/sdk/python/pulumi_gcp/firebase/extensions_instance.py +++ b/sdk/python/pulumi_gcp/firebase/extensions_instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/firebase/get_android_app.py b/sdk/python/pulumi_gcp/firebase/get_android_app.py index fc317d1407..f01320340a 100644 --- a/sdk/python/pulumi_gcp/firebase/get_android_app.py +++ b/sdk/python/pulumi_gcp/firebase/get_android_app.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/firebase/get_android_app_config.py b/sdk/python/pulumi_gcp/firebase/get_android_app_config.py index 839c816699..9b8595a4f2 100644 --- a/sdk/python/pulumi_gcp/firebase/get_android_app_config.py +++ b/sdk/python/pulumi_gcp/firebase/get_android_app_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/firebase/get_apple_app.py b/sdk/python/pulumi_gcp/firebase/get_apple_app.py index 20654305eb..e265995da1 100644 --- a/sdk/python/pulumi_gcp/firebase/get_apple_app.py +++ b/sdk/python/pulumi_gcp/firebase/get_apple_app.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/firebase/get_apple_app_config.py b/sdk/python/pulumi_gcp/firebase/get_apple_app_config.py index d0d71546c8..b155459efa 100644 --- a/sdk/python/pulumi_gcp/firebase/get_apple_app_config.py +++ b/sdk/python/pulumi_gcp/firebase/get_apple_app_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/firebase/get_hosting_channel.py b/sdk/python/pulumi_gcp/firebase/get_hosting_channel.py index 99ee9573ad..806eea9e4e 100644 --- a/sdk/python/pulumi_gcp/firebase/get_hosting_channel.py +++ b/sdk/python/pulumi_gcp/firebase/get_hosting_channel.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/firebase/get_web_app.py b/sdk/python/pulumi_gcp/firebase/get_web_app.py index b71cb0d3bb..82c832d640 100644 --- a/sdk/python/pulumi_gcp/firebase/get_web_app.py +++ b/sdk/python/pulumi_gcp/firebase/get_web_app.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/firebase/get_web_app_config.py b/sdk/python/pulumi_gcp/firebase/get_web_app_config.py index d6de5d2111..4ddf1ee9de 100644 --- a/sdk/python/pulumi_gcp/firebase/get_web_app_config.py +++ b/sdk/python/pulumi_gcp/firebase/get_web_app_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/firebase/hosting_channel.py b/sdk/python/pulumi_gcp/firebase/hosting_channel.py index 439f925e34..ac3d507a1c 100644 --- a/sdk/python/pulumi_gcp/firebase/hosting_channel.py +++ b/sdk/python/pulumi_gcp/firebase/hosting_channel.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['HostingChannelArgs', 'HostingChannel'] diff --git a/sdk/python/pulumi_gcp/firebase/hosting_custom_domain.py b/sdk/python/pulumi_gcp/firebase/hosting_custom_domain.py index 35f2a20ccf..3f888ea478 100644 --- a/sdk/python/pulumi_gcp/firebase/hosting_custom_domain.py +++ b/sdk/python/pulumi_gcp/firebase/hosting_custom_domain.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/firebase/hosting_release.py b/sdk/python/pulumi_gcp/firebase/hosting_release.py index 711a46c0ad..50abddf529 100644 --- a/sdk/python/pulumi_gcp/firebase/hosting_release.py +++ b/sdk/python/pulumi_gcp/firebase/hosting_release.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['HostingReleaseArgs', 'HostingRelease'] diff --git a/sdk/python/pulumi_gcp/firebase/hosting_site.py b/sdk/python/pulumi_gcp/firebase/hosting_site.py index 41c8a1c4ab..1ff8b4ec6d 100644 --- a/sdk/python/pulumi_gcp/firebase/hosting_site.py +++ b/sdk/python/pulumi_gcp/firebase/hosting_site.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['HostingSiteArgs', 'HostingSite'] diff --git a/sdk/python/pulumi_gcp/firebase/hosting_version.py b/sdk/python/pulumi_gcp/firebase/hosting_version.py index 3b2557caa0..fd4759ac5d 100644 --- a/sdk/python/pulumi_gcp/firebase/hosting_version.py +++ b/sdk/python/pulumi_gcp/firebase/hosting_version.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/firebase/outputs.py b/sdk/python/pulumi_gcp/firebase/outputs.py index c39b253663..a38cfde089 100644 --- a/sdk/python/pulumi_gcp/firebase/outputs.py +++ b/sdk/python/pulumi_gcp/firebase/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/firebase/project.py b/sdk/python/pulumi_gcp/firebase/project.py index 7f37ca19b8..81c7feff7e 100644 --- a/sdk/python/pulumi_gcp/firebase/project.py +++ b/sdk/python/pulumi_gcp/firebase/project.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ProjectArgs', 'Project'] diff --git a/sdk/python/pulumi_gcp/firebase/storage_bucket.py b/sdk/python/pulumi_gcp/firebase/storage_bucket.py index d5cc8843e0..1b3c6483ca 100644 --- a/sdk/python/pulumi_gcp/firebase/storage_bucket.py +++ b/sdk/python/pulumi_gcp/firebase/storage_bucket.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['StorageBucketArgs', 'StorageBucket'] diff --git a/sdk/python/pulumi_gcp/firebase/web_app.py b/sdk/python/pulumi_gcp/firebase/web_app.py index 41a6e08edb..a5b9f0772c 100644 --- a/sdk/python/pulumi_gcp/firebase/web_app.py +++ b/sdk/python/pulumi_gcp/firebase/web_app.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['WebAppArgs', 'WebApp'] diff --git a/sdk/python/pulumi_gcp/firebaserules/_inputs.py b/sdk/python/pulumi_gcp/firebaserules/_inputs.py index d130d5236d..89228d693d 100644 --- a/sdk/python/pulumi_gcp/firebaserules/_inputs.py +++ b/sdk/python/pulumi_gcp/firebaserules/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/firebaserules/outputs.py b/sdk/python/pulumi_gcp/firebaserules/outputs.py index 4e503c95d7..ca7a2ae82d 100644 --- a/sdk/python/pulumi_gcp/firebaserules/outputs.py +++ b/sdk/python/pulumi_gcp/firebaserules/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/firebaserules/release.py b/sdk/python/pulumi_gcp/firebaserules/release.py index c1227ee301..286a19820d 100644 --- a/sdk/python/pulumi_gcp/firebaserules/release.py +++ b/sdk/python/pulumi_gcp/firebaserules/release.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ReleaseArgs', 'Release'] diff --git a/sdk/python/pulumi_gcp/firebaserules/ruleset.py b/sdk/python/pulumi_gcp/firebaserules/ruleset.py index 805b7a5953..8eb7cf79b1 100644 --- a/sdk/python/pulumi_gcp/firebaserules/ruleset.py +++ b/sdk/python/pulumi_gcp/firebaserules/ruleset.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/firestore/_inputs.py b/sdk/python/pulumi_gcp/firestore/_inputs.py index 325f39613e..c100cc8414 100644 --- a/sdk/python/pulumi_gcp/firestore/_inputs.py +++ b/sdk/python/pulumi_gcp/firestore/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/firestore/backup_schedule.py b/sdk/python/pulumi_gcp/firestore/backup_schedule.py index aa9398ae9c..0d6306a913 100644 --- a/sdk/python/pulumi_gcp/firestore/backup_schedule.py +++ b/sdk/python/pulumi_gcp/firestore/backup_schedule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/firestore/database.py b/sdk/python/pulumi_gcp/firestore/database.py index ebd2177a20..d975cb30fe 100644 --- a/sdk/python/pulumi_gcp/firestore/database.py +++ b/sdk/python/pulumi_gcp/firestore/database.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/firestore/document.py b/sdk/python/pulumi_gcp/firestore/document.py index 3963915287..5d068170c2 100644 --- a/sdk/python/pulumi_gcp/firestore/document.py +++ b/sdk/python/pulumi_gcp/firestore/document.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DocumentArgs', 'Document'] diff --git a/sdk/python/pulumi_gcp/firestore/field.py b/sdk/python/pulumi_gcp/firestore/field.py index d8c524684f..9afeccffb7 100644 --- a/sdk/python/pulumi_gcp/firestore/field.py +++ b/sdk/python/pulumi_gcp/firestore/field.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/firestore/index.py b/sdk/python/pulumi_gcp/firestore/index.py index 61fa194810..31bb924797 100644 --- a/sdk/python/pulumi_gcp/firestore/index.py +++ b/sdk/python/pulumi_gcp/firestore/index.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/firestore/outputs.py b/sdk/python/pulumi_gcp/firestore/outputs.py index 9f04f261cc..8098b43411 100644 --- a/sdk/python/pulumi_gcp/firestore/outputs.py +++ b/sdk/python/pulumi_gcp/firestore/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/folder/_inputs.py b/sdk/python/pulumi_gcp/folder/_inputs.py index fdec50b811..15433d651d 100644 --- a/sdk/python/pulumi_gcp/folder/_inputs.py +++ b/sdk/python/pulumi_gcp/folder/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/folder/access_approval_settings.py b/sdk/python/pulumi_gcp/folder/access_approval_settings.py index b4b2f2af4d..662d54472e 100644 --- a/sdk/python/pulumi_gcp/folder/access_approval_settings.py +++ b/sdk/python/pulumi_gcp/folder/access_approval_settings.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/folder/get_iam_policy.py b/sdk/python/pulumi_gcp/folder/get_iam_policy.py index 7c8dab7600..df7f961887 100644 --- a/sdk/python/pulumi_gcp/folder/get_iam_policy.py +++ b/sdk/python/pulumi_gcp/folder/get_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/folder/get_organization_policy.py b/sdk/python/pulumi_gcp/folder/get_organization_policy.py index 211564fc0d..eecd1630d6 100644 --- a/sdk/python/pulumi_gcp/folder/get_organization_policy.py +++ b/sdk/python/pulumi_gcp/folder/get_organization_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/folder/iam_audit_config.py b/sdk/python/pulumi_gcp/folder/iam_audit_config.py index 3e98f47a14..c891ab4836 100644 --- a/sdk/python/pulumi_gcp/folder/iam_audit_config.py +++ b/sdk/python/pulumi_gcp/folder/iam_audit_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/folder/iam_binding.py b/sdk/python/pulumi_gcp/folder/iam_binding.py index 702eba164c..4b2e13db9b 100644 --- a/sdk/python/pulumi_gcp/folder/iam_binding.py +++ b/sdk/python/pulumi_gcp/folder/iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/folder/iam_member.py b/sdk/python/pulumi_gcp/folder/iam_member.py index 9e8f9ae964..b365f1cb5d 100644 --- a/sdk/python/pulumi_gcp/folder/iam_member.py +++ b/sdk/python/pulumi_gcp/folder/iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/folder/iam_policy.py b/sdk/python/pulumi_gcp/folder/iam_policy.py index 00e0f7fcae..a319269eac 100644 --- a/sdk/python/pulumi_gcp/folder/iam_policy.py +++ b/sdk/python/pulumi_gcp/folder/iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['IAMPolicyArgs', 'IAMPolicy'] diff --git a/sdk/python/pulumi_gcp/folder/organization_policy.py b/sdk/python/pulumi_gcp/folder/organization_policy.py index 74f9a8e559..1827033a60 100644 --- a/sdk/python/pulumi_gcp/folder/organization_policy.py +++ b/sdk/python/pulumi_gcp/folder/organization_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/folder/outputs.py b/sdk/python/pulumi_gcp/folder/outputs.py index b2fbf8e168..1f564ef583 100644 --- a/sdk/python/pulumi_gcp/folder/outputs.py +++ b/sdk/python/pulumi_gcp/folder/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/gkebackup/_inputs.py b/sdk/python/pulumi_gcp/gkebackup/_inputs.py index 3a7ffc35f4..ecb3900e50 100644 --- a/sdk/python/pulumi_gcp/gkebackup/_inputs.py +++ b/sdk/python/pulumi_gcp/gkebackup/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/gkebackup/backup_plan.py b/sdk/python/pulumi_gcp/gkebackup/backup_plan.py index 57f5477b6d..7f5546d58c 100644 --- a/sdk/python/pulumi_gcp/gkebackup/backup_plan.py +++ b/sdk/python/pulumi_gcp/gkebackup/backup_plan.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkebackup/backup_plan_iam_binding.py b/sdk/python/pulumi_gcp/gkebackup/backup_plan_iam_binding.py index 5b5eaeb40e..be229ad068 100644 --- a/sdk/python/pulumi_gcp/gkebackup/backup_plan_iam_binding.py +++ b/sdk/python/pulumi_gcp/gkebackup/backup_plan_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkebackup/backup_plan_iam_member.py b/sdk/python/pulumi_gcp/gkebackup/backup_plan_iam_member.py index 61db86a9b7..09d60793ba 100644 --- a/sdk/python/pulumi_gcp/gkebackup/backup_plan_iam_member.py +++ b/sdk/python/pulumi_gcp/gkebackup/backup_plan_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkebackup/backup_plan_iam_policy.py b/sdk/python/pulumi_gcp/gkebackup/backup_plan_iam_policy.py index faf0b82357..ed668d8b3c 100644 --- a/sdk/python/pulumi_gcp/gkebackup/backup_plan_iam_policy.py +++ b/sdk/python/pulumi_gcp/gkebackup/backup_plan_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['BackupPlanIamPolicyArgs', 'BackupPlanIamPolicy'] diff --git a/sdk/python/pulumi_gcp/gkebackup/get_backup_plan_iam_policy.py b/sdk/python/pulumi_gcp/gkebackup/get_backup_plan_iam_policy.py index e2903d93f3..369c8c0311 100644 --- a/sdk/python/pulumi_gcp/gkebackup/get_backup_plan_iam_policy.py +++ b/sdk/python/pulumi_gcp/gkebackup/get_backup_plan_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/gkebackup/get_restore_plan_iam_policy.py b/sdk/python/pulumi_gcp/gkebackup/get_restore_plan_iam_policy.py index 376bce80b9..2ce096746f 100644 --- a/sdk/python/pulumi_gcp/gkebackup/get_restore_plan_iam_policy.py +++ b/sdk/python/pulumi_gcp/gkebackup/get_restore_plan_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/gkebackup/outputs.py b/sdk/python/pulumi_gcp/gkebackup/outputs.py index baa9b90ca0..b00b37d582 100644 --- a/sdk/python/pulumi_gcp/gkebackup/outputs.py +++ b/sdk/python/pulumi_gcp/gkebackup/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/gkebackup/restore_plan.py b/sdk/python/pulumi_gcp/gkebackup/restore_plan.py index e20abaf1e8..e8f3ec90a0 100644 --- a/sdk/python/pulumi_gcp/gkebackup/restore_plan.py +++ b/sdk/python/pulumi_gcp/gkebackup/restore_plan.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkebackup/restore_plan_iam_binding.py b/sdk/python/pulumi_gcp/gkebackup/restore_plan_iam_binding.py index 92717b93c4..7c5cb253d0 100644 --- a/sdk/python/pulumi_gcp/gkebackup/restore_plan_iam_binding.py +++ b/sdk/python/pulumi_gcp/gkebackup/restore_plan_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkebackup/restore_plan_iam_member.py b/sdk/python/pulumi_gcp/gkebackup/restore_plan_iam_member.py index daec179fe2..ad7481a3c7 100644 --- a/sdk/python/pulumi_gcp/gkebackup/restore_plan_iam_member.py +++ b/sdk/python/pulumi_gcp/gkebackup/restore_plan_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkebackup/restore_plan_iam_policy.py b/sdk/python/pulumi_gcp/gkebackup/restore_plan_iam_policy.py index f25b476237..979e21cf7c 100644 --- a/sdk/python/pulumi_gcp/gkebackup/restore_plan_iam_policy.py +++ b/sdk/python/pulumi_gcp/gkebackup/restore_plan_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RestorePlanIamPolicyArgs', 'RestorePlanIamPolicy'] diff --git a/sdk/python/pulumi_gcp/gkehub/_inputs.py b/sdk/python/pulumi_gcp/gkehub/_inputs.py index 832e3cf31e..7374c8ce74 100644 --- a/sdk/python/pulumi_gcp/gkehub/_inputs.py +++ b/sdk/python/pulumi_gcp/gkehub/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/gkehub/feature.py b/sdk/python/pulumi_gcp/gkehub/feature.py index 3b4139133b..19f137a7d1 100644 --- a/sdk/python/pulumi_gcp/gkehub/feature.py +++ b/sdk/python/pulumi_gcp/gkehub/feature.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkehub/feature_iam_binding.py b/sdk/python/pulumi_gcp/gkehub/feature_iam_binding.py index 0daa884ed2..7b6a40e119 100644 --- a/sdk/python/pulumi_gcp/gkehub/feature_iam_binding.py +++ b/sdk/python/pulumi_gcp/gkehub/feature_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkehub/feature_iam_member.py b/sdk/python/pulumi_gcp/gkehub/feature_iam_member.py index 59416a489e..f4d60295c2 100644 --- a/sdk/python/pulumi_gcp/gkehub/feature_iam_member.py +++ b/sdk/python/pulumi_gcp/gkehub/feature_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkehub/feature_iam_policy.py b/sdk/python/pulumi_gcp/gkehub/feature_iam_policy.py index 6a9796d273..0103eccb1b 100644 --- a/sdk/python/pulumi_gcp/gkehub/feature_iam_policy.py +++ b/sdk/python/pulumi_gcp/gkehub/feature_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['FeatureIamPolicyArgs', 'FeatureIamPolicy'] diff --git a/sdk/python/pulumi_gcp/gkehub/feature_membership.py b/sdk/python/pulumi_gcp/gkehub/feature_membership.py index db9da6fa7e..c92c65a624 100644 --- a/sdk/python/pulumi_gcp/gkehub/feature_membership.py +++ b/sdk/python/pulumi_gcp/gkehub/feature_membership.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkehub/fleet.py b/sdk/python/pulumi_gcp/gkehub/fleet.py index b9819e1d7c..8b6f5ea156 100644 --- a/sdk/python/pulumi_gcp/gkehub/fleet.py +++ b/sdk/python/pulumi_gcp/gkehub/fleet.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkehub/get_feature_iam_policy.py b/sdk/python/pulumi_gcp/gkehub/get_feature_iam_policy.py index 4ed5367d8c..25266e06f8 100644 --- a/sdk/python/pulumi_gcp/gkehub/get_feature_iam_policy.py +++ b/sdk/python/pulumi_gcp/gkehub/get_feature_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/gkehub/get_membership_iam_policy.py b/sdk/python/pulumi_gcp/gkehub/get_membership_iam_policy.py index c02bb1329d..0876551db9 100644 --- a/sdk/python/pulumi_gcp/gkehub/get_membership_iam_policy.py +++ b/sdk/python/pulumi_gcp/gkehub/get_membership_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/gkehub/get_scope_iam_policy.py b/sdk/python/pulumi_gcp/gkehub/get_scope_iam_policy.py index 39d06ed6bc..0af71bdc0c 100644 --- a/sdk/python/pulumi_gcp/gkehub/get_scope_iam_policy.py +++ b/sdk/python/pulumi_gcp/gkehub/get_scope_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/gkehub/membership.py b/sdk/python/pulumi_gcp/gkehub/membership.py index 4384f76c43..f67568f8e2 100644 --- a/sdk/python/pulumi_gcp/gkehub/membership.py +++ b/sdk/python/pulumi_gcp/gkehub/membership.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkehub/membership_binding.py b/sdk/python/pulumi_gcp/gkehub/membership_binding.py index 29b61e5b17..2ec583ca47 100644 --- a/sdk/python/pulumi_gcp/gkehub/membership_binding.py +++ b/sdk/python/pulumi_gcp/gkehub/membership_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkehub/membership_iam_binding.py b/sdk/python/pulumi_gcp/gkehub/membership_iam_binding.py index fd592fd680..b2cc0a09c2 100644 --- a/sdk/python/pulumi_gcp/gkehub/membership_iam_binding.py +++ b/sdk/python/pulumi_gcp/gkehub/membership_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkehub/membership_iam_member.py b/sdk/python/pulumi_gcp/gkehub/membership_iam_member.py index 769df57453..058eb841d4 100644 --- a/sdk/python/pulumi_gcp/gkehub/membership_iam_member.py +++ b/sdk/python/pulumi_gcp/gkehub/membership_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkehub/membership_iam_policy.py b/sdk/python/pulumi_gcp/gkehub/membership_iam_policy.py index 99c5d0d768..b298cb0d95 100644 --- a/sdk/python/pulumi_gcp/gkehub/membership_iam_policy.py +++ b/sdk/python/pulumi_gcp/gkehub/membership_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['MembershipIamPolicyArgs', 'MembershipIamPolicy'] diff --git a/sdk/python/pulumi_gcp/gkehub/membership_rbac_role_binding.py b/sdk/python/pulumi_gcp/gkehub/membership_rbac_role_binding.py index ea2d897c66..db0f526391 100644 --- a/sdk/python/pulumi_gcp/gkehub/membership_rbac_role_binding.py +++ b/sdk/python/pulumi_gcp/gkehub/membership_rbac_role_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkehub/namespace.py b/sdk/python/pulumi_gcp/gkehub/namespace.py index 640dd7c290..98b989df90 100644 --- a/sdk/python/pulumi_gcp/gkehub/namespace.py +++ b/sdk/python/pulumi_gcp/gkehub/namespace.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkehub/outputs.py b/sdk/python/pulumi_gcp/gkehub/outputs.py index 3ff94ca2ce..5bd335b230 100644 --- a/sdk/python/pulumi_gcp/gkehub/outputs.py +++ b/sdk/python/pulumi_gcp/gkehub/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/gkehub/scope.py b/sdk/python/pulumi_gcp/gkehub/scope.py index 96768ed15a..ee55cabc9b 100644 --- a/sdk/python/pulumi_gcp/gkehub/scope.py +++ b/sdk/python/pulumi_gcp/gkehub/scope.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkehub/scope_iam_binding.py b/sdk/python/pulumi_gcp/gkehub/scope_iam_binding.py index 063edbfca7..28052b52dc 100644 --- a/sdk/python/pulumi_gcp/gkehub/scope_iam_binding.py +++ b/sdk/python/pulumi_gcp/gkehub/scope_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkehub/scope_iam_member.py b/sdk/python/pulumi_gcp/gkehub/scope_iam_member.py index 00e79e53a3..f05562db31 100644 --- a/sdk/python/pulumi_gcp/gkehub/scope_iam_member.py +++ b/sdk/python/pulumi_gcp/gkehub/scope_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkehub/scope_iam_policy.py b/sdk/python/pulumi_gcp/gkehub/scope_iam_policy.py index 5ead201dde..65c4b3001f 100644 --- a/sdk/python/pulumi_gcp/gkehub/scope_iam_policy.py +++ b/sdk/python/pulumi_gcp/gkehub/scope_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ScopeIamPolicyArgs', 'ScopeIamPolicy'] diff --git a/sdk/python/pulumi_gcp/gkehub/scope_rbac_role_binding.py b/sdk/python/pulumi_gcp/gkehub/scope_rbac_role_binding.py index 0b7d2fc828..224cfa2a5c 100644 --- a/sdk/python/pulumi_gcp/gkehub/scope_rbac_role_binding.py +++ b/sdk/python/pulumi_gcp/gkehub/scope_rbac_role_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkeonprem/_inputs.py b/sdk/python/pulumi_gcp/gkeonprem/_inputs.py index 37f83b3ece..ea5d59e874 100644 --- a/sdk/python/pulumi_gcp/gkeonprem/_inputs.py +++ b/sdk/python/pulumi_gcp/gkeonprem/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/gkeonprem/bare_metal_admin_cluster.py b/sdk/python/pulumi_gcp/gkeonprem/bare_metal_admin_cluster.py index 5e219c7046..1e61423476 100644 --- a/sdk/python/pulumi_gcp/gkeonprem/bare_metal_admin_cluster.py +++ b/sdk/python/pulumi_gcp/gkeonprem/bare_metal_admin_cluster.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkeonprem/bare_metal_cluster.py b/sdk/python/pulumi_gcp/gkeonprem/bare_metal_cluster.py index bb16f497d7..fdfd0fc2a8 100644 --- a/sdk/python/pulumi_gcp/gkeonprem/bare_metal_cluster.py +++ b/sdk/python/pulumi_gcp/gkeonprem/bare_metal_cluster.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkeonprem/bare_metal_node_pool.py b/sdk/python/pulumi_gcp/gkeonprem/bare_metal_node_pool.py index 96ead802dd..6faf864eee 100644 --- a/sdk/python/pulumi_gcp/gkeonprem/bare_metal_node_pool.py +++ b/sdk/python/pulumi_gcp/gkeonprem/bare_metal_node_pool.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkeonprem/outputs.py b/sdk/python/pulumi_gcp/gkeonprem/outputs.py index 71886c49ab..f252985d80 100644 --- a/sdk/python/pulumi_gcp/gkeonprem/outputs.py +++ b/sdk/python/pulumi_gcp/gkeonprem/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/gkeonprem/v_mware_cluster.py b/sdk/python/pulumi_gcp/gkeonprem/v_mware_cluster.py index 201f5a9714..f0a895bc16 100644 --- a/sdk/python/pulumi_gcp/gkeonprem/v_mware_cluster.py +++ b/sdk/python/pulumi_gcp/gkeonprem/v_mware_cluster.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/gkeonprem/v_mware_node_pool.py b/sdk/python/pulumi_gcp/gkeonprem/v_mware_node_pool.py index 6f48ba1eb7..1c8eee9d08 100644 --- a/sdk/python/pulumi_gcp/gkeonprem/v_mware_node_pool.py +++ b/sdk/python/pulumi_gcp/gkeonprem/v_mware_node_pool.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/healthcare/_inputs.py b/sdk/python/pulumi_gcp/healthcare/_inputs.py index 1d79fc9250..d7dc1503bd 100644 --- a/sdk/python/pulumi_gcp/healthcare/_inputs.py +++ b/sdk/python/pulumi_gcp/healthcare/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/healthcare/consent_store.py b/sdk/python/pulumi_gcp/healthcare/consent_store.py index 509d50ec17..f27d3ea3ab 100644 --- a/sdk/python/pulumi_gcp/healthcare/consent_store.py +++ b/sdk/python/pulumi_gcp/healthcare/consent_store.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ConsentStoreArgs', 'ConsentStore'] diff --git a/sdk/python/pulumi_gcp/healthcare/consent_store_iam_binding.py b/sdk/python/pulumi_gcp/healthcare/consent_store_iam_binding.py index 9e89855230..d57cc3d925 100644 --- a/sdk/python/pulumi_gcp/healthcare/consent_store_iam_binding.py +++ b/sdk/python/pulumi_gcp/healthcare/consent_store_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/healthcare/consent_store_iam_member.py b/sdk/python/pulumi_gcp/healthcare/consent_store_iam_member.py index 8cdf8aa457..829a192351 100644 --- a/sdk/python/pulumi_gcp/healthcare/consent_store_iam_member.py +++ b/sdk/python/pulumi_gcp/healthcare/consent_store_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/healthcare/consent_store_iam_policy.py b/sdk/python/pulumi_gcp/healthcare/consent_store_iam_policy.py index 9ecf3ac4ac..e8cf9253e8 100644 --- a/sdk/python/pulumi_gcp/healthcare/consent_store_iam_policy.py +++ b/sdk/python/pulumi_gcp/healthcare/consent_store_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ConsentStoreIamPolicyArgs', 'ConsentStoreIamPolicy'] diff --git a/sdk/python/pulumi_gcp/healthcare/dataset.py b/sdk/python/pulumi_gcp/healthcare/dataset.py index fb07bd8955..870b85c35d 100644 --- a/sdk/python/pulumi_gcp/healthcare/dataset.py +++ b/sdk/python/pulumi_gcp/healthcare/dataset.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DatasetArgs', 'Dataset'] diff --git a/sdk/python/pulumi_gcp/healthcare/dataset_iam_binding.py b/sdk/python/pulumi_gcp/healthcare/dataset_iam_binding.py index f2473a0fc4..a7fdb3563d 100644 --- a/sdk/python/pulumi_gcp/healthcare/dataset_iam_binding.py +++ b/sdk/python/pulumi_gcp/healthcare/dataset_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/healthcare/dataset_iam_member.py b/sdk/python/pulumi_gcp/healthcare/dataset_iam_member.py index 861a8c587b..5a69b875a9 100644 --- a/sdk/python/pulumi_gcp/healthcare/dataset_iam_member.py +++ b/sdk/python/pulumi_gcp/healthcare/dataset_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/healthcare/dataset_iam_policy.py b/sdk/python/pulumi_gcp/healthcare/dataset_iam_policy.py index 95747a5c0d..86e3134ed6 100644 --- a/sdk/python/pulumi_gcp/healthcare/dataset_iam_policy.py +++ b/sdk/python/pulumi_gcp/healthcare/dataset_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DatasetIamPolicyArgs', 'DatasetIamPolicy'] diff --git a/sdk/python/pulumi_gcp/healthcare/dicom_store.py b/sdk/python/pulumi_gcp/healthcare/dicom_store.py index 85f55c1b01..f41edc18ee 100644 --- a/sdk/python/pulumi_gcp/healthcare/dicom_store.py +++ b/sdk/python/pulumi_gcp/healthcare/dicom_store.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/healthcare/dicom_store_iam_binding.py b/sdk/python/pulumi_gcp/healthcare/dicom_store_iam_binding.py index 165613a981..485f4bc60a 100644 --- a/sdk/python/pulumi_gcp/healthcare/dicom_store_iam_binding.py +++ b/sdk/python/pulumi_gcp/healthcare/dicom_store_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/healthcare/dicom_store_iam_member.py b/sdk/python/pulumi_gcp/healthcare/dicom_store_iam_member.py index 6e80f34554..5844920bf6 100644 --- a/sdk/python/pulumi_gcp/healthcare/dicom_store_iam_member.py +++ b/sdk/python/pulumi_gcp/healthcare/dicom_store_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/healthcare/dicom_store_iam_policy.py b/sdk/python/pulumi_gcp/healthcare/dicom_store_iam_policy.py index 86e258a0e4..461c63f3bb 100644 --- a/sdk/python/pulumi_gcp/healthcare/dicom_store_iam_policy.py +++ b/sdk/python/pulumi_gcp/healthcare/dicom_store_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DicomStoreIamPolicyArgs', 'DicomStoreIamPolicy'] diff --git a/sdk/python/pulumi_gcp/healthcare/fhir_store.py b/sdk/python/pulumi_gcp/healthcare/fhir_store.py index baac471a80..78ea4647ca 100644 --- a/sdk/python/pulumi_gcp/healthcare/fhir_store.py +++ b/sdk/python/pulumi_gcp/healthcare/fhir_store.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/healthcare/fhir_store_iam_binding.py b/sdk/python/pulumi_gcp/healthcare/fhir_store_iam_binding.py index 842620cb96..9ba6c9b349 100644 --- a/sdk/python/pulumi_gcp/healthcare/fhir_store_iam_binding.py +++ b/sdk/python/pulumi_gcp/healthcare/fhir_store_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/healthcare/fhir_store_iam_member.py b/sdk/python/pulumi_gcp/healthcare/fhir_store_iam_member.py index 99e5b63a65..5f41d9c695 100644 --- a/sdk/python/pulumi_gcp/healthcare/fhir_store_iam_member.py +++ b/sdk/python/pulumi_gcp/healthcare/fhir_store_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/healthcare/fhir_store_iam_policy.py b/sdk/python/pulumi_gcp/healthcare/fhir_store_iam_policy.py index 38c8f5487b..8433075864 100644 --- a/sdk/python/pulumi_gcp/healthcare/fhir_store_iam_policy.py +++ b/sdk/python/pulumi_gcp/healthcare/fhir_store_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['FhirStoreIamPolicyArgs', 'FhirStoreIamPolicy'] diff --git a/sdk/python/pulumi_gcp/healthcare/get_consent_store_iam_policy.py b/sdk/python/pulumi_gcp/healthcare/get_consent_store_iam_policy.py index 687d24297a..3886e5b18c 100644 --- a/sdk/python/pulumi_gcp/healthcare/get_consent_store_iam_policy.py +++ b/sdk/python/pulumi_gcp/healthcare/get_consent_store_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/healthcare/get_dataset_iam_policy.py b/sdk/python/pulumi_gcp/healthcare/get_dataset_iam_policy.py index 299263d37a..7874fa036c 100644 --- a/sdk/python/pulumi_gcp/healthcare/get_dataset_iam_policy.py +++ b/sdk/python/pulumi_gcp/healthcare/get_dataset_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/healthcare/get_dicom_store_iam_policy.py b/sdk/python/pulumi_gcp/healthcare/get_dicom_store_iam_policy.py index 258a5b7bc3..cf619e2fe6 100644 --- a/sdk/python/pulumi_gcp/healthcare/get_dicom_store_iam_policy.py +++ b/sdk/python/pulumi_gcp/healthcare/get_dicom_store_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/healthcare/get_fhir_store_iam_policy.py b/sdk/python/pulumi_gcp/healthcare/get_fhir_store_iam_policy.py index 9e7559e946..74761bb46c 100644 --- a/sdk/python/pulumi_gcp/healthcare/get_fhir_store_iam_policy.py +++ b/sdk/python/pulumi_gcp/healthcare/get_fhir_store_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/healthcare/get_hl7_v2_store_iam_policy.py b/sdk/python/pulumi_gcp/healthcare/get_hl7_v2_store_iam_policy.py index 21f4343980..1eeaffa30c 100644 --- a/sdk/python/pulumi_gcp/healthcare/get_hl7_v2_store_iam_policy.py +++ b/sdk/python/pulumi_gcp/healthcare/get_hl7_v2_store_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/healthcare/hl7_store.py b/sdk/python/pulumi_gcp/healthcare/hl7_store.py index 50f777cc1b..0de53d298e 100644 --- a/sdk/python/pulumi_gcp/healthcare/hl7_store.py +++ b/sdk/python/pulumi_gcp/healthcare/hl7_store.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/healthcare/hl7_store_iam_binding.py b/sdk/python/pulumi_gcp/healthcare/hl7_store_iam_binding.py index ddd1418086..8e3fee957b 100644 --- a/sdk/python/pulumi_gcp/healthcare/hl7_store_iam_binding.py +++ b/sdk/python/pulumi_gcp/healthcare/hl7_store_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/healthcare/hl7_store_iam_member.py b/sdk/python/pulumi_gcp/healthcare/hl7_store_iam_member.py index 0208323439..86375448d0 100644 --- a/sdk/python/pulumi_gcp/healthcare/hl7_store_iam_member.py +++ b/sdk/python/pulumi_gcp/healthcare/hl7_store_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/healthcare/hl7_store_iam_policy.py b/sdk/python/pulumi_gcp/healthcare/hl7_store_iam_policy.py index 928409fbe8..1b10c9183c 100644 --- a/sdk/python/pulumi_gcp/healthcare/hl7_store_iam_policy.py +++ b/sdk/python/pulumi_gcp/healthcare/hl7_store_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['Hl7StoreIamPolicyArgs', 'Hl7StoreIamPolicy'] diff --git a/sdk/python/pulumi_gcp/healthcare/outputs.py b/sdk/python/pulumi_gcp/healthcare/outputs.py index 371c907b7d..bbcdbfa761 100644 --- a/sdk/python/pulumi_gcp/healthcare/outputs.py +++ b/sdk/python/pulumi_gcp/healthcare/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/iam/_inputs.py b/sdk/python/pulumi_gcp/iam/_inputs.py index 99dda0de81..a5ab429d87 100644 --- a/sdk/python/pulumi_gcp/iam/_inputs.py +++ b/sdk/python/pulumi_gcp/iam/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iam/access_boundary_policy.py b/sdk/python/pulumi_gcp/iam/access_boundary_policy.py index 6fcba6ced1..13d0d154a1 100644 --- a/sdk/python/pulumi_gcp/iam/access_boundary_policy.py +++ b/sdk/python/pulumi_gcp/iam/access_boundary_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iam/deny_policy.py b/sdk/python/pulumi_gcp/iam/deny_policy.py index e778fc9fee..f611ade0da 100644 --- a/sdk/python/pulumi_gcp/iam/deny_policy.py +++ b/sdk/python/pulumi_gcp/iam/deny_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iam/get_rule.py b/sdk/python/pulumi_gcp/iam/get_rule.py index 035035e99a..113f633329 100644 --- a/sdk/python/pulumi_gcp/iam/get_rule.py +++ b/sdk/python/pulumi_gcp/iam/get_rule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iam/get_testable_permissions.py b/sdk/python/pulumi_gcp/iam/get_testable_permissions.py index 0fc3fd2f77..3deb8f3aa0 100644 --- a/sdk/python/pulumi_gcp/iam/get_testable_permissions.py +++ b/sdk/python/pulumi_gcp/iam/get_testable_permissions.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/iam/get_workload_identity_pool.py b/sdk/python/pulumi_gcp/iam/get_workload_identity_pool.py index b471c8a363..5001273967 100644 --- a/sdk/python/pulumi_gcp/iam/get_workload_identity_pool.py +++ b/sdk/python/pulumi_gcp/iam/get_workload_identity_pool.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iam/get_workload_identity_pool_provider.py b/sdk/python/pulumi_gcp/iam/get_workload_identity_pool_provider.py index 55e1abaa0b..809476d88e 100644 --- a/sdk/python/pulumi_gcp/iam/get_workload_identity_pool_provider.py +++ b/sdk/python/pulumi_gcp/iam/get_workload_identity_pool_provider.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/iam/outputs.py b/sdk/python/pulumi_gcp/iam/outputs.py index 0403214eba..f378fbaa44 100644 --- a/sdk/python/pulumi_gcp/iam/outputs.py +++ b/sdk/python/pulumi_gcp/iam/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/iam/workforce_pool.py b/sdk/python/pulumi_gcp/iam/workforce_pool.py index 3d862922d3..d97bce7c9d 100644 --- a/sdk/python/pulumi_gcp/iam/workforce_pool.py +++ b/sdk/python/pulumi_gcp/iam/workforce_pool.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iam/workforce_pool_provider.py b/sdk/python/pulumi_gcp/iam/workforce_pool_provider.py index 963067f1fb..28d8bd2c83 100644 --- a/sdk/python/pulumi_gcp/iam/workforce_pool_provider.py +++ b/sdk/python/pulumi_gcp/iam/workforce_pool_provider.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iam/workload_identity_pool.py b/sdk/python/pulumi_gcp/iam/workload_identity_pool.py index 661514d458..d9f6c5be82 100644 --- a/sdk/python/pulumi_gcp/iam/workload_identity_pool.py +++ b/sdk/python/pulumi_gcp/iam/workload_identity_pool.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['WorkloadIdentityPoolArgs', 'WorkloadIdentityPool'] diff --git a/sdk/python/pulumi_gcp/iam/workload_identity_pool_provider.py b/sdk/python/pulumi_gcp/iam/workload_identity_pool_provider.py index 074a68df6d..4b89e64879 100644 --- a/sdk/python/pulumi_gcp/iam/workload_identity_pool_provider.py +++ b/sdk/python/pulumi_gcp/iam/workload_identity_pool_provider.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/_inputs.py b/sdk/python/pulumi_gcp/iap/_inputs.py index d188238edb..010e813b60 100644 --- a/sdk/python/pulumi_gcp/iap/_inputs.py +++ b/sdk/python/pulumi_gcp/iap/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iap/app_engine_service_iam_binding.py b/sdk/python/pulumi_gcp/iap/app_engine_service_iam_binding.py index c96177e2b6..62b26fd4e1 100644 --- a/sdk/python/pulumi_gcp/iap/app_engine_service_iam_binding.py +++ b/sdk/python/pulumi_gcp/iap/app_engine_service_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/app_engine_service_iam_member.py b/sdk/python/pulumi_gcp/iap/app_engine_service_iam_member.py index cf46290bb3..04c14334ae 100644 --- a/sdk/python/pulumi_gcp/iap/app_engine_service_iam_member.py +++ b/sdk/python/pulumi_gcp/iap/app_engine_service_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/app_engine_service_iam_policy.py b/sdk/python/pulumi_gcp/iap/app_engine_service_iam_policy.py index 36ff6dd7c1..142ea71389 100644 --- a/sdk/python/pulumi_gcp/iap/app_engine_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/app_engine_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AppEngineServiceIamPolicyArgs', 'AppEngineServiceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/iap/app_engine_version_iam_binding.py b/sdk/python/pulumi_gcp/iap/app_engine_version_iam_binding.py index 76568d33f2..fae39d9b30 100644 --- a/sdk/python/pulumi_gcp/iap/app_engine_version_iam_binding.py +++ b/sdk/python/pulumi_gcp/iap/app_engine_version_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/app_engine_version_iam_member.py b/sdk/python/pulumi_gcp/iap/app_engine_version_iam_member.py index 4a2c14712d..db5b47a9d3 100644 --- a/sdk/python/pulumi_gcp/iap/app_engine_version_iam_member.py +++ b/sdk/python/pulumi_gcp/iap/app_engine_version_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/app_engine_version_iam_policy.py b/sdk/python/pulumi_gcp/iap/app_engine_version_iam_policy.py index 14383fb9f9..2d34bbf9cc 100644 --- a/sdk/python/pulumi_gcp/iap/app_engine_version_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/app_engine_version_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AppEngineVersionIamPolicyArgs', 'AppEngineVersionIamPolicy'] diff --git a/sdk/python/pulumi_gcp/iap/brand.py b/sdk/python/pulumi_gcp/iap/brand.py index 692dc2dfcb..1a5eb3ef95 100644 --- a/sdk/python/pulumi_gcp/iap/brand.py +++ b/sdk/python/pulumi_gcp/iap/brand.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['BrandArgs', 'Brand'] diff --git a/sdk/python/pulumi_gcp/iap/client.py b/sdk/python/pulumi_gcp/iap/client.py index 2fe726eb63..206e305cec 100644 --- a/sdk/python/pulumi_gcp/iap/client.py +++ b/sdk/python/pulumi_gcp/iap/client.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ClientArgs', 'Client'] diff --git a/sdk/python/pulumi_gcp/iap/get_app_engine_service_iam_policy.py b/sdk/python/pulumi_gcp/iap/get_app_engine_service_iam_policy.py index af6293efd3..895c679034 100644 --- a/sdk/python/pulumi_gcp/iap/get_app_engine_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/get_app_engine_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iap/get_app_engine_version_iam_policy.py b/sdk/python/pulumi_gcp/iap/get_app_engine_version_iam_policy.py index 3f3a6f3b39..5530e426c0 100644 --- a/sdk/python/pulumi_gcp/iap/get_app_engine_version_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/get_app_engine_version_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iap/get_client.py b/sdk/python/pulumi_gcp/iap/get_client.py index 37e1fcea20..0d5c732f40 100644 --- a/sdk/python/pulumi_gcp/iap/get_client.py +++ b/sdk/python/pulumi_gcp/iap/get_client.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py b/sdk/python/pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py index 4bdd24ce57..31908188cd 100644 --- a/sdk/python/pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iap/get_tunnel_iam_policy.py b/sdk/python/pulumi_gcp/iap/get_tunnel_iam_policy.py index 3c497a21b3..0699aad8af 100644 --- a/sdk/python/pulumi_gcp/iap/get_tunnel_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/get_tunnel_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iap/get_tunnel_instance_iam_policy.py b/sdk/python/pulumi_gcp/iap/get_tunnel_instance_iam_policy.py index 92e07cabbf..7f3846cf98 100644 --- a/sdk/python/pulumi_gcp/iap/get_tunnel_instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/get_tunnel_instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iap/get_web_backend_service_iam_policy.py b/sdk/python/pulumi_gcp/iap/get_web_backend_service_iam_policy.py index ae0eeb8d0b..4e2885b8ba 100644 --- a/sdk/python/pulumi_gcp/iap/get_web_backend_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/get_web_backend_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iap/get_web_iam_policy.py b/sdk/python/pulumi_gcp/iap/get_web_iam_policy.py index 375eb00e8a..32dfb1120e 100644 --- a/sdk/python/pulumi_gcp/iap/get_web_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/get_web_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iap/get_web_region_backend_service_iam_policy.py b/sdk/python/pulumi_gcp/iap/get_web_region_backend_service_iam_policy.py index c4ad63e0ec..9fa09a162e 100644 --- a/sdk/python/pulumi_gcp/iap/get_web_region_backend_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/get_web_region_backend_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iap/get_web_type_app_engine_iam_policy.py b/sdk/python/pulumi_gcp/iap/get_web_type_app_engine_iam_policy.py index 3ce80b57de..4d297bfb10 100644 --- a/sdk/python/pulumi_gcp/iap/get_web_type_app_engine_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/get_web_type_app_engine_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iap/get_web_type_compute_iam_policy.py b/sdk/python/pulumi_gcp/iap/get_web_type_compute_iam_policy.py index b873c4e546..70c5f1038d 100644 --- a/sdk/python/pulumi_gcp/iap/get_web_type_compute_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/get_web_type_compute_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iap/outputs.py b/sdk/python/pulumi_gcp/iap/outputs.py index 414d28ea43..aa32a7544b 100644 --- a/sdk/python/pulumi_gcp/iap/outputs.py +++ b/sdk/python/pulumi_gcp/iap/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/iap/tunnel_dest_group.py b/sdk/python/pulumi_gcp/iap/tunnel_dest_group.py index b8addaa4ff..550dbcb99f 100644 --- a/sdk/python/pulumi_gcp/iap/tunnel_dest_group.py +++ b/sdk/python/pulumi_gcp/iap/tunnel_dest_group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TunnelDestGroupArgs', 'TunnelDestGroup'] diff --git a/sdk/python/pulumi_gcp/iap/tunnel_dest_group_iam_binding.py b/sdk/python/pulumi_gcp/iap/tunnel_dest_group_iam_binding.py index b5e55a984a..18da8f5fbc 100644 --- a/sdk/python/pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +++ b/sdk/python/pulumi_gcp/iap/tunnel_dest_group_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/tunnel_dest_group_iam_member.py b/sdk/python/pulumi_gcp/iap/tunnel_dest_group_iam_member.py index 6dee546c5c..c9f83edf95 100644 --- a/sdk/python/pulumi_gcp/iap/tunnel_dest_group_iam_member.py +++ b/sdk/python/pulumi_gcp/iap/tunnel_dest_group_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/tunnel_dest_group_iam_policy.py b/sdk/python/pulumi_gcp/iap/tunnel_dest_group_iam_policy.py index 61e0b47a53..27e9c0acf7 100644 --- a/sdk/python/pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/tunnel_dest_group_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TunnelDestGroupIamPolicyArgs', 'TunnelDestGroupIamPolicy'] diff --git a/sdk/python/pulumi_gcp/iap/tunnel_iam_binding.py b/sdk/python/pulumi_gcp/iap/tunnel_iam_binding.py index a7623ed61a..dc268ea1c4 100644 --- a/sdk/python/pulumi_gcp/iap/tunnel_iam_binding.py +++ b/sdk/python/pulumi_gcp/iap/tunnel_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/tunnel_iam_member.py b/sdk/python/pulumi_gcp/iap/tunnel_iam_member.py index e744ca1464..faf01d8097 100644 --- a/sdk/python/pulumi_gcp/iap/tunnel_iam_member.py +++ b/sdk/python/pulumi_gcp/iap/tunnel_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/tunnel_iam_policy.py b/sdk/python/pulumi_gcp/iap/tunnel_iam_policy.py index abe0b638a2..58f0d328fb 100644 --- a/sdk/python/pulumi_gcp/iap/tunnel_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/tunnel_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TunnelIamPolicyArgs', 'TunnelIamPolicy'] diff --git a/sdk/python/pulumi_gcp/iap/tunnel_instance_iam_binding.py b/sdk/python/pulumi_gcp/iap/tunnel_instance_iam_binding.py index 803d03938b..9b0061b2c1 100644 --- a/sdk/python/pulumi_gcp/iap/tunnel_instance_iam_binding.py +++ b/sdk/python/pulumi_gcp/iap/tunnel_instance_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/tunnel_instance_iam_member.py b/sdk/python/pulumi_gcp/iap/tunnel_instance_iam_member.py index e7501b268a..c2cff8818b 100644 --- a/sdk/python/pulumi_gcp/iap/tunnel_instance_iam_member.py +++ b/sdk/python/pulumi_gcp/iap/tunnel_instance_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/tunnel_instance_iam_policy.py b/sdk/python/pulumi_gcp/iap/tunnel_instance_iam_policy.py index d4a3036b0e..aeea1753ee 100644 --- a/sdk/python/pulumi_gcp/iap/tunnel_instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/tunnel_instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TunnelInstanceIAMPolicyArgs', 'TunnelInstanceIAMPolicy'] diff --git a/sdk/python/pulumi_gcp/iap/web_backend_service_iam_binding.py b/sdk/python/pulumi_gcp/iap/web_backend_service_iam_binding.py index 03de6ce16e..b4bd54c8e0 100644 --- a/sdk/python/pulumi_gcp/iap/web_backend_service_iam_binding.py +++ b/sdk/python/pulumi_gcp/iap/web_backend_service_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/web_backend_service_iam_member.py b/sdk/python/pulumi_gcp/iap/web_backend_service_iam_member.py index 443d9c9fbf..9689421ec4 100644 --- a/sdk/python/pulumi_gcp/iap/web_backend_service_iam_member.py +++ b/sdk/python/pulumi_gcp/iap/web_backend_service_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/web_backend_service_iam_policy.py b/sdk/python/pulumi_gcp/iap/web_backend_service_iam_policy.py index 845f22fb74..9c1c2551f1 100644 --- a/sdk/python/pulumi_gcp/iap/web_backend_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/web_backend_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['WebBackendServiceIamPolicyArgs', 'WebBackendServiceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/iap/web_iam_binding.py b/sdk/python/pulumi_gcp/iap/web_iam_binding.py index a4477b944c..06484cc2d7 100644 --- a/sdk/python/pulumi_gcp/iap/web_iam_binding.py +++ b/sdk/python/pulumi_gcp/iap/web_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/web_iam_member.py b/sdk/python/pulumi_gcp/iap/web_iam_member.py index 558f6d6f80..6191f1a39e 100644 --- a/sdk/python/pulumi_gcp/iap/web_iam_member.py +++ b/sdk/python/pulumi_gcp/iap/web_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/web_iam_policy.py b/sdk/python/pulumi_gcp/iap/web_iam_policy.py index 34d3285a41..b748f771f2 100644 --- a/sdk/python/pulumi_gcp/iap/web_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/web_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['WebIamPolicyArgs', 'WebIamPolicy'] diff --git a/sdk/python/pulumi_gcp/iap/web_region_backend_service_iam_binding.py b/sdk/python/pulumi_gcp/iap/web_region_backend_service_iam_binding.py index eed22391fb..84f16a11e7 100644 --- a/sdk/python/pulumi_gcp/iap/web_region_backend_service_iam_binding.py +++ b/sdk/python/pulumi_gcp/iap/web_region_backend_service_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/web_region_backend_service_iam_member.py b/sdk/python/pulumi_gcp/iap/web_region_backend_service_iam_member.py index 0b75ae0c97..cbe87b5db4 100644 --- a/sdk/python/pulumi_gcp/iap/web_region_backend_service_iam_member.py +++ b/sdk/python/pulumi_gcp/iap/web_region_backend_service_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/web_region_backend_service_iam_policy.py b/sdk/python/pulumi_gcp/iap/web_region_backend_service_iam_policy.py index c866dfebb7..7adb50fd66 100644 --- a/sdk/python/pulumi_gcp/iap/web_region_backend_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/web_region_backend_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['WebRegionBackendServiceIamPolicyArgs', 'WebRegionBackendServiceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/iap/web_type_app_enging_iam_binding.py b/sdk/python/pulumi_gcp/iap/web_type_app_enging_iam_binding.py index 85e3f78fec..ae978a25e8 100644 --- a/sdk/python/pulumi_gcp/iap/web_type_app_enging_iam_binding.py +++ b/sdk/python/pulumi_gcp/iap/web_type_app_enging_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/web_type_app_enging_iam_member.py b/sdk/python/pulumi_gcp/iap/web_type_app_enging_iam_member.py index a989fccf44..33773cee28 100644 --- a/sdk/python/pulumi_gcp/iap/web_type_app_enging_iam_member.py +++ b/sdk/python/pulumi_gcp/iap/web_type_app_enging_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/web_type_app_enging_iam_policy.py b/sdk/python/pulumi_gcp/iap/web_type_app_enging_iam_policy.py index 6a092d0672..ea4e0b0389 100644 --- a/sdk/python/pulumi_gcp/iap/web_type_app_enging_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/web_type_app_enging_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['WebTypeAppEngingIamPolicyArgs', 'WebTypeAppEngingIamPolicy'] diff --git a/sdk/python/pulumi_gcp/iap/web_type_compute_iam_binding.py b/sdk/python/pulumi_gcp/iap/web_type_compute_iam_binding.py index 1a4b51bb97..6e8509de12 100644 --- a/sdk/python/pulumi_gcp/iap/web_type_compute_iam_binding.py +++ b/sdk/python/pulumi_gcp/iap/web_type_compute_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/web_type_compute_iam_member.py b/sdk/python/pulumi_gcp/iap/web_type_compute_iam_member.py index c7a2cac77d..4cc0862adc 100644 --- a/sdk/python/pulumi_gcp/iap/web_type_compute_iam_member.py +++ b/sdk/python/pulumi_gcp/iap/web_type_compute_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/iap/web_type_compute_iam_policy.py b/sdk/python/pulumi_gcp/iap/web_type_compute_iam_policy.py index 916bd88f10..7f3e91945d 100644 --- a/sdk/python/pulumi_gcp/iap/web_type_compute_iam_policy.py +++ b/sdk/python/pulumi_gcp/iap/web_type_compute_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['WebTypeComputeIamPolicyArgs', 'WebTypeComputeIamPolicy'] diff --git a/sdk/python/pulumi_gcp/identityplatform/_inputs.py b/sdk/python/pulumi_gcp/identityplatform/_inputs.py index 01e71d9c9f..b24b515f3c 100644 --- a/sdk/python/pulumi_gcp/identityplatform/_inputs.py +++ b/sdk/python/pulumi_gcp/identityplatform/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/identityplatform/config.py b/sdk/python/pulumi_gcp/identityplatform/config.py index 5f68a54831..dc8e296486 100644 --- a/sdk/python/pulumi_gcp/identityplatform/config.py +++ b/sdk/python/pulumi_gcp/identityplatform/config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/identityplatform/default_supported_idp_config.py b/sdk/python/pulumi_gcp/identityplatform/default_supported_idp_config.py index c3e0bd0a5d..0c9859a2a9 100644 --- a/sdk/python/pulumi_gcp/identityplatform/default_supported_idp_config.py +++ b/sdk/python/pulumi_gcp/identityplatform/default_supported_idp_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DefaultSupportedIdpConfigArgs', 'DefaultSupportedIdpConfig'] diff --git a/sdk/python/pulumi_gcp/identityplatform/inbound_saml_config.py b/sdk/python/pulumi_gcp/identityplatform/inbound_saml_config.py index 65c8c40501..c48a56610b 100644 --- a/sdk/python/pulumi_gcp/identityplatform/inbound_saml_config.py +++ b/sdk/python/pulumi_gcp/identityplatform/inbound_saml_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/identityplatform/oauth_idp_config.py b/sdk/python/pulumi_gcp/identityplatform/oauth_idp_config.py index 1626afbcfb..670a28597e 100644 --- a/sdk/python/pulumi_gcp/identityplatform/oauth_idp_config.py +++ b/sdk/python/pulumi_gcp/identityplatform/oauth_idp_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['OauthIdpConfigArgs', 'OauthIdpConfig'] diff --git a/sdk/python/pulumi_gcp/identityplatform/outputs.py b/sdk/python/pulumi_gcp/identityplatform/outputs.py index 04df0e8d97..9b31a68fd1 100644 --- a/sdk/python/pulumi_gcp/identityplatform/outputs.py +++ b/sdk/python/pulumi_gcp/identityplatform/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/identityplatform/project_default_config.py b/sdk/python/pulumi_gcp/identityplatform/project_default_config.py index 60c40874d6..5454d6d672 100644 --- a/sdk/python/pulumi_gcp/identityplatform/project_default_config.py +++ b/sdk/python/pulumi_gcp/identityplatform/project_default_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/identityplatform/tenant.py b/sdk/python/pulumi_gcp/identityplatform/tenant.py index 6ca9df46ea..5d021c4d9c 100644 --- a/sdk/python/pulumi_gcp/identityplatform/tenant.py +++ b/sdk/python/pulumi_gcp/identityplatform/tenant.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TenantArgs', 'Tenant'] diff --git a/sdk/python/pulumi_gcp/identityplatform/tenant_default_supported_idp_config.py b/sdk/python/pulumi_gcp/identityplatform/tenant_default_supported_idp_config.py index 26e97c7ca7..e1e5762f6e 100644 --- a/sdk/python/pulumi_gcp/identityplatform/tenant_default_supported_idp_config.py +++ b/sdk/python/pulumi_gcp/identityplatform/tenant_default_supported_idp_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TenantDefaultSupportedIdpConfigArgs', 'TenantDefaultSupportedIdpConfig'] diff --git a/sdk/python/pulumi_gcp/identityplatform/tenant_inbound_saml_config.py b/sdk/python/pulumi_gcp/identityplatform/tenant_inbound_saml_config.py index df1dbfa745..cf75786d5e 100644 --- a/sdk/python/pulumi_gcp/identityplatform/tenant_inbound_saml_config.py +++ b/sdk/python/pulumi_gcp/identityplatform/tenant_inbound_saml_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/identityplatform/tenant_oauth_idp_config.py b/sdk/python/pulumi_gcp/identityplatform/tenant_oauth_idp_config.py index 831534cde4..581d4447dc 100644 --- a/sdk/python/pulumi_gcp/identityplatform/tenant_oauth_idp_config.py +++ b/sdk/python/pulumi_gcp/identityplatform/tenant_oauth_idp_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TenantOauthIdpConfigArgs', 'TenantOauthIdpConfig'] diff --git a/sdk/python/pulumi_gcp/integrationconnectors/_inputs.py b/sdk/python/pulumi_gcp/integrationconnectors/_inputs.py index a3dfd1f8af..a8e1ca7623 100644 --- a/sdk/python/pulumi_gcp/integrationconnectors/_inputs.py +++ b/sdk/python/pulumi_gcp/integrationconnectors/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/integrationconnectors/connection.py b/sdk/python/pulumi_gcp/integrationconnectors/connection.py index f1f9096f9d..022ac38d93 100644 --- a/sdk/python/pulumi_gcp/integrationconnectors/connection.py +++ b/sdk/python/pulumi_gcp/integrationconnectors/connection.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/integrationconnectors/endpoint_attachment.py b/sdk/python/pulumi_gcp/integrationconnectors/endpoint_attachment.py index 1bcc0999f6..1b04e347be 100644 --- a/sdk/python/pulumi_gcp/integrationconnectors/endpoint_attachment.py +++ b/sdk/python/pulumi_gcp/integrationconnectors/endpoint_attachment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['EndpointAttachmentArgs', 'EndpointAttachment'] diff --git a/sdk/python/pulumi_gcp/integrationconnectors/outputs.py b/sdk/python/pulumi_gcp/integrationconnectors/outputs.py index 878624157c..856245721d 100644 --- a/sdk/python/pulumi_gcp/integrationconnectors/outputs.py +++ b/sdk/python/pulumi_gcp/integrationconnectors/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/kms/_inputs.py b/sdk/python/pulumi_gcp/kms/_inputs.py index 85bd2bbade..07c2203d30 100644 --- a/sdk/python/pulumi_gcp/kms/_inputs.py +++ b/sdk/python/pulumi_gcp/kms/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/kms/crypto_key.py b/sdk/python/pulumi_gcp/kms/crypto_key.py index 41fdc055d1..98bf46e64e 100644 --- a/sdk/python/pulumi_gcp/kms/crypto_key.py +++ b/sdk/python/pulumi_gcp/kms/crypto_key.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/kms/crypto_key_iam_binding.py b/sdk/python/pulumi_gcp/kms/crypto_key_iam_binding.py index c28fdca302..f64da8f0a1 100644 --- a/sdk/python/pulumi_gcp/kms/crypto_key_iam_binding.py +++ b/sdk/python/pulumi_gcp/kms/crypto_key_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/kms/crypto_key_iam_member.py b/sdk/python/pulumi_gcp/kms/crypto_key_iam_member.py index 5494f4dbb8..ccbf5e6ae6 100644 --- a/sdk/python/pulumi_gcp/kms/crypto_key_iam_member.py +++ b/sdk/python/pulumi_gcp/kms/crypto_key_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/kms/crypto_key_iam_policy.py b/sdk/python/pulumi_gcp/kms/crypto_key_iam_policy.py index 965979208e..05238d71df 100644 --- a/sdk/python/pulumi_gcp/kms/crypto_key_iam_policy.py +++ b/sdk/python/pulumi_gcp/kms/crypto_key_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['CryptoKeyIAMPolicyArgs', 'CryptoKeyIAMPolicy'] diff --git a/sdk/python/pulumi_gcp/kms/crypto_key_version.py b/sdk/python/pulumi_gcp/kms/crypto_key_version.py index 04ac06b3f3..8d35e04edb 100644 --- a/sdk/python/pulumi_gcp/kms/crypto_key_version.py +++ b/sdk/python/pulumi_gcp/kms/crypto_key_version.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/kms/ekm_connection.py b/sdk/python/pulumi_gcp/kms/ekm_connection.py index 5e2af2af9f..6068e37002 100644 --- a/sdk/python/pulumi_gcp/kms/ekm_connection.py +++ b/sdk/python/pulumi_gcp/kms/ekm_connection.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/kms/get_crypto_key_iam_policy.py b/sdk/python/pulumi_gcp/kms/get_crypto_key_iam_policy.py index e29de63040..b505ed677c 100644 --- a/sdk/python/pulumi_gcp/kms/get_crypto_key_iam_policy.py +++ b/sdk/python/pulumi_gcp/kms/get_crypto_key_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/kms/get_key_ring_iam_policy.py b/sdk/python/pulumi_gcp/kms/get_key_ring_iam_policy.py index fc077a1661..af0b9ae4da 100644 --- a/sdk/python/pulumi_gcp/kms/get_key_ring_iam_policy.py +++ b/sdk/python/pulumi_gcp/kms/get_key_ring_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/kms/get_kms_crypto_key.py b/sdk/python/pulumi_gcp/kms/get_kms_crypto_key.py index 36ced77f58..37a85abb19 100644 --- a/sdk/python/pulumi_gcp/kms/get_kms_crypto_key.py +++ b/sdk/python/pulumi_gcp/kms/get_kms_crypto_key.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/kms/get_kms_crypto_key_version.py b/sdk/python/pulumi_gcp/kms/get_kms_crypto_key_version.py index 06380c2a86..d8091aef59 100644 --- a/sdk/python/pulumi_gcp/kms/get_kms_crypto_key_version.py +++ b/sdk/python/pulumi_gcp/kms/get_kms_crypto_key_version.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/kms/get_kms_key_ring.py b/sdk/python/pulumi_gcp/kms/get_kms_key_ring.py index 8d5aadb79b..c273560a28 100644 --- a/sdk/python/pulumi_gcp/kms/get_kms_key_ring.py +++ b/sdk/python/pulumi_gcp/kms/get_kms_key_ring.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/kms/get_kms_secret.py b/sdk/python/pulumi_gcp/kms/get_kms_secret.py index 457a14ebd4..821ba04ad9 100644 --- a/sdk/python/pulumi_gcp/kms/get_kms_secret.py +++ b/sdk/python/pulumi_gcp/kms/get_kms_secret.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/kms/get_kms_secret_asymmetric.py b/sdk/python/pulumi_gcp/kms/get_kms_secret_asymmetric.py index 775f117a94..026926e80c 100644 --- a/sdk/python/pulumi_gcp/kms/get_kms_secret_asymmetric.py +++ b/sdk/python/pulumi_gcp/kms/get_kms_secret_asymmetric.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/kms/get_kms_secret_ciphertext.py b/sdk/python/pulumi_gcp/kms/get_kms_secret_ciphertext.py index 6d68efc7d5..0c7f99a073 100644 --- a/sdk/python/pulumi_gcp/kms/get_kms_secret_ciphertext.py +++ b/sdk/python/pulumi_gcp/kms/get_kms_secret_ciphertext.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/kms/key_ring.py b/sdk/python/pulumi_gcp/kms/key_ring.py index 178a1f9441..c5ec3c6929 100644 --- a/sdk/python/pulumi_gcp/kms/key_ring.py +++ b/sdk/python/pulumi_gcp/kms/key_ring.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['KeyRingArgs', 'KeyRing'] diff --git a/sdk/python/pulumi_gcp/kms/key_ring_iam_binding.py b/sdk/python/pulumi_gcp/kms/key_ring_iam_binding.py index 65feb6139b..11b58a28b2 100644 --- a/sdk/python/pulumi_gcp/kms/key_ring_iam_binding.py +++ b/sdk/python/pulumi_gcp/kms/key_ring_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/kms/key_ring_iam_member.py b/sdk/python/pulumi_gcp/kms/key_ring_iam_member.py index 6949fbb5c6..69e7bc663b 100644 --- a/sdk/python/pulumi_gcp/kms/key_ring_iam_member.py +++ b/sdk/python/pulumi_gcp/kms/key_ring_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/kms/key_ring_iam_policy.py b/sdk/python/pulumi_gcp/kms/key_ring_iam_policy.py index bf8a6929f6..710845caee 100644 --- a/sdk/python/pulumi_gcp/kms/key_ring_iam_policy.py +++ b/sdk/python/pulumi_gcp/kms/key_ring_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['KeyRingIAMPolicyArgs', 'KeyRingIAMPolicy'] diff --git a/sdk/python/pulumi_gcp/kms/key_ring_import_job.py b/sdk/python/pulumi_gcp/kms/key_ring_import_job.py index 51b6a13075..27fa07cd71 100644 --- a/sdk/python/pulumi_gcp/kms/key_ring_import_job.py +++ b/sdk/python/pulumi_gcp/kms/key_ring_import_job.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/kms/outputs.py b/sdk/python/pulumi_gcp/kms/outputs.py index 4e4c48b684..3932020740 100644 --- a/sdk/python/pulumi_gcp/kms/outputs.py +++ b/sdk/python/pulumi_gcp/kms/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/kms/secret_ciphertext.py b/sdk/python/pulumi_gcp/kms/secret_ciphertext.py index 2e2cc4ec95..5be30ce73a 100644 --- a/sdk/python/pulumi_gcp/kms/secret_ciphertext.py +++ b/sdk/python/pulumi_gcp/kms/secret_ciphertext.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SecretCiphertextArgs', 'SecretCiphertext'] diff --git a/sdk/python/pulumi_gcp/logging/_inputs.py b/sdk/python/pulumi_gcp/logging/_inputs.py index ab6bb1f48e..dbf5fedd72 100644 --- a/sdk/python/pulumi_gcp/logging/_inputs.py +++ b/sdk/python/pulumi_gcp/logging/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/logging/billing_account_bucket_config.py b/sdk/python/pulumi_gcp/logging/billing_account_bucket_config.py index c4b38df986..17f4d71877 100644 --- a/sdk/python/pulumi_gcp/logging/billing_account_bucket_config.py +++ b/sdk/python/pulumi_gcp/logging/billing_account_bucket_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/logging/billing_account_exclusion.py b/sdk/python/pulumi_gcp/logging/billing_account_exclusion.py index d8a21da682..a7cca9308f 100644 --- a/sdk/python/pulumi_gcp/logging/billing_account_exclusion.py +++ b/sdk/python/pulumi_gcp/logging/billing_account_exclusion.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['BillingAccountExclusionArgs', 'BillingAccountExclusion'] diff --git a/sdk/python/pulumi_gcp/logging/billing_account_sink.py b/sdk/python/pulumi_gcp/logging/billing_account_sink.py index cdb4a9a5c1..77c1b4779f 100644 --- a/sdk/python/pulumi_gcp/logging/billing_account_sink.py +++ b/sdk/python/pulumi_gcp/logging/billing_account_sink.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/logging/folder_bucket_config.py b/sdk/python/pulumi_gcp/logging/folder_bucket_config.py index ac80f27028..0b03fa51ce 100644 --- a/sdk/python/pulumi_gcp/logging/folder_bucket_config.py +++ b/sdk/python/pulumi_gcp/logging/folder_bucket_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/logging/folder_exclusion.py b/sdk/python/pulumi_gcp/logging/folder_exclusion.py index 8af8647b0c..33610d8273 100644 --- a/sdk/python/pulumi_gcp/logging/folder_exclusion.py +++ b/sdk/python/pulumi_gcp/logging/folder_exclusion.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['FolderExclusionArgs', 'FolderExclusion'] diff --git a/sdk/python/pulumi_gcp/logging/folder_settings.py b/sdk/python/pulumi_gcp/logging/folder_settings.py index 7b5836b9d9..e6fce7eee8 100644 --- a/sdk/python/pulumi_gcp/logging/folder_settings.py +++ b/sdk/python/pulumi_gcp/logging/folder_settings.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['FolderSettingsArgs', 'FolderSettings'] diff --git a/sdk/python/pulumi_gcp/logging/folder_sink.py b/sdk/python/pulumi_gcp/logging/folder_sink.py index 1a6e089e47..ef5625b8a7 100644 --- a/sdk/python/pulumi_gcp/logging/folder_sink.py +++ b/sdk/python/pulumi_gcp/logging/folder_sink.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/logging/get_folder_settings.py b/sdk/python/pulumi_gcp/logging/get_folder_settings.py index 1e213f6680..5de7186508 100644 --- a/sdk/python/pulumi_gcp/logging/get_folder_settings.py +++ b/sdk/python/pulumi_gcp/logging/get_folder_settings.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/logging/get_organization_settings.py b/sdk/python/pulumi_gcp/logging/get_organization_settings.py index 9dcfc1c325..ffd15e5d51 100644 --- a/sdk/python/pulumi_gcp/logging/get_organization_settings.py +++ b/sdk/python/pulumi_gcp/logging/get_organization_settings.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/logging/get_project_cmek_settings.py b/sdk/python/pulumi_gcp/logging/get_project_cmek_settings.py index 0addd8221f..c119f2d776 100644 --- a/sdk/python/pulumi_gcp/logging/get_project_cmek_settings.py +++ b/sdk/python/pulumi_gcp/logging/get_project_cmek_settings.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/logging/get_project_settings.py b/sdk/python/pulumi_gcp/logging/get_project_settings.py index 669e8f9e5a..f4874e4412 100644 --- a/sdk/python/pulumi_gcp/logging/get_project_settings.py +++ b/sdk/python/pulumi_gcp/logging/get_project_settings.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/logging/get_sink.py b/sdk/python/pulumi_gcp/logging/get_sink.py index 16529d1779..6d4484275b 100644 --- a/sdk/python/pulumi_gcp/logging/get_sink.py +++ b/sdk/python/pulumi_gcp/logging/get_sink.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/logging/linked_dataset.py b/sdk/python/pulumi_gcp/logging/linked_dataset.py index b1c750af41..194f9158cc 100644 --- a/sdk/python/pulumi_gcp/logging/linked_dataset.py +++ b/sdk/python/pulumi_gcp/logging/linked_dataset.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/logging/log_view.py b/sdk/python/pulumi_gcp/logging/log_view.py index 36320ccbde..1cc6788e6e 100644 --- a/sdk/python/pulumi_gcp/logging/log_view.py +++ b/sdk/python/pulumi_gcp/logging/log_view.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['LogViewArgs', 'LogView'] diff --git a/sdk/python/pulumi_gcp/logging/metric.py b/sdk/python/pulumi_gcp/logging/metric.py index e3a12602c4..dfd716b02a 100644 --- a/sdk/python/pulumi_gcp/logging/metric.py +++ b/sdk/python/pulumi_gcp/logging/metric.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/logging/organization_bucket_config.py b/sdk/python/pulumi_gcp/logging/organization_bucket_config.py index be1548bdbe..7bea75fb6c 100644 --- a/sdk/python/pulumi_gcp/logging/organization_bucket_config.py +++ b/sdk/python/pulumi_gcp/logging/organization_bucket_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/logging/organization_exclusion.py b/sdk/python/pulumi_gcp/logging/organization_exclusion.py index 30f43d32ba..2c118f793e 100644 --- a/sdk/python/pulumi_gcp/logging/organization_exclusion.py +++ b/sdk/python/pulumi_gcp/logging/organization_exclusion.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['OrganizationExclusionArgs', 'OrganizationExclusion'] diff --git a/sdk/python/pulumi_gcp/logging/organization_settings.py b/sdk/python/pulumi_gcp/logging/organization_settings.py index 5d309d108b..60dfd82e60 100644 --- a/sdk/python/pulumi_gcp/logging/organization_settings.py +++ b/sdk/python/pulumi_gcp/logging/organization_settings.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['OrganizationSettingsArgs', 'OrganizationSettings'] diff --git a/sdk/python/pulumi_gcp/logging/organization_sink.py b/sdk/python/pulumi_gcp/logging/organization_sink.py index 37a46ff2e7..e64ab1d691 100644 --- a/sdk/python/pulumi_gcp/logging/organization_sink.py +++ b/sdk/python/pulumi_gcp/logging/organization_sink.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/logging/outputs.py b/sdk/python/pulumi_gcp/logging/outputs.py index 093044613c..77000ee218 100644 --- a/sdk/python/pulumi_gcp/logging/outputs.py +++ b/sdk/python/pulumi_gcp/logging/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/logging/project_bucket_config.py b/sdk/python/pulumi_gcp/logging/project_bucket_config.py index 1eaefe427a..98ea97be64 100644 --- a/sdk/python/pulumi_gcp/logging/project_bucket_config.py +++ b/sdk/python/pulumi_gcp/logging/project_bucket_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/logging/project_exclusion.py b/sdk/python/pulumi_gcp/logging/project_exclusion.py index 1e8f9ca287..0b5a39854b 100644 --- a/sdk/python/pulumi_gcp/logging/project_exclusion.py +++ b/sdk/python/pulumi_gcp/logging/project_exclusion.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ProjectExclusionArgs', 'ProjectExclusion'] diff --git a/sdk/python/pulumi_gcp/logging/project_sink.py b/sdk/python/pulumi_gcp/logging/project_sink.py index ca132ab235..a60f31495a 100644 --- a/sdk/python/pulumi_gcp/logging/project_sink.py +++ b/sdk/python/pulumi_gcp/logging/project_sink.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/looker/_inputs.py b/sdk/python/pulumi_gcp/looker/_inputs.py index a68e1f92c8..4458da1f06 100644 --- a/sdk/python/pulumi_gcp/looker/_inputs.py +++ b/sdk/python/pulumi_gcp/looker/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/looker/instance.py b/sdk/python/pulumi_gcp/looker/instance.py index 2312352a8b..3ad6ed1d55 100644 --- a/sdk/python/pulumi_gcp/looker/instance.py +++ b/sdk/python/pulumi_gcp/looker/instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/looker/outputs.py b/sdk/python/pulumi_gcp/looker/outputs.py index 0ea4c5120f..54a3fd0599 100644 --- a/sdk/python/pulumi_gcp/looker/outputs.py +++ b/sdk/python/pulumi_gcp/looker/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/memcache/_inputs.py b/sdk/python/pulumi_gcp/memcache/_inputs.py index c6e5bf31ee..a28b3f4ec3 100644 --- a/sdk/python/pulumi_gcp/memcache/_inputs.py +++ b/sdk/python/pulumi_gcp/memcache/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/memcache/instance.py b/sdk/python/pulumi_gcp/memcache/instance.py index 8a047a5aa6..d76a56d68c 100644 --- a/sdk/python/pulumi_gcp/memcache/instance.py +++ b/sdk/python/pulumi_gcp/memcache/instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/memcache/outputs.py b/sdk/python/pulumi_gcp/memcache/outputs.py index 4a98b03135..7fc7125c14 100644 --- a/sdk/python/pulumi_gcp/memcache/outputs.py +++ b/sdk/python/pulumi_gcp/memcache/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/migrationcenter/_inputs.py b/sdk/python/pulumi_gcp/migrationcenter/_inputs.py index c8afd4bd65..389ceddd7e 100644 --- a/sdk/python/pulumi_gcp/migrationcenter/_inputs.py +++ b/sdk/python/pulumi_gcp/migrationcenter/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/migrationcenter/group.py b/sdk/python/pulumi_gcp/migrationcenter/group.py index e499b351f4..84d7a6f134 100644 --- a/sdk/python/pulumi_gcp/migrationcenter/group.py +++ b/sdk/python/pulumi_gcp/migrationcenter/group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['GroupArgs', 'Group'] diff --git a/sdk/python/pulumi_gcp/migrationcenter/outputs.py b/sdk/python/pulumi_gcp/migrationcenter/outputs.py index db097ed829..0d26312d54 100644 --- a/sdk/python/pulumi_gcp/migrationcenter/outputs.py +++ b/sdk/python/pulumi_gcp/migrationcenter/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/migrationcenter/preference_set.py b/sdk/python/pulumi_gcp/migrationcenter/preference_set.py index 16f3c66d9b..7d8d590b5a 100644 --- a/sdk/python/pulumi_gcp/migrationcenter/preference_set.py +++ b/sdk/python/pulumi_gcp/migrationcenter/preference_set.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/ml/_inputs.py b/sdk/python/pulumi_gcp/ml/_inputs.py index c5a862ee5d..c4583831cd 100644 --- a/sdk/python/pulumi_gcp/ml/_inputs.py +++ b/sdk/python/pulumi_gcp/ml/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/ml/engine_model.py b/sdk/python/pulumi_gcp/ml/engine_model.py index 315df8fbec..67711397ae 100644 --- a/sdk/python/pulumi_gcp/ml/engine_model.py +++ b/sdk/python/pulumi_gcp/ml/engine_model.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/ml/outputs.py b/sdk/python/pulumi_gcp/ml/outputs.py index 2467167e3a..f49d7e7530 100644 --- a/sdk/python/pulumi_gcp/ml/outputs.py +++ b/sdk/python/pulumi_gcp/ml/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/monitoring/_inputs.py b/sdk/python/pulumi_gcp/monitoring/_inputs.py index 456bc20f64..8eb99e57ca 100644 --- a/sdk/python/pulumi_gcp/monitoring/_inputs.py +++ b/sdk/python/pulumi_gcp/monitoring/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/monitoring/alert_policy.py b/sdk/python/pulumi_gcp/monitoring/alert_policy.py index ce8f5d94f5..695813915a 100644 --- a/sdk/python/pulumi_gcp/monitoring/alert_policy.py +++ b/sdk/python/pulumi_gcp/monitoring/alert_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/monitoring/custom_service.py b/sdk/python/pulumi_gcp/monitoring/custom_service.py index 22bffaf2be..fd485b1ce5 100644 --- a/sdk/python/pulumi_gcp/monitoring/custom_service.py +++ b/sdk/python/pulumi_gcp/monitoring/custom_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/monitoring/dashboard.py b/sdk/python/pulumi_gcp/monitoring/dashboard.py index ac362ae70b..89c66814cc 100644 --- a/sdk/python/pulumi_gcp/monitoring/dashboard.py +++ b/sdk/python/pulumi_gcp/monitoring/dashboard.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DashboardArgs', 'Dashboard'] diff --git a/sdk/python/pulumi_gcp/monitoring/generic_service.py b/sdk/python/pulumi_gcp/monitoring/generic_service.py index 9fb70ba7d7..36fec972ad 100644 --- a/sdk/python/pulumi_gcp/monitoring/generic_service.py +++ b/sdk/python/pulumi_gcp/monitoring/generic_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/monitoring/get_app_engine_service.py b/sdk/python/pulumi_gcp/monitoring/get_app_engine_service.py index c081b3c83d..039ea9e554 100644 --- a/sdk/python/pulumi_gcp/monitoring/get_app_engine_service.py +++ b/sdk/python/pulumi_gcp/monitoring/get_app_engine_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/monitoring/get_cluster_istio_service.py b/sdk/python/pulumi_gcp/monitoring/get_cluster_istio_service.py index 05e685e76d..5ec60c9161 100644 --- a/sdk/python/pulumi_gcp/monitoring/get_cluster_istio_service.py +++ b/sdk/python/pulumi_gcp/monitoring/get_cluster_istio_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/monitoring/get_istio_canonical_service.py b/sdk/python/pulumi_gcp/monitoring/get_istio_canonical_service.py index f6fcee64a8..3a25b0abf5 100644 --- a/sdk/python/pulumi_gcp/monitoring/get_istio_canonical_service.py +++ b/sdk/python/pulumi_gcp/monitoring/get_istio_canonical_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/monitoring/get_mesh_istio_service.py b/sdk/python/pulumi_gcp/monitoring/get_mesh_istio_service.py index 6b9893a344..dd87561246 100644 --- a/sdk/python/pulumi_gcp/monitoring/get_mesh_istio_service.py +++ b/sdk/python/pulumi_gcp/monitoring/get_mesh_istio_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/monitoring/get_notification_channel.py b/sdk/python/pulumi_gcp/monitoring/get_notification_channel.py index 4767d0d46f..472179916e 100644 --- a/sdk/python/pulumi_gcp/monitoring/get_notification_channel.py +++ b/sdk/python/pulumi_gcp/monitoring/get_notification_channel.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/monitoring/get_secret_version.py b/sdk/python/pulumi_gcp/monitoring/get_secret_version.py index 9fa6dad020..1db197f72b 100644 --- a/sdk/python/pulumi_gcp/monitoring/get_secret_version.py +++ b/sdk/python/pulumi_gcp/monitoring/get_secret_version.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/monitoring/get_uptime_check_i_ps.py b/sdk/python/pulumi_gcp/monitoring/get_uptime_check_i_ps.py index 445abb9aeb..fafcced1ee 100644 --- a/sdk/python/pulumi_gcp/monitoring/get_uptime_check_i_ps.py +++ b/sdk/python/pulumi_gcp/monitoring/get_uptime_check_i_ps.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/monitoring/group.py b/sdk/python/pulumi_gcp/monitoring/group.py index 9cc02bdb8a..e58994459d 100644 --- a/sdk/python/pulumi_gcp/monitoring/group.py +++ b/sdk/python/pulumi_gcp/monitoring/group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['GroupArgs', 'Group'] diff --git a/sdk/python/pulumi_gcp/monitoring/metric_descriptor.py b/sdk/python/pulumi_gcp/monitoring/metric_descriptor.py index c60d5e2bc3..5b0f30c57a 100644 --- a/sdk/python/pulumi_gcp/monitoring/metric_descriptor.py +++ b/sdk/python/pulumi_gcp/monitoring/metric_descriptor.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/monitoring/monitored_project.py b/sdk/python/pulumi_gcp/monitoring/monitored_project.py index d6f5ceef5f..69d75db2de 100644 --- a/sdk/python/pulumi_gcp/monitoring/monitored_project.py +++ b/sdk/python/pulumi_gcp/monitoring/monitored_project.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['MonitoredProjectArgs', 'MonitoredProject'] diff --git a/sdk/python/pulumi_gcp/monitoring/notification_channel.py b/sdk/python/pulumi_gcp/monitoring/notification_channel.py index 9f24459464..4bc369deb7 100644 --- a/sdk/python/pulumi_gcp/monitoring/notification_channel.py +++ b/sdk/python/pulumi_gcp/monitoring/notification_channel.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/monitoring/outputs.py b/sdk/python/pulumi_gcp/monitoring/outputs.py index 121e7d6963..6e9de01b9b 100644 --- a/sdk/python/pulumi_gcp/monitoring/outputs.py +++ b/sdk/python/pulumi_gcp/monitoring/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/monitoring/slo.py b/sdk/python/pulumi_gcp/monitoring/slo.py index 5cc315f51c..c950eb3dfa 100644 --- a/sdk/python/pulumi_gcp/monitoring/slo.py +++ b/sdk/python/pulumi_gcp/monitoring/slo.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/monitoring/uptime_check_config.py b/sdk/python/pulumi_gcp/monitoring/uptime_check_config.py index c66de90e47..4aac853a5e 100644 --- a/sdk/python/pulumi_gcp/monitoring/uptime_check_config.py +++ b/sdk/python/pulumi_gcp/monitoring/uptime_check_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/netapp/_inputs.py b/sdk/python/pulumi_gcp/netapp/_inputs.py index 278f476ff8..25085f8d6a 100644 --- a/sdk/python/pulumi_gcp/netapp/_inputs.py +++ b/sdk/python/pulumi_gcp/netapp/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/netapp/active_directory.py b/sdk/python/pulumi_gcp/netapp/active_directory.py index dda488d419..1fa82487a4 100644 --- a/sdk/python/pulumi_gcp/netapp/active_directory.py +++ b/sdk/python/pulumi_gcp/netapp/active_directory.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ActiveDirectoryArgs', 'ActiveDirectory'] diff --git a/sdk/python/pulumi_gcp/netapp/backup_policy.py b/sdk/python/pulumi_gcp/netapp/backup_policy.py index 2db7f03b90..31f4bab3e1 100644 --- a/sdk/python/pulumi_gcp/netapp/backup_policy.py +++ b/sdk/python/pulumi_gcp/netapp/backup_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['BackupPolicyArgs', 'BackupPolicy'] diff --git a/sdk/python/pulumi_gcp/netapp/backup_vault.py b/sdk/python/pulumi_gcp/netapp/backup_vault.py index 7b7617408b..24111923be 100644 --- a/sdk/python/pulumi_gcp/netapp/backup_vault.py +++ b/sdk/python/pulumi_gcp/netapp/backup_vault.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['BackupVaultArgs', 'BackupVault'] diff --git a/sdk/python/pulumi_gcp/netapp/kmsconfig.py b/sdk/python/pulumi_gcp/netapp/kmsconfig.py index 6d98a2b108..55ada19deb 100644 --- a/sdk/python/pulumi_gcp/netapp/kmsconfig.py +++ b/sdk/python/pulumi_gcp/netapp/kmsconfig.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['KmsconfigArgs', 'Kmsconfig'] diff --git a/sdk/python/pulumi_gcp/netapp/outputs.py b/sdk/python/pulumi_gcp/netapp/outputs.py index ea58c31ee9..fb3092146c 100644 --- a/sdk/python/pulumi_gcp/netapp/outputs.py +++ b/sdk/python/pulumi_gcp/netapp/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/netapp/storage_pool.py b/sdk/python/pulumi_gcp/netapp/storage_pool.py index 5075b98102..05b3fef268 100644 --- a/sdk/python/pulumi_gcp/netapp/storage_pool.py +++ b/sdk/python/pulumi_gcp/netapp/storage_pool.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['StoragePoolArgs', 'StoragePool'] diff --git a/sdk/python/pulumi_gcp/netapp/volume.py b/sdk/python/pulumi_gcp/netapp/volume.py index 2e6de4fcb2..f13e5ad011 100644 --- a/sdk/python/pulumi_gcp/netapp/volume.py +++ b/sdk/python/pulumi_gcp/netapp/volume.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/netapp/volume_replication.py b/sdk/python/pulumi_gcp/netapp/volume_replication.py index ed0cff2c9c..c0b6f25565 100644 --- a/sdk/python/pulumi_gcp/netapp/volume_replication.py +++ b/sdk/python/pulumi_gcp/netapp/volume_replication.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/netapp/volume_snapshot.py b/sdk/python/pulumi_gcp/netapp/volume_snapshot.py index 025c138a84..326ae38b83 100644 --- a/sdk/python/pulumi_gcp/netapp/volume_snapshot.py +++ b/sdk/python/pulumi_gcp/netapp/volume_snapshot.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['VolumeSnapshotArgs', 'VolumeSnapshot'] diff --git a/sdk/python/pulumi_gcp/networkconnectivity/_inputs.py b/sdk/python/pulumi_gcp/networkconnectivity/_inputs.py index 694860c5ec..d634fe3523 100644 --- a/sdk/python/pulumi_gcp/networkconnectivity/_inputs.py +++ b/sdk/python/pulumi_gcp/networkconnectivity/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/networkconnectivity/hub.py b/sdk/python/pulumi_gcp/networkconnectivity/hub.py index a916e41a76..b85fb1e23c 100644 --- a/sdk/python/pulumi_gcp/networkconnectivity/hub.py +++ b/sdk/python/pulumi_gcp/networkconnectivity/hub.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networkconnectivity/outputs.py b/sdk/python/pulumi_gcp/networkconnectivity/outputs.py index 05a6a300df..72bc96d2de 100644 --- a/sdk/python/pulumi_gcp/networkconnectivity/outputs.py +++ b/sdk/python/pulumi_gcp/networkconnectivity/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/networkconnectivity/policy_based_route.py b/sdk/python/pulumi_gcp/networkconnectivity/policy_based_route.py index 0d51cd8b73..71f8243788 100644 --- a/sdk/python/pulumi_gcp/networkconnectivity/policy_based_route.py +++ b/sdk/python/pulumi_gcp/networkconnectivity/policy_based_route.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networkconnectivity/service_connection_policy.py b/sdk/python/pulumi_gcp/networkconnectivity/service_connection_policy.py index 4d917ec3df..d16cbfd1ad 100644 --- a/sdk/python/pulumi_gcp/networkconnectivity/service_connection_policy.py +++ b/sdk/python/pulumi_gcp/networkconnectivity/service_connection_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networkconnectivity/spoke.py b/sdk/python/pulumi_gcp/networkconnectivity/spoke.py index 35f919e303..f9238290e9 100644 --- a/sdk/python/pulumi_gcp/networkconnectivity/spoke.py +++ b/sdk/python/pulumi_gcp/networkconnectivity/spoke.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networkmanagement/_inputs.py b/sdk/python/pulumi_gcp/networkmanagement/_inputs.py index b558d34c8b..561d6ca68d 100644 --- a/sdk/python/pulumi_gcp/networkmanagement/_inputs.py +++ b/sdk/python/pulumi_gcp/networkmanagement/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/networkmanagement/connectivity_test.py b/sdk/python/pulumi_gcp/networkmanagement/connectivity_test.py index 5b059b9bcd..ff92f87280 100644 --- a/sdk/python/pulumi_gcp/networkmanagement/connectivity_test.py +++ b/sdk/python/pulumi_gcp/networkmanagement/connectivity_test.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networkmanagement/outputs.py b/sdk/python/pulumi_gcp/networkmanagement/outputs.py index d6ecbd3ba0..ae174e748e 100644 --- a/sdk/python/pulumi_gcp/networkmanagement/outputs.py +++ b/sdk/python/pulumi_gcp/networkmanagement/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/networksecurity/_inputs.py b/sdk/python/pulumi_gcp/networksecurity/_inputs.py index ca346671b8..9950d5adc3 100644 --- a/sdk/python/pulumi_gcp/networksecurity/_inputs.py +++ b/sdk/python/pulumi_gcp/networksecurity/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/networksecurity/address_group.py b/sdk/python/pulumi_gcp/networksecurity/address_group.py index 64fcb8c1e8..bcf74f96db 100644 --- a/sdk/python/pulumi_gcp/networksecurity/address_group.py +++ b/sdk/python/pulumi_gcp/networksecurity/address_group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AddressGroupArgs', 'AddressGroup'] diff --git a/sdk/python/pulumi_gcp/networksecurity/address_group_iam_binding.py b/sdk/python/pulumi_gcp/networksecurity/address_group_iam_binding.py index 1ffc481e5e..456ff0d924 100644 --- a/sdk/python/pulumi_gcp/networksecurity/address_group_iam_binding.py +++ b/sdk/python/pulumi_gcp/networksecurity/address_group_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networksecurity/address_group_iam_member.py b/sdk/python/pulumi_gcp/networksecurity/address_group_iam_member.py index cf72639709..22ee3a1f9e 100644 --- a/sdk/python/pulumi_gcp/networksecurity/address_group_iam_member.py +++ b/sdk/python/pulumi_gcp/networksecurity/address_group_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networksecurity/address_group_iam_policy.py b/sdk/python/pulumi_gcp/networksecurity/address_group_iam_policy.py index 40138877f8..6584528684 100644 --- a/sdk/python/pulumi_gcp/networksecurity/address_group_iam_policy.py +++ b/sdk/python/pulumi_gcp/networksecurity/address_group_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AddressGroupIamPolicyArgs', 'AddressGroupIamPolicy'] diff --git a/sdk/python/pulumi_gcp/networksecurity/authorization_policy.py b/sdk/python/pulumi_gcp/networksecurity/authorization_policy.py index fa45eb4814..908c662d1a 100644 --- a/sdk/python/pulumi_gcp/networksecurity/authorization_policy.py +++ b/sdk/python/pulumi_gcp/networksecurity/authorization_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networksecurity/client_tls_policy.py b/sdk/python/pulumi_gcp/networksecurity/client_tls_policy.py index ee786fc021..c61f0e042c 100644 --- a/sdk/python/pulumi_gcp/networksecurity/client_tls_policy.py +++ b/sdk/python/pulumi_gcp/networksecurity/client_tls_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networksecurity/firewall_endpoint.py b/sdk/python/pulumi_gcp/networksecurity/firewall_endpoint.py index 5a553e2b7c..cf597a65f2 100644 --- a/sdk/python/pulumi_gcp/networksecurity/firewall_endpoint.py +++ b/sdk/python/pulumi_gcp/networksecurity/firewall_endpoint.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['FirewallEndpointArgs', 'FirewallEndpoint'] diff --git a/sdk/python/pulumi_gcp/networksecurity/firewall_endpoint_association.py b/sdk/python/pulumi_gcp/networksecurity/firewall_endpoint_association.py index 3cdc97e5d9..d26af56665 100644 --- a/sdk/python/pulumi_gcp/networksecurity/firewall_endpoint_association.py +++ b/sdk/python/pulumi_gcp/networksecurity/firewall_endpoint_association.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['FirewallEndpointAssociationArgs', 'FirewallEndpointAssociation'] diff --git a/sdk/python/pulumi_gcp/networksecurity/gateway_security_policy.py b/sdk/python/pulumi_gcp/networksecurity/gateway_security_policy.py index d9ecbfd0c6..954ef37949 100644 --- a/sdk/python/pulumi_gcp/networksecurity/gateway_security_policy.py +++ b/sdk/python/pulumi_gcp/networksecurity/gateway_security_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['GatewaySecurityPolicyArgs', 'GatewaySecurityPolicy'] diff --git a/sdk/python/pulumi_gcp/networksecurity/gateway_security_policy_rule.py b/sdk/python/pulumi_gcp/networksecurity/gateway_security_policy_rule.py index cf930cca58..d0eacca213 100644 --- a/sdk/python/pulumi_gcp/networksecurity/gateway_security_policy_rule.py +++ b/sdk/python/pulumi_gcp/networksecurity/gateway_security_policy_rule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['GatewaySecurityPolicyRuleArgs', 'GatewaySecurityPolicyRule'] diff --git a/sdk/python/pulumi_gcp/networksecurity/get_address_group_iam_policy.py b/sdk/python/pulumi_gcp/networksecurity/get_address_group_iam_policy.py index d7cf91b0c1..622be5b240 100644 --- a/sdk/python/pulumi_gcp/networksecurity/get_address_group_iam_policy.py +++ b/sdk/python/pulumi_gcp/networksecurity/get_address_group_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/networksecurity/outputs.py b/sdk/python/pulumi_gcp/networksecurity/outputs.py index 5eaa014feb..8a254af86f 100644 --- a/sdk/python/pulumi_gcp/networksecurity/outputs.py +++ b/sdk/python/pulumi_gcp/networksecurity/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/networksecurity/security_profile.py b/sdk/python/pulumi_gcp/networksecurity/security_profile.py index ff5a4edb4d..34ba16908e 100644 --- a/sdk/python/pulumi_gcp/networksecurity/security_profile.py +++ b/sdk/python/pulumi_gcp/networksecurity/security_profile.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networksecurity/security_profile_group.py b/sdk/python/pulumi_gcp/networksecurity/security_profile_group.py index b5cff24717..300c731e70 100644 --- a/sdk/python/pulumi_gcp/networksecurity/security_profile_group.py +++ b/sdk/python/pulumi_gcp/networksecurity/security_profile_group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SecurityProfileGroupArgs', 'SecurityProfileGroup'] diff --git a/sdk/python/pulumi_gcp/networksecurity/server_tls_policy.py b/sdk/python/pulumi_gcp/networksecurity/server_tls_policy.py index 462fad15a7..367328bfa0 100644 --- a/sdk/python/pulumi_gcp/networksecurity/server_tls_policy.py +++ b/sdk/python/pulumi_gcp/networksecurity/server_tls_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networksecurity/tls_inspection_policy.py b/sdk/python/pulumi_gcp/networksecurity/tls_inspection_policy.py index df2fe15cdf..62a7af443c 100644 --- a/sdk/python/pulumi_gcp/networksecurity/tls_inspection_policy.py +++ b/sdk/python/pulumi_gcp/networksecurity/tls_inspection_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TlsInspectionPolicyArgs', 'TlsInspectionPolicy'] diff --git a/sdk/python/pulumi_gcp/networksecurity/url_list.py b/sdk/python/pulumi_gcp/networksecurity/url_list.py index d7bc487d35..70707a17cb 100644 --- a/sdk/python/pulumi_gcp/networksecurity/url_list.py +++ b/sdk/python/pulumi_gcp/networksecurity/url_list.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['UrlListArgs', 'UrlList'] diff --git a/sdk/python/pulumi_gcp/networkservices/_inputs.py b/sdk/python/pulumi_gcp/networkservices/_inputs.py index 681dd04f3a..969dc4ca35 100644 --- a/sdk/python/pulumi_gcp/networkservices/_inputs.py +++ b/sdk/python/pulumi_gcp/networkservices/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/networkservices/edge_cache_keyset.py b/sdk/python/pulumi_gcp/networkservices/edge_cache_keyset.py index 42ad0d5af1..d806af33f0 100644 --- a/sdk/python/pulumi_gcp/networkservices/edge_cache_keyset.py +++ b/sdk/python/pulumi_gcp/networkservices/edge_cache_keyset.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networkservices/edge_cache_origin.py b/sdk/python/pulumi_gcp/networkservices/edge_cache_origin.py index b94e6f1046..be13a966aa 100644 --- a/sdk/python/pulumi_gcp/networkservices/edge_cache_origin.py +++ b/sdk/python/pulumi_gcp/networkservices/edge_cache_origin.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networkservices/edge_cache_service.py b/sdk/python/pulumi_gcp/networkservices/edge_cache_service.py index c88c1c4dac..79cb9d63bb 100644 --- a/sdk/python/pulumi_gcp/networkservices/edge_cache_service.py +++ b/sdk/python/pulumi_gcp/networkservices/edge_cache_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networkservices/endpoint_policy.py b/sdk/python/pulumi_gcp/networkservices/endpoint_policy.py index 5261e32a98..8ff0e4c2ba 100644 --- a/sdk/python/pulumi_gcp/networkservices/endpoint_policy.py +++ b/sdk/python/pulumi_gcp/networkservices/endpoint_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networkservices/gateway.py b/sdk/python/pulumi_gcp/networkservices/gateway.py index bb3d9d5716..b0a0a10127 100644 --- a/sdk/python/pulumi_gcp/networkservices/gateway.py +++ b/sdk/python/pulumi_gcp/networkservices/gateway.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['GatewayArgs', 'Gateway'] diff --git a/sdk/python/pulumi_gcp/networkservices/grpc_route.py b/sdk/python/pulumi_gcp/networkservices/grpc_route.py index 04c2ae16dc..b4272e403b 100644 --- a/sdk/python/pulumi_gcp/networkservices/grpc_route.py +++ b/sdk/python/pulumi_gcp/networkservices/grpc_route.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networkservices/http_route.py b/sdk/python/pulumi_gcp/networkservices/http_route.py index 40590029e9..3491f25ab9 100644 --- a/sdk/python/pulumi_gcp/networkservices/http_route.py +++ b/sdk/python/pulumi_gcp/networkservices/http_route.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networkservices/mesh.py b/sdk/python/pulumi_gcp/networkservices/mesh.py index b840eb3aa1..8cd060b275 100644 --- a/sdk/python/pulumi_gcp/networkservices/mesh.py +++ b/sdk/python/pulumi_gcp/networkservices/mesh.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['MeshArgs', 'Mesh'] diff --git a/sdk/python/pulumi_gcp/networkservices/outputs.py b/sdk/python/pulumi_gcp/networkservices/outputs.py index 86c2424c0a..3037989e82 100644 --- a/sdk/python/pulumi_gcp/networkservices/outputs.py +++ b/sdk/python/pulumi_gcp/networkservices/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/networkservices/service_binding.py b/sdk/python/pulumi_gcp/networkservices/service_binding.py index 6a5a0e8775..578ea53ea2 100644 --- a/sdk/python/pulumi_gcp/networkservices/service_binding.py +++ b/sdk/python/pulumi_gcp/networkservices/service_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ServiceBindingArgs', 'ServiceBinding'] diff --git a/sdk/python/pulumi_gcp/networkservices/tcp_route.py b/sdk/python/pulumi_gcp/networkservices/tcp_route.py index 617ab9debd..3fd44ee689 100644 --- a/sdk/python/pulumi_gcp/networkservices/tcp_route.py +++ b/sdk/python/pulumi_gcp/networkservices/tcp_route.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/networkservices/tls_route.py b/sdk/python/pulumi_gcp/networkservices/tls_route.py index 1c8fba2a33..6c110af420 100644 --- a/sdk/python/pulumi_gcp/networkservices/tls_route.py +++ b/sdk/python/pulumi_gcp/networkservices/tls_route.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/notebooks/_inputs.py b/sdk/python/pulumi_gcp/notebooks/_inputs.py index 7dd9efc3f3..a646116a8c 100644 --- a/sdk/python/pulumi_gcp/notebooks/_inputs.py +++ b/sdk/python/pulumi_gcp/notebooks/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/notebooks/environment.py b/sdk/python/pulumi_gcp/notebooks/environment.py index 57d14dfd73..5f55cd7389 100644 --- a/sdk/python/pulumi_gcp/notebooks/environment.py +++ b/sdk/python/pulumi_gcp/notebooks/environment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/notebooks/get_instance_iam_policy.py b/sdk/python/pulumi_gcp/notebooks/get_instance_iam_policy.py index a6b281ebca..6d867f38e9 100644 --- a/sdk/python/pulumi_gcp/notebooks/get_instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/notebooks/get_instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/notebooks/get_runtime_iam_policy.py b/sdk/python/pulumi_gcp/notebooks/get_runtime_iam_policy.py index cfb72213ae..d16447c125 100644 --- a/sdk/python/pulumi_gcp/notebooks/get_runtime_iam_policy.py +++ b/sdk/python/pulumi_gcp/notebooks/get_runtime_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/notebooks/instance.py b/sdk/python/pulumi_gcp/notebooks/instance.py index ff34d514fd..f29232c27e 100644 --- a/sdk/python/pulumi_gcp/notebooks/instance.py +++ b/sdk/python/pulumi_gcp/notebooks/instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/notebooks/instance_iam_binding.py b/sdk/python/pulumi_gcp/notebooks/instance_iam_binding.py index c12fa3f427..6d83319d31 100644 --- a/sdk/python/pulumi_gcp/notebooks/instance_iam_binding.py +++ b/sdk/python/pulumi_gcp/notebooks/instance_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/notebooks/instance_iam_member.py b/sdk/python/pulumi_gcp/notebooks/instance_iam_member.py index 1affb65d50..8a7620f9ae 100644 --- a/sdk/python/pulumi_gcp/notebooks/instance_iam_member.py +++ b/sdk/python/pulumi_gcp/notebooks/instance_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/notebooks/instance_iam_policy.py b/sdk/python/pulumi_gcp/notebooks/instance_iam_policy.py index d606c0626e..95b623f453 100644 --- a/sdk/python/pulumi_gcp/notebooks/instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/notebooks/instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['InstanceIamPolicyArgs', 'InstanceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/notebooks/location.py b/sdk/python/pulumi_gcp/notebooks/location.py index 438925a348..0342979dcc 100644 --- a/sdk/python/pulumi_gcp/notebooks/location.py +++ b/sdk/python/pulumi_gcp/notebooks/location.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['LocationArgs', 'Location'] diff --git a/sdk/python/pulumi_gcp/notebooks/outputs.py b/sdk/python/pulumi_gcp/notebooks/outputs.py index ec0fe27788..0090845d8e 100644 --- a/sdk/python/pulumi_gcp/notebooks/outputs.py +++ b/sdk/python/pulumi_gcp/notebooks/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/notebooks/runtime.py b/sdk/python/pulumi_gcp/notebooks/runtime.py index 23a7234439..38090635c3 100644 --- a/sdk/python/pulumi_gcp/notebooks/runtime.py +++ b/sdk/python/pulumi_gcp/notebooks/runtime.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/notebooks/runtime_iam_binding.py b/sdk/python/pulumi_gcp/notebooks/runtime_iam_binding.py index 2527c82fe5..9d750627ea 100644 --- a/sdk/python/pulumi_gcp/notebooks/runtime_iam_binding.py +++ b/sdk/python/pulumi_gcp/notebooks/runtime_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/notebooks/runtime_iam_member.py b/sdk/python/pulumi_gcp/notebooks/runtime_iam_member.py index ef4c12458a..d28ee58904 100644 --- a/sdk/python/pulumi_gcp/notebooks/runtime_iam_member.py +++ b/sdk/python/pulumi_gcp/notebooks/runtime_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/notebooks/runtime_iam_policy.py b/sdk/python/pulumi_gcp/notebooks/runtime_iam_policy.py index f8081dae40..3541cf1f18 100644 --- a/sdk/python/pulumi_gcp/notebooks/runtime_iam_policy.py +++ b/sdk/python/pulumi_gcp/notebooks/runtime_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RuntimeIamPolicyArgs', 'RuntimeIamPolicy'] diff --git a/sdk/python/pulumi_gcp/organizations/_inputs.py b/sdk/python/pulumi_gcp/organizations/_inputs.py index 954a4222ef..fcc520148a 100644 --- a/sdk/python/pulumi_gcp/organizations/_inputs.py +++ b/sdk/python/pulumi_gcp/organizations/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/organizations/access_approval_settings.py b/sdk/python/pulumi_gcp/organizations/access_approval_settings.py index f4e0a7a235..bfa0bf44a7 100644 --- a/sdk/python/pulumi_gcp/organizations/access_approval_settings.py +++ b/sdk/python/pulumi_gcp/organizations/access_approval_settings.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/organizations/folder.py b/sdk/python/pulumi_gcp/organizations/folder.py index 107be500e0..3639392a23 100644 --- a/sdk/python/pulumi_gcp/organizations/folder.py +++ b/sdk/python/pulumi_gcp/organizations/folder.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['FolderArgs', 'Folder'] diff --git a/sdk/python/pulumi_gcp/organizations/get_active_folder.py b/sdk/python/pulumi_gcp/organizations/get_active_folder.py index bcb6ab50bc..e30ab03923 100644 --- a/sdk/python/pulumi_gcp/organizations/get_active_folder.py +++ b/sdk/python/pulumi_gcp/organizations/get_active_folder.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/organizations/get_billing_account.py b/sdk/python/pulumi_gcp/organizations/get_billing_account.py index c7d3b54d71..ad6b6fafb8 100644 --- a/sdk/python/pulumi_gcp/organizations/get_billing_account.py +++ b/sdk/python/pulumi_gcp/organizations/get_billing_account.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/organizations/get_client_config.py b/sdk/python/pulumi_gcp/organizations/get_client_config.py index 0634840db0..a4314ab55c 100644 --- a/sdk/python/pulumi_gcp/organizations/get_client_config.py +++ b/sdk/python/pulumi_gcp/organizations/get_client_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/organizations/get_client_open_id_user_info.py b/sdk/python/pulumi_gcp/organizations/get_client_open_id_user_info.py index 8f7d2b834c..8782540bb6 100644 --- a/sdk/python/pulumi_gcp/organizations/get_client_open_id_user_info.py +++ b/sdk/python/pulumi_gcp/organizations/get_client_open_id_user_info.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/organizations/get_folder.py b/sdk/python/pulumi_gcp/organizations/get_folder.py index 8b9957d130..a3bd091031 100644 --- a/sdk/python/pulumi_gcp/organizations/get_folder.py +++ b/sdk/python/pulumi_gcp/organizations/get_folder.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/organizations/get_folders.py b/sdk/python/pulumi_gcp/organizations/get_folders.py index aa93bf9a41..741c7f2b75 100644 --- a/sdk/python/pulumi_gcp/organizations/get_folders.py +++ b/sdk/python/pulumi_gcp/organizations/get_folders.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/organizations/get_iam_policy.py b/sdk/python/pulumi_gcp/organizations/get_iam_policy.py index 6fd8d0cb52..63beab38bb 100644 --- a/sdk/python/pulumi_gcp/organizations/get_iam_policy.py +++ b/sdk/python/pulumi_gcp/organizations/get_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/organizations/get_organization.py b/sdk/python/pulumi_gcp/organizations/get_organization.py index c5245fa28f..f9fe165872 100644 --- a/sdk/python/pulumi_gcp/organizations/get_organization.py +++ b/sdk/python/pulumi_gcp/organizations/get_organization.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/organizations/get_project.py b/sdk/python/pulumi_gcp/organizations/get_project.py index ac0e9cf0a4..1804064d1f 100644 --- a/sdk/python/pulumi_gcp/organizations/get_project.py +++ b/sdk/python/pulumi_gcp/organizations/get_project.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/organizations/iam_audit_config.py b/sdk/python/pulumi_gcp/organizations/iam_audit_config.py index 02d9d94ffd..1afc01df8e 100644 --- a/sdk/python/pulumi_gcp/organizations/iam_audit_config.py +++ b/sdk/python/pulumi_gcp/organizations/iam_audit_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/organizations/iam_binding.py b/sdk/python/pulumi_gcp/organizations/iam_binding.py index ee1a7243b6..32e13c9c14 100644 --- a/sdk/python/pulumi_gcp/organizations/iam_binding.py +++ b/sdk/python/pulumi_gcp/organizations/iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/organizations/iam_custom_role.py b/sdk/python/pulumi_gcp/organizations/iam_custom_role.py index 6f871f0364..19d1bcd6de 100644 --- a/sdk/python/pulumi_gcp/organizations/iam_custom_role.py +++ b/sdk/python/pulumi_gcp/organizations/iam_custom_role.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['IAMCustomRoleArgs', 'IAMCustomRole'] diff --git a/sdk/python/pulumi_gcp/organizations/iam_member.py b/sdk/python/pulumi_gcp/organizations/iam_member.py index 11af878d70..1599197a22 100644 --- a/sdk/python/pulumi_gcp/organizations/iam_member.py +++ b/sdk/python/pulumi_gcp/organizations/iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/organizations/iam_policy.py b/sdk/python/pulumi_gcp/organizations/iam_policy.py index 1ab7eea9d3..7b006ed565 100644 --- a/sdk/python/pulumi_gcp/organizations/iam_policy.py +++ b/sdk/python/pulumi_gcp/organizations/iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['IAMPolicyArgs', 'IAMPolicy'] diff --git a/sdk/python/pulumi_gcp/organizations/outputs.py b/sdk/python/pulumi_gcp/organizations/outputs.py index cf1b9f3790..2e839e9083 100644 --- a/sdk/python/pulumi_gcp/organizations/outputs.py +++ b/sdk/python/pulumi_gcp/organizations/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/organizations/policy.py b/sdk/python/pulumi_gcp/organizations/policy.py index c50b92b455..0c606fe464 100644 --- a/sdk/python/pulumi_gcp/organizations/policy.py +++ b/sdk/python/pulumi_gcp/organizations/policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/organizations/project.py b/sdk/python/pulumi_gcp/organizations/project.py index 8deceefef8..ea6236bb45 100644 --- a/sdk/python/pulumi_gcp/organizations/project.py +++ b/sdk/python/pulumi_gcp/organizations/project.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ProjectArgs', 'Project'] diff --git a/sdk/python/pulumi_gcp/orgpolicy/_inputs.py b/sdk/python/pulumi_gcp/orgpolicy/_inputs.py index 0722e02fec..fd769f7d3b 100644 --- a/sdk/python/pulumi_gcp/orgpolicy/_inputs.py +++ b/sdk/python/pulumi_gcp/orgpolicy/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/orgpolicy/custom_constraint.py b/sdk/python/pulumi_gcp/orgpolicy/custom_constraint.py index 244f2f5493..b0a786826a 100644 --- a/sdk/python/pulumi_gcp/orgpolicy/custom_constraint.py +++ b/sdk/python/pulumi_gcp/orgpolicy/custom_constraint.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['CustomConstraintArgs', 'CustomConstraint'] diff --git a/sdk/python/pulumi_gcp/orgpolicy/outputs.py b/sdk/python/pulumi_gcp/orgpolicy/outputs.py index a7c7fd4036..6d264fb0cf 100644 --- a/sdk/python/pulumi_gcp/orgpolicy/outputs.py +++ b/sdk/python/pulumi_gcp/orgpolicy/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/orgpolicy/policy.py b/sdk/python/pulumi_gcp/orgpolicy/policy.py index 7838e39b52..25835669f8 100644 --- a/sdk/python/pulumi_gcp/orgpolicy/policy.py +++ b/sdk/python/pulumi_gcp/orgpolicy/policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/osconfig/_inputs.py b/sdk/python/pulumi_gcp/osconfig/_inputs.py index d492dabbb5..65f179733c 100644 --- a/sdk/python/pulumi_gcp/osconfig/_inputs.py +++ b/sdk/python/pulumi_gcp/osconfig/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/osconfig/guest_policies.py b/sdk/python/pulumi_gcp/osconfig/guest_policies.py index 6e83b53f3a..d6772a5cd6 100644 --- a/sdk/python/pulumi_gcp/osconfig/guest_policies.py +++ b/sdk/python/pulumi_gcp/osconfig/guest_policies.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/osconfig/os_policy_assignment.py b/sdk/python/pulumi_gcp/osconfig/os_policy_assignment.py index 573178115b..84650731f6 100644 --- a/sdk/python/pulumi_gcp/osconfig/os_policy_assignment.py +++ b/sdk/python/pulumi_gcp/osconfig/os_policy_assignment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/osconfig/outputs.py b/sdk/python/pulumi_gcp/osconfig/outputs.py index e8609bca36..e1b058e0cb 100644 --- a/sdk/python/pulumi_gcp/osconfig/outputs.py +++ b/sdk/python/pulumi_gcp/osconfig/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/osconfig/patch_deployment.py b/sdk/python/pulumi_gcp/osconfig/patch_deployment.py index 32ca3220ed..5a831be70c 100644 --- a/sdk/python/pulumi_gcp/osconfig/patch_deployment.py +++ b/sdk/python/pulumi_gcp/osconfig/patch_deployment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/oslogin/ssh_public_key.py b/sdk/python/pulumi_gcp/oslogin/ssh_public_key.py index 21e777951d..d951f3e685 100644 --- a/sdk/python/pulumi_gcp/oslogin/ssh_public_key.py +++ b/sdk/python/pulumi_gcp/oslogin/ssh_public_key.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SshPublicKeyArgs', 'SshPublicKey'] diff --git a/sdk/python/pulumi_gcp/projects/_inputs.py b/sdk/python/pulumi_gcp/projects/_inputs.py index aee5daf9db..ea2a5e3a24 100644 --- a/sdk/python/pulumi_gcp/projects/_inputs.py +++ b/sdk/python/pulumi_gcp/projects/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/projects/access_approval_settings.py b/sdk/python/pulumi_gcp/projects/access_approval_settings.py index ebc51736a4..c459f09fc4 100644 --- a/sdk/python/pulumi_gcp/projects/access_approval_settings.py +++ b/sdk/python/pulumi_gcp/projects/access_approval_settings.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/projects/api_key.py b/sdk/python/pulumi_gcp/projects/api_key.py index 9cdf8cfeaa..ec788780a0 100644 --- a/sdk/python/pulumi_gcp/projects/api_key.py +++ b/sdk/python/pulumi_gcp/projects/api_key.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/projects/default_service_accounts.py b/sdk/python/pulumi_gcp/projects/default_service_accounts.py index eaecd18de9..be3ac59152 100644 --- a/sdk/python/pulumi_gcp/projects/default_service_accounts.py +++ b/sdk/python/pulumi_gcp/projects/default_service_accounts.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DefaultServiceAccountsArgs', 'DefaultServiceAccounts'] diff --git a/sdk/python/pulumi_gcp/projects/get_iam_policy.py b/sdk/python/pulumi_gcp/projects/get_iam_policy.py index 8df7c78a48..989699271c 100644 --- a/sdk/python/pulumi_gcp/projects/get_iam_policy.py +++ b/sdk/python/pulumi_gcp/projects/get_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/projects/get_organization_policy.py b/sdk/python/pulumi_gcp/projects/get_organization_policy.py index bb73f7e6ee..aa4c69a1ca 100644 --- a/sdk/python/pulumi_gcp/projects/get_organization_policy.py +++ b/sdk/python/pulumi_gcp/projects/get_organization_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/projects/get_project.py b/sdk/python/pulumi_gcp/projects/get_project.py index cac6d533ca..f502ba70ac 100644 --- a/sdk/python/pulumi_gcp/projects/get_project.py +++ b/sdk/python/pulumi_gcp/projects/get_project.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/projects/get_project_service.py b/sdk/python/pulumi_gcp/projects/get_project_service.py index 4b63ad53f4..74c9ad7ebb 100644 --- a/sdk/python/pulumi_gcp/projects/get_project_service.py +++ b/sdk/python/pulumi_gcp/projects/get_project_service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/projects/iam_audit_config.py b/sdk/python/pulumi_gcp/projects/iam_audit_config.py index 5254965bee..f75e8d38ed 100644 --- a/sdk/python/pulumi_gcp/projects/iam_audit_config.py +++ b/sdk/python/pulumi_gcp/projects/iam_audit_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/projects/iam_binding.py b/sdk/python/pulumi_gcp/projects/iam_binding.py index ebf6b1186a..8aca068727 100644 --- a/sdk/python/pulumi_gcp/projects/iam_binding.py +++ b/sdk/python/pulumi_gcp/projects/iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/projects/iam_custom_role.py b/sdk/python/pulumi_gcp/projects/iam_custom_role.py index 6969b10bcc..ad4e49e0fc 100644 --- a/sdk/python/pulumi_gcp/projects/iam_custom_role.py +++ b/sdk/python/pulumi_gcp/projects/iam_custom_role.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['IAMCustomRoleArgs', 'IAMCustomRole'] diff --git a/sdk/python/pulumi_gcp/projects/iam_member.py b/sdk/python/pulumi_gcp/projects/iam_member.py index 94e9a4d978..a4bb344387 100644 --- a/sdk/python/pulumi_gcp/projects/iam_member.py +++ b/sdk/python/pulumi_gcp/projects/iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/projects/iam_policy.py b/sdk/python/pulumi_gcp/projects/iam_policy.py index 446a225cf0..2800045d6f 100644 --- a/sdk/python/pulumi_gcp/projects/iam_policy.py +++ b/sdk/python/pulumi_gcp/projects/iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['IAMPolicyArgs', 'IAMPolicy'] diff --git a/sdk/python/pulumi_gcp/projects/organization_policy.py b/sdk/python/pulumi_gcp/projects/organization_policy.py index fde5b4ddc8..274b8fd873 100644 --- a/sdk/python/pulumi_gcp/projects/organization_policy.py +++ b/sdk/python/pulumi_gcp/projects/organization_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/projects/outputs.py b/sdk/python/pulumi_gcp/projects/outputs.py index 7b9b3d6739..72ed80cf7f 100644 --- a/sdk/python/pulumi_gcp/projects/outputs.py +++ b/sdk/python/pulumi_gcp/projects/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/projects/service.py b/sdk/python/pulumi_gcp/projects/service.py index 84056a72df..61909aa01e 100644 --- a/sdk/python/pulumi_gcp/projects/service.py +++ b/sdk/python/pulumi_gcp/projects/service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ServiceArgs', 'Service'] diff --git a/sdk/python/pulumi_gcp/projects/service_identity.py b/sdk/python/pulumi_gcp/projects/service_identity.py index 681e339768..6be02e59bd 100644 --- a/sdk/python/pulumi_gcp/projects/service_identity.py +++ b/sdk/python/pulumi_gcp/projects/service_identity.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ServiceIdentityArgs', 'ServiceIdentity'] diff --git a/sdk/python/pulumi_gcp/projects/usage_export_bucket.py b/sdk/python/pulumi_gcp/projects/usage_export_bucket.py index 5071dca65f..8f664ceb4a 100644 --- a/sdk/python/pulumi_gcp/projects/usage_export_bucket.py +++ b/sdk/python/pulumi_gcp/projects/usage_export_bucket.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['UsageExportBucketArgs', 'UsageExportBucket'] diff --git a/sdk/python/pulumi_gcp/provider.py b/sdk/python/pulumi_gcp/provider.py index beef81ba30..309aff19fb 100644 --- a/sdk/python/pulumi_gcp/provider.py +++ b/sdk/python/pulumi_gcp/provider.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from . import _utilities from ._inputs import * diff --git a/sdk/python/pulumi_gcp/pubsub/_inputs.py b/sdk/python/pulumi_gcp/pubsub/_inputs.py index c4c38be620..be5cf2a637 100644 --- a/sdk/python/pulumi_gcp/pubsub/_inputs.py +++ b/sdk/python/pulumi_gcp/pubsub/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/pubsub/get_schema_iam_policy.py b/sdk/python/pulumi_gcp/pubsub/get_schema_iam_policy.py index 0bd0beac27..615e9f4079 100644 --- a/sdk/python/pulumi_gcp/pubsub/get_schema_iam_policy.py +++ b/sdk/python/pulumi_gcp/pubsub/get_schema_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/pubsub/get_subscription.py b/sdk/python/pulumi_gcp/pubsub/get_subscription.py index ef47f45465..a3793575a5 100644 --- a/sdk/python/pulumi_gcp/pubsub/get_subscription.py +++ b/sdk/python/pulumi_gcp/pubsub/get_subscription.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/pubsub/get_subscription_iam_policy.py b/sdk/python/pulumi_gcp/pubsub/get_subscription_iam_policy.py index 9191669ab9..f20b98807d 100644 --- a/sdk/python/pulumi_gcp/pubsub/get_subscription_iam_policy.py +++ b/sdk/python/pulumi_gcp/pubsub/get_subscription_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/pubsub/get_topic.py b/sdk/python/pulumi_gcp/pubsub/get_topic.py index 1981ab9684..d81bc82353 100644 --- a/sdk/python/pulumi_gcp/pubsub/get_topic.py +++ b/sdk/python/pulumi_gcp/pubsub/get_topic.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/pubsub/get_topic_iam_policy.py b/sdk/python/pulumi_gcp/pubsub/get_topic_iam_policy.py index 0bb12afbf6..66f036f607 100644 --- a/sdk/python/pulumi_gcp/pubsub/get_topic_iam_policy.py +++ b/sdk/python/pulumi_gcp/pubsub/get_topic_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/pubsub/lite_reservation.py b/sdk/python/pulumi_gcp/pubsub/lite_reservation.py index fc4abaeeb1..692f44f1c3 100644 --- a/sdk/python/pulumi_gcp/pubsub/lite_reservation.py +++ b/sdk/python/pulumi_gcp/pubsub/lite_reservation.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['LiteReservationArgs', 'LiteReservation'] diff --git a/sdk/python/pulumi_gcp/pubsub/lite_subscription.py b/sdk/python/pulumi_gcp/pubsub/lite_subscription.py index 1637b5cdc7..e24860e294 100644 --- a/sdk/python/pulumi_gcp/pubsub/lite_subscription.py +++ b/sdk/python/pulumi_gcp/pubsub/lite_subscription.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/pubsub/lite_topic.py b/sdk/python/pulumi_gcp/pubsub/lite_topic.py index cbf8f94dd2..d79ad558ee 100644 --- a/sdk/python/pulumi_gcp/pubsub/lite_topic.py +++ b/sdk/python/pulumi_gcp/pubsub/lite_topic.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/pubsub/outputs.py b/sdk/python/pulumi_gcp/pubsub/outputs.py index 41ad38a6fd..d9e9b04dd0 100644 --- a/sdk/python/pulumi_gcp/pubsub/outputs.py +++ b/sdk/python/pulumi_gcp/pubsub/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/pubsub/schema.py b/sdk/python/pulumi_gcp/pubsub/schema.py index d8d7f2496b..7826e38499 100644 --- a/sdk/python/pulumi_gcp/pubsub/schema.py +++ b/sdk/python/pulumi_gcp/pubsub/schema.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SchemaArgs', 'Schema'] diff --git a/sdk/python/pulumi_gcp/pubsub/schema_iam_binding.py b/sdk/python/pulumi_gcp/pubsub/schema_iam_binding.py index cdc3e7a2f7..1683a9854d 100644 --- a/sdk/python/pulumi_gcp/pubsub/schema_iam_binding.py +++ b/sdk/python/pulumi_gcp/pubsub/schema_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/pubsub/schema_iam_member.py b/sdk/python/pulumi_gcp/pubsub/schema_iam_member.py index d67a3955b0..8eb037d4d6 100644 --- a/sdk/python/pulumi_gcp/pubsub/schema_iam_member.py +++ b/sdk/python/pulumi_gcp/pubsub/schema_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/pubsub/schema_iam_policy.py b/sdk/python/pulumi_gcp/pubsub/schema_iam_policy.py index 155e16cc26..9c5e7e1ccd 100644 --- a/sdk/python/pulumi_gcp/pubsub/schema_iam_policy.py +++ b/sdk/python/pulumi_gcp/pubsub/schema_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SchemaIamPolicyArgs', 'SchemaIamPolicy'] diff --git a/sdk/python/pulumi_gcp/pubsub/subscription.py b/sdk/python/pulumi_gcp/pubsub/subscription.py index 7b8740fbec..bf4c4f07f4 100644 --- a/sdk/python/pulumi_gcp/pubsub/subscription.py +++ b/sdk/python/pulumi_gcp/pubsub/subscription.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/pubsub/subscription_iam_binding.py b/sdk/python/pulumi_gcp/pubsub/subscription_iam_binding.py index 7e87fb8a9a..fe8fbf0922 100644 --- a/sdk/python/pulumi_gcp/pubsub/subscription_iam_binding.py +++ b/sdk/python/pulumi_gcp/pubsub/subscription_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/pubsub/subscription_iam_member.py b/sdk/python/pulumi_gcp/pubsub/subscription_iam_member.py index d858069cff..c641c21b03 100644 --- a/sdk/python/pulumi_gcp/pubsub/subscription_iam_member.py +++ b/sdk/python/pulumi_gcp/pubsub/subscription_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/pubsub/subscription_iam_policy.py b/sdk/python/pulumi_gcp/pubsub/subscription_iam_policy.py index fd9914748b..3fe9e65074 100644 --- a/sdk/python/pulumi_gcp/pubsub/subscription_iam_policy.py +++ b/sdk/python/pulumi_gcp/pubsub/subscription_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SubscriptionIAMPolicyArgs', 'SubscriptionIAMPolicy'] diff --git a/sdk/python/pulumi_gcp/pubsub/topic.py b/sdk/python/pulumi_gcp/pubsub/topic.py index adde511582..b0e975f7c9 100644 --- a/sdk/python/pulumi_gcp/pubsub/topic.py +++ b/sdk/python/pulumi_gcp/pubsub/topic.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/pubsub/topic_iam_binding.py b/sdk/python/pulumi_gcp/pubsub/topic_iam_binding.py index 6252d5293a..88f0832651 100644 --- a/sdk/python/pulumi_gcp/pubsub/topic_iam_binding.py +++ b/sdk/python/pulumi_gcp/pubsub/topic_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/pubsub/topic_iam_member.py b/sdk/python/pulumi_gcp/pubsub/topic_iam_member.py index 5f17d74eeb..aff1c51ca7 100644 --- a/sdk/python/pulumi_gcp/pubsub/topic_iam_member.py +++ b/sdk/python/pulumi_gcp/pubsub/topic_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/pubsub/topic_iam_policy.py b/sdk/python/pulumi_gcp/pubsub/topic_iam_policy.py index 10a0df7f1d..008b49554c 100644 --- a/sdk/python/pulumi_gcp/pubsub/topic_iam_policy.py +++ b/sdk/python/pulumi_gcp/pubsub/topic_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TopicIAMPolicyArgs', 'TopicIAMPolicy'] diff --git a/sdk/python/pulumi_gcp/recaptcha/_inputs.py b/sdk/python/pulumi_gcp/recaptcha/_inputs.py index 1e1094882c..f824d6f009 100644 --- a/sdk/python/pulumi_gcp/recaptcha/_inputs.py +++ b/sdk/python/pulumi_gcp/recaptcha/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/recaptcha/enterprise_key.py b/sdk/python/pulumi_gcp/recaptcha/enterprise_key.py index 7fba6abd37..07d13951f9 100644 --- a/sdk/python/pulumi_gcp/recaptcha/enterprise_key.py +++ b/sdk/python/pulumi_gcp/recaptcha/enterprise_key.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/recaptcha/outputs.py b/sdk/python/pulumi_gcp/recaptcha/outputs.py index b72ed926bb..1acda72dcf 100644 --- a/sdk/python/pulumi_gcp/recaptcha/outputs.py +++ b/sdk/python/pulumi_gcp/recaptcha/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/redis/_inputs.py b/sdk/python/pulumi_gcp/redis/_inputs.py index 5afa7d53e9..0924b2dba4 100644 --- a/sdk/python/pulumi_gcp/redis/_inputs.py +++ b/sdk/python/pulumi_gcp/redis/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/redis/cluster.py b/sdk/python/pulumi_gcp/redis/cluster.py index 79b1a7e2c1..dee9b94b74 100644 --- a/sdk/python/pulumi_gcp/redis/cluster.py +++ b/sdk/python/pulumi_gcp/redis/cluster.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/redis/get_instance.py b/sdk/python/pulumi_gcp/redis/get_instance.py index 4cc517438e..2817ffe2db 100644 --- a/sdk/python/pulumi_gcp/redis/get_instance.py +++ b/sdk/python/pulumi_gcp/redis/get_instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/redis/instance.py b/sdk/python/pulumi_gcp/redis/instance.py index 01e6829078..996b466711 100644 --- a/sdk/python/pulumi_gcp/redis/instance.py +++ b/sdk/python/pulumi_gcp/redis/instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/redis/outputs.py b/sdk/python/pulumi_gcp/redis/outputs.py index cbd15c409e..25d01a117a 100644 --- a/sdk/python/pulumi_gcp/redis/outputs.py +++ b/sdk/python/pulumi_gcp/redis/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/resourcemanager/lien.py b/sdk/python/pulumi_gcp/resourcemanager/lien.py index 361157a73d..70298d8c86 100644 --- a/sdk/python/pulumi_gcp/resourcemanager/lien.py +++ b/sdk/python/pulumi_gcp/resourcemanager/lien.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['LienArgs', 'Lien'] diff --git a/sdk/python/pulumi_gcp/runtimeconfig/_inputs.py b/sdk/python/pulumi_gcp/runtimeconfig/_inputs.py index 8c7245dcb9..200b048d81 100644 --- a/sdk/python/pulumi_gcp/runtimeconfig/_inputs.py +++ b/sdk/python/pulumi_gcp/runtimeconfig/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/runtimeconfig/config.py b/sdk/python/pulumi_gcp/runtimeconfig/config.py index b08ae3ff6c..f6cb1258cc 100644 --- a/sdk/python/pulumi_gcp/runtimeconfig/config.py +++ b/sdk/python/pulumi_gcp/runtimeconfig/config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ConfigArgs', 'Config'] diff --git a/sdk/python/pulumi_gcp/runtimeconfig/config_iam_binding.py b/sdk/python/pulumi_gcp/runtimeconfig/config_iam_binding.py index 5093362a56..73b6735dbc 100644 --- a/sdk/python/pulumi_gcp/runtimeconfig/config_iam_binding.py +++ b/sdk/python/pulumi_gcp/runtimeconfig/config_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/runtimeconfig/config_iam_member.py b/sdk/python/pulumi_gcp/runtimeconfig/config_iam_member.py index b3c149804d..eb70150bfa 100644 --- a/sdk/python/pulumi_gcp/runtimeconfig/config_iam_member.py +++ b/sdk/python/pulumi_gcp/runtimeconfig/config_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/runtimeconfig/config_iam_policy.py b/sdk/python/pulumi_gcp/runtimeconfig/config_iam_policy.py index a27471db58..2beb61bce3 100644 --- a/sdk/python/pulumi_gcp/runtimeconfig/config_iam_policy.py +++ b/sdk/python/pulumi_gcp/runtimeconfig/config_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ConfigIamPolicyArgs', 'ConfigIamPolicy'] diff --git a/sdk/python/pulumi_gcp/runtimeconfig/get_config.py b/sdk/python/pulumi_gcp/runtimeconfig/get_config.py index 42be0a76bc..ce3f41f666 100644 --- a/sdk/python/pulumi_gcp/runtimeconfig/get_config.py +++ b/sdk/python/pulumi_gcp/runtimeconfig/get_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/runtimeconfig/get_config_iam_policy.py b/sdk/python/pulumi_gcp/runtimeconfig/get_config_iam_policy.py index af2996bff0..49cd7877ca 100644 --- a/sdk/python/pulumi_gcp/runtimeconfig/get_config_iam_policy.py +++ b/sdk/python/pulumi_gcp/runtimeconfig/get_config_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/runtimeconfig/get_variable.py b/sdk/python/pulumi_gcp/runtimeconfig/get_variable.py index fe31ca47cd..f5ae044a8f 100644 --- a/sdk/python/pulumi_gcp/runtimeconfig/get_variable.py +++ b/sdk/python/pulumi_gcp/runtimeconfig/get_variable.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/runtimeconfig/outputs.py b/sdk/python/pulumi_gcp/runtimeconfig/outputs.py index cc05766e84..c7cd67f612 100644 --- a/sdk/python/pulumi_gcp/runtimeconfig/outputs.py +++ b/sdk/python/pulumi_gcp/runtimeconfig/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/runtimeconfig/variable.py b/sdk/python/pulumi_gcp/runtimeconfig/variable.py index c4b8c80f2c..b417a51abf 100644 --- a/sdk/python/pulumi_gcp/runtimeconfig/variable.py +++ b/sdk/python/pulumi_gcp/runtimeconfig/variable.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['VariableArgs', 'Variable'] diff --git a/sdk/python/pulumi_gcp/secretmanager/_inputs.py b/sdk/python/pulumi_gcp/secretmanager/_inputs.py index cee51da04f..4539577456 100644 --- a/sdk/python/pulumi_gcp/secretmanager/_inputs.py +++ b/sdk/python/pulumi_gcp/secretmanager/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/secretmanager/get_secret.py b/sdk/python/pulumi_gcp/secretmanager/get_secret.py index 87e3149c60..9d2e68bb3d 100644 --- a/sdk/python/pulumi_gcp/secretmanager/get_secret.py +++ b/sdk/python/pulumi_gcp/secretmanager/get_secret.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/secretmanager/get_secret_iam_policy.py b/sdk/python/pulumi_gcp/secretmanager/get_secret_iam_policy.py index b2cd994781..34e62b935c 100644 --- a/sdk/python/pulumi_gcp/secretmanager/get_secret_iam_policy.py +++ b/sdk/python/pulumi_gcp/secretmanager/get_secret_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/secretmanager/get_secret_version.py b/sdk/python/pulumi_gcp/secretmanager/get_secret_version.py index 041caf87a7..4adb5dd0b3 100644 --- a/sdk/python/pulumi_gcp/secretmanager/get_secret_version.py +++ b/sdk/python/pulumi_gcp/secretmanager/get_secret_version.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/secretmanager/get_secret_version_access.py b/sdk/python/pulumi_gcp/secretmanager/get_secret_version_access.py index 9f309c558c..030265ef49 100644 --- a/sdk/python/pulumi_gcp/secretmanager/get_secret_version_access.py +++ b/sdk/python/pulumi_gcp/secretmanager/get_secret_version_access.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/secretmanager/get_secrets.py b/sdk/python/pulumi_gcp/secretmanager/get_secrets.py index 93756d8ed5..0ebbba5870 100644 --- a/sdk/python/pulumi_gcp/secretmanager/get_secrets.py +++ b/sdk/python/pulumi_gcp/secretmanager/get_secrets.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/secretmanager/outputs.py b/sdk/python/pulumi_gcp/secretmanager/outputs.py index 085c236699..4ca8b7e6ed 100644 --- a/sdk/python/pulumi_gcp/secretmanager/outputs.py +++ b/sdk/python/pulumi_gcp/secretmanager/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/secretmanager/secret.py b/sdk/python/pulumi_gcp/secretmanager/secret.py index a87c901610..002e8632a4 100644 --- a/sdk/python/pulumi_gcp/secretmanager/secret.py +++ b/sdk/python/pulumi_gcp/secretmanager/secret.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/secretmanager/secret_iam_binding.py b/sdk/python/pulumi_gcp/secretmanager/secret_iam_binding.py index 4aaebdae57..d45e7b4894 100644 --- a/sdk/python/pulumi_gcp/secretmanager/secret_iam_binding.py +++ b/sdk/python/pulumi_gcp/secretmanager/secret_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/secretmanager/secret_iam_member.py b/sdk/python/pulumi_gcp/secretmanager/secret_iam_member.py index aebe8a4aab..49a0060daa 100644 --- a/sdk/python/pulumi_gcp/secretmanager/secret_iam_member.py +++ b/sdk/python/pulumi_gcp/secretmanager/secret_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/secretmanager/secret_iam_policy.py b/sdk/python/pulumi_gcp/secretmanager/secret_iam_policy.py index a9be0e172a..362051dfff 100644 --- a/sdk/python/pulumi_gcp/secretmanager/secret_iam_policy.py +++ b/sdk/python/pulumi_gcp/secretmanager/secret_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SecretIamPolicyArgs', 'SecretIamPolicy'] diff --git a/sdk/python/pulumi_gcp/secretmanager/secret_version.py b/sdk/python/pulumi_gcp/secretmanager/secret_version.py index 137e45a1c3..93f96ec227 100644 --- a/sdk/python/pulumi_gcp/secretmanager/secret_version.py +++ b/sdk/python/pulumi_gcp/secretmanager/secret_version.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SecretVersionArgs', 'SecretVersion'] diff --git a/sdk/python/pulumi_gcp/securesourcemanager/_inputs.py b/sdk/python/pulumi_gcp/securesourcemanager/_inputs.py index 2a5e71fa07..950e2106d1 100644 --- a/sdk/python/pulumi_gcp/securesourcemanager/_inputs.py +++ b/sdk/python/pulumi_gcp/securesourcemanager/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/securesourcemanager/get_instance_iam_policy.py b/sdk/python/pulumi_gcp/securesourcemanager/get_instance_iam_policy.py index c36cc75820..ced1f87eba 100644 --- a/sdk/python/pulumi_gcp/securesourcemanager/get_instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/securesourcemanager/get_instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/securesourcemanager/instance.py b/sdk/python/pulumi_gcp/securesourcemanager/instance.py index 11563a6075..529543764d 100644 --- a/sdk/python/pulumi_gcp/securesourcemanager/instance.py +++ b/sdk/python/pulumi_gcp/securesourcemanager/instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/securesourcemanager/instance_iam_binding.py b/sdk/python/pulumi_gcp/securesourcemanager/instance_iam_binding.py index 2e5a072b2b..25438a7d57 100644 --- a/sdk/python/pulumi_gcp/securesourcemanager/instance_iam_binding.py +++ b/sdk/python/pulumi_gcp/securesourcemanager/instance_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/securesourcemanager/instance_iam_member.py b/sdk/python/pulumi_gcp/securesourcemanager/instance_iam_member.py index 076157a39d..e567a5b4c8 100644 --- a/sdk/python/pulumi_gcp/securesourcemanager/instance_iam_member.py +++ b/sdk/python/pulumi_gcp/securesourcemanager/instance_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/securesourcemanager/instance_iam_policy.py b/sdk/python/pulumi_gcp/securesourcemanager/instance_iam_policy.py index 015e857702..e951c04f5b 100644 --- a/sdk/python/pulumi_gcp/securesourcemanager/instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/securesourcemanager/instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['InstanceIamPolicyArgs', 'InstanceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/securesourcemanager/outputs.py b/sdk/python/pulumi_gcp/securesourcemanager/outputs.py index f5db70e408..c39cff35fd 100644 --- a/sdk/python/pulumi_gcp/securesourcemanager/outputs.py +++ b/sdk/python/pulumi_gcp/securesourcemanager/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/securitycenter/_inputs.py b/sdk/python/pulumi_gcp/securitycenter/_inputs.py index 2795719408..6189b90108 100644 --- a/sdk/python/pulumi_gcp/securitycenter/_inputs.py +++ b/sdk/python/pulumi_gcp/securitycenter/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/securitycenter/event_threat_detection_custom_module.py b/sdk/python/pulumi_gcp/securitycenter/event_threat_detection_custom_module.py index 7f35adc842..92d0331fe5 100644 --- a/sdk/python/pulumi_gcp/securitycenter/event_threat_detection_custom_module.py +++ b/sdk/python/pulumi_gcp/securitycenter/event_threat_detection_custom_module.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['EventThreatDetectionCustomModuleArgs', 'EventThreatDetectionCustomModule'] diff --git a/sdk/python/pulumi_gcp/securitycenter/folder_custom_module.py b/sdk/python/pulumi_gcp/securitycenter/folder_custom_module.py index fc878d1d5b..a98c212519 100644 --- a/sdk/python/pulumi_gcp/securitycenter/folder_custom_module.py +++ b/sdk/python/pulumi_gcp/securitycenter/folder_custom_module.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/securitycenter/get_source_iam_policy.py b/sdk/python/pulumi_gcp/securitycenter/get_source_iam_policy.py index 908a827f43..b78d74eeb2 100644 --- a/sdk/python/pulumi_gcp/securitycenter/get_source_iam_policy.py +++ b/sdk/python/pulumi_gcp/securitycenter/get_source_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/securitycenter/instance_iam_binding.py b/sdk/python/pulumi_gcp/securitycenter/instance_iam_binding.py index 9dd20f22d8..d0c2b4594e 100644 --- a/sdk/python/pulumi_gcp/securitycenter/instance_iam_binding.py +++ b/sdk/python/pulumi_gcp/securitycenter/instance_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/securitycenter/instance_iam_member.py b/sdk/python/pulumi_gcp/securitycenter/instance_iam_member.py index b1cbf3bec7..7f9075dad8 100644 --- a/sdk/python/pulumi_gcp/securitycenter/instance_iam_member.py +++ b/sdk/python/pulumi_gcp/securitycenter/instance_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/securitycenter/instance_iam_policy.py b/sdk/python/pulumi_gcp/securitycenter/instance_iam_policy.py index fa52703b6a..3e1b3d1047 100644 --- a/sdk/python/pulumi_gcp/securitycenter/instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/securitycenter/instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['InstanceIamPolicyArgs', 'InstanceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/securitycenter/mute_config.py b/sdk/python/pulumi_gcp/securitycenter/mute_config.py index 5c8f5d6198..41ff87aa61 100644 --- a/sdk/python/pulumi_gcp/securitycenter/mute_config.py +++ b/sdk/python/pulumi_gcp/securitycenter/mute_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['MuteConfigArgs', 'MuteConfig'] diff --git a/sdk/python/pulumi_gcp/securitycenter/notification_config.py b/sdk/python/pulumi_gcp/securitycenter/notification_config.py index 17a1441bb3..0541037671 100644 --- a/sdk/python/pulumi_gcp/securitycenter/notification_config.py +++ b/sdk/python/pulumi_gcp/securitycenter/notification_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/securitycenter/organization_custom_module.py b/sdk/python/pulumi_gcp/securitycenter/organization_custom_module.py index 64223ab5a0..fd19241e21 100644 --- a/sdk/python/pulumi_gcp/securitycenter/organization_custom_module.py +++ b/sdk/python/pulumi_gcp/securitycenter/organization_custom_module.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/securitycenter/outputs.py b/sdk/python/pulumi_gcp/securitycenter/outputs.py index ad5d009073..342dff2f82 100644 --- a/sdk/python/pulumi_gcp/securitycenter/outputs.py +++ b/sdk/python/pulumi_gcp/securitycenter/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/securitycenter/project_custom_module.py b/sdk/python/pulumi_gcp/securitycenter/project_custom_module.py index e4867ac798..870af90a95 100644 --- a/sdk/python/pulumi_gcp/securitycenter/project_custom_module.py +++ b/sdk/python/pulumi_gcp/securitycenter/project_custom_module.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/securitycenter/source.py b/sdk/python/pulumi_gcp/securitycenter/source.py index 4407b96c76..340f9ddf74 100644 --- a/sdk/python/pulumi_gcp/securitycenter/source.py +++ b/sdk/python/pulumi_gcp/securitycenter/source.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SourceArgs', 'Source'] diff --git a/sdk/python/pulumi_gcp/securitycenter/source_iam_binding.py b/sdk/python/pulumi_gcp/securitycenter/source_iam_binding.py index 6456e28e25..15b14d6253 100644 --- a/sdk/python/pulumi_gcp/securitycenter/source_iam_binding.py +++ b/sdk/python/pulumi_gcp/securitycenter/source_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/securitycenter/source_iam_member.py b/sdk/python/pulumi_gcp/securitycenter/source_iam_member.py index a118bf5672..5456c56a5c 100644 --- a/sdk/python/pulumi_gcp/securitycenter/source_iam_member.py +++ b/sdk/python/pulumi_gcp/securitycenter/source_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/securitycenter/source_iam_policy.py b/sdk/python/pulumi_gcp/securitycenter/source_iam_policy.py index 213b5f9ae2..a33683fd53 100644 --- a/sdk/python/pulumi_gcp/securitycenter/source_iam_policy.py +++ b/sdk/python/pulumi_gcp/securitycenter/source_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SourceIamPolicyArgs', 'SourceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/securityposture/_inputs.py b/sdk/python/pulumi_gcp/securityposture/_inputs.py index f97083a03e..397d2d773d 100644 --- a/sdk/python/pulumi_gcp/securityposture/_inputs.py +++ b/sdk/python/pulumi_gcp/securityposture/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/securityposture/outputs.py b/sdk/python/pulumi_gcp/securityposture/outputs.py index e6f4f146bb..c927368705 100644 --- a/sdk/python/pulumi_gcp/securityposture/outputs.py +++ b/sdk/python/pulumi_gcp/securityposture/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/securityposture/posture.py b/sdk/python/pulumi_gcp/securityposture/posture.py index 0c6698c4bb..17535a79b0 100644 --- a/sdk/python/pulumi_gcp/securityposture/posture.py +++ b/sdk/python/pulumi_gcp/securityposture/posture.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/securityposture/posture_deployment.py b/sdk/python/pulumi_gcp/securityposture/posture_deployment.py index 732253a63b..1fcb9a9a86 100644 --- a/sdk/python/pulumi_gcp/securityposture/posture_deployment.py +++ b/sdk/python/pulumi_gcp/securityposture/posture_deployment.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['PostureDeploymentArgs', 'PostureDeployment'] diff --git a/sdk/python/pulumi_gcp/serviceaccount/_inputs.py b/sdk/python/pulumi_gcp/serviceaccount/_inputs.py index 27f0dd1169..b6ceff9f1f 100644 --- a/sdk/python/pulumi_gcp/serviceaccount/_inputs.py +++ b/sdk/python/pulumi_gcp/serviceaccount/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/serviceaccount/account.py b/sdk/python/pulumi_gcp/serviceaccount/account.py index 69dd563bae..738d649c3d 100644 --- a/sdk/python/pulumi_gcp/serviceaccount/account.py +++ b/sdk/python/pulumi_gcp/serviceaccount/account.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AccountArgs', 'Account'] diff --git a/sdk/python/pulumi_gcp/serviceaccount/get_account.py b/sdk/python/pulumi_gcp/serviceaccount/get_account.py index d2ff4d7001..b8f3278c62 100644 --- a/sdk/python/pulumi_gcp/serviceaccount/get_account.py +++ b/sdk/python/pulumi_gcp/serviceaccount/get_account.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/serviceaccount/get_account_access_token.py b/sdk/python/pulumi_gcp/serviceaccount/get_account_access_token.py index 4db60aeb41..aa3fd48b46 100644 --- a/sdk/python/pulumi_gcp/serviceaccount/get_account_access_token.py +++ b/sdk/python/pulumi_gcp/serviceaccount/get_account_access_token.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/serviceaccount/get_account_id_token.py b/sdk/python/pulumi_gcp/serviceaccount/get_account_id_token.py index fe9a36c38c..00bd76c3eb 100644 --- a/sdk/python/pulumi_gcp/serviceaccount/get_account_id_token.py +++ b/sdk/python/pulumi_gcp/serviceaccount/get_account_id_token.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/serviceaccount/get_account_jwt.py b/sdk/python/pulumi_gcp/serviceaccount/get_account_jwt.py index 10be24a932..6f1038d949 100644 --- a/sdk/python/pulumi_gcp/serviceaccount/get_account_jwt.py +++ b/sdk/python/pulumi_gcp/serviceaccount/get_account_jwt.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/serviceaccount/get_account_key.py b/sdk/python/pulumi_gcp/serviceaccount/get_account_key.py index ab11f63bbe..eaefbb5781 100644 --- a/sdk/python/pulumi_gcp/serviceaccount/get_account_key.py +++ b/sdk/python/pulumi_gcp/serviceaccount/get_account_key.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/serviceaccount/get_iam_policy.py b/sdk/python/pulumi_gcp/serviceaccount/get_iam_policy.py index 71b9083aed..2b450cb99a 100644 --- a/sdk/python/pulumi_gcp/serviceaccount/get_iam_policy.py +++ b/sdk/python/pulumi_gcp/serviceaccount/get_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/serviceaccount/iam_binding.py b/sdk/python/pulumi_gcp/serviceaccount/iam_binding.py index 75c71c035f..e21959270f 100644 --- a/sdk/python/pulumi_gcp/serviceaccount/iam_binding.py +++ b/sdk/python/pulumi_gcp/serviceaccount/iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/serviceaccount/iam_member.py b/sdk/python/pulumi_gcp/serviceaccount/iam_member.py index 83f123ed0c..28b8468363 100644 --- a/sdk/python/pulumi_gcp/serviceaccount/iam_member.py +++ b/sdk/python/pulumi_gcp/serviceaccount/iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/serviceaccount/iam_policy.py b/sdk/python/pulumi_gcp/serviceaccount/iam_policy.py index b45a44dab9..3d028074fd 100644 --- a/sdk/python/pulumi_gcp/serviceaccount/iam_policy.py +++ b/sdk/python/pulumi_gcp/serviceaccount/iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['IAMPolicyArgs', 'IAMPolicy'] diff --git a/sdk/python/pulumi_gcp/serviceaccount/key.py b/sdk/python/pulumi_gcp/serviceaccount/key.py index 3bc5cf8901..1feed907bc 100644 --- a/sdk/python/pulumi_gcp/serviceaccount/key.py +++ b/sdk/python/pulumi_gcp/serviceaccount/key.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['KeyArgs', 'Key'] diff --git a/sdk/python/pulumi_gcp/serviceaccount/outputs.py b/sdk/python/pulumi_gcp/serviceaccount/outputs.py index 0b9f993d9e..c364606e9f 100644 --- a/sdk/python/pulumi_gcp/serviceaccount/outputs.py +++ b/sdk/python/pulumi_gcp/serviceaccount/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/servicedirectory/_inputs.py b/sdk/python/pulumi_gcp/servicedirectory/_inputs.py index 8a3ea8007c..e7106f16e1 100644 --- a/sdk/python/pulumi_gcp/servicedirectory/_inputs.py +++ b/sdk/python/pulumi_gcp/servicedirectory/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/servicedirectory/endpoint.py b/sdk/python/pulumi_gcp/servicedirectory/endpoint.py index 7f6f854ec1..55601ead51 100644 --- a/sdk/python/pulumi_gcp/servicedirectory/endpoint.py +++ b/sdk/python/pulumi_gcp/servicedirectory/endpoint.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['EndpointArgs', 'Endpoint'] diff --git a/sdk/python/pulumi_gcp/servicedirectory/get_namespace_iam_policy.py b/sdk/python/pulumi_gcp/servicedirectory/get_namespace_iam_policy.py index f87bc00eb3..ebd3d130d8 100644 --- a/sdk/python/pulumi_gcp/servicedirectory/get_namespace_iam_policy.py +++ b/sdk/python/pulumi_gcp/servicedirectory/get_namespace_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/servicedirectory/get_service_iam_policy.py b/sdk/python/pulumi_gcp/servicedirectory/get_service_iam_policy.py index 3e27aad712..edd76904cd 100644 --- a/sdk/python/pulumi_gcp/servicedirectory/get_service_iam_policy.py +++ b/sdk/python/pulumi_gcp/servicedirectory/get_service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/servicedirectory/namespace.py b/sdk/python/pulumi_gcp/servicedirectory/namespace.py index 8937bc701a..77fff8eee7 100644 --- a/sdk/python/pulumi_gcp/servicedirectory/namespace.py +++ b/sdk/python/pulumi_gcp/servicedirectory/namespace.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['NamespaceArgs', 'Namespace'] diff --git a/sdk/python/pulumi_gcp/servicedirectory/namespace_iam_binding.py b/sdk/python/pulumi_gcp/servicedirectory/namespace_iam_binding.py index c173f8a209..423be1a21b 100644 --- a/sdk/python/pulumi_gcp/servicedirectory/namespace_iam_binding.py +++ b/sdk/python/pulumi_gcp/servicedirectory/namespace_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/servicedirectory/namespace_iam_member.py b/sdk/python/pulumi_gcp/servicedirectory/namespace_iam_member.py index 666627870d..bc1d6cd339 100644 --- a/sdk/python/pulumi_gcp/servicedirectory/namespace_iam_member.py +++ b/sdk/python/pulumi_gcp/servicedirectory/namespace_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/servicedirectory/namespace_iam_policy.py b/sdk/python/pulumi_gcp/servicedirectory/namespace_iam_policy.py index d8d6fb84df..b04fe50fc0 100644 --- a/sdk/python/pulumi_gcp/servicedirectory/namespace_iam_policy.py +++ b/sdk/python/pulumi_gcp/servicedirectory/namespace_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['NamespaceIamPolicyArgs', 'NamespaceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/servicedirectory/outputs.py b/sdk/python/pulumi_gcp/servicedirectory/outputs.py index 833fa6510d..f27ab201ad 100644 --- a/sdk/python/pulumi_gcp/servicedirectory/outputs.py +++ b/sdk/python/pulumi_gcp/servicedirectory/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/servicedirectory/service.py b/sdk/python/pulumi_gcp/servicedirectory/service.py index abfe8f7bc8..0878954ac0 100644 --- a/sdk/python/pulumi_gcp/servicedirectory/service.py +++ b/sdk/python/pulumi_gcp/servicedirectory/service.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ServiceArgs', 'Service'] diff --git a/sdk/python/pulumi_gcp/servicedirectory/service_iam_binding.py b/sdk/python/pulumi_gcp/servicedirectory/service_iam_binding.py index 69854baccf..fd8cd4144f 100644 --- a/sdk/python/pulumi_gcp/servicedirectory/service_iam_binding.py +++ b/sdk/python/pulumi_gcp/servicedirectory/service_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/servicedirectory/service_iam_member.py b/sdk/python/pulumi_gcp/servicedirectory/service_iam_member.py index 935bc3a121..06a29bd48c 100644 --- a/sdk/python/pulumi_gcp/servicedirectory/service_iam_member.py +++ b/sdk/python/pulumi_gcp/servicedirectory/service_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/servicedirectory/service_iam_policy.py b/sdk/python/pulumi_gcp/servicedirectory/service_iam_policy.py index 352d034e1d..1117832b6b 100644 --- a/sdk/python/pulumi_gcp/servicedirectory/service_iam_policy.py +++ b/sdk/python/pulumi_gcp/servicedirectory/service_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ServiceIamPolicyArgs', 'ServiceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/servicenetworking/connection.py b/sdk/python/pulumi_gcp/servicenetworking/connection.py index dd93b95b97..6c0cf0108a 100644 --- a/sdk/python/pulumi_gcp/servicenetworking/connection.py +++ b/sdk/python/pulumi_gcp/servicenetworking/connection.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ConnectionArgs', 'Connection'] diff --git a/sdk/python/pulumi_gcp/servicenetworking/get_peered_dns_domain.py b/sdk/python/pulumi_gcp/servicenetworking/get_peered_dns_domain.py index 1ff09f1784..1d7c084703 100644 --- a/sdk/python/pulumi_gcp/servicenetworking/get_peered_dns_domain.py +++ b/sdk/python/pulumi_gcp/servicenetworking/get_peered_dns_domain.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/servicenetworking/peered_dns_domain.py b/sdk/python/pulumi_gcp/servicenetworking/peered_dns_domain.py index 2d118cc7a2..8cacb57098 100644 --- a/sdk/python/pulumi_gcp/servicenetworking/peered_dns_domain.py +++ b/sdk/python/pulumi_gcp/servicenetworking/peered_dns_domain.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['PeeredDnsDomainArgs', 'PeeredDnsDomain'] diff --git a/sdk/python/pulumi_gcp/serviceusage/consumer_quota_override.py b/sdk/python/pulumi_gcp/serviceusage/consumer_quota_override.py index 188a83e618..c7ce68c969 100644 --- a/sdk/python/pulumi_gcp/serviceusage/consumer_quota_override.py +++ b/sdk/python/pulumi_gcp/serviceusage/consumer_quota_override.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ConsumerQuotaOverrideArgs', 'ConsumerQuotaOverride'] diff --git a/sdk/python/pulumi_gcp/sourcerepo/_inputs.py b/sdk/python/pulumi_gcp/sourcerepo/_inputs.py index aeff319303..2261281630 100644 --- a/sdk/python/pulumi_gcp/sourcerepo/_inputs.py +++ b/sdk/python/pulumi_gcp/sourcerepo/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/sourcerepo/get_repository.py b/sdk/python/pulumi_gcp/sourcerepo/get_repository.py index 1e0a3b1545..8b6300df01 100644 --- a/sdk/python/pulumi_gcp/sourcerepo/get_repository.py +++ b/sdk/python/pulumi_gcp/sourcerepo/get_repository.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/sourcerepo/get_repository_iam_policy.py b/sdk/python/pulumi_gcp/sourcerepo/get_repository_iam_policy.py index 0270da4a37..bc4849cad9 100644 --- a/sdk/python/pulumi_gcp/sourcerepo/get_repository_iam_policy.py +++ b/sdk/python/pulumi_gcp/sourcerepo/get_repository_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/sourcerepo/outputs.py b/sdk/python/pulumi_gcp/sourcerepo/outputs.py index 0c13b79625..e8d0451b5d 100644 --- a/sdk/python/pulumi_gcp/sourcerepo/outputs.py +++ b/sdk/python/pulumi_gcp/sourcerepo/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/sourcerepo/repository.py b/sdk/python/pulumi_gcp/sourcerepo/repository.py index 55c1c600e8..b0482443c6 100644 --- a/sdk/python/pulumi_gcp/sourcerepo/repository.py +++ b/sdk/python/pulumi_gcp/sourcerepo/repository.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/sourcerepo/repository_iam_binding.py b/sdk/python/pulumi_gcp/sourcerepo/repository_iam_binding.py index 4016f5e32e..4d226d2a30 100644 --- a/sdk/python/pulumi_gcp/sourcerepo/repository_iam_binding.py +++ b/sdk/python/pulumi_gcp/sourcerepo/repository_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/sourcerepo/repository_iam_member.py b/sdk/python/pulumi_gcp/sourcerepo/repository_iam_member.py index 6b0584da3e..fd82856ab2 100644 --- a/sdk/python/pulumi_gcp/sourcerepo/repository_iam_member.py +++ b/sdk/python/pulumi_gcp/sourcerepo/repository_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/sourcerepo/repository_iam_policy.py b/sdk/python/pulumi_gcp/sourcerepo/repository_iam_policy.py index e9814db0dd..3c9947782b 100644 --- a/sdk/python/pulumi_gcp/sourcerepo/repository_iam_policy.py +++ b/sdk/python/pulumi_gcp/sourcerepo/repository_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['RepositoryIamPolicyArgs', 'RepositoryIamPolicy'] diff --git a/sdk/python/pulumi_gcp/spanner/_inputs.py b/sdk/python/pulumi_gcp/spanner/_inputs.py index c7d7a4f0c8..476403d171 100644 --- a/sdk/python/pulumi_gcp/spanner/_inputs.py +++ b/sdk/python/pulumi_gcp/spanner/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/spanner/database.py b/sdk/python/pulumi_gcp/spanner/database.py index 42a096afb3..4a5ae71842 100644 --- a/sdk/python/pulumi_gcp/spanner/database.py +++ b/sdk/python/pulumi_gcp/spanner/database.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/spanner/database_iam_binding.py b/sdk/python/pulumi_gcp/spanner/database_iam_binding.py index aba413edca..8ddd56f62c 100644 --- a/sdk/python/pulumi_gcp/spanner/database_iam_binding.py +++ b/sdk/python/pulumi_gcp/spanner/database_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/spanner/database_iam_member.py b/sdk/python/pulumi_gcp/spanner/database_iam_member.py index 28a2b61052..436bd056b8 100644 --- a/sdk/python/pulumi_gcp/spanner/database_iam_member.py +++ b/sdk/python/pulumi_gcp/spanner/database_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/spanner/database_iam_policy.py b/sdk/python/pulumi_gcp/spanner/database_iam_policy.py index 7f0f78a35e..11851b640c 100644 --- a/sdk/python/pulumi_gcp/spanner/database_iam_policy.py +++ b/sdk/python/pulumi_gcp/spanner/database_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DatabaseIAMPolicyArgs', 'DatabaseIAMPolicy'] diff --git a/sdk/python/pulumi_gcp/spanner/get_database_iam_policy.py b/sdk/python/pulumi_gcp/spanner/get_database_iam_policy.py index 03d223a5a1..0056c62139 100644 --- a/sdk/python/pulumi_gcp/spanner/get_database_iam_policy.py +++ b/sdk/python/pulumi_gcp/spanner/get_database_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/spanner/get_instance.py b/sdk/python/pulumi_gcp/spanner/get_instance.py index 25193e0380..4452f53e62 100644 --- a/sdk/python/pulumi_gcp/spanner/get_instance.py +++ b/sdk/python/pulumi_gcp/spanner/get_instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/spanner/get_instance_iam_policy.py b/sdk/python/pulumi_gcp/spanner/get_instance_iam_policy.py index 6a092d04a5..f0523fa42b 100644 --- a/sdk/python/pulumi_gcp/spanner/get_instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/spanner/get_instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/spanner/instance.py b/sdk/python/pulumi_gcp/spanner/instance.py index 2a70d2c75a..cd60851818 100644 --- a/sdk/python/pulumi_gcp/spanner/instance.py +++ b/sdk/python/pulumi_gcp/spanner/instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/spanner/instance_iam_binding.py b/sdk/python/pulumi_gcp/spanner/instance_iam_binding.py index f06670c3ea..0e0da78559 100644 --- a/sdk/python/pulumi_gcp/spanner/instance_iam_binding.py +++ b/sdk/python/pulumi_gcp/spanner/instance_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/spanner/instance_iam_member.py b/sdk/python/pulumi_gcp/spanner/instance_iam_member.py index 0460a79d60..4cd2b62ef3 100644 --- a/sdk/python/pulumi_gcp/spanner/instance_iam_member.py +++ b/sdk/python/pulumi_gcp/spanner/instance_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/spanner/instance_iam_policy.py b/sdk/python/pulumi_gcp/spanner/instance_iam_policy.py index 695db763b0..440b7dcd3e 100644 --- a/sdk/python/pulumi_gcp/spanner/instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/spanner/instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['InstanceIAMPolicyArgs', 'InstanceIAMPolicy'] diff --git a/sdk/python/pulumi_gcp/spanner/outputs.py b/sdk/python/pulumi_gcp/spanner/outputs.py index 43b5755f2d..6cad416890 100644 --- a/sdk/python/pulumi_gcp/spanner/outputs.py +++ b/sdk/python/pulumi_gcp/spanner/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/sql/_inputs.py b/sdk/python/pulumi_gcp/sql/_inputs.py index 3522ed3d18..55cf6c3a2b 100644 --- a/sdk/python/pulumi_gcp/sql/_inputs.py +++ b/sdk/python/pulumi_gcp/sql/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/sql/database.py b/sdk/python/pulumi_gcp/sql/database.py index ef7cd3a818..88a975d1ea 100644 --- a/sdk/python/pulumi_gcp/sql/database.py +++ b/sdk/python/pulumi_gcp/sql/database.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DatabaseArgs', 'Database'] diff --git a/sdk/python/pulumi_gcp/sql/database_instance.py b/sdk/python/pulumi_gcp/sql/database_instance.py index 3402f4251c..5ede668492 100644 --- a/sdk/python/pulumi_gcp/sql/database_instance.py +++ b/sdk/python/pulumi_gcp/sql/database_instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/sql/get_backup_run.py b/sdk/python/pulumi_gcp/sql/get_backup_run.py index 4b3d6e9b3d..ec6c291432 100644 --- a/sdk/python/pulumi_gcp/sql/get_backup_run.py +++ b/sdk/python/pulumi_gcp/sql/get_backup_run.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/sql/get_ca_certs.py b/sdk/python/pulumi_gcp/sql/get_ca_certs.py index e224bc2926..c2ef445234 100644 --- a/sdk/python/pulumi_gcp/sql/get_ca_certs.py +++ b/sdk/python/pulumi_gcp/sql/get_ca_certs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/sql/get_database.py b/sdk/python/pulumi_gcp/sql/get_database.py index 6914f24933..e555458775 100644 --- a/sdk/python/pulumi_gcp/sql/get_database.py +++ b/sdk/python/pulumi_gcp/sql/get_database.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/sql/get_database_instance.py b/sdk/python/pulumi_gcp/sql/get_database_instance.py index b5b99f6637..837aea72a4 100644 --- a/sdk/python/pulumi_gcp/sql/get_database_instance.py +++ b/sdk/python/pulumi_gcp/sql/get_database_instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/sql/get_database_instance_latest_recovery_time.py b/sdk/python/pulumi_gcp/sql/get_database_instance_latest_recovery_time.py index 8e7911d673..9777cc1cfc 100644 --- a/sdk/python/pulumi_gcp/sql/get_database_instance_latest_recovery_time.py +++ b/sdk/python/pulumi_gcp/sql/get_database_instance_latest_recovery_time.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/sql/get_database_instances.py b/sdk/python/pulumi_gcp/sql/get_database_instances.py index 66655ec32e..16e5492ad8 100644 --- a/sdk/python/pulumi_gcp/sql/get_database_instances.py +++ b/sdk/python/pulumi_gcp/sql/get_database_instances.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/sql/get_databases.py b/sdk/python/pulumi_gcp/sql/get_databases.py index 0a96063d33..febab8f22a 100644 --- a/sdk/python/pulumi_gcp/sql/get_databases.py +++ b/sdk/python/pulumi_gcp/sql/get_databases.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/sql/get_tiers.py b/sdk/python/pulumi_gcp/sql/get_tiers.py index 77703c99fe..7e3c8d9413 100644 --- a/sdk/python/pulumi_gcp/sql/get_tiers.py +++ b/sdk/python/pulumi_gcp/sql/get_tiers.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/sql/outputs.py b/sdk/python/pulumi_gcp/sql/outputs.py index ff3fe105d6..49aa69d474 100644 --- a/sdk/python/pulumi_gcp/sql/outputs.py +++ b/sdk/python/pulumi_gcp/sql/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/sql/source_representation_instance.py b/sdk/python/pulumi_gcp/sql/source_representation_instance.py index a3d0257350..2a3060801d 100644 --- a/sdk/python/pulumi_gcp/sql/source_representation_instance.py +++ b/sdk/python/pulumi_gcp/sql/source_representation_instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SourceRepresentationInstanceArgs', 'SourceRepresentationInstance'] diff --git a/sdk/python/pulumi_gcp/sql/ssl_cert.py b/sdk/python/pulumi_gcp/sql/ssl_cert.py index b6830e4b6c..8a7acd01da 100644 --- a/sdk/python/pulumi_gcp/sql/ssl_cert.py +++ b/sdk/python/pulumi_gcp/sql/ssl_cert.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['SslCertArgs', 'SslCert'] diff --git a/sdk/python/pulumi_gcp/sql/user.py b/sdk/python/pulumi_gcp/sql/user.py index 73ca2f1488..4cb92ece37 100644 --- a/sdk/python/pulumi_gcp/sql/user.py +++ b/sdk/python/pulumi_gcp/sql/user.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/storage/_inputs.py b/sdk/python/pulumi_gcp/storage/_inputs.py index 98efd1b7e2..a2e5beefb0 100644 --- a/sdk/python/pulumi_gcp/storage/_inputs.py +++ b/sdk/python/pulumi_gcp/storage/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/storage/bucket.py b/sdk/python/pulumi_gcp/storage/bucket.py index b1d7465a74..12aef43ca5 100644 --- a/sdk/python/pulumi_gcp/storage/bucket.py +++ b/sdk/python/pulumi_gcp/storage/bucket.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/storage/bucket_access_control.py b/sdk/python/pulumi_gcp/storage/bucket_access_control.py index 282d108d75..e9722296a1 100644 --- a/sdk/python/pulumi_gcp/storage/bucket_access_control.py +++ b/sdk/python/pulumi_gcp/storage/bucket_access_control.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['BucketAccessControlArgs', 'BucketAccessControl'] diff --git a/sdk/python/pulumi_gcp/storage/bucket_acl.py b/sdk/python/pulumi_gcp/storage/bucket_acl.py index 9c6ecae12b..64eee2117b 100644 --- a/sdk/python/pulumi_gcp/storage/bucket_acl.py +++ b/sdk/python/pulumi_gcp/storage/bucket_acl.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['BucketACLArgs', 'BucketACL'] diff --git a/sdk/python/pulumi_gcp/storage/bucket_iam_binding.py b/sdk/python/pulumi_gcp/storage/bucket_iam_binding.py index d434789f87..710acf886f 100644 --- a/sdk/python/pulumi_gcp/storage/bucket_iam_binding.py +++ b/sdk/python/pulumi_gcp/storage/bucket_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/storage/bucket_iam_member.py b/sdk/python/pulumi_gcp/storage/bucket_iam_member.py index 547669b31f..8e94f678e3 100644 --- a/sdk/python/pulumi_gcp/storage/bucket_iam_member.py +++ b/sdk/python/pulumi_gcp/storage/bucket_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/storage/bucket_iam_policy.py b/sdk/python/pulumi_gcp/storage/bucket_iam_policy.py index 04b11ee981..88249d37c4 100644 --- a/sdk/python/pulumi_gcp/storage/bucket_iam_policy.py +++ b/sdk/python/pulumi_gcp/storage/bucket_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['BucketIAMPolicyArgs', 'BucketIAMPolicy'] diff --git a/sdk/python/pulumi_gcp/storage/bucket_object.py b/sdk/python/pulumi_gcp/storage/bucket_object.py index 609771de25..88c7869597 100644 --- a/sdk/python/pulumi_gcp/storage/bucket_object.py +++ b/sdk/python/pulumi_gcp/storage/bucket_object.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/storage/default_object_access_control.py b/sdk/python/pulumi_gcp/storage/default_object_access_control.py index a2a230448d..eefb55d437 100644 --- a/sdk/python/pulumi_gcp/storage/default_object_access_control.py +++ b/sdk/python/pulumi_gcp/storage/default_object_access_control.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/storage/default_object_acl.py b/sdk/python/pulumi_gcp/storage/default_object_acl.py index 236e0df1d1..a466506e19 100644 --- a/sdk/python/pulumi_gcp/storage/default_object_acl.py +++ b/sdk/python/pulumi_gcp/storage/default_object_acl.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['DefaultObjectACLArgs', 'DefaultObjectACL'] diff --git a/sdk/python/pulumi_gcp/storage/get_bucket.py b/sdk/python/pulumi_gcp/storage/get_bucket.py index 07315e1740..e94f54633e 100644 --- a/sdk/python/pulumi_gcp/storage/get_bucket.py +++ b/sdk/python/pulumi_gcp/storage/get_bucket.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/storage/get_bucket_iam_policy.py b/sdk/python/pulumi_gcp/storage/get_bucket_iam_policy.py index bc27ca2cc2..b532680ea2 100644 --- a/sdk/python/pulumi_gcp/storage/get_bucket_iam_policy.py +++ b/sdk/python/pulumi_gcp/storage/get_bucket_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/storage/get_bucket_object.py b/sdk/python/pulumi_gcp/storage/get_bucket_object.py index 24ab187bf4..7eb867a0bf 100644 --- a/sdk/python/pulumi_gcp/storage/get_bucket_object.py +++ b/sdk/python/pulumi_gcp/storage/get_bucket_object.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/storage/get_bucket_object_content.py b/sdk/python/pulumi_gcp/storage/get_bucket_object_content.py index 5207595cdf..958756aca6 100644 --- a/sdk/python/pulumi_gcp/storage/get_bucket_object_content.py +++ b/sdk/python/pulumi_gcp/storage/get_bucket_object_content.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/storage/get_object_signed_url.py b/sdk/python/pulumi_gcp/storage/get_object_signed_url.py index 01da2c81f4..c761351069 100644 --- a/sdk/python/pulumi_gcp/storage/get_object_signed_url.py +++ b/sdk/python/pulumi_gcp/storage/get_object_signed_url.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/storage/get_project_service_account.py b/sdk/python/pulumi_gcp/storage/get_project_service_account.py index e03c467fb2..104dbff150 100644 --- a/sdk/python/pulumi_gcp/storage/get_project_service_account.py +++ b/sdk/python/pulumi_gcp/storage/get_project_service_account.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/storage/get_transfer_project_service_account.py b/sdk/python/pulumi_gcp/storage/get_transfer_project_service_account.py index f139460189..34a7cc9031 100644 --- a/sdk/python/pulumi_gcp/storage/get_transfer_project_service_account.py +++ b/sdk/python/pulumi_gcp/storage/get_transfer_project_service_account.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/storage/get_transfer_project_servie_account.py b/sdk/python/pulumi_gcp/storage/get_transfer_project_servie_account.py index 5dc596f35a..11095a2c4c 100644 --- a/sdk/python/pulumi_gcp/storage/get_transfer_project_servie_account.py +++ b/sdk/python/pulumi_gcp/storage/get_transfer_project_servie_account.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/storage/hmac_key.py b/sdk/python/pulumi_gcp/storage/hmac_key.py index 8b99d86cbd..d80fc9900a 100644 --- a/sdk/python/pulumi_gcp/storage/hmac_key.py +++ b/sdk/python/pulumi_gcp/storage/hmac_key.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['HmacKeyArgs', 'HmacKey'] diff --git a/sdk/python/pulumi_gcp/storage/insights_report_config.py b/sdk/python/pulumi_gcp/storage/insights_report_config.py index c90f8d8919..3b78dfd679 100644 --- a/sdk/python/pulumi_gcp/storage/insights_report_config.py +++ b/sdk/python/pulumi_gcp/storage/insights_report_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/storage/notification.py b/sdk/python/pulumi_gcp/storage/notification.py index a04a6be42e..5d3fe08ebe 100644 --- a/sdk/python/pulumi_gcp/storage/notification.py +++ b/sdk/python/pulumi_gcp/storage/notification.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['NotificationArgs', 'Notification'] diff --git a/sdk/python/pulumi_gcp/storage/object_access_control.py b/sdk/python/pulumi_gcp/storage/object_access_control.py index dabe41cbf1..92581e24bd 100644 --- a/sdk/python/pulumi_gcp/storage/object_access_control.py +++ b/sdk/python/pulumi_gcp/storage/object_access_control.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/storage/object_acl.py b/sdk/python/pulumi_gcp/storage/object_acl.py index 32833af23a..5bb2721702 100644 --- a/sdk/python/pulumi_gcp/storage/object_acl.py +++ b/sdk/python/pulumi_gcp/storage/object_acl.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ObjectACLArgs', 'ObjectACL'] diff --git a/sdk/python/pulumi_gcp/storage/outputs.py b/sdk/python/pulumi_gcp/storage/outputs.py index 92b7fe50e2..4c1c0f65b9 100644 --- a/sdk/python/pulumi_gcp/storage/outputs.py +++ b/sdk/python/pulumi_gcp/storage/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/storage/transfer_agent_pool.py b/sdk/python/pulumi_gcp/storage/transfer_agent_pool.py index fea1501ac2..7b8802714f 100644 --- a/sdk/python/pulumi_gcp/storage/transfer_agent_pool.py +++ b/sdk/python/pulumi_gcp/storage/transfer_agent_pool.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/storage/transfer_job.py b/sdk/python/pulumi_gcp/storage/transfer_job.py index 3c099d3c81..f0fd70b037 100644 --- a/sdk/python/pulumi_gcp/storage/transfer_job.py +++ b/sdk/python/pulumi_gcp/storage/transfer_job.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/tags/_inputs.py b/sdk/python/pulumi_gcp/tags/_inputs.py index c7d89b4b95..1ef99e1f3b 100644 --- a/sdk/python/pulumi_gcp/tags/_inputs.py +++ b/sdk/python/pulumi_gcp/tags/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/tags/get_tag_key.py b/sdk/python/pulumi_gcp/tags/get_tag_key.py index 58d0f592f0..3339369b5d 100644 --- a/sdk/python/pulumi_gcp/tags/get_tag_key.py +++ b/sdk/python/pulumi_gcp/tags/get_tag_key.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/tags/get_tag_key_iam_policy.py b/sdk/python/pulumi_gcp/tags/get_tag_key_iam_policy.py index abdecbc41a..e1e3a6e87a 100644 --- a/sdk/python/pulumi_gcp/tags/get_tag_key_iam_policy.py +++ b/sdk/python/pulumi_gcp/tags/get_tag_key_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/tags/get_tag_value.py b/sdk/python/pulumi_gcp/tags/get_tag_value.py index 4d241cf0d4..508b3655c0 100644 --- a/sdk/python/pulumi_gcp/tags/get_tag_value.py +++ b/sdk/python/pulumi_gcp/tags/get_tag_value.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/tags/get_tag_value_iam_policy.py b/sdk/python/pulumi_gcp/tags/get_tag_value_iam_policy.py index 693f9c1d8d..6409926b65 100644 --- a/sdk/python/pulumi_gcp/tags/get_tag_value_iam_policy.py +++ b/sdk/python/pulumi_gcp/tags/get_tag_value_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/tags/location_tag_binding.py b/sdk/python/pulumi_gcp/tags/location_tag_binding.py index eb4e9aa25f..00a7f9eb2e 100644 --- a/sdk/python/pulumi_gcp/tags/location_tag_binding.py +++ b/sdk/python/pulumi_gcp/tags/location_tag_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['LocationTagBindingArgs', 'LocationTagBinding'] diff --git a/sdk/python/pulumi_gcp/tags/outputs.py b/sdk/python/pulumi_gcp/tags/outputs.py index d15a660c4c..32f84509aa 100644 --- a/sdk/python/pulumi_gcp/tags/outputs.py +++ b/sdk/python/pulumi_gcp/tags/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/tags/tag_binding.py b/sdk/python/pulumi_gcp/tags/tag_binding.py index 88464a5b09..dfd2fe1aad 100644 --- a/sdk/python/pulumi_gcp/tags/tag_binding.py +++ b/sdk/python/pulumi_gcp/tags/tag_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TagBindingArgs', 'TagBinding'] diff --git a/sdk/python/pulumi_gcp/tags/tag_key.py b/sdk/python/pulumi_gcp/tags/tag_key.py index 86931b07f5..7f66e166d6 100644 --- a/sdk/python/pulumi_gcp/tags/tag_key.py +++ b/sdk/python/pulumi_gcp/tags/tag_key.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TagKeyArgs', 'TagKey'] diff --git a/sdk/python/pulumi_gcp/tags/tag_key_iam_binding.py b/sdk/python/pulumi_gcp/tags/tag_key_iam_binding.py index f3fa5388bb..c73ff1f2f5 100644 --- a/sdk/python/pulumi_gcp/tags/tag_key_iam_binding.py +++ b/sdk/python/pulumi_gcp/tags/tag_key_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/tags/tag_key_iam_member.py b/sdk/python/pulumi_gcp/tags/tag_key_iam_member.py index bcd43380ee..247a3e30fb 100644 --- a/sdk/python/pulumi_gcp/tags/tag_key_iam_member.py +++ b/sdk/python/pulumi_gcp/tags/tag_key_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/tags/tag_key_iam_policy.py b/sdk/python/pulumi_gcp/tags/tag_key_iam_policy.py index 68ff5a402c..fda031c562 100644 --- a/sdk/python/pulumi_gcp/tags/tag_key_iam_policy.py +++ b/sdk/python/pulumi_gcp/tags/tag_key_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TagKeyIamPolicyArgs', 'TagKeyIamPolicy'] diff --git a/sdk/python/pulumi_gcp/tags/tag_value.py b/sdk/python/pulumi_gcp/tags/tag_value.py index d399889ccc..a1d62f4d56 100644 --- a/sdk/python/pulumi_gcp/tags/tag_value.py +++ b/sdk/python/pulumi_gcp/tags/tag_value.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TagValueArgs', 'TagValue'] diff --git a/sdk/python/pulumi_gcp/tags/tag_value_iam_binding.py b/sdk/python/pulumi_gcp/tags/tag_value_iam_binding.py index e1d1cf6f56..43a82feaf2 100644 --- a/sdk/python/pulumi_gcp/tags/tag_value_iam_binding.py +++ b/sdk/python/pulumi_gcp/tags/tag_value_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/tags/tag_value_iam_member.py b/sdk/python/pulumi_gcp/tags/tag_value_iam_member.py index e4f5bb8909..e12134de71 100644 --- a/sdk/python/pulumi_gcp/tags/tag_value_iam_member.py +++ b/sdk/python/pulumi_gcp/tags/tag_value_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/tags/tag_value_iam_policy.py b/sdk/python/pulumi_gcp/tags/tag_value_iam_policy.py index 97ea1a6683..d8c29ccc3b 100644 --- a/sdk/python/pulumi_gcp/tags/tag_value_iam_policy.py +++ b/sdk/python/pulumi_gcp/tags/tag_value_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['TagValueIamPolicyArgs', 'TagValueIamPolicy'] diff --git a/sdk/python/pulumi_gcp/tpu/_inputs.py b/sdk/python/pulumi_gcp/tpu/_inputs.py index a21f89972b..ff878df494 100644 --- a/sdk/python/pulumi_gcp/tpu/_inputs.py +++ b/sdk/python/pulumi_gcp/tpu/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/tpu/get_tensorflow_versions.py b/sdk/python/pulumi_gcp/tpu/get_tensorflow_versions.py index 37212e10fe..e7e3437955 100644 --- a/sdk/python/pulumi_gcp/tpu/get_tensorflow_versions.py +++ b/sdk/python/pulumi_gcp/tpu/get_tensorflow_versions.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/tpu/get_v2_accelerator_types.py b/sdk/python/pulumi_gcp/tpu/get_v2_accelerator_types.py index 8e3a235ba2..8d85f4d9a3 100644 --- a/sdk/python/pulumi_gcp/tpu/get_v2_accelerator_types.py +++ b/sdk/python/pulumi_gcp/tpu/get_v2_accelerator_types.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/tpu/get_v2_runtime_versions.py b/sdk/python/pulumi_gcp/tpu/get_v2_runtime_versions.py index 9ba445e324..0352bc34a4 100644 --- a/sdk/python/pulumi_gcp/tpu/get_v2_runtime_versions.py +++ b/sdk/python/pulumi_gcp/tpu/get_v2_runtime_versions.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/tpu/node.py b/sdk/python/pulumi_gcp/tpu/node.py index 5178b2ab13..cccf370aa4 100644 --- a/sdk/python/pulumi_gcp/tpu/node.py +++ b/sdk/python/pulumi_gcp/tpu/node.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/tpu/outputs.py b/sdk/python/pulumi_gcp/tpu/outputs.py index ce78c14622..1c892653ad 100644 --- a/sdk/python/pulumi_gcp/tpu/outputs.py +++ b/sdk/python/pulumi_gcp/tpu/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/tpu/v2_vm.py b/sdk/python/pulumi_gcp/tpu/v2_vm.py index 6d181e0e27..c2ea31bff1 100644 --- a/sdk/python/pulumi_gcp/tpu/v2_vm.py +++ b/sdk/python/pulumi_gcp/tpu/v2_vm.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/_inputs.py b/sdk/python/pulumi_gcp/vertex/_inputs.py index 57d2db4c2f..1851ce3063 100644 --- a/sdk/python/pulumi_gcp/vertex/_inputs.py +++ b/sdk/python/pulumi_gcp/vertex/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/vertex/ai_dataset.py b/sdk/python/pulumi_gcp/vertex/ai_dataset.py index a2f188c27a..fe3ee5ceab 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_dataset.py +++ b/sdk/python/pulumi_gcp/vertex/ai_dataset.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_deployment_resource_pool.py b/sdk/python/pulumi_gcp/vertex/ai_deployment_resource_pool.py index 17bfcfb3d2..fccb457cc5 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_deployment_resource_pool.py +++ b/sdk/python/pulumi_gcp/vertex/ai_deployment_resource_pool.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_endpoint.py b/sdk/python/pulumi_gcp/vertex/ai_endpoint.py index 44d9cd002e..c552817a81 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_endpoint.py +++ b/sdk/python/pulumi_gcp/vertex/ai_endpoint.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_endpoint_iam_binding.py b/sdk/python/pulumi_gcp/vertex/ai_endpoint_iam_binding.py index 8f7d6f0880..5c5626775e 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_endpoint_iam_binding.py +++ b/sdk/python/pulumi_gcp/vertex/ai_endpoint_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_endpoint_iam_member.py b/sdk/python/pulumi_gcp/vertex/ai_endpoint_iam_member.py index 889f74ee38..e03ce1495b 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_endpoint_iam_member.py +++ b/sdk/python/pulumi_gcp/vertex/ai_endpoint_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_endpoint_iam_policy.py b/sdk/python/pulumi_gcp/vertex/ai_endpoint_iam_policy.py index d3a04f9deb..a26eab12a0 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_endpoint_iam_policy.py +++ b/sdk/python/pulumi_gcp/vertex/ai_endpoint_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AiEndpointIamPolicyArgs', 'AiEndpointIamPolicy'] diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_group.py b/sdk/python/pulumi_gcp/vertex/ai_feature_group.py index d20643aafb..de530cb16e 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_group.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_group.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_group_feature.py b/sdk/python/pulumi_gcp/vertex/ai_feature_group_feature.py index 205d3ef692..49d39358b0 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_group_feature.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_group_feature.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AiFeatureGroupFeatureArgs', 'AiFeatureGroupFeature'] diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_online_store.py b/sdk/python/pulumi_gcp/vertex/ai_feature_online_store.py index 0bf837eb92..ae48b73929 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_online_store.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_online_store.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_online_store_featureview.py b/sdk/python/pulumi_gcp/vertex/ai_feature_online_store_featureview.py index f92a6ac2f6..3ca99811ad 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_online_store_featureview.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_online_store_featureview.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_store.py b/sdk/python/pulumi_gcp/vertex/ai_feature_store.py index 4a943725c5..cf23557b25 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_store.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_store.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type.py b/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type.py index 05573dbec4..315991d2c2 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_feature.py b/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_feature.py index 53defda3c9..08d7003ac6 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_feature.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_feature.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AiFeatureStoreEntityTypeFeatureArgs', 'AiFeatureStoreEntityTypeFeature'] diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_iam_binding.py b/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_iam_binding.py index 8a720e769a..467dbe6567 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_iam_binding.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_iam_member.py b/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_iam_member.py index d672f43adf..62a375cdad 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_iam_member.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_iam_policy.py b/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_iam_policy.py index ec9dfa92fe..644288f4e9 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_iam_policy.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AiFeatureStoreEntityTypeIamPolicyArgs', 'AiFeatureStoreEntityTypeIamPolicy'] diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_store_iam_binding.py b/sdk/python/pulumi_gcp/vertex/ai_feature_store_iam_binding.py index 0259e73df0..57ea34ae88 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_store_iam_binding.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_store_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_store_iam_member.py b/sdk/python/pulumi_gcp/vertex/ai_feature_store_iam_member.py index 468f4c77b5..884acae100 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_store_iam_member.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_store_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_store_iam_policy.py b/sdk/python/pulumi_gcp/vertex/ai_feature_store_iam_policy.py index 9a119633e6..b789f64a84 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_store_iam_policy.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_store_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['AiFeatureStoreIamPolicyArgs', 'AiFeatureStoreIamPolicy'] diff --git a/sdk/python/pulumi_gcp/vertex/ai_index.py b/sdk/python/pulumi_gcp/vertex/ai_index.py index ade83083b9..ec4a35a815 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_index.py +++ b/sdk/python/pulumi_gcp/vertex/ai_index.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_index_endpoint.py b/sdk/python/pulumi_gcp/vertex/ai_index_endpoint.py index 81793bf7c3..4e740fadf8 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_index_endpoint.py +++ b/sdk/python/pulumi_gcp/vertex/ai_index_endpoint.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_metadata_store.py b/sdk/python/pulumi_gcp/vertex/ai_metadata_store.py index d1620ef45c..3849e3c8d2 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_metadata_store.py +++ b/sdk/python/pulumi_gcp/vertex/ai_metadata_store.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/ai_tensorboard.py b/sdk/python/pulumi_gcp/vertex/ai_tensorboard.py index 763e2656a6..6680fb972c 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_tensorboard.py +++ b/sdk/python/pulumi_gcp/vertex/ai_tensorboard.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vertex/get_ai_endpoint_iam_policy.py b/sdk/python/pulumi_gcp/vertex/get_ai_endpoint_iam_policy.py index fdadde55df..8d1466ad08 100644 --- a/sdk/python/pulumi_gcp/vertex/get_ai_endpoint_iam_policy.py +++ b/sdk/python/pulumi_gcp/vertex/get_ai_endpoint_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/vertex/get_ai_featurestore_entitytype_iam_policy.py b/sdk/python/pulumi_gcp/vertex/get_ai_featurestore_entitytype_iam_policy.py index 60bb867977..9d6c6646a4 100644 --- a/sdk/python/pulumi_gcp/vertex/get_ai_featurestore_entitytype_iam_policy.py +++ b/sdk/python/pulumi_gcp/vertex/get_ai_featurestore_entitytype_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/vertex/get_ai_featurestore_iam_policy.py b/sdk/python/pulumi_gcp/vertex/get_ai_featurestore_iam_policy.py index 0d1b407c59..226172e2eb 100644 --- a/sdk/python/pulumi_gcp/vertex/get_ai_featurestore_iam_policy.py +++ b/sdk/python/pulumi_gcp/vertex/get_ai_featurestore_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/vertex/get_ai_index.py b/sdk/python/pulumi_gcp/vertex/get_ai_index.py index cd4dd6149f..56e0b3b8ca 100644 --- a/sdk/python/pulumi_gcp/vertex/get_ai_index.py +++ b/sdk/python/pulumi_gcp/vertex/get_ai_index.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/vertex/outputs.py b/sdk/python/pulumi_gcp/vertex/outputs.py index 7d6ebb1b11..98f492adb4 100644 --- a/sdk/python/pulumi_gcp/vertex/outputs.py +++ b/sdk/python/pulumi_gcp/vertex/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/vmwareengine/_inputs.py b/sdk/python/pulumi_gcp/vmwareengine/_inputs.py index 9b7ad39946..a09becb5f1 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/_inputs.py +++ b/sdk/python/pulumi_gcp/vmwareengine/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/vmwareengine/cluster.py b/sdk/python/pulumi_gcp/vmwareengine/cluster.py index bd5d8aa528..fc595641c8 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/cluster.py +++ b/sdk/python/pulumi_gcp/vmwareengine/cluster.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vmwareengine/external_access_rule.py b/sdk/python/pulumi_gcp/vmwareengine/external_access_rule.py index f53e775dad..ad115fa1f4 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/external_access_rule.py +++ b/sdk/python/pulumi_gcp/vmwareengine/external_access_rule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vmwareengine/external_address.py b/sdk/python/pulumi_gcp/vmwareengine/external_address.py index 034b60355c..7c79eb453d 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/external_address.py +++ b/sdk/python/pulumi_gcp/vmwareengine/external_address.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['ExternalAddressArgs', 'ExternalAddress'] diff --git a/sdk/python/pulumi_gcp/vmwareengine/get_cluster.py b/sdk/python/pulumi_gcp/vmwareengine/get_cluster.py index 6859f1603d..5c07f79e6d 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/get_cluster.py +++ b/sdk/python/pulumi_gcp/vmwareengine/get_cluster.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/vmwareengine/get_external_access_rule.py b/sdk/python/pulumi_gcp/vmwareengine/get_external_access_rule.py index 09c5a2f35c..4e0c6caace 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/get_external_access_rule.py +++ b/sdk/python/pulumi_gcp/vmwareengine/get_external_access_rule.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/vmwareengine/get_external_address.py b/sdk/python/pulumi_gcp/vmwareengine/get_external_address.py index 793760be83..e9216a89ba 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/get_external_address.py +++ b/sdk/python/pulumi_gcp/vmwareengine/get_external_address.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/vmwareengine/get_network.py b/sdk/python/pulumi_gcp/vmwareengine/get_network.py index a86889db5d..2ae603b27b 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/get_network.py +++ b/sdk/python/pulumi_gcp/vmwareengine/get_network.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/vmwareengine/get_network_peering.py b/sdk/python/pulumi_gcp/vmwareengine/get_network_peering.py index 51d861888c..23c479c5f9 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/get_network_peering.py +++ b/sdk/python/pulumi_gcp/vmwareengine/get_network_peering.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/vmwareengine/get_network_policy.py b/sdk/python/pulumi_gcp/vmwareengine/get_network_policy.py index 4e61705041..5448a78393 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/get_network_policy.py +++ b/sdk/python/pulumi_gcp/vmwareengine/get_network_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/vmwareengine/get_nsx_credentials.py b/sdk/python/pulumi_gcp/vmwareengine/get_nsx_credentials.py index fef578aa0b..6aca5f12e8 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/get_nsx_credentials.py +++ b/sdk/python/pulumi_gcp/vmwareengine/get_nsx_credentials.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/vmwareengine/get_private_cloud.py b/sdk/python/pulumi_gcp/vmwareengine/get_private_cloud.py index efb9a5d0e1..09dc898143 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/get_private_cloud.py +++ b/sdk/python/pulumi_gcp/vmwareengine/get_private_cloud.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/vmwareengine/get_subnet.py b/sdk/python/pulumi_gcp/vmwareengine/get_subnet.py index c2a53c8f91..6027377000 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/get_subnet.py +++ b/sdk/python/pulumi_gcp/vmwareengine/get_subnet.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/vmwareengine/get_vcenter_credentials.py b/sdk/python/pulumi_gcp/vmwareengine/get_vcenter_credentials.py index 70c4ea2c71..9519b609c7 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/get_vcenter_credentials.py +++ b/sdk/python/pulumi_gcp/vmwareengine/get_vcenter_credentials.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/vmwareengine/network.py b/sdk/python/pulumi_gcp/vmwareengine/network.py index 3c4842228b..c473907502 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/network.py +++ b/sdk/python/pulumi_gcp/vmwareengine/network.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vmwareengine/network_peering.py b/sdk/python/pulumi_gcp/vmwareengine/network_peering.py index 50dfe4d16d..9c41e84748 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/network_peering.py +++ b/sdk/python/pulumi_gcp/vmwareengine/network_peering.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['NetworkPeeringArgs', 'NetworkPeering'] diff --git a/sdk/python/pulumi_gcp/vmwareengine/network_policy.py b/sdk/python/pulumi_gcp/vmwareengine/network_policy.py index 526cb37bc9..029774ad08 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/network_policy.py +++ b/sdk/python/pulumi_gcp/vmwareengine/network_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vmwareengine/outputs.py b/sdk/python/pulumi_gcp/vmwareengine/outputs.py index cf967f6959..9c1ce34ba0 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/outputs.py +++ b/sdk/python/pulumi_gcp/vmwareengine/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/vmwareengine/private_cloud.py b/sdk/python/pulumi_gcp/vmwareengine/private_cloud.py index d0709c4b73..5efab5a7dd 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/private_cloud.py +++ b/sdk/python/pulumi_gcp/vmwareengine/private_cloud.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vmwareengine/subnet.py b/sdk/python/pulumi_gcp/vmwareengine/subnet.py index 88c6bf7b35..00cb9b3080 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/subnet.py +++ b/sdk/python/pulumi_gcp/vmwareengine/subnet.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vpcaccess/_inputs.py b/sdk/python/pulumi_gcp/vpcaccess/_inputs.py index 37c17291a0..16189c9a46 100644 --- a/sdk/python/pulumi_gcp/vpcaccess/_inputs.py +++ b/sdk/python/pulumi_gcp/vpcaccess/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/vpcaccess/connector.py b/sdk/python/pulumi_gcp/vpcaccess/connector.py index 048a8c9d43..1be1423f59 100644 --- a/sdk/python/pulumi_gcp/vpcaccess/connector.py +++ b/sdk/python/pulumi_gcp/vpcaccess/connector.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/vpcaccess/get_connector.py b/sdk/python/pulumi_gcp/vpcaccess/get_connector.py index ba9d7ff181..e7790c23ff 100644 --- a/sdk/python/pulumi_gcp/vpcaccess/get_connector.py +++ b/sdk/python/pulumi_gcp/vpcaccess/get_connector.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/vpcaccess/outputs.py b/sdk/python/pulumi_gcp/vpcaccess/outputs.py index 4e8cfe12e5..f67f730cbf 100644 --- a/sdk/python/pulumi_gcp/vpcaccess/outputs.py +++ b/sdk/python/pulumi_gcp/vpcaccess/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/workbench/_inputs.py b/sdk/python/pulumi_gcp/workbench/_inputs.py index d2b6fa504d..8bbed0027e 100644 --- a/sdk/python/pulumi_gcp/workbench/_inputs.py +++ b/sdk/python/pulumi_gcp/workbench/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/workbench/get_instance_iam_policy.py b/sdk/python/pulumi_gcp/workbench/get_instance_iam_policy.py index 9ffcc96833..17c50d5041 100644 --- a/sdk/python/pulumi_gcp/workbench/get_instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/workbench/get_instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/workbench/instance.py b/sdk/python/pulumi_gcp/workbench/instance.py index 7e3d3cfe61..687c49322c 100644 --- a/sdk/python/pulumi_gcp/workbench/instance.py +++ b/sdk/python/pulumi_gcp/workbench/instance.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/workbench/instance_iam_binding.py b/sdk/python/pulumi_gcp/workbench/instance_iam_binding.py index 0a9ce50a6e..a268dad9ba 100644 --- a/sdk/python/pulumi_gcp/workbench/instance_iam_binding.py +++ b/sdk/python/pulumi_gcp/workbench/instance_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/workbench/instance_iam_member.py b/sdk/python/pulumi_gcp/workbench/instance_iam_member.py index 63cd63f75e..88fef4cb67 100644 --- a/sdk/python/pulumi_gcp/workbench/instance_iam_member.py +++ b/sdk/python/pulumi_gcp/workbench/instance_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/workbench/instance_iam_policy.py b/sdk/python/pulumi_gcp/workbench/instance_iam_policy.py index 18ba5de2c8..f44a1f8d2c 100644 --- a/sdk/python/pulumi_gcp/workbench/instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/workbench/instance_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['InstanceIamPolicyArgs', 'InstanceIamPolicy'] diff --git a/sdk/python/pulumi_gcp/workbench/outputs.py b/sdk/python/pulumi_gcp/workbench/outputs.py index 55b14907d3..1305557583 100644 --- a/sdk/python/pulumi_gcp/workbench/outputs.py +++ b/sdk/python/pulumi_gcp/workbench/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/workflows/workflow.py b/sdk/python/pulumi_gcp/workflows/workflow.py index 08f1ac4f96..4ab6521c65 100644 --- a/sdk/python/pulumi_gcp/workflows/workflow.py +++ b/sdk/python/pulumi_gcp/workflows/workflow.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['WorkflowArgs', 'Workflow'] diff --git a/sdk/python/pulumi_gcp/workstations/_inputs.py b/sdk/python/pulumi_gcp/workstations/_inputs.py index 4a30e6f3e2..d260db3c4b 100644 --- a/sdk/python/pulumi_gcp/workstations/_inputs.py +++ b/sdk/python/pulumi_gcp/workstations/_inputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/workstations/get_workstation_config_iam_policy.py b/sdk/python/pulumi_gcp/workstations/get_workstation_config_iam_policy.py index 25ee905608..82ff7314db 100644 --- a/sdk/python/pulumi_gcp/workstations/get_workstation_config_iam_policy.py +++ b/sdk/python/pulumi_gcp/workstations/get_workstation_config_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/workstations/get_workstation_iam_policy.py b/sdk/python/pulumi_gcp/workstations/get_workstation_iam_policy.py index b1f6d84d49..c002577204 100644 --- a/sdk/python/pulumi_gcp/workstations/get_workstation_iam_policy.py +++ b/sdk/python/pulumi_gcp/workstations/get_workstation_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_gcp/workstations/outputs.py b/sdk/python/pulumi_gcp/workstations/outputs.py index f00b3d2113..c9314c2698 100644 --- a/sdk/python/pulumi_gcp/workstations/outputs.py +++ b/sdk/python/pulumi_gcp/workstations/outputs.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_gcp/workstations/workstation.py b/sdk/python/pulumi_gcp/workstations/workstation.py index 292b8810b1..0aa9039a38 100644 --- a/sdk/python/pulumi_gcp/workstations/workstation.py +++ b/sdk/python/pulumi_gcp/workstations/workstation.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['WorkstationArgs', 'Workstation'] diff --git a/sdk/python/pulumi_gcp/workstations/workstation_cluster.py b/sdk/python/pulumi_gcp/workstations/workstation_cluster.py index 67e1cac1fe..b840f66fd0 100644 --- a/sdk/python/pulumi_gcp/workstations/workstation_cluster.py +++ b/sdk/python/pulumi_gcp/workstations/workstation_cluster.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/workstations/workstation_config.py b/sdk/python/pulumi_gcp/workstations/workstation_config.py index 76a8281a5f..141ac13ce6 100644 --- a/sdk/python/pulumi_gcp/workstations/workstation_config.py +++ b/sdk/python/pulumi_gcp/workstations/workstation_config.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/workstations/workstation_config_iam_binding.py b/sdk/python/pulumi_gcp/workstations/workstation_config_iam_binding.py index 2788827010..1b622b6e65 100644 --- a/sdk/python/pulumi_gcp/workstations/workstation_config_iam_binding.py +++ b/sdk/python/pulumi_gcp/workstations/workstation_config_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/workstations/workstation_config_iam_member.py b/sdk/python/pulumi_gcp/workstations/workstation_config_iam_member.py index fadf94d5d5..657829aff6 100644 --- a/sdk/python/pulumi_gcp/workstations/workstation_config_iam_member.py +++ b/sdk/python/pulumi_gcp/workstations/workstation_config_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/workstations/workstation_config_iam_policy.py b/sdk/python/pulumi_gcp/workstations/workstation_config_iam_policy.py index 7cc4e56c08..ed3dee7173 100644 --- a/sdk/python/pulumi_gcp/workstations/workstation_config_iam_policy.py +++ b/sdk/python/pulumi_gcp/workstations/workstation_config_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['WorkstationConfigIamPolicyArgs', 'WorkstationConfigIamPolicy'] diff --git a/sdk/python/pulumi_gcp/workstations/workstation_iam_binding.py b/sdk/python/pulumi_gcp/workstations/workstation_iam_binding.py index 49f2ffa331..6fb8ad85b6 100644 --- a/sdk/python/pulumi_gcp/workstations/workstation_iam_binding.py +++ b/sdk/python/pulumi_gcp/workstations/workstation_iam_binding.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/workstations/workstation_iam_member.py b/sdk/python/pulumi_gcp/workstations/workstation_iam_member.py index 16d6820e1b..787703352b 100644 --- a/sdk/python/pulumi_gcp/workstations/workstation_iam_member.py +++ b/sdk/python/pulumi_gcp/workstations/workstation_iam_member.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_gcp/workstations/workstation_iam_policy.py b/sdk/python/pulumi_gcp/workstations/workstation_iam_policy.py index 8d7dac0440..c3b306ef68 100644 --- a/sdk/python/pulumi_gcp/workstations/workstation_iam_policy.py +++ b/sdk/python/pulumi_gcp/workstations/workstation_iam_policy.py @@ -4,9 +4,14 @@ import copy import warnings +import sys import pulumi import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict +else: + from typing_extensions import NotRequired, TypedDict from .. import _utilities __all__ = ['WorkstationIamPolicyArgs', 'WorkstationIamPolicy'] diff --git a/sdk/python/pyproject.toml b/sdk/python/pyproject.toml index c0c75908a9..a0bf690c02 100644 --- a/sdk/python/pyproject.toml +++ b/sdk/python/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "pulumi_gcp" description = "A Pulumi package for creating and managing Google Cloud Platform resources." - dependencies = ["parver>=0.2.1", "pulumi>=3.0.0,<4.0.0", "semver>=2.8.1"] + dependencies = ["parver>=0.2.1", "pulumi>=3.0.0,<4.0.0", "semver>=2.8.1", "typing-extensions>=4.11; python_version < \"3.11\""] keywords = ["pulumi", "gcp"] readme = "README.md" requires-python = ">=3.8"