1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. apphub
  5. Workload
Google Cloud Classic v7.23.0 published on Wednesday, May 15, 2024 by Pulumi

gcp.apphub.Workload

Explore with Pulumi AI

gcp logo
Google Cloud Classic v7.23.0 published on Wednesday, May 15, 2024 by Pulumi

    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.

    Example Usage

    Apphub Workload Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    import * as std from "@pulumi/std";
    import * as time from "@pulumi/time";
    
    const application = new gcp.apphub.Application("application", {
        location: "us-central1",
        applicationId: "example-application-1",
        scope: {
            type: "REGIONAL",
        },
    });
    const serviceProject = new gcp.organizations.Project("service_project", {
        projectId: "project-1",
        name: "Service Project",
        orgId: "123456789",
        billingAccount: "000000-0000000-0000000-000000",
    });
    // Enable Compute API
    const computeServiceProject = new gcp.projects.Service("compute_service_project", {
        project: serviceProject.projectId,
        service: "compute.googleapis.com",
    });
    const wait120s = new time.index.Sleep("wait_120s", {createDuration: "120s"});
    const serviceProjectAttachment = new gcp.apphub.ServiceProjectAttachment("service_project_attachment", {serviceProjectAttachmentId: serviceProject.projectId});
    // VPC network
    const ilbNetwork = new gcp.compute.Network("ilb_network", {
        name: "l7-ilb-network",
        project: serviceProject.projectId,
        autoCreateSubnetworks: false,
    });
    // backend subnet
    const ilbSubnet = new gcp.compute.Subnetwork("ilb_subnet", {
        name: "l7-ilb-subnet",
        project: serviceProject.projectId,
        ipCidrRange: "10.0.1.0/24",
        region: "us-central1",
        network: ilbNetwork.id,
    });
    // instance template
    const instanceTemplate = new gcp.compute.InstanceTemplate("instance_template", {
        networkInterfaces: [{
            accessConfigs: [{}],
            network: ilbNetwork.id,
            subnetwork: ilbSubnet.id,
        }],
        name: "l7-ilb-mig-template",
        project: serviceProject.projectId,
        machineType: "e2-small",
        tags: ["http-server"],
        disks: [{
            sourceImage: "debian-cloud/debian-10",
            autoDelete: true,
            boot: true,
        }],
        metadata: {
            "startup-script": `#! /bin/bash
    set -euo pipefail
    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"])')
    cat <<EOF > /var/www/html/index.html
    <pre>
    Name: NAME
    IP: IP
    Metadata: METADATA
    </pre>
    EOF
    `,
        },
    });
    const mig = new gcp.compute.RegionInstanceGroupManager("mig", {
        name: "l7-ilb-mig1",
        project: serviceProject.projectId,
        region: "us-central1",
        versions: [{
            instanceTemplate: instanceTemplate.id,
            name: "primary",
        }],
        baseInstanceName: "vm",
        targetSize: 2,
    });
    // Discovered workload
    const catalog-workload = std.replaceOutput({
        text: mig.instanceGroup,
        search: "https://www.googleapis.com/compute/v1",
        replace: "//compute.googleapis.com",
    }).apply(invoke => gcp.apphub.getDiscoveredWorkloadOutput({
        location: "us-central1",
        workloadUri: invoke.result,
    }));
    const wait120sForResourceIngestion = new time.index.Sleep("wait_120s_for_resource_ingestion", {createDuration: "120s"});
    const example = new gcp.apphub.Workload("example", {
        location: "us-central1",
        applicationId: application.applicationId,
        workloadId: mig.name,
        discoveredWorkload: catalog_workload.apply(catalog_workload => catalog_workload.name),
    });
    
    import pulumi
    import pulumi_gcp as gcp
    import pulumi_std as std
    import pulumi_time as time
    
    application = gcp.apphub.Application("application",
        location="us-central1",
        application_id="example-application-1",
        scope=gcp.apphub.ApplicationScopeArgs(
            type="REGIONAL",
        ))
    service_project = gcp.organizations.Project("service_project",
        project_id="project-1",
        name="Service Project",
        org_id="123456789",
        billing_account="000000-0000000-0000000-000000")
    # Enable Compute API
    compute_service_project = gcp.projects.Service("compute_service_project",
        project=service_project.project_id,
        service="compute.googleapis.com")
    wait120s = time.index.Sleep("wait_120s", create_duration=120s)
    service_project_attachment = gcp.apphub.ServiceProjectAttachment("service_project_attachment", service_project_attachment_id=service_project.project_id)
    # VPC network
    ilb_network = gcp.compute.Network("ilb_network",
        name="l7-ilb-network",
        project=service_project.project_id,
        auto_create_subnetworks=False)
    # backend subnet
    ilb_subnet = gcp.compute.Subnetwork("ilb_subnet",
        name="l7-ilb-subnet",
        project=service_project.project_id,
        ip_cidr_range="10.0.1.0/24",
        region="us-central1",
        network=ilb_network.id)
    # instance template
    instance_template = gcp.compute.InstanceTemplate("instance_template",
        network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(
            access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],
            network=ilb_network.id,
            subnetwork=ilb_subnet.id,
        )],
        name="l7-ilb-mig-template",
        project=service_project.project_id,
        machine_type="e2-small",
        tags=["http-server"],
        disks=[gcp.compute.InstanceTemplateDiskArgs(
            source_image="debian-cloud/debian-10",
            auto_delete=True,
            boot=True,
        )],
        metadata={
            "startup-script": """#! /bin/bash
    set -euo pipefail
    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"])')
    cat <<EOF > /var/www/html/index.html
    <pre>
    Name: $NAME
    IP: $IP
    Metadata: $METADATA
    </pre>
    EOF
    """,
        })
    mig = gcp.compute.RegionInstanceGroupManager("mig",
        name="l7-ilb-mig1",
        project=service_project.project_id,
        region="us-central1",
        versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(
            instance_template=instance_template.id,
            name="primary",
        )],
        base_instance_name="vm",
        target_size=2)
    # Discovered workload
    catalog_workload = std.replace_output(text=mig.instance_group,
        search="https://www.googleapis.com/compute/v1",
        replace="//compute.googleapis.com").apply(lambda invoke: gcp.apphub.get_discovered_workload_output(location="us-central1",
        workload_uri=invoke.result))
    wait120s_for_resource_ingestion = time.index.Sleep("wait_120s_for_resource_ingestion", create_duration=120s)
    example = gcp.apphub.Workload("example",
        location="us-central1",
        application_id=application.application_id,
        workload_id=mig.name,
        discovered_workload=catalog_workload.name)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apphub"
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects"
    	"github.com/pulumi/pulumi-std/sdk/go/std"
    	"github.com/pulumi/pulumi-time/sdk/go/time"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		application, err := apphub.NewApplication(ctx, "application", &apphub.ApplicationArgs{
    			Location:      pulumi.String("us-central1"),
    			ApplicationId: pulumi.String("example-application-1"),
    			Scope: &apphub.ApplicationScopeArgs{
    				Type: pulumi.String("REGIONAL"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		serviceProject, err := organizations.NewProject(ctx, "service_project", &organizations.ProjectArgs{
    			ProjectId:      pulumi.String("project-1"),
    			Name:           pulumi.String("Service Project"),
    			OrgId:          pulumi.String("123456789"),
    			BillingAccount: pulumi.String("000000-0000000-0000000-000000"),
    		})
    		if err != nil {
    			return err
    		}
    		// Enable Compute API
    		_, err = projects.NewService(ctx, "compute_service_project", &projects.ServiceArgs{
    			Project: serviceProject.ProjectId,
    			Service: pulumi.String("compute.googleapis.com"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = time.NewSleep(ctx, "wait_120s", &time.SleepArgs{
    			CreateDuration: "120s",
    		})
    		if err != nil {
    			return err
    		}
    		_, err = apphub.NewServiceProjectAttachment(ctx, "service_project_attachment", &apphub.ServiceProjectAttachmentArgs{
    			ServiceProjectAttachmentId: serviceProject.ProjectId,
    		})
    		if err != nil {
    			return err
    		}
    		// VPC network
    		ilbNetwork, err := compute.NewNetwork(ctx, "ilb_network", &compute.NetworkArgs{
    			Name:                  pulumi.String("l7-ilb-network"),
    			Project:               serviceProject.ProjectId,
    			AutoCreateSubnetworks: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		// backend subnet
    		ilbSubnet, err := compute.NewSubnetwork(ctx, "ilb_subnet", &compute.SubnetworkArgs{
    			Name:        pulumi.String("l7-ilb-subnet"),
    			Project:     serviceProject.ProjectId,
    			IpCidrRange: pulumi.String("10.0.1.0/24"),
    			Region:      pulumi.String("us-central1"),
    			Network:     ilbNetwork.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		// instance template
    		instanceTemplate, err := compute.NewInstanceTemplate(ctx, "instance_template", &compute.InstanceTemplateArgs{
    			NetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{
    				&compute.InstanceTemplateNetworkInterfaceArgs{
    					AccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{
    						nil,
    					},
    					Network:    ilbNetwork.ID(),
    					Subnetwork: ilbSubnet.ID(),
    				},
    			},
    			Name:        pulumi.String("l7-ilb-mig-template"),
    			Project:     serviceProject.ProjectId,
    			MachineType: pulumi.String("e2-small"),
    			Tags: pulumi.StringArray{
    				pulumi.String("http-server"),
    			},
    			Disks: compute.InstanceTemplateDiskArray{
    				&compute.InstanceTemplateDiskArgs{
    					SourceImage: pulumi.String("debian-cloud/debian-10"),
    					AutoDelete:  pulumi.Bool(true),
    					Boot:        pulumi.Bool(true),
    				},
    			},
    			Metadata: pulumi.Map{
    				"startup-script": pulumi.Any(`#! /bin/bash
    set -euo pipefail
    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"])')
    cat <<EOF > /var/www/html/index.html
    <pre>
    Name: $NAME
    IP: $IP
    Metadata: $METADATA
    </pre>
    EOF
    `),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		mig, err := compute.NewRegionInstanceGroupManager(ctx, "mig", &compute.RegionInstanceGroupManagerArgs{
    			Name:    pulumi.String("l7-ilb-mig1"),
    			Project: serviceProject.ProjectId,
    			Region:  pulumi.String("us-central1"),
    			Versions: compute.RegionInstanceGroupManagerVersionArray{
    				&compute.RegionInstanceGroupManagerVersionArgs{
    					InstanceTemplate: instanceTemplate.ID(),
    					Name:             pulumi.String("primary"),
    				},
    			},
    			BaseInstanceName: pulumi.String("vm"),
    			TargetSize:       pulumi.Int(2),
    		})
    		if err != nil {
    			return err
    		}
    		// Discovered workload
    		catalog_workload := std.ReplaceOutput(ctx, std.ReplaceOutputArgs{
    			Text:    mig.InstanceGroup,
    			Search:  pulumi.String("https://www.googleapis.com/compute/v1"),
    			Replace: pulumi.String("//compute.googleapis.com"),
    		}, nil).ApplyT(func(invoke std.ReplaceResult) (apphub.GetDiscoveredWorkloadResult, error) {
    			return apphub.GetDiscoveredWorkloadOutput(ctx, apphub.GetDiscoveredWorkloadOutputArgs{
    				Location:    "us-central1",
    				WorkloadUri: invoke.Result,
    			}, nil), nil
    		}).(apphub.GetDiscoveredWorkloadResultOutput)
    		_, err = time.NewSleep(ctx, "wait_120s_for_resource_ingestion", &time.SleepArgs{
    			CreateDuration: "120s",
    		})
    		if err != nil {
    			return err
    		}
    		_, err = apphub.NewWorkload(ctx, "example", &apphub.WorkloadArgs{
    			Location:      pulumi.String("us-central1"),
    			ApplicationId: application.ApplicationId,
    			WorkloadId:    mig.Name,
    			DiscoveredWorkload: catalog_workload.ApplyT(func(catalog_workload apphub.GetDiscoveredWorkloadResult) (*string, error) {
    				return &catalog_workload.Name, nil
    			}).(pulumi.StringPtrOutput),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    using Std = Pulumi.Std;
    using Time = Pulumi.Time;
    
    return await Deployment.RunAsync(() => 
    {
        var application = new Gcp.Apphub.Application("application", new()
        {
            Location = "us-central1",
            ApplicationId = "example-application-1",
            Scope = new Gcp.Apphub.Inputs.ApplicationScopeArgs
            {
                Type = "REGIONAL",
            },
        });
    
        var serviceProject = new Gcp.Organizations.Project("service_project", new()
        {
            ProjectId = "project-1",
            Name = "Service Project",
            OrgId = "123456789",
            BillingAccount = "000000-0000000-0000000-000000",
        });
    
        // Enable Compute API
        var computeServiceProject = new Gcp.Projects.Service("compute_service_project", new()
        {
            Project = serviceProject.ProjectId,
            ServiceName = "compute.googleapis.com",
        });
    
        var wait120s = new Time.Index.Sleep("wait_120s", new()
        {
            CreateDuration = "120s",
        });
    
        var serviceProjectAttachment = new Gcp.Apphub.ServiceProjectAttachment("service_project_attachment", new()
        {
            ServiceProjectAttachmentId = serviceProject.ProjectId,
        });
    
        // VPC network
        var ilbNetwork = new Gcp.Compute.Network("ilb_network", new()
        {
            Name = "l7-ilb-network",
            Project = serviceProject.ProjectId,
            AutoCreateSubnetworks = false,
        });
    
        // backend subnet
        var ilbSubnet = new Gcp.Compute.Subnetwork("ilb_subnet", new()
        {
            Name = "l7-ilb-subnet",
            Project = serviceProject.ProjectId,
            IpCidrRange = "10.0.1.0/24",
            Region = "us-central1",
            Network = ilbNetwork.Id,
        });
    
        // instance template
        var instanceTemplate = new Gcp.Compute.InstanceTemplate("instance_template", new()
        {
            NetworkInterfaces = new[]
            {
                new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs
                {
                    AccessConfigs = new[]
                    {
                        null,
                    },
                    Network = ilbNetwork.Id,
                    Subnetwork = ilbSubnet.Id,
                },
            },
            Name = "l7-ilb-mig-template",
            Project = serviceProject.ProjectId,
            MachineType = "e2-small",
            Tags = new[]
            {
                "http-server",
            },
            Disks = new[]
            {
                new Gcp.Compute.Inputs.InstanceTemplateDiskArgs
                {
                    SourceImage = "debian-cloud/debian-10",
                    AutoDelete = true,
                    Boot = true,
                },
            },
            Metadata = 
            {
                { "startup-script", @"#! /bin/bash
    set -euo pipefail
    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""])')
    cat <<EOF > /var/www/html/index.html
    <pre>
    Name: $NAME
    IP: $IP
    Metadata: $METADATA
    </pre>
    EOF
    " },
            },
        });
    
        var mig = new Gcp.Compute.RegionInstanceGroupManager("mig", new()
        {
            Name = "l7-ilb-mig1",
            Project = serviceProject.ProjectId,
            Region = "us-central1",
            Versions = new[]
            {
                new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs
                {
                    InstanceTemplate = instanceTemplate.Id,
                    Name = "primary",
                },
            },
            BaseInstanceName = "vm",
            TargetSize = 2,
        });
    
        // Discovered workload
        var catalog_workload = Gcp.Apphub.GetDiscoveredWorkload.Invoke(new()
        {
            Location = "us-central1",
            WorkloadUri = Std.Replace.Invoke(new()
            {
                Text = mig.InstanceGroup,
                Search = "https://www.googleapis.com/compute/v1",
                Replace = "//compute.googleapis.com",
            }).Result,
        });
    
        var wait120sForResourceIngestion = new Time.Index.Sleep("wait_120s_for_resource_ingestion", new()
        {
            CreateDuration = "120s",
        });
    
        var example = new Gcp.Apphub.Workload("example", new()
        {
            Location = "us-central1",
            ApplicationId = application.ApplicationId,
            WorkloadId = mig.Name,
            DiscoveredWorkload = catalog_workload.Apply(catalog_workload => catalog_workload.Apply(getDiscoveredWorkloadResult => getDiscoveredWorkloadResult.Name)),
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.apphub.Application;
    import com.pulumi.gcp.apphub.ApplicationArgs;
    import com.pulumi.gcp.apphub.inputs.ApplicationScopeArgs;
    import com.pulumi.gcp.organizations.Project;
    import com.pulumi.gcp.organizations.ProjectArgs;
    import com.pulumi.gcp.projects.Service;
    import com.pulumi.gcp.projects.ServiceArgs;
    import com.pulumi.time.sleep;
    import com.pulumi.time.SleepArgs;
    import com.pulumi.gcp.apphub.ServiceProjectAttachment;
    import com.pulumi.gcp.apphub.ServiceProjectAttachmentArgs;
    import com.pulumi.gcp.compute.Network;
    import com.pulumi.gcp.compute.NetworkArgs;
    import com.pulumi.gcp.compute.Subnetwork;
    import com.pulumi.gcp.compute.SubnetworkArgs;
    import com.pulumi.gcp.compute.InstanceTemplate;
    import com.pulumi.gcp.compute.InstanceTemplateArgs;
    import com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;
    import com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;
    import com.pulumi.gcp.compute.RegionInstanceGroupManager;
    import com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;
    import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;
    import com.pulumi.gcp.apphub.ApphubFunctions;
    import com.pulumi.gcp.apphub.inputs.GetDiscoveredWorkloadArgs;
    import com.pulumi.gcp.apphub.Workload;
    import com.pulumi.gcp.apphub.WorkloadArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var application = new Application("application", ApplicationArgs.builder()        
                .location("us-central1")
                .applicationId("example-application-1")
                .scope(ApplicationScopeArgs.builder()
                    .type("REGIONAL")
                    .build())
                .build());
    
            var serviceProject = new Project("serviceProject", ProjectArgs.builder()        
                .projectId("project-1")
                .name("Service Project")
                .orgId("123456789")
                .billingAccount("000000-0000000-0000000-000000")
                .build());
    
            // Enable Compute API
            var computeServiceProject = new Service("computeServiceProject", ServiceArgs.builder()        
                .project(serviceProject.projectId())
                .service("compute.googleapis.com")
                .build());
    
            var wait120s = new Sleep("wait120s", SleepArgs.builder()        
                .createDuration("120s")
                .build());
    
            var serviceProjectAttachment = new ServiceProjectAttachment("serviceProjectAttachment", ServiceProjectAttachmentArgs.builder()        
                .serviceProjectAttachmentId(serviceProject.projectId())
                .build());
    
            // VPC network
            var ilbNetwork = new Network("ilbNetwork", NetworkArgs.builder()        
                .name("l7-ilb-network")
                .project(serviceProject.projectId())
                .autoCreateSubnetworks(false)
                .build());
    
            // backend subnet
            var ilbSubnet = new Subnetwork("ilbSubnet", SubnetworkArgs.builder()        
                .name("l7-ilb-subnet")
                .project(serviceProject.projectId())
                .ipCidrRange("10.0.1.0/24")
                .region("us-central1")
                .network(ilbNetwork.id())
                .build());
    
            // instance template
            var instanceTemplate = new InstanceTemplate("instanceTemplate", InstanceTemplateArgs.builder()        
                .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()
                    .accessConfigs()
                    .network(ilbNetwork.id())
                    .subnetwork(ilbSubnet.id())
                    .build())
                .name("l7-ilb-mig-template")
                .project(serviceProject.projectId())
                .machineType("e2-small")
                .tags("http-server")
                .disks(InstanceTemplateDiskArgs.builder()
                    .sourceImage("debian-cloud/debian-10")
                    .autoDelete(true)
                    .boot(true)
                    .build())
                .metadata(Map.of("startup-script", """
    #! /bin/bash
    set -euo pipefail
    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"])')
    cat <<EOF > /var/www/html/index.html
    <pre>
    Name: $NAME
    IP: $IP
    Metadata: $METADATA
    </pre>
    EOF
                """))
                .build());
    
            var mig = new RegionInstanceGroupManager("mig", RegionInstanceGroupManagerArgs.builder()        
                .name("l7-ilb-mig1")
                .project(serviceProject.projectId())
                .region("us-central1")
                .versions(RegionInstanceGroupManagerVersionArgs.builder()
                    .instanceTemplate(instanceTemplate.id())
                    .name("primary")
                    .build())
                .baseInstanceName("vm")
                .targetSize(2)
                .build());
    
            // Discovered workload
            final var catalog-workload = ApphubFunctions.getDiscoveredWorkload(GetDiscoveredWorkloadArgs.builder()
                .location("us-central1")
                .workloadUri(StdFunctions.replace().applyValue(invoke -> invoke.result()))
                .build());
    
            var wait120sForResourceIngestion = new Sleep("wait120sForResourceIngestion", SleepArgs.builder()        
                .createDuration("120s")
                .build());
    
            var example = new Workload("example", WorkloadArgs.builder()        
                .location("us-central1")
                .applicationId(application.applicationId())
                .workloadId(mig.name())
                .discoveredWorkload(catalog_workload.applyValue(catalog_workload -> catalog_workload.name()))
                .build());
    
        }
    }
    
    resources:
      application:
        type: gcp:apphub:Application
        properties:
          location: us-central1
          applicationId: example-application-1
          scope:
            type: REGIONAL
      serviceProject:
        type: gcp:organizations:Project
        name: service_project
        properties:
          projectId: project-1
          name: Service Project
          orgId: '123456789'
          billingAccount: 000000-0000000-0000000-000000
      # Enable Compute API
      computeServiceProject:
        type: gcp:projects:Service
        name: compute_service_project
        properties:
          project: ${serviceProject.projectId}
          service: compute.googleapis.com
      wait120s:
        type: time:sleep
        name: wait_120s
        properties:
          createDuration: 120s
      serviceProjectAttachment:
        type: gcp:apphub:ServiceProjectAttachment
        name: service_project_attachment
        properties:
          serviceProjectAttachmentId: ${serviceProject.projectId}
      wait120sForResourceIngestion:
        type: time:sleep
        name: wait_120s_for_resource_ingestion
        properties:
          createDuration: 120s
      example:
        type: gcp:apphub:Workload
        properties:
          location: us-central1
          applicationId: ${application.applicationId}
          workloadId: ${mig.name}
          discoveredWorkload: ${["catalog-workload"].name}
      # VPC network
      ilbNetwork:
        type: gcp:compute:Network
        name: ilb_network
        properties:
          name: l7-ilb-network
          project: ${serviceProject.projectId}
          autoCreateSubnetworks: false
      # backend subnet
      ilbSubnet:
        type: gcp:compute:Subnetwork
        name: ilb_subnet
        properties:
          name: l7-ilb-subnet
          project: ${serviceProject.projectId}
          ipCidrRange: 10.0.1.0/24
          region: us-central1
          network: ${ilbNetwork.id}
      # instance template
      instanceTemplate:
        type: gcp:compute:InstanceTemplate
        name: instance_template
        properties:
          networkInterfaces:
            - accessConfigs:
                - {}
              network: ${ilbNetwork.id}
              subnetwork: ${ilbSubnet.id}
          name: l7-ilb-mig-template
          project: ${serviceProject.projectId}
          machineType: e2-small
          tags:
            - http-server
          disks:
            - sourceImage: debian-cloud/debian-10
              autoDelete: true
              boot: true
          metadata:
            startup-script: |
              #! /bin/bash
              set -euo pipefail
              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"])')
              cat <<EOF > /var/www/html/index.html
              <pre>
              Name: $NAME
              IP: $IP
              Metadata: $METADATA
              </pre>
              EOF          
      mig:
        type: gcp:compute:RegionInstanceGroupManager
        properties:
          name: l7-ilb-mig1
          project: ${serviceProject.projectId}
          region: us-central1
          versions:
            - instanceTemplate: ${instanceTemplate.id}
              name: primary
          baseInstanceName: vm
          targetSize: 2
    variables:
      # Discovered workload
      catalog-workload:
        fn::invoke:
          Function: gcp:apphub:getDiscoveredWorkload
          Arguments:
            location: us-central1
            workloadUri:
              fn::invoke:
                Function: std:replace
                Arguments:
                  text: ${mig.instanceGroup}
                  search: https://www.googleapis.com/compute/v1
                  replace: //compute.googleapis.com
                Return: result
    

    Apphub Workload Full

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    import * as std from "@pulumi/std";
    import * as time from "@pulumi/time";
    
    const application = new gcp.apphub.Application("application", {
        location: "us-central1",
        applicationId: "example-application-1",
        scope: {
            type: "REGIONAL",
        },
    });
    const serviceProject = new gcp.organizations.Project("service_project", {
        projectId: "project-1",
        name: "Service Project",
        orgId: "123456789",
        billingAccount: "000000-0000000-0000000-000000",
    });
    // Enable Compute API
    const computeServiceProject = new gcp.projects.Service("compute_service_project", {
        project: serviceProject.projectId,
        service: "compute.googleapis.com",
    });
    const wait120s = new time.index.Sleep("wait_120s", {createDuration: "120s"});
    const serviceProjectAttachment = new gcp.apphub.ServiceProjectAttachment("service_project_attachment", {serviceProjectAttachmentId: serviceProject.projectId});
    // VPC network
    const ilbNetwork = new gcp.compute.Network("ilb_network", {
        name: "l7-ilb-network",
        project: serviceProject.projectId,
        autoCreateSubnetworks: false,
    });
    // backend subnet
    const ilbSubnet = new gcp.compute.Subnetwork("ilb_subnet", {
        name: "l7-ilb-subnet",
        project: serviceProject.projectId,
        ipCidrRange: "10.0.1.0/24",
        region: "us-central1",
        network: ilbNetwork.id,
    });
    // instance template
    const instanceTemplate = new gcp.compute.InstanceTemplate("instance_template", {
        networkInterfaces: [{
            accessConfigs: [{}],
            network: ilbNetwork.id,
            subnetwork: ilbSubnet.id,
        }],
        name: "l7-ilb-mig-template",
        project: serviceProject.projectId,
        machineType: "e2-small",
        tags: ["http-server"],
        disks: [{
            sourceImage: "debian-cloud/debian-10",
            autoDelete: true,
            boot: true,
        }],
        metadata: {
            "startup-script": `#! /bin/bash
    set -euo pipefail
    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"])')
    cat <<EOF > /var/www/html/index.html
    <pre>
    Name: NAME
    IP: IP
    Metadata: METADATA
    </pre>
    EOF
    `,
        },
    });
    const mig = new gcp.compute.RegionInstanceGroupManager("mig", {
        name: "l7-ilb-mig1",
        project: serviceProject.projectId,
        region: "us-central1",
        versions: [{
            instanceTemplate: instanceTemplate.id,
            name: "primary",
        }],
        baseInstanceName: "vm",
        targetSize: 2,
    });
    // Discovered workload 
    const catalog-workload = std.replaceOutput({
        text: mig.instanceGroup,
        search: "https://www.googleapis.com/compute/v1",
        replace: "//compute.googleapis.com",
    }).apply(invoke => gcp.apphub.getDiscoveredWorkloadOutput({
        location: "us-central1",
        workloadUri: invoke.result,
    }));
    const wait120sForResourceIngestion = new time.index.Sleep("wait_120s_for_resource_ingestion", {createDuration: "120s"});
    const example = new gcp.apphub.Workload("example", {
        location: "us-central1",
        applicationId: application.applicationId,
        workloadId: mig.name,
        discoveredWorkload: catalog_workload.apply(catalog_workload => catalog_workload.name),
        displayName: "Example Service Full",
        description: "Register service for testing",
        attributes: {
            environment: {
                type: "STAGING",
            },
            criticality: {
                type: "MISSION_CRITICAL",
            },
            businessOwners: [{
                displayName: "Alice",
                email: "alice@google.com",
            }],
            developerOwners: [{
                displayName: "Bob",
                email: "bob@google.com",
            }],
            operatorOwners: [{
                displayName: "Charlie",
                email: "charlie@google.com",
            }],
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    import pulumi_std as std
    import pulumi_time as time
    
    application = gcp.apphub.Application("application",
        location="us-central1",
        application_id="example-application-1",
        scope=gcp.apphub.ApplicationScopeArgs(
            type="REGIONAL",
        ))
    service_project = gcp.organizations.Project("service_project",
        project_id="project-1",
        name="Service Project",
        org_id="123456789",
        billing_account="000000-0000000-0000000-000000")
    # Enable Compute API
    compute_service_project = gcp.projects.Service("compute_service_project",
        project=service_project.project_id,
        service="compute.googleapis.com")
    wait120s = time.index.Sleep("wait_120s", create_duration=120s)
    service_project_attachment = gcp.apphub.ServiceProjectAttachment("service_project_attachment", service_project_attachment_id=service_project.project_id)
    # VPC network
    ilb_network = gcp.compute.Network("ilb_network",
        name="l7-ilb-network",
        project=service_project.project_id,
        auto_create_subnetworks=False)
    # backend subnet
    ilb_subnet = gcp.compute.Subnetwork("ilb_subnet",
        name="l7-ilb-subnet",
        project=service_project.project_id,
        ip_cidr_range="10.0.1.0/24",
        region="us-central1",
        network=ilb_network.id)
    # instance template
    instance_template = gcp.compute.InstanceTemplate("instance_template",
        network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(
            access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],
            network=ilb_network.id,
            subnetwork=ilb_subnet.id,
        )],
        name="l7-ilb-mig-template",
        project=service_project.project_id,
        machine_type="e2-small",
        tags=["http-server"],
        disks=[gcp.compute.InstanceTemplateDiskArgs(
            source_image="debian-cloud/debian-10",
            auto_delete=True,
            boot=True,
        )],
        metadata={
            "startup-script": """#! /bin/bash
    set -euo pipefail
    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"])')
    cat <<EOF > /var/www/html/index.html
    <pre>
    Name: $NAME
    IP: $IP
    Metadata: $METADATA
    </pre>
    EOF
    """,
        })
    mig = gcp.compute.RegionInstanceGroupManager("mig",
        name="l7-ilb-mig1",
        project=service_project.project_id,
        region="us-central1",
        versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(
            instance_template=instance_template.id,
            name="primary",
        )],
        base_instance_name="vm",
        target_size=2)
    # Discovered workload 
    catalog_workload = std.replace_output(text=mig.instance_group,
        search="https://www.googleapis.com/compute/v1",
        replace="//compute.googleapis.com").apply(lambda invoke: gcp.apphub.get_discovered_workload_output(location="us-central1",
        workload_uri=invoke.result))
    wait120s_for_resource_ingestion = time.index.Sleep("wait_120s_for_resource_ingestion", create_duration=120s)
    example = gcp.apphub.Workload("example",
        location="us-central1",
        application_id=application.application_id,
        workload_id=mig.name,
        discovered_workload=catalog_workload.name,
        display_name="Example Service Full",
        description="Register service for testing",
        attributes=gcp.apphub.WorkloadAttributesArgs(
            environment=gcp.apphub.WorkloadAttributesEnvironmentArgs(
                type="STAGING",
            ),
            criticality=gcp.apphub.WorkloadAttributesCriticalityArgs(
                type="MISSION_CRITICAL",
            ),
            business_owners=[gcp.apphub.WorkloadAttributesBusinessOwnerArgs(
                display_name="Alice",
                email="alice@google.com",
            )],
            developer_owners=[gcp.apphub.WorkloadAttributesDeveloperOwnerArgs(
                display_name="Bob",
                email="bob@google.com",
            )],
            operator_owners=[gcp.apphub.WorkloadAttributesOperatorOwnerArgs(
                display_name="Charlie",
                email="charlie@google.com",
            )],
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apphub"
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects"
    	"github.com/pulumi/pulumi-std/sdk/go/std"
    	"github.com/pulumi/pulumi-time/sdk/go/time"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		application, err := apphub.NewApplication(ctx, "application", &apphub.ApplicationArgs{
    			Location:      pulumi.String("us-central1"),
    			ApplicationId: pulumi.String("example-application-1"),
    			Scope: &apphub.ApplicationScopeArgs{
    				Type: pulumi.String("REGIONAL"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		serviceProject, err := organizations.NewProject(ctx, "service_project", &organizations.ProjectArgs{
    			ProjectId:      pulumi.String("project-1"),
    			Name:           pulumi.String("Service Project"),
    			OrgId:          pulumi.String("123456789"),
    			BillingAccount: pulumi.String("000000-0000000-0000000-000000"),
    		})
    		if err != nil {
    			return err
    		}
    		// Enable Compute API
    		_, err = projects.NewService(ctx, "compute_service_project", &projects.ServiceArgs{
    			Project: serviceProject.ProjectId,
    			Service: pulumi.String("compute.googleapis.com"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = time.NewSleep(ctx, "wait_120s", &time.SleepArgs{
    			CreateDuration: "120s",
    		})
    		if err != nil {
    			return err
    		}
    		_, err = apphub.NewServiceProjectAttachment(ctx, "service_project_attachment", &apphub.ServiceProjectAttachmentArgs{
    			ServiceProjectAttachmentId: serviceProject.ProjectId,
    		})
    		if err != nil {
    			return err
    		}
    		// VPC network
    		ilbNetwork, err := compute.NewNetwork(ctx, "ilb_network", &compute.NetworkArgs{
    			Name:                  pulumi.String("l7-ilb-network"),
    			Project:               serviceProject.ProjectId,
    			AutoCreateSubnetworks: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		// backend subnet
    		ilbSubnet, err := compute.NewSubnetwork(ctx, "ilb_subnet", &compute.SubnetworkArgs{
    			Name:        pulumi.String("l7-ilb-subnet"),
    			Project:     serviceProject.ProjectId,
    			IpCidrRange: pulumi.String("10.0.1.0/24"),
    			Region:      pulumi.String("us-central1"),
    			Network:     ilbNetwork.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		// instance template
    		instanceTemplate, err := compute.NewInstanceTemplate(ctx, "instance_template", &compute.InstanceTemplateArgs{
    			NetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{
    				&compute.InstanceTemplateNetworkInterfaceArgs{
    					AccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{
    						nil,
    					},
    					Network:    ilbNetwork.ID(),
    					Subnetwork: ilbSubnet.ID(),
    				},
    			},
    			Name:        pulumi.String("l7-ilb-mig-template"),
    			Project:     serviceProject.ProjectId,
    			MachineType: pulumi.String("e2-small"),
    			Tags: pulumi.StringArray{
    				pulumi.String("http-server"),
    			},
    			Disks: compute.InstanceTemplateDiskArray{
    				&compute.InstanceTemplateDiskArgs{
    					SourceImage: pulumi.String("debian-cloud/debian-10"),
    					AutoDelete:  pulumi.Bool(true),
    					Boot:        pulumi.Bool(true),
    				},
    			},
    			Metadata: pulumi.Map{
    				"startup-script": pulumi.Any(`#! /bin/bash
    set -euo pipefail
    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"])')
    cat <<EOF > /var/www/html/index.html
    <pre>
    Name: $NAME
    IP: $IP
    Metadata: $METADATA
    </pre>
    EOF
    `),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		mig, err := compute.NewRegionInstanceGroupManager(ctx, "mig", &compute.RegionInstanceGroupManagerArgs{
    			Name:    pulumi.String("l7-ilb-mig1"),
    			Project: serviceProject.ProjectId,
    			Region:  pulumi.String("us-central1"),
    			Versions: compute.RegionInstanceGroupManagerVersionArray{
    				&compute.RegionInstanceGroupManagerVersionArgs{
    					InstanceTemplate: instanceTemplate.ID(),
    					Name:             pulumi.String("primary"),
    				},
    			},
    			BaseInstanceName: pulumi.String("vm"),
    			TargetSize:       pulumi.Int(2),
    		})
    		if err != nil {
    			return err
    		}
    		// Discovered workload
    		catalog_workload := std.ReplaceOutput(ctx, std.ReplaceOutputArgs{
    			Text:    mig.InstanceGroup,
    			Search:  pulumi.String("https://www.googleapis.com/compute/v1"),
    			Replace: pulumi.String("//compute.googleapis.com"),
    		}, nil).ApplyT(func(invoke std.ReplaceResult) (apphub.GetDiscoveredWorkloadResult, error) {
    			return apphub.GetDiscoveredWorkloadOutput(ctx, apphub.GetDiscoveredWorkloadOutputArgs{
    				Location:    "us-central1",
    				WorkloadUri: invoke.Result,
    			}, nil), nil
    		}).(apphub.GetDiscoveredWorkloadResultOutput)
    		_, err = time.NewSleep(ctx, "wait_120s_for_resource_ingestion", &time.SleepArgs{
    			CreateDuration: "120s",
    		})
    		if err != nil {
    			return err
    		}
    		_, err = apphub.NewWorkload(ctx, "example", &apphub.WorkloadArgs{
    			Location:      pulumi.String("us-central1"),
    			ApplicationId: application.ApplicationId,
    			WorkloadId:    mig.Name,
    			DiscoveredWorkload: catalog_workload.ApplyT(func(catalog_workload apphub.GetDiscoveredWorkloadResult) (*string, error) {
    				return &catalog_workload.Name, nil
    			}).(pulumi.StringPtrOutput),
    			DisplayName: pulumi.String("Example Service Full"),
    			Description: pulumi.String("Register service for testing"),
    			Attributes: &apphub.WorkloadAttributesArgs{
    				Environment: &apphub.WorkloadAttributesEnvironmentArgs{
    					Type: pulumi.String("STAGING"),
    				},
    				Criticality: &apphub.WorkloadAttributesCriticalityArgs{
    					Type: pulumi.String("MISSION_CRITICAL"),
    				},
    				BusinessOwners: apphub.WorkloadAttributesBusinessOwnerArray{
    					&apphub.WorkloadAttributesBusinessOwnerArgs{
    						DisplayName: pulumi.String("Alice"),
    						Email:       pulumi.String("alice@google.com"),
    					},
    				},
    				DeveloperOwners: apphub.WorkloadAttributesDeveloperOwnerArray{
    					&apphub.WorkloadAttributesDeveloperOwnerArgs{
    						DisplayName: pulumi.String("Bob"),
    						Email:       pulumi.String("bob@google.com"),
    					},
    				},
    				OperatorOwners: apphub.WorkloadAttributesOperatorOwnerArray{
    					&apphub.WorkloadAttributesOperatorOwnerArgs{
    						DisplayName: pulumi.String("Charlie"),
    						Email:       pulumi.String("charlie@google.com"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    using Std = Pulumi.Std;
    using Time = Pulumi.Time;
    
    return await Deployment.RunAsync(() => 
    {
        var application = new Gcp.Apphub.Application("application", new()
        {
            Location = "us-central1",
            ApplicationId = "example-application-1",
            Scope = new Gcp.Apphub.Inputs.ApplicationScopeArgs
            {
                Type = "REGIONAL",
            },
        });
    
        var serviceProject = new Gcp.Organizations.Project("service_project", new()
        {
            ProjectId = "project-1",
            Name = "Service Project",
            OrgId = "123456789",
            BillingAccount = "000000-0000000-0000000-000000",
        });
    
        // Enable Compute API
        var computeServiceProject = new Gcp.Projects.Service("compute_service_project", new()
        {
            Project = serviceProject.ProjectId,
            ServiceName = "compute.googleapis.com",
        });
    
        var wait120s = new Time.Index.Sleep("wait_120s", new()
        {
            CreateDuration = "120s",
        });
    
        var serviceProjectAttachment = new Gcp.Apphub.ServiceProjectAttachment("service_project_attachment", new()
        {
            ServiceProjectAttachmentId = serviceProject.ProjectId,
        });
    
        // VPC network
        var ilbNetwork = new Gcp.Compute.Network("ilb_network", new()
        {
            Name = "l7-ilb-network",
            Project = serviceProject.ProjectId,
            AutoCreateSubnetworks = false,
        });
    
        // backend subnet
        var ilbSubnet = new Gcp.Compute.Subnetwork("ilb_subnet", new()
        {
            Name = "l7-ilb-subnet",
            Project = serviceProject.ProjectId,
            IpCidrRange = "10.0.1.0/24",
            Region = "us-central1",
            Network = ilbNetwork.Id,
        });
    
        // instance template
        var instanceTemplate = new Gcp.Compute.InstanceTemplate("instance_template", new()
        {
            NetworkInterfaces = new[]
            {
                new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs
                {
                    AccessConfigs = new[]
                    {
                        null,
                    },
                    Network = ilbNetwork.Id,
                    Subnetwork = ilbSubnet.Id,
                },
            },
            Name = "l7-ilb-mig-template",
            Project = serviceProject.ProjectId,
            MachineType = "e2-small",
            Tags = new[]
            {
                "http-server",
            },
            Disks = new[]
            {
                new Gcp.Compute.Inputs.InstanceTemplateDiskArgs
                {
                    SourceImage = "debian-cloud/debian-10",
                    AutoDelete = true,
                    Boot = true,
                },
            },
            Metadata = 
            {
                { "startup-script", @"#! /bin/bash
    set -euo pipefail
    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""])')
    cat <<EOF > /var/www/html/index.html
    <pre>
    Name: $NAME
    IP: $IP
    Metadata: $METADATA
    </pre>
    EOF
    " },
            },
        });
    
        var mig = new Gcp.Compute.RegionInstanceGroupManager("mig", new()
        {
            Name = "l7-ilb-mig1",
            Project = serviceProject.ProjectId,
            Region = "us-central1",
            Versions = new[]
            {
                new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs
                {
                    InstanceTemplate = instanceTemplate.Id,
                    Name = "primary",
                },
            },
            BaseInstanceName = "vm",
            TargetSize = 2,
        });
    
        // Discovered workload 
        var catalog_workload = Gcp.Apphub.GetDiscoveredWorkload.Invoke(new()
        {
            Location = "us-central1",
            WorkloadUri = Std.Replace.Invoke(new()
            {
                Text = mig.InstanceGroup,
                Search = "https://www.googleapis.com/compute/v1",
                Replace = "//compute.googleapis.com",
            }).Result,
        });
    
        var wait120sForResourceIngestion = new Time.Index.Sleep("wait_120s_for_resource_ingestion", new()
        {
            CreateDuration = "120s",
        });
    
        var example = new Gcp.Apphub.Workload("example", new()
        {
            Location = "us-central1",
            ApplicationId = application.ApplicationId,
            WorkloadId = mig.Name,
            DiscoveredWorkload = catalog_workload.Apply(catalog_workload => catalog_workload.Apply(getDiscoveredWorkloadResult => getDiscoveredWorkloadResult.Name)),
            DisplayName = "Example Service Full",
            Description = "Register service for testing",
            Attributes = new Gcp.Apphub.Inputs.WorkloadAttributesArgs
            {
                Environment = new Gcp.Apphub.Inputs.WorkloadAttributesEnvironmentArgs
                {
                    Type = "STAGING",
                },
                Criticality = new Gcp.Apphub.Inputs.WorkloadAttributesCriticalityArgs
                {
                    Type = "MISSION_CRITICAL",
                },
                BusinessOwners = new[]
                {
                    new Gcp.Apphub.Inputs.WorkloadAttributesBusinessOwnerArgs
                    {
                        DisplayName = "Alice",
                        Email = "alice@google.com",
                    },
                },
                DeveloperOwners = new[]
                {
                    new Gcp.Apphub.Inputs.WorkloadAttributesDeveloperOwnerArgs
                    {
                        DisplayName = "Bob",
                        Email = "bob@google.com",
                    },
                },
                OperatorOwners = new[]
                {
                    new Gcp.Apphub.Inputs.WorkloadAttributesOperatorOwnerArgs
                    {
                        DisplayName = "Charlie",
                        Email = "charlie@google.com",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.apphub.Application;
    import com.pulumi.gcp.apphub.ApplicationArgs;
    import com.pulumi.gcp.apphub.inputs.ApplicationScopeArgs;
    import com.pulumi.gcp.organizations.Project;
    import com.pulumi.gcp.organizations.ProjectArgs;
    import com.pulumi.gcp.projects.Service;
    import com.pulumi.gcp.projects.ServiceArgs;
    import com.pulumi.time.sleep;
    import com.pulumi.time.SleepArgs;
    import com.pulumi.gcp.apphub.ServiceProjectAttachment;
    import com.pulumi.gcp.apphub.ServiceProjectAttachmentArgs;
    import com.pulumi.gcp.compute.Network;
    import com.pulumi.gcp.compute.NetworkArgs;
    import com.pulumi.gcp.compute.Subnetwork;
    import com.pulumi.gcp.compute.SubnetworkArgs;
    import com.pulumi.gcp.compute.InstanceTemplate;
    import com.pulumi.gcp.compute.InstanceTemplateArgs;
    import com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;
    import com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;
    import com.pulumi.gcp.compute.RegionInstanceGroupManager;
    import com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;
    import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;
    import com.pulumi.gcp.apphub.ApphubFunctions;
    import com.pulumi.gcp.apphub.inputs.GetDiscoveredWorkloadArgs;
    import com.pulumi.gcp.apphub.Workload;
    import com.pulumi.gcp.apphub.WorkloadArgs;
    import com.pulumi.gcp.apphub.inputs.WorkloadAttributesArgs;
    import com.pulumi.gcp.apphub.inputs.WorkloadAttributesEnvironmentArgs;
    import com.pulumi.gcp.apphub.inputs.WorkloadAttributesCriticalityArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var application = new Application("application", ApplicationArgs.builder()        
                .location("us-central1")
                .applicationId("example-application-1")
                .scope(ApplicationScopeArgs.builder()
                    .type("REGIONAL")
                    .build())
                .build());
    
            var serviceProject = new Project("serviceProject", ProjectArgs.builder()        
                .projectId("project-1")
                .name("Service Project")
                .orgId("123456789")
                .billingAccount("000000-0000000-0000000-000000")
                .build());
    
            // Enable Compute API
            var computeServiceProject = new Service("computeServiceProject", ServiceArgs.builder()        
                .project(serviceProject.projectId())
                .service("compute.googleapis.com")
                .build());
    
            var wait120s = new Sleep("wait120s", SleepArgs.builder()        
                .createDuration("120s")
                .build());
    
            var serviceProjectAttachment = new ServiceProjectAttachment("serviceProjectAttachment", ServiceProjectAttachmentArgs.builder()        
                .serviceProjectAttachmentId(serviceProject.projectId())
                .build());
    
            // VPC network
            var ilbNetwork = new Network("ilbNetwork", NetworkArgs.builder()        
                .name("l7-ilb-network")
                .project(serviceProject.projectId())
                .autoCreateSubnetworks(false)
                .build());
    
            // backend subnet
            var ilbSubnet = new Subnetwork("ilbSubnet", SubnetworkArgs.builder()        
                .name("l7-ilb-subnet")
                .project(serviceProject.projectId())
                .ipCidrRange("10.0.1.0/24")
                .region("us-central1")
                .network(ilbNetwork.id())
                .build());
    
            // instance template
            var instanceTemplate = new InstanceTemplate("instanceTemplate", InstanceTemplateArgs.builder()        
                .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()
                    .accessConfigs()
                    .network(ilbNetwork.id())
                    .subnetwork(ilbSubnet.id())
                    .build())
                .name("l7-ilb-mig-template")
                .project(serviceProject.projectId())
                .machineType("e2-small")
                .tags("http-server")
                .disks(InstanceTemplateDiskArgs.builder()
                    .sourceImage("debian-cloud/debian-10")
                    .autoDelete(true)
                    .boot(true)
                    .build())
                .metadata(Map.of("startup-script", """
    #! /bin/bash
    set -euo pipefail
    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"])')
    cat <<EOF > /var/www/html/index.html
    <pre>
    Name: $NAME
    IP: $IP
    Metadata: $METADATA
    </pre>
    EOF
                """))
                .build());
    
            var mig = new RegionInstanceGroupManager("mig", RegionInstanceGroupManagerArgs.builder()        
                .name("l7-ilb-mig1")
                .project(serviceProject.projectId())
                .region("us-central1")
                .versions(RegionInstanceGroupManagerVersionArgs.builder()
                    .instanceTemplate(instanceTemplate.id())
                    .name("primary")
                    .build())
                .baseInstanceName("vm")
                .targetSize(2)
                .build());
    
            // Discovered workload 
            final var catalog-workload = ApphubFunctions.getDiscoveredWorkload(GetDiscoveredWorkloadArgs.builder()
                .location("us-central1")
                .workloadUri(StdFunctions.replace().applyValue(invoke -> invoke.result()))
                .build());
    
            var wait120sForResourceIngestion = new Sleep("wait120sForResourceIngestion", SleepArgs.builder()        
                .createDuration("120s")
                .build());
    
            var example = new Workload("example", WorkloadArgs.builder()        
                .location("us-central1")
                .applicationId(application.applicationId())
                .workloadId(mig.name())
                .discoveredWorkload(catalog_workload.applyValue(catalog_workload -> catalog_workload.name()))
                .displayName("Example Service Full")
                .description("Register service for testing")
                .attributes(WorkloadAttributesArgs.builder()
                    .environment(WorkloadAttributesEnvironmentArgs.builder()
                        .type("STAGING")
                        .build())
                    .criticality(WorkloadAttributesCriticalityArgs.builder()
                        .type("MISSION_CRITICAL")
                        .build())
                    .businessOwners(WorkloadAttributesBusinessOwnerArgs.builder()
                        .displayName("Alice")
                        .email("alice@google.com")
                        .build())
                    .developerOwners(WorkloadAttributesDeveloperOwnerArgs.builder()
                        .displayName("Bob")
                        .email("bob@google.com")
                        .build())
                    .operatorOwners(WorkloadAttributesOperatorOwnerArgs.builder()
                        .displayName("Charlie")
                        .email("charlie@google.com")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      application:
        type: gcp:apphub:Application
        properties:
          location: us-central1
          applicationId: example-application-1
          scope:
            type: REGIONAL
      serviceProject:
        type: gcp:organizations:Project
        name: service_project
        properties:
          projectId: project-1
          name: Service Project
          orgId: '123456789'
          billingAccount: 000000-0000000-0000000-000000
      # Enable Compute API
      computeServiceProject:
        type: gcp:projects:Service
        name: compute_service_project
        properties:
          project: ${serviceProject.projectId}
          service: compute.googleapis.com
      wait120s:
        type: time:sleep
        name: wait_120s
        properties:
          createDuration: 120s
      serviceProjectAttachment:
        type: gcp:apphub:ServiceProjectAttachment
        name: service_project_attachment
        properties:
          serviceProjectAttachmentId: ${serviceProject.projectId}
      wait120sForResourceIngestion:
        type: time:sleep
        name: wait_120s_for_resource_ingestion
        properties:
          createDuration: 120s
      example:
        type: gcp:apphub:Workload
        properties:
          location: us-central1
          applicationId: ${application.applicationId}
          workloadId: ${mig.name}
          discoveredWorkload: ${["catalog-workload"].name}
          displayName: Example Service Full
          description: Register service for testing
          attributes:
            environment:
              type: STAGING
            criticality:
              type: MISSION_CRITICAL
            businessOwners:
              - displayName: Alice
                email: alice@google.com
            developerOwners:
              - displayName: Bob
                email: bob@google.com
            operatorOwners:
              - displayName: Charlie
                email: charlie@google.com
      # VPC network
      ilbNetwork:
        type: gcp:compute:Network
        name: ilb_network
        properties:
          name: l7-ilb-network
          project: ${serviceProject.projectId}
          autoCreateSubnetworks: false
      # backend subnet
      ilbSubnet:
        type: gcp:compute:Subnetwork
        name: ilb_subnet
        properties:
          name: l7-ilb-subnet
          project: ${serviceProject.projectId}
          ipCidrRange: 10.0.1.0/24
          region: us-central1
          network: ${ilbNetwork.id}
      # instance template
      instanceTemplate:
        type: gcp:compute:InstanceTemplate
        name: instance_template
        properties:
          networkInterfaces:
            - accessConfigs:
                - {}
              network: ${ilbNetwork.id}
              subnetwork: ${ilbSubnet.id}
          name: l7-ilb-mig-template
          project: ${serviceProject.projectId}
          machineType: e2-small
          tags:
            - http-server
          disks:
            - sourceImage: debian-cloud/debian-10
              autoDelete: true
              boot: true
          metadata:
            startup-script: |
              #! /bin/bash
              set -euo pipefail
              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"])')
              cat <<EOF > /var/www/html/index.html
              <pre>
              Name: $NAME
              IP: $IP
              Metadata: $METADATA
              </pre>
              EOF          
      mig:
        type: gcp:compute:RegionInstanceGroupManager
        properties:
          name: l7-ilb-mig1
          project: ${serviceProject.projectId}
          region: us-central1
          versions:
            - instanceTemplate: ${instanceTemplate.id}
              name: primary
          baseInstanceName: vm
          targetSize: 2
    variables:
      # Discovered workload
      catalog-workload:
        fn::invoke:
          Function: gcp:apphub:getDiscoveredWorkload
          Arguments:
            location: us-central1
            workloadUri:
              fn::invoke:
                Function: std:replace
                Arguments:
                  text: ${mig.instanceGroup}
                  search: https://www.googleapis.com/compute/v1
                  replace: //compute.googleapis.com
                Return: result
    

    Create Workload Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Workload(name: string, args: WorkloadArgs, opts?: CustomResourceOptions);
    @overload
    def Workload(resource_name: str,
                 args: WorkloadArgs,
                 opts: Optional[ResourceOptions] = None)
    
    @overload
    def Workload(resource_name: str,
                 opts: Optional[ResourceOptions] = None,
                 application_id: Optional[str] = None,
                 discovered_workload: Optional[str] = None,
                 location: Optional[str] = None,
                 workload_id: Optional[str] = None,
                 attributes: Optional[WorkloadAttributesArgs] = None,
                 description: Optional[str] = None,
                 display_name: Optional[str] = None,
                 project: Optional[str] = None)
    func NewWorkload(ctx *Context, name string, args WorkloadArgs, opts ...ResourceOption) (*Workload, error)
    public Workload(string name, WorkloadArgs args, CustomResourceOptions? opts = null)
    public Workload(String name, WorkloadArgs args)
    public Workload(String name, WorkloadArgs args, CustomResourceOptions options)
    
    type: gcp:apphub:Workload
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args WorkloadArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args WorkloadArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args WorkloadArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args WorkloadArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args WorkloadArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Example

    The following reference example uses placeholder values for all input properties.

    var workloadResource = new Gcp.Apphub.Workload("workloadResource", new()
    {
        ApplicationId = "string",
        DiscoveredWorkload = "string",
        Location = "string",
        WorkloadId = "string",
        Attributes = new Gcp.Apphub.Inputs.WorkloadAttributesArgs
        {
            BusinessOwners = new[]
            {
                new Gcp.Apphub.Inputs.WorkloadAttributesBusinessOwnerArgs
                {
                    Email = "string",
                    DisplayName = "string",
                },
            },
            Criticality = new Gcp.Apphub.Inputs.WorkloadAttributesCriticalityArgs
            {
                Type = "string",
            },
            DeveloperOwners = new[]
            {
                new Gcp.Apphub.Inputs.WorkloadAttributesDeveloperOwnerArgs
                {
                    Email = "string",
                    DisplayName = "string",
                },
            },
            Environment = new Gcp.Apphub.Inputs.WorkloadAttributesEnvironmentArgs
            {
                Type = "string",
            },
            OperatorOwners = new[]
            {
                new Gcp.Apphub.Inputs.WorkloadAttributesOperatorOwnerArgs
                {
                    Email = "string",
                    DisplayName = "string",
                },
            },
        },
        Description = "string",
        DisplayName = "string",
        Project = "string",
    });
    
    example, err := apphub.NewWorkload(ctx, "workloadResource", &apphub.WorkloadArgs{
    	ApplicationId:      pulumi.String("string"),
    	DiscoveredWorkload: pulumi.String("string"),
    	Location:           pulumi.String("string"),
    	WorkloadId:         pulumi.String("string"),
    	Attributes: &apphub.WorkloadAttributesArgs{
    		BusinessOwners: apphub.WorkloadAttributesBusinessOwnerArray{
    			&apphub.WorkloadAttributesBusinessOwnerArgs{
    				Email:       pulumi.String("string"),
    				DisplayName: pulumi.String("string"),
    			},
    		},
    		Criticality: &apphub.WorkloadAttributesCriticalityArgs{
    			Type: pulumi.String("string"),
    		},
    		DeveloperOwners: apphub.WorkloadAttributesDeveloperOwnerArray{
    			&apphub.WorkloadAttributesDeveloperOwnerArgs{
    				Email:       pulumi.String("string"),
    				DisplayName: pulumi.String("string"),
    			},
    		},
    		Environment: &apphub.WorkloadAttributesEnvironmentArgs{
    			Type: pulumi.String("string"),
    		},
    		OperatorOwners: apphub.WorkloadAttributesOperatorOwnerArray{
    			&apphub.WorkloadAttributesOperatorOwnerArgs{
    				Email:       pulumi.String("string"),
    				DisplayName: pulumi.String("string"),
    			},
    		},
    	},
    	Description: pulumi.String("string"),
    	DisplayName: pulumi.String("string"),
    	Project:     pulumi.String("string"),
    })
    
    var workloadResource = new Workload("workloadResource", WorkloadArgs.builder()        
        .applicationId("string")
        .discoveredWorkload("string")
        .location("string")
        .workloadId("string")
        .attributes(WorkloadAttributesArgs.builder()
            .businessOwners(WorkloadAttributesBusinessOwnerArgs.builder()
                .email("string")
                .displayName("string")
                .build())
            .criticality(WorkloadAttributesCriticalityArgs.builder()
                .type("string")
                .build())
            .developerOwners(WorkloadAttributesDeveloperOwnerArgs.builder()
                .email("string")
                .displayName("string")
                .build())
            .environment(WorkloadAttributesEnvironmentArgs.builder()
                .type("string")
                .build())
            .operatorOwners(WorkloadAttributesOperatorOwnerArgs.builder()
                .email("string")
                .displayName("string")
                .build())
            .build())
        .description("string")
        .displayName("string")
        .project("string")
        .build());
    
    workload_resource = gcp.apphub.Workload("workloadResource",
        application_id="string",
        discovered_workload="string",
        location="string",
        workload_id="string",
        attributes=gcp.apphub.WorkloadAttributesArgs(
            business_owners=[gcp.apphub.WorkloadAttributesBusinessOwnerArgs(
                email="string",
                display_name="string",
            )],
            criticality=gcp.apphub.WorkloadAttributesCriticalityArgs(
                type="string",
            ),
            developer_owners=[gcp.apphub.WorkloadAttributesDeveloperOwnerArgs(
                email="string",
                display_name="string",
            )],
            environment=gcp.apphub.WorkloadAttributesEnvironmentArgs(
                type="string",
            ),
            operator_owners=[gcp.apphub.WorkloadAttributesOperatorOwnerArgs(
                email="string",
                display_name="string",
            )],
        ),
        description="string",
        display_name="string",
        project="string")
    
    const workloadResource = new gcp.apphub.Workload("workloadResource", {
        applicationId: "string",
        discoveredWorkload: "string",
        location: "string",
        workloadId: "string",
        attributes: {
            businessOwners: [{
                email: "string",
                displayName: "string",
            }],
            criticality: {
                type: "string",
            },
            developerOwners: [{
                email: "string",
                displayName: "string",
            }],
            environment: {
                type: "string",
            },
            operatorOwners: [{
                email: "string",
                displayName: "string",
            }],
        },
        description: "string",
        displayName: "string",
        project: "string",
    });
    
    type: gcp:apphub:Workload
    properties:
        applicationId: string
        attributes:
            businessOwners:
                - displayName: string
                  email: string
            criticality:
                type: string
            developerOwners:
                - displayName: string
                  email: string
            environment:
                type: string
            operatorOwners:
                - displayName: string
                  email: string
        description: string
        discoveredWorkload: string
        displayName: string
        location: string
        project: string
        workloadId: string
    

    Workload Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The Workload resource accepts the following input properties:

    ApplicationId string
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    DiscoveredWorkload string
    Immutable. The resource name of the original discovered workload.
    Location string
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    WorkloadId string
    The Workload identifier.


    Attributes WorkloadAttributes
    Consumer provided attributes. Structure is documented below.
    Description string
    User-defined description of a Workload.
    DisplayName string
    User-defined name for the Workload.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    ApplicationId string
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    DiscoveredWorkload string
    Immutable. The resource name of the original discovered workload.
    Location string
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    WorkloadId string
    The Workload identifier.


    Attributes WorkloadAttributesArgs
    Consumer provided attributes. Structure is documented below.
    Description string
    User-defined description of a Workload.
    DisplayName string
    User-defined name for the Workload.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    applicationId String
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    discoveredWorkload String
    Immutable. The resource name of the original discovered workload.
    location String
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    workloadId String
    The Workload identifier.


    attributes WorkloadAttributes
    Consumer provided attributes. Structure is documented below.
    description String
    User-defined description of a Workload.
    displayName String
    User-defined name for the Workload.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    applicationId string
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    discoveredWorkload string
    Immutable. The resource name of the original discovered workload.
    location string
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    workloadId string
    The Workload identifier.


    attributes WorkloadAttributes
    Consumer provided attributes. Structure is documented below.
    description string
    User-defined description of a Workload.
    displayName string
    User-defined name for the Workload.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    application_id str
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    discovered_workload str
    Immutable. The resource name of the original discovered workload.
    location str
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    workload_id str
    The Workload identifier.


    attributes WorkloadAttributesArgs
    Consumer provided attributes. Structure is documented below.
    description str
    User-defined description of a Workload.
    display_name str
    User-defined name for the Workload.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    applicationId String
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    discoveredWorkload String
    Immutable. The resource name of the original discovered workload.
    location String
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    workloadId String
    The Workload identifier.


    attributes Property Map
    Consumer provided attributes. Structure is documented below.
    description String
    User-defined description of a Workload.
    displayName String
    User-defined name for the Workload.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Workload resource produces the following output properties:

    CreateTime string
    Output only. Create time.
    Id string
    The provider-assigned unique ID for this managed resource.
    Name string
    Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
    State string
    Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
    Uid string
    Output only. A universally unique identifier (UUID) for the Workload in the UUID4 format.
    UpdateTime string
    Output only. Update time.
    WorkloadProperties List<WorkloadWorkloadProperty>
    Properties of an underlying compute resource represented by the Workload. Structure is documented below.
    WorkloadReferences List<WorkloadWorkloadReference>
    Reference of an underlying compute resource represented by the Workload. Structure is documented below.
    CreateTime string
    Output only. Create time.
    Id string
    The provider-assigned unique ID for this managed resource.
    Name string
    Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
    State string
    Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
    Uid string
    Output only. A universally unique identifier (UUID) for the Workload in the UUID4 format.
    UpdateTime string
    Output only. Update time.
    WorkloadProperties []WorkloadWorkloadProperty
    Properties of an underlying compute resource represented by the Workload. Structure is documented below.
    WorkloadReferences []WorkloadWorkloadReference
    Reference of an underlying compute resource represented by the Workload. Structure is documented below.
    createTime String
    Output only. Create time.
    id String
    The provider-assigned unique ID for this managed resource.
    name String
    Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
    state String
    Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
    uid String
    Output only. A universally unique identifier (UUID) for the Workload in the UUID4 format.
    updateTime String
    Output only. Update time.
    workloadProperties List<WorkloadWorkloadProperty>
    Properties of an underlying compute resource represented by the Workload. Structure is documented below.
    workloadReferences List<WorkloadWorkloadReference>
    Reference of an underlying compute resource represented by the Workload. Structure is documented below.
    createTime string
    Output only. Create time.
    id string
    The provider-assigned unique ID for this managed resource.
    name string
    Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
    state string
    Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
    uid string
    Output only. A universally unique identifier (UUID) for the Workload in the UUID4 format.
    updateTime string
    Output only. Update time.
    workloadProperties WorkloadWorkloadProperty[]
    Properties of an underlying compute resource represented by the Workload. Structure is documented below.
    workloadReferences WorkloadWorkloadReference[]
    Reference of an underlying compute resource represented by the Workload. Structure is documented below.
    create_time str
    Output only. Create time.
    id str
    The provider-assigned unique ID for this managed resource.
    name str
    Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
    state str
    Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
    uid str
    Output only. A universally unique identifier (UUID) for the Workload in the UUID4 format.
    update_time str
    Output only. Update time.
    workload_properties Sequence[WorkloadWorkloadProperty]
    Properties of an underlying compute resource represented by the Workload. Structure is documented below.
    workload_references Sequence[WorkloadWorkloadReference]
    Reference of an underlying compute resource represented by the Workload. Structure is documented below.
    createTime String
    Output only. Create time.
    id String
    The provider-assigned unique ID for this managed resource.
    name String
    Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
    state String
    Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
    uid String
    Output only. A universally unique identifier (UUID) for the Workload in the UUID4 format.
    updateTime String
    Output only. Update time.
    workloadProperties List<Property Map>
    Properties of an underlying compute resource represented by the Workload. Structure is documented below.
    workloadReferences List<Property Map>
    Reference of an underlying compute resource represented by the Workload. Structure is documented below.

    Look up Existing Workload Resource

    Get an existing Workload resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: WorkloadState, opts?: CustomResourceOptions): Workload
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            application_id: Optional[str] = None,
            attributes: Optional[WorkloadAttributesArgs] = None,
            create_time: Optional[str] = None,
            description: Optional[str] = None,
            discovered_workload: Optional[str] = None,
            display_name: Optional[str] = None,
            location: Optional[str] = None,
            name: Optional[str] = None,
            project: Optional[str] = None,
            state: Optional[str] = None,
            uid: Optional[str] = None,
            update_time: Optional[str] = None,
            workload_id: Optional[str] = None,
            workload_properties: Optional[Sequence[WorkloadWorkloadPropertyArgs]] = None,
            workload_references: Optional[Sequence[WorkloadWorkloadReferenceArgs]] = None) -> Workload
    func GetWorkload(ctx *Context, name string, id IDInput, state *WorkloadState, opts ...ResourceOption) (*Workload, error)
    public static Workload Get(string name, Input<string> id, WorkloadState? state, CustomResourceOptions? opts = null)
    public static Workload get(String name, Output<String> id, WorkloadState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    ApplicationId string
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    Attributes WorkloadAttributes
    Consumer provided attributes. Structure is documented below.
    CreateTime string
    Output only. Create time.
    Description string
    User-defined description of a Workload.
    DiscoveredWorkload string
    Immutable. The resource name of the original discovered workload.
    DisplayName string
    User-defined name for the Workload.
    Location string
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    Name string
    Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    State string
    Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
    Uid string
    Output only. A universally unique identifier (UUID) for the Workload in the UUID4 format.
    UpdateTime string
    Output only. Update time.
    WorkloadId string
    The Workload identifier.


    WorkloadProperties List<WorkloadWorkloadProperty>
    Properties of an underlying compute resource represented by the Workload. Structure is documented below.
    WorkloadReferences List<WorkloadWorkloadReference>
    Reference of an underlying compute resource represented by the Workload. Structure is documented below.
    ApplicationId string
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    Attributes WorkloadAttributesArgs
    Consumer provided attributes. Structure is documented below.
    CreateTime string
    Output only. Create time.
    Description string
    User-defined description of a Workload.
    DiscoveredWorkload string
    Immutable. The resource name of the original discovered workload.
    DisplayName string
    User-defined name for the Workload.
    Location string
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    Name string
    Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    State string
    Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
    Uid string
    Output only. A universally unique identifier (UUID) for the Workload in the UUID4 format.
    UpdateTime string
    Output only. Update time.
    WorkloadId string
    The Workload identifier.


    WorkloadProperties []WorkloadWorkloadPropertyArgs
    Properties of an underlying compute resource represented by the Workload. Structure is documented below.
    WorkloadReferences []WorkloadWorkloadReferenceArgs
    Reference of an underlying compute resource represented by the Workload. Structure is documented below.
    applicationId String
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    attributes WorkloadAttributes
    Consumer provided attributes. Structure is documented below.
    createTime String
    Output only. Create time.
    description String
    User-defined description of a Workload.
    discoveredWorkload String
    Immutable. The resource name of the original discovered workload.
    displayName String
    User-defined name for the Workload.
    location String
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    name String
    Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    state String
    Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
    uid String
    Output only. A universally unique identifier (UUID) for the Workload in the UUID4 format.
    updateTime String
    Output only. Update time.
    workloadId String
    The Workload identifier.


    workloadProperties List<WorkloadWorkloadProperty>
    Properties of an underlying compute resource represented by the Workload. Structure is documented below.
    workloadReferences List<WorkloadWorkloadReference>
    Reference of an underlying compute resource represented by the Workload. Structure is documented below.
    applicationId string
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    attributes WorkloadAttributes
    Consumer provided attributes. Structure is documented below.
    createTime string
    Output only. Create time.
    description string
    User-defined description of a Workload.
    discoveredWorkload string
    Immutable. The resource name of the original discovered workload.
    displayName string
    User-defined name for the Workload.
    location string
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    name string
    Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    state string
    Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
    uid string
    Output only. A universally unique identifier (UUID) for the Workload in the UUID4 format.
    updateTime string
    Output only. Update time.
    workloadId string
    The Workload identifier.


    workloadProperties WorkloadWorkloadProperty[]
    Properties of an underlying compute resource represented by the Workload. Structure is documented below.
    workloadReferences WorkloadWorkloadReference[]
    Reference of an underlying compute resource represented by the Workload. Structure is documented below.
    application_id str
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    attributes WorkloadAttributesArgs
    Consumer provided attributes. Structure is documented below.
    create_time str
    Output only. Create time.
    description str
    User-defined description of a Workload.
    discovered_workload str
    Immutable. The resource name of the original discovered workload.
    display_name str
    User-defined name for the Workload.
    location str
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    name str
    Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    state str
    Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
    uid str
    Output only. A universally unique identifier (UUID) for the Workload in the UUID4 format.
    update_time str
    Output only. Update time.
    workload_id str
    The Workload identifier.


    workload_properties Sequence[WorkloadWorkloadPropertyArgs]
    Properties of an underlying compute resource represented by the Workload. Structure is documented below.
    workload_references Sequence[WorkloadWorkloadReferenceArgs]
    Reference of an underlying compute resource represented by the Workload. Structure is documented below.
    applicationId String
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    attributes Property Map
    Consumer provided attributes. Structure is documented below.
    createTime String
    Output only. Create time.
    description String
    User-defined description of a Workload.
    discoveredWorkload String
    Immutable. The resource name of the original discovered workload.
    displayName String
    User-defined name for the Workload.
    location String
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    name String
    Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    state String
    Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
    uid String
    Output only. A universally unique identifier (UUID) for the Workload in the UUID4 format.
    updateTime String
    Output only. Update time.
    workloadId String
    The Workload identifier.


    workloadProperties List<Property Map>
    Properties of an underlying compute resource represented by the Workload. Structure is documented below.
    workloadReferences List<Property Map>
    Reference of an underlying compute resource represented by the Workload. Structure is documented below.

    Supporting Types

    WorkloadAttributes, WorkloadAttributesArgs

    BusinessOwners List<WorkloadAttributesBusinessOwner>
    Business team that ensures user needs are met and value is delivered Structure is documented below.
    Criticality WorkloadAttributesCriticality
    Criticality of the Application, Service, or Workload Structure is documented below.
    DeveloperOwners List<WorkloadAttributesDeveloperOwner>
    Developer team that owns development and coding. Structure is documented below.
    Environment WorkloadAttributesEnvironment
    Environment of the Application, Service, or Workload Structure is documented below.
    OperatorOwners List<WorkloadAttributesOperatorOwner>
    Operator team that ensures runtime and operations. Structure is documented below.
    BusinessOwners []WorkloadAttributesBusinessOwner
    Business team that ensures user needs are met and value is delivered Structure is documented below.
    Criticality WorkloadAttributesCriticality
    Criticality of the Application, Service, or Workload Structure is documented below.
    DeveloperOwners []WorkloadAttributesDeveloperOwner
    Developer team that owns development and coding. Structure is documented below.
    Environment WorkloadAttributesEnvironment
    Environment of the Application, Service, or Workload Structure is documented below.
    OperatorOwners []WorkloadAttributesOperatorOwner
    Operator team that ensures runtime and operations. Structure is documented below.
    businessOwners List<WorkloadAttributesBusinessOwner>
    Business team that ensures user needs are met and value is delivered Structure is documented below.
    criticality WorkloadAttributesCriticality
    Criticality of the Application, Service, or Workload Structure is documented below.
    developerOwners List<WorkloadAttributesDeveloperOwner>
    Developer team that owns development and coding. Structure is documented below.
    environment WorkloadAttributesEnvironment
    Environment of the Application, Service, or Workload Structure is documented below.
    operatorOwners List<WorkloadAttributesOperatorOwner>
    Operator team that ensures runtime and operations. Structure is documented below.
    businessOwners WorkloadAttributesBusinessOwner[]
    Business team that ensures user needs are met and value is delivered Structure is documented below.
    criticality WorkloadAttributesCriticality
    Criticality of the Application, Service, or Workload Structure is documented below.
    developerOwners WorkloadAttributesDeveloperOwner[]
    Developer team that owns development and coding. Structure is documented below.
    environment WorkloadAttributesEnvironment
    Environment of the Application, Service, or Workload Structure is documented below.
    operatorOwners WorkloadAttributesOperatorOwner[]
    Operator team that ensures runtime and operations. Structure is documented below.
    business_owners Sequence[WorkloadAttributesBusinessOwner]
    Business team that ensures user needs are met and value is delivered Structure is documented below.
    criticality WorkloadAttributesCriticality
    Criticality of the Application, Service, or Workload Structure is documented below.
    developer_owners Sequence[WorkloadAttributesDeveloperOwner]
    Developer team that owns development and coding. Structure is documented below.
    environment WorkloadAttributesEnvironment
    Environment of the Application, Service, or Workload Structure is documented below.
    operator_owners Sequence[WorkloadAttributesOperatorOwner]
    Operator team that ensures runtime and operations. Structure is documented below.
    businessOwners List<Property Map>
    Business team that ensures user needs are met and value is delivered Structure is documented below.
    criticality Property Map
    Criticality of the Application, Service, or Workload Structure is documented below.
    developerOwners List<Property Map>
    Developer team that owns development and coding. Structure is documented below.
    environment Property Map
    Environment of the Application, Service, or Workload Structure is documented below.
    operatorOwners List<Property Map>
    Operator team that ensures runtime and operations. Structure is documented below.

    WorkloadAttributesBusinessOwner, WorkloadAttributesBusinessOwnerArgs

    Email string
    Email address of the contacts.
    DisplayName string
    Contact's name.
    Email string
    Email address of the contacts.
    DisplayName string
    Contact's name.
    email String
    Email address of the contacts.
    displayName String
    Contact's name.
    email string
    Email address of the contacts.
    displayName string
    Contact's name.
    email str
    Email address of the contacts.
    display_name str
    Contact's name.
    email String
    Email address of the contacts.
    displayName String
    Contact's name.

    WorkloadAttributesCriticality, WorkloadAttributesCriticalityArgs

    Type string
    Criticality type. Possible values are: MISSION_CRITICAL, HIGH, MEDIUM, LOW.
    Type string
    Criticality type. Possible values are: MISSION_CRITICAL, HIGH, MEDIUM, LOW.
    type String
    Criticality type. Possible values are: MISSION_CRITICAL, HIGH, MEDIUM, LOW.
    type string
    Criticality type. Possible values are: MISSION_CRITICAL, HIGH, MEDIUM, LOW.
    type str
    Criticality type. Possible values are: MISSION_CRITICAL, HIGH, MEDIUM, LOW.
    type String
    Criticality type. Possible values are: MISSION_CRITICAL, HIGH, MEDIUM, LOW.

    WorkloadAttributesDeveloperOwner, WorkloadAttributesDeveloperOwnerArgs

    Email string
    Email address of the contacts.
    DisplayName string
    Contact's name.
    Email string
    Email address of the contacts.
    DisplayName string
    Contact's name.
    email String
    Email address of the contacts.
    displayName String
    Contact's name.
    email string
    Email address of the contacts.
    displayName string
    Contact's name.
    email str
    Email address of the contacts.
    display_name str
    Contact's name.
    email String
    Email address of the contacts.
    displayName String
    Contact's name.

    WorkloadAttributesEnvironment, WorkloadAttributesEnvironmentArgs

    Type string
    Environment type. Possible values are: PRODUCTION, STAGING, TEST, DEVELOPMENT.
    Type string
    Environment type. Possible values are: PRODUCTION, STAGING, TEST, DEVELOPMENT.
    type String
    Environment type. Possible values are: PRODUCTION, STAGING, TEST, DEVELOPMENT.
    type string
    Environment type. Possible values are: PRODUCTION, STAGING, TEST, DEVELOPMENT.
    type str
    Environment type. Possible values are: PRODUCTION, STAGING, TEST, DEVELOPMENT.
    type String
    Environment type. Possible values are: PRODUCTION, STAGING, TEST, DEVELOPMENT.

    WorkloadAttributesOperatorOwner, WorkloadAttributesOperatorOwnerArgs

    Email string
    Email address of the contacts.
    DisplayName string
    Contact's name.
    Email string
    Email address of the contacts.
    DisplayName string
    Contact's name.
    email String
    Email address of the contacts.
    displayName String
    Contact's name.
    email string
    Email address of the contacts.
    displayName string
    Contact's name.
    email str
    Email address of the contacts.
    display_name str
    Contact's name.
    email String
    Email address of the contacts.
    displayName String
    Contact's name.

    WorkloadWorkloadProperty, WorkloadWorkloadPropertyArgs

    GcpProject string
    (Output) Output only. The service project identifier that the underlying cloud resource resides in. Empty for non cloud resources.
    Location string
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    Zone string
    (Output) Output only. The location that the underlying compute resource resides in if it is zonal (e.g us-west1-a).
    GcpProject string
    (Output) Output only. The service project identifier that the underlying cloud resource resides in. Empty for non cloud resources.
    Location string
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    Zone string
    (Output) Output only. The location that the underlying compute resource resides in if it is zonal (e.g us-west1-a).
    gcpProject String
    (Output) Output only. The service project identifier that the underlying cloud resource resides in. Empty for non cloud resources.
    location String
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    zone String
    (Output) Output only. The location that the underlying compute resource resides in if it is zonal (e.g us-west1-a).
    gcpProject string
    (Output) Output only. The service project identifier that the underlying cloud resource resides in. Empty for non cloud resources.
    location string
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    zone string
    (Output) Output only. The location that the underlying compute resource resides in if it is zonal (e.g us-west1-a).
    gcp_project str
    (Output) Output only. The service project identifier that the underlying cloud resource resides in. Empty for non cloud resources.
    location str
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    zone str
    (Output) Output only. The location that the underlying compute resource resides in if it is zonal (e.g us-west1-a).
    gcpProject String
    (Output) Output only. The service project identifier that the underlying cloud resource resides in. Empty for non cloud resources.
    location String
    Part of parent. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
    zone String
    (Output) Output only. The location that the underlying compute resource resides in if it is zonal (e.g us-west1-a).

    WorkloadWorkloadReference, WorkloadWorkloadReferenceArgs

    Uri string
    (Output) Output only. The underlying compute resource uri.
    Uri string
    (Output) Output only. The underlying compute resource uri.
    uri String
    (Output) Output only. The underlying compute resource uri.
    uri string
    (Output) Output only. The underlying compute resource uri.
    uri str
    (Output) Output only. The underlying compute resource uri.
    uri String
    (Output) Output only. The underlying compute resource uri.

    Import

    Workload can be imported using any of these accepted formats:

    • projects/{{project}}/locations/{{location}}/applications/{{application_id}}/workloads/{{workload_id}}

    • {{project}}/{{location}}/{{application_id}}/{{workload_id}}

    • {{location}}/{{application_id}}/{{workload_id}}

    When using the pulumi import command, Workload can be imported using one of the formats above. For example:

    $ pulumi import gcp:apphub/workload:Workload default projects/{{project}}/locations/{{location}}/applications/{{application_id}}/workloads/{{workload_id}}
    
    $ pulumi import gcp:apphub/workload:Workload default {{project}}/{{location}}/{{application_id}}/{{workload_id}}
    
    $ pulumi import gcp:apphub/workload:Workload default {{location}}/{{application_id}}/{{workload_id}}
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the google-beta Terraform Provider.
    gcp logo
    Google Cloud Classic v7.23.0 published on Wednesday, May 15, 2024 by Pulumi