1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. saasruntime
  5. UnitOperation
Viewing docs for Google Cloud v9.15.0
published on Thursday, Mar 12, 2026 by Pulumi
gcp logo
Viewing docs for Google Cloud v9.15.0
published on Thursday, Mar 12, 2026 by Pulumi

    A UnitOperation encapsulates the intent to change or interact with a Unit. Operations such as provisioning, upgrading, or deprovisioning a Unit are triggered by creating a UnitOperation resource.

    Example Usage

    Saas Runtime Unit Operation Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const location = "us-east1";
    const tenantProjectId = "tenant";
    const exampleSaas = new gcp.saasruntime.SaaS("example_saas", {
        saasId: "example-saas",
        location: location,
        locations: [{
            name: location,
        }],
    });
    const clusterUnitKind = new gcp.saasruntime.UnitKind("cluster_unit_kind", {
        location: location,
        unitKindId: "vm-unitkind",
        saas: exampleSaas.id,
        defaultRelease: `projects/my-project-name/locations/${location}/releases/example-release`,
    });
    const exampleRelease = new gcp.saasruntime.Release("example_release", {
        location: location,
        releaseId: "example-release",
        unitKind: clusterUnitKind.id,
        blueprint: {
            "package": "us-central1-docker.pkg.dev/ci-test-project-188019/test-repo/tf-test-easysaas-alpha-image@sha256:7992fdbaeaf998ecd31a7f937bb26e38a781ecf49b24857a6176c1e9bfc299ee",
        },
    });
    const exampleUnit = new gcp.saasruntime.Unit("example_unit", {
        location: location,
        unitId: "example-unit",
        unitKind: clusterUnitKind.id,
    });
    const tenantProject = new gcp.organizations.Project("tenant_project", {
        projectId: tenantProjectId,
        name: tenantProjectId,
        billingAccount: "000000-0000000-0000000-000000",
        orgId: "123456789",
        deletionPolicy: "DELETE",
    });
    const saasServices = new gcp.projects.Service("saas_services", {
        project: tenantProject.projectId,
        service: "compute.googleapis.com",
        disableDependentServices: true,
    });
    const actuationServiceAccount = new gcp.serviceaccount.Account("actuation_service_account", {
        accountId: "actuator",
        displayName: "SaaS Actuation Service Account",
    });
    const tenantConfigAdmin = new gcp.projects.IAMMember("tenant_config_admin", {
        project: tenantProject.projectId,
        role: "roles/config.admin",
        member: pulumi.interpolate`serviceAccount:${actuationServiceAccount.email}`,
    });
    const tenantStorageAdmin = new gcp.projects.IAMMember("tenant_storage_admin", {
        project: tenantProject.projectId,
        role: "roles/storage.admin",
        member: pulumi.interpolate`serviceAccount:${actuationServiceAccount.email}`,
    });
    const tenantComputeAdmin = new gcp.projects.IAMMember("tenant_compute_admin", {
        project: tenantProject.projectId,
        role: "roles/compute.admin",
        member: pulumi.interpolate`serviceAccount:${actuationServiceAccount.email}`,
    });
    const actuationTokenCreator = new gcp.serviceaccount.IAMMember("actuation_token_creator", {
        serviceAccountId: actuationServiceAccount.name,
        role: "roles/iam.serviceAccountTokenCreator",
        member: "serviceAccount:service-1111111111111@gcp-sa-saasservicemgmt.iam.gserviceaccount.com",
    });
    const provisionUnitOperation = new gcp.saasruntime.UnitOperation("provision_unit_operation", {
        location: location,
        unitOperationId: "provision-unit-operation",
        unit: exampleUnit.id,
        waitForCompletion: true,
        provision: {
            release: exampleRelease.id,
            inputVariables: [
                {
                    variable: "tenant_project_id",
                    value: tenantProject.projectId,
                    type: "STRING",
                },
                {
                    variable: "tenant_project_number",
                    value: tenantProject.number,
                    type: "INT",
                },
                {
                    variable: "zone",
                    value: "us-central1-a",
                    type: "STRING",
                },
                {
                    variable: "instance_name",
                    value: "terraform-test-instance",
                    type: "STRING",
                },
                {
                    variable: "actuation_sa",
                    value: actuationServiceAccount.email,
                    type: "STRING",
                },
            ],
        },
        labels: {
            "label-one": "foo",
        },
        annotations: {
            "annotation-one": "bar",
        },
    }, {
        dependsOn: [
            tenantConfigAdmin,
            tenantStorageAdmin,
            tenantComputeAdmin,
            actuationTokenCreator,
            saasServices,
        ],
    });
    const noopUpgradeUnitOperation = new gcp.saasruntime.UnitOperation("noop_upgrade_unit_operation", {
        location: location,
        unitOperationId: "upgrade-unit-operation",
        unit: exampleUnit.id,
        waitForCompletion: true,
        upgrade: {
            release: exampleRelease.id,
            inputVariables: [
                {
                    variable: "tenant_project_id",
                    value: tenantProject.projectId,
                    type: "STRING",
                },
                {
                    variable: "tenant_project_number",
                    value: tenantProject.number,
                    type: "INT",
                },
                {
                    variable: "zone",
                    value: "us-central1-a",
                    type: "STRING",
                },
                {
                    variable: "instance_name",
                    value: "terraform-test-instance",
                    type: "STRING",
                },
                {
                    variable: "actuation_sa",
                    value: actuationServiceAccount.email,
                    type: "STRING",
                },
            ],
        },
    }, {
        dependsOn: [provisionUnitOperation],
    });
    const deprovisionOperation = new gcp.saasruntime.UnitOperation("deprovision_operation", {
        location: location,
        unitOperationId: "deprovision-unit-operation",
        unit: exampleUnit.id,
        waitForCompletion: true,
        deprovision: {},
    }, {
        dependsOn: [noopUpgradeUnitOperation],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    location = "us-east1"
    tenant_project_id = "tenant"
    example_saas = gcp.saasruntime.SaaS("example_saas",
        saas_id="example-saas",
        location=location,
        locations=[{
            "name": location,
        }])
    cluster_unit_kind = gcp.saasruntime.UnitKind("cluster_unit_kind",
        location=location,
        unit_kind_id="vm-unitkind",
        saas=example_saas.id,
        default_release=f"projects/my-project-name/locations/{location}/releases/example-release")
    example_release = gcp.saasruntime.Release("example_release",
        location=location,
        release_id="example-release",
        unit_kind=cluster_unit_kind.id,
        blueprint={
            "package": "us-central1-docker.pkg.dev/ci-test-project-188019/test-repo/tf-test-easysaas-alpha-image@sha256:7992fdbaeaf998ecd31a7f937bb26e38a781ecf49b24857a6176c1e9bfc299ee",
        })
    example_unit = gcp.saasruntime.Unit("example_unit",
        location=location,
        unit_id="example-unit",
        unit_kind=cluster_unit_kind.id)
    tenant_project = gcp.organizations.Project("tenant_project",
        project_id=tenant_project_id,
        name=tenant_project_id,
        billing_account="000000-0000000-0000000-000000",
        org_id="123456789",
        deletion_policy="DELETE")
    saas_services = gcp.projects.Service("saas_services",
        project=tenant_project.project_id,
        service="compute.googleapis.com",
        disable_dependent_services=True)
    actuation_service_account = gcp.serviceaccount.Account("actuation_service_account",
        account_id="actuator",
        display_name="SaaS Actuation Service Account")
    tenant_config_admin = gcp.projects.IAMMember("tenant_config_admin",
        project=tenant_project.project_id,
        role="roles/config.admin",
        member=actuation_service_account.email.apply(lambda email: f"serviceAccount:{email}"))
    tenant_storage_admin = gcp.projects.IAMMember("tenant_storage_admin",
        project=tenant_project.project_id,
        role="roles/storage.admin",
        member=actuation_service_account.email.apply(lambda email: f"serviceAccount:{email}"))
    tenant_compute_admin = gcp.projects.IAMMember("tenant_compute_admin",
        project=tenant_project.project_id,
        role="roles/compute.admin",
        member=actuation_service_account.email.apply(lambda email: f"serviceAccount:{email}"))
    actuation_token_creator = gcp.serviceaccount.IAMMember("actuation_token_creator",
        service_account_id=actuation_service_account.name,
        role="roles/iam.serviceAccountTokenCreator",
        member="serviceAccount:service-1111111111111@gcp-sa-saasservicemgmt.iam.gserviceaccount.com")
    provision_unit_operation = gcp.saasruntime.UnitOperation("provision_unit_operation",
        location=location,
        unit_operation_id="provision-unit-operation",
        unit=example_unit.id,
        wait_for_completion=True,
        provision={
            "release": example_release.id,
            "input_variables": [
                {
                    "variable": "tenant_project_id",
                    "value": tenant_project.project_id,
                    "type": "STRING",
                },
                {
                    "variable": "tenant_project_number",
                    "value": tenant_project.number,
                    "type": "INT",
                },
                {
                    "variable": "zone",
                    "value": "us-central1-a",
                    "type": "STRING",
                },
                {
                    "variable": "instance_name",
                    "value": "terraform-test-instance",
                    "type": "STRING",
                },
                {
                    "variable": "actuation_sa",
                    "value": actuation_service_account.email,
                    "type": "STRING",
                },
            ],
        },
        labels={
            "label-one": "foo",
        },
        annotations={
            "annotation-one": "bar",
        },
        opts = pulumi.ResourceOptions(depends_on=[
                tenant_config_admin,
                tenant_storage_admin,
                tenant_compute_admin,
                actuation_token_creator,
                saas_services,
            ]))
    noop_upgrade_unit_operation = gcp.saasruntime.UnitOperation("noop_upgrade_unit_operation",
        location=location,
        unit_operation_id="upgrade-unit-operation",
        unit=example_unit.id,
        wait_for_completion=True,
        upgrade={
            "release": example_release.id,
            "input_variables": [
                {
                    "variable": "tenant_project_id",
                    "value": tenant_project.project_id,
                    "type": "STRING",
                },
                {
                    "variable": "tenant_project_number",
                    "value": tenant_project.number,
                    "type": "INT",
                },
                {
                    "variable": "zone",
                    "value": "us-central1-a",
                    "type": "STRING",
                },
                {
                    "variable": "instance_name",
                    "value": "terraform-test-instance",
                    "type": "STRING",
                },
                {
                    "variable": "actuation_sa",
                    "value": actuation_service_account.email,
                    "type": "STRING",
                },
            ],
        },
        opts = pulumi.ResourceOptions(depends_on=[provision_unit_operation]))
    deprovision_operation = gcp.saasruntime.UnitOperation("deprovision_operation",
        location=location,
        unit_operation_id="deprovision-unit-operation",
        unit=example_unit.id,
        wait_for_completion=True,
        deprovision={},
        opts = pulumi.ResourceOptions(depends_on=[noop_upgrade_unit_operation]))
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/projects"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/saasruntime"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/serviceaccount"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		location := "us-east1"
    		tenantProjectId := "tenant"
    		exampleSaas, err := saasruntime.NewSaaS(ctx, "example_saas", &saasruntime.SaaSArgs{
    			SaasId:   pulumi.String("example-saas"),
    			Location: pulumi.String(location),
    			Locations: saasruntime.SaaSLocationArray{
    				&saasruntime.SaaSLocationArgs{
    					Name: pulumi.String(location),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		clusterUnitKind, err := saasruntime.NewUnitKind(ctx, "cluster_unit_kind", &saasruntime.UnitKindArgs{
    			Location:       pulumi.String(location),
    			UnitKindId:     pulumi.String("vm-unitkind"),
    			Saas:           exampleSaas.ID(),
    			DefaultRelease: pulumi.Sprintf("projects/my-project-name/locations/%v/releases/example-release", location),
    		})
    		if err != nil {
    			return err
    		}
    		exampleRelease, err := saasruntime.NewRelease(ctx, "example_release", &saasruntime.ReleaseArgs{
    			Location:  pulumi.String(location),
    			ReleaseId: pulumi.String("example-release"),
    			UnitKind:  clusterUnitKind.ID(),
    			Blueprint: &saasruntime.ReleaseBlueprintArgs{
    				Package: pulumi.String("us-central1-docker.pkg.dev/ci-test-project-188019/test-repo/tf-test-easysaas-alpha-image@sha256:7992fdbaeaf998ecd31a7f937bb26e38a781ecf49b24857a6176c1e9bfc299ee"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		exampleUnit, err := saasruntime.NewUnit(ctx, "example_unit", &saasruntime.UnitArgs{
    			Location: pulumi.String(location),
    			UnitId:   pulumi.String("example-unit"),
    			UnitKind: clusterUnitKind.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		tenantProject, err := organizations.NewProject(ctx, "tenant_project", &organizations.ProjectArgs{
    			ProjectId:      pulumi.String(tenantProjectId),
    			Name:           pulumi.String(tenantProjectId),
    			BillingAccount: pulumi.String("000000-0000000-0000000-000000"),
    			OrgId:          pulumi.String("123456789"),
    			DeletionPolicy: pulumi.String("DELETE"),
    		})
    		if err != nil {
    			return err
    		}
    		saasServices, err := projects.NewService(ctx, "saas_services", &projects.ServiceArgs{
    			Project:                  tenantProject.ProjectId,
    			Service:                  pulumi.String("compute.googleapis.com"),
    			DisableDependentServices: pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		actuationServiceAccount, err := serviceaccount.NewAccount(ctx, "actuation_service_account", &serviceaccount.AccountArgs{
    			AccountId:   pulumi.String("actuator"),
    			DisplayName: pulumi.String("SaaS Actuation Service Account"),
    		})
    		if err != nil {
    			return err
    		}
    		tenantConfigAdmin, err := projects.NewIAMMember(ctx, "tenant_config_admin", &projects.IAMMemberArgs{
    			Project: tenantProject.ProjectId,
    			Role:    pulumi.String("roles/config.admin"),
    			Member: actuationServiceAccount.Email.ApplyT(func(email string) (string, error) {
    				return fmt.Sprintf("serviceAccount:%v", email), nil
    			}).(pulumi.StringOutput),
    		})
    		if err != nil {
    			return err
    		}
    		tenantStorageAdmin, err := projects.NewIAMMember(ctx, "tenant_storage_admin", &projects.IAMMemberArgs{
    			Project: tenantProject.ProjectId,
    			Role:    pulumi.String("roles/storage.admin"),
    			Member: actuationServiceAccount.Email.ApplyT(func(email string) (string, error) {
    				return fmt.Sprintf("serviceAccount:%v", email), nil
    			}).(pulumi.StringOutput),
    		})
    		if err != nil {
    			return err
    		}
    		tenantComputeAdmin, err := projects.NewIAMMember(ctx, "tenant_compute_admin", &projects.IAMMemberArgs{
    			Project: tenantProject.ProjectId,
    			Role:    pulumi.String("roles/compute.admin"),
    			Member: actuationServiceAccount.Email.ApplyT(func(email string) (string, error) {
    				return fmt.Sprintf("serviceAccount:%v", email), nil
    			}).(pulumi.StringOutput),
    		})
    		if err != nil {
    			return err
    		}
    		actuationTokenCreator, err := serviceaccount.NewIAMMember(ctx, "actuation_token_creator", &serviceaccount.IAMMemberArgs{
    			ServiceAccountId: actuationServiceAccount.Name,
    			Role:             pulumi.String("roles/iam.serviceAccountTokenCreator"),
    			Member:           pulumi.String("serviceAccount:service-1111111111111@gcp-sa-saasservicemgmt.iam.gserviceaccount.com"),
    		})
    		if err != nil {
    			return err
    		}
    		provisionUnitOperation, err := saasruntime.NewUnitOperation(ctx, "provision_unit_operation", &saasruntime.UnitOperationArgs{
    			Location:          pulumi.String(location),
    			UnitOperationId:   pulumi.String("provision-unit-operation"),
    			Unit:              exampleUnit.ID(),
    			WaitForCompletion: pulumi.Bool(true),
    			Provision: &saasruntime.UnitOperationProvisionArgs{
    				Release: exampleRelease.ID(),
    				InputVariables: saasruntime.UnitOperationProvisionInputVariableArray{
    					&saasruntime.UnitOperationProvisionInputVariableArgs{
    						Variable: pulumi.String("tenant_project_id"),
    						Value:    tenantProject.ProjectId,
    						Type:     pulumi.String("STRING"),
    					},
    					&saasruntime.UnitOperationProvisionInputVariableArgs{
    						Variable: pulumi.String("tenant_project_number"),
    						Value:    tenantProject.Number,
    						Type:     pulumi.String("INT"),
    					},
    					&saasruntime.UnitOperationProvisionInputVariableArgs{
    						Variable: pulumi.String("zone"),
    						Value:    pulumi.String("us-central1-a"),
    						Type:     pulumi.String("STRING"),
    					},
    					&saasruntime.UnitOperationProvisionInputVariableArgs{
    						Variable: pulumi.String("instance_name"),
    						Value:    pulumi.String("terraform-test-instance"),
    						Type:     pulumi.String("STRING"),
    					},
    					&saasruntime.UnitOperationProvisionInputVariableArgs{
    						Variable: pulumi.String("actuation_sa"),
    						Value:    actuationServiceAccount.Email,
    						Type:     pulumi.String("STRING"),
    					},
    				},
    			},
    			Labels: pulumi.StringMap{
    				"label-one": pulumi.String("foo"),
    			},
    			Annotations: pulumi.StringMap{
    				"annotation-one": pulumi.String("bar"),
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			tenantConfigAdmin,
    			tenantStorageAdmin,
    			tenantComputeAdmin,
    			actuationTokenCreator,
    			saasServices,
    		}))
    		if err != nil {
    			return err
    		}
    		noopUpgradeUnitOperation, err := saasruntime.NewUnitOperation(ctx, "noop_upgrade_unit_operation", &saasruntime.UnitOperationArgs{
    			Location:          pulumi.String(location),
    			UnitOperationId:   pulumi.String("upgrade-unit-operation"),
    			Unit:              exampleUnit.ID(),
    			WaitForCompletion: pulumi.Bool(true),
    			Upgrade: &saasruntime.UnitOperationUpgradeArgs{
    				Release: exampleRelease.ID(),
    				InputVariables: saasruntime.UnitOperationUpgradeInputVariableArray{
    					&saasruntime.UnitOperationUpgradeInputVariableArgs{
    						Variable: pulumi.String("tenant_project_id"),
    						Value:    tenantProject.ProjectId,
    						Type:     pulumi.String("STRING"),
    					},
    					&saasruntime.UnitOperationUpgradeInputVariableArgs{
    						Variable: pulumi.String("tenant_project_number"),
    						Value:    tenantProject.Number,
    						Type:     pulumi.String("INT"),
    					},
    					&saasruntime.UnitOperationUpgradeInputVariableArgs{
    						Variable: pulumi.String("zone"),
    						Value:    pulumi.String("us-central1-a"),
    						Type:     pulumi.String("STRING"),
    					},
    					&saasruntime.UnitOperationUpgradeInputVariableArgs{
    						Variable: pulumi.String("instance_name"),
    						Value:    pulumi.String("terraform-test-instance"),
    						Type:     pulumi.String("STRING"),
    					},
    					&saasruntime.UnitOperationUpgradeInputVariableArgs{
    						Variable: pulumi.String("actuation_sa"),
    						Value:    actuationServiceAccount.Email,
    						Type:     pulumi.String("STRING"),
    					},
    				},
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			provisionUnitOperation,
    		}))
    		if err != nil {
    			return err
    		}
    		_, err = saasruntime.NewUnitOperation(ctx, "deprovision_operation", &saasruntime.UnitOperationArgs{
    			Location:          pulumi.String(location),
    			UnitOperationId:   pulumi.String("deprovision-unit-operation"),
    			Unit:              exampleUnit.ID(),
    			WaitForCompletion: pulumi.Bool(true),
    			Deprovision:       &saasruntime.UnitOperationDeprovisionArgs{},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			noopUpgradeUnitOperation,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var location = "us-east1";
    
        var tenantProjectId = "tenant";
    
        var exampleSaas = new Gcp.SaaSRuntime.SaaS("example_saas", new()
        {
            SaasId = "example-saas",
            Location = location,
            Locations = new[]
            {
                new Gcp.SaaSRuntime.Inputs.SaaSLocationArgs
                {
                    Name = location,
                },
            },
        });
    
        var clusterUnitKind = new Gcp.SaaSRuntime.UnitKind("cluster_unit_kind", new()
        {
            Location = location,
            UnitKindId = "vm-unitkind",
            Saas = exampleSaas.Id,
            DefaultRelease = $"projects/my-project-name/locations/{location}/releases/example-release",
        });
    
        var exampleRelease = new Gcp.SaaSRuntime.Release("example_release", new()
        {
            Location = location,
            ReleaseId = "example-release",
            UnitKind = clusterUnitKind.Id,
            Blueprint = new Gcp.SaaSRuntime.Inputs.ReleaseBlueprintArgs
            {
                Package = "us-central1-docker.pkg.dev/ci-test-project-188019/test-repo/tf-test-easysaas-alpha-image@sha256:7992fdbaeaf998ecd31a7f937bb26e38a781ecf49b24857a6176c1e9bfc299ee",
            },
        });
    
        var exampleUnit = new Gcp.SaaSRuntime.Unit("example_unit", new()
        {
            Location = location,
            UnitId = "example-unit",
            UnitKind = clusterUnitKind.Id,
        });
    
        var tenantProject = new Gcp.Organizations.Project("tenant_project", new()
        {
            ProjectId = tenantProjectId,
            Name = tenantProjectId,
            BillingAccount = "000000-0000000-0000000-000000",
            OrgId = "123456789",
            DeletionPolicy = "DELETE",
        });
    
        var saasServices = new Gcp.Projects.Service("saas_services", new()
        {
            Project = tenantProject.ProjectId,
            ServiceName = "compute.googleapis.com",
            DisableDependentServices = true,
        });
    
        var actuationServiceAccount = new Gcp.ServiceAccount.Account("actuation_service_account", new()
        {
            AccountId = "actuator",
            DisplayName = "SaaS Actuation Service Account",
        });
    
        var tenantConfigAdmin = new Gcp.Projects.IAMMember("tenant_config_admin", new()
        {
            Project = tenantProject.ProjectId,
            Role = "roles/config.admin",
            Member = actuationServiceAccount.Email.Apply(email => $"serviceAccount:{email}"),
        });
    
        var tenantStorageAdmin = new Gcp.Projects.IAMMember("tenant_storage_admin", new()
        {
            Project = tenantProject.ProjectId,
            Role = "roles/storage.admin",
            Member = actuationServiceAccount.Email.Apply(email => $"serviceAccount:{email}"),
        });
    
        var tenantComputeAdmin = new Gcp.Projects.IAMMember("tenant_compute_admin", new()
        {
            Project = tenantProject.ProjectId,
            Role = "roles/compute.admin",
            Member = actuationServiceAccount.Email.Apply(email => $"serviceAccount:{email}"),
        });
    
        var actuationTokenCreator = new Gcp.ServiceAccount.IAMMember("actuation_token_creator", new()
        {
            ServiceAccountId = actuationServiceAccount.Name,
            Role = "roles/iam.serviceAccountTokenCreator",
            Member = "serviceAccount:service-1111111111111@gcp-sa-saasservicemgmt.iam.gserviceaccount.com",
        });
    
        var provisionUnitOperation = new Gcp.SaaSRuntime.UnitOperation("provision_unit_operation", new()
        {
            Location = location,
            UnitOperationId = "provision-unit-operation",
            Unit = exampleUnit.Id,
            WaitForCompletion = true,
            Provision = new Gcp.SaaSRuntime.Inputs.UnitOperationProvisionArgs
            {
                Release = exampleRelease.Id,
                InputVariables = new[]
                {
                    new Gcp.SaaSRuntime.Inputs.UnitOperationProvisionInputVariableArgs
                    {
                        Variable = "tenant_project_id",
                        Value = tenantProject.ProjectId,
                        Type = "STRING",
                    },
                    new Gcp.SaaSRuntime.Inputs.UnitOperationProvisionInputVariableArgs
                    {
                        Variable = "tenant_project_number",
                        Value = tenantProject.Number,
                        Type = "INT",
                    },
                    new Gcp.SaaSRuntime.Inputs.UnitOperationProvisionInputVariableArgs
                    {
                        Variable = "zone",
                        Value = "us-central1-a",
                        Type = "STRING",
                    },
                    new Gcp.SaaSRuntime.Inputs.UnitOperationProvisionInputVariableArgs
                    {
                        Variable = "instance_name",
                        Value = "terraform-test-instance",
                        Type = "STRING",
                    },
                    new Gcp.SaaSRuntime.Inputs.UnitOperationProvisionInputVariableArgs
                    {
                        Variable = "actuation_sa",
                        Value = actuationServiceAccount.Email,
                        Type = "STRING",
                    },
                },
            },
            Labels = 
            {
                { "label-one", "foo" },
            },
            Annotations = 
            {
                { "annotation-one", "bar" },
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                tenantConfigAdmin,
                tenantStorageAdmin,
                tenantComputeAdmin,
                actuationTokenCreator,
                saasServices,
            },
        });
    
        var noopUpgradeUnitOperation = new Gcp.SaaSRuntime.UnitOperation("noop_upgrade_unit_operation", new()
        {
            Location = location,
            UnitOperationId = "upgrade-unit-operation",
            Unit = exampleUnit.Id,
            WaitForCompletion = true,
            Upgrade = new Gcp.SaaSRuntime.Inputs.UnitOperationUpgradeArgs
            {
                Release = exampleRelease.Id,
                InputVariables = new[]
                {
                    new Gcp.SaaSRuntime.Inputs.UnitOperationUpgradeInputVariableArgs
                    {
                        Variable = "tenant_project_id",
                        Value = tenantProject.ProjectId,
                        Type = "STRING",
                    },
                    new Gcp.SaaSRuntime.Inputs.UnitOperationUpgradeInputVariableArgs
                    {
                        Variable = "tenant_project_number",
                        Value = tenantProject.Number,
                        Type = "INT",
                    },
                    new Gcp.SaaSRuntime.Inputs.UnitOperationUpgradeInputVariableArgs
                    {
                        Variable = "zone",
                        Value = "us-central1-a",
                        Type = "STRING",
                    },
                    new Gcp.SaaSRuntime.Inputs.UnitOperationUpgradeInputVariableArgs
                    {
                        Variable = "instance_name",
                        Value = "terraform-test-instance",
                        Type = "STRING",
                    },
                    new Gcp.SaaSRuntime.Inputs.UnitOperationUpgradeInputVariableArgs
                    {
                        Variable = "actuation_sa",
                        Value = actuationServiceAccount.Email,
                        Type = "STRING",
                    },
                },
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                provisionUnitOperation,
            },
        });
    
        var deprovisionOperation = new Gcp.SaaSRuntime.UnitOperation("deprovision_operation", new()
        {
            Location = location,
            UnitOperationId = "deprovision-unit-operation",
            Unit = exampleUnit.Id,
            WaitForCompletion = true,
            Deprovision = null,
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                noopUpgradeUnitOperation,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.saasruntime.SaaS;
    import com.pulumi.gcp.saasruntime.SaaSArgs;
    import com.pulumi.gcp.saasruntime.inputs.SaaSLocationArgs;
    import com.pulumi.gcp.saasruntime.UnitKind;
    import com.pulumi.gcp.saasruntime.UnitKindArgs;
    import com.pulumi.gcp.saasruntime.Release;
    import com.pulumi.gcp.saasruntime.ReleaseArgs;
    import com.pulumi.gcp.saasruntime.inputs.ReleaseBlueprintArgs;
    import com.pulumi.gcp.saasruntime.Unit;
    import com.pulumi.gcp.saasruntime.UnitArgs;
    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.gcp.serviceaccount.Account;
    import com.pulumi.gcp.serviceaccount.AccountArgs;
    import com.pulumi.gcp.saasruntime.UnitOperation;
    import com.pulumi.gcp.saasruntime.UnitOperationArgs;
    import com.pulumi.gcp.saasruntime.inputs.UnitOperationProvisionArgs;
    import com.pulumi.gcp.saasruntime.inputs.UnitOperationUpgradeArgs;
    import com.pulumi.gcp.saasruntime.inputs.UnitOperationDeprovisionArgs;
    import com.pulumi.resources.CustomResourceOptions;
    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) {
            final var location = "us-east1";
    
            final var tenantProjectId = "tenant";
    
            var exampleSaas = new SaaS("exampleSaas", SaaSArgs.builder()
                .saasId("example-saas")
                .location(location)
                .locations(SaaSLocationArgs.builder()
                    .name(location)
                    .build())
                .build());
    
            var clusterUnitKind = new UnitKind("clusterUnitKind", UnitKindArgs.builder()
                .location(location)
                .unitKindId("vm-unitkind")
                .saas(exampleSaas.id())
                .defaultRelease(String.format("projects/my-project-name/locations/%s/releases/example-release", location))
                .build());
    
            var exampleRelease = new Release("exampleRelease", ReleaseArgs.builder()
                .location(location)
                .releaseId("example-release")
                .unitKind(clusterUnitKind.id())
                .blueprint(ReleaseBlueprintArgs.builder()
                    .package_("us-central1-docker.pkg.dev/ci-test-project-188019/test-repo/tf-test-easysaas-alpha-image@sha256:7992fdbaeaf998ecd31a7f937bb26e38a781ecf49b24857a6176c1e9bfc299ee")
                    .build())
                .build());
    
            var exampleUnit = new Unit("exampleUnit", UnitArgs.builder()
                .location(location)
                .unitId("example-unit")
                .unitKind(clusterUnitKind.id())
                .build());
    
            var tenantProject = new Project("tenantProject", ProjectArgs.builder()
                .projectId(tenantProjectId)
                .name(tenantProjectId)
                .billingAccount("000000-0000000-0000000-000000")
                .orgId("123456789")
                .deletionPolicy("DELETE")
                .build());
    
            var saasServices = new Service("saasServices", ServiceArgs.builder()
                .project(tenantProject.projectId())
                .service("compute.googleapis.com")
                .disableDependentServices(true)
                .build());
    
            var actuationServiceAccount = new Account("actuationServiceAccount", AccountArgs.builder()
                .accountId("actuator")
                .displayName("SaaS Actuation Service Account")
                .build());
    
            var tenantConfigAdmin = new com.pulumi.gcp.projects.IAMMember("tenantConfigAdmin", com.pulumi.gcp.projects.IAMMemberArgs.builder()
                .project(tenantProject.projectId())
                .role("roles/config.admin")
                .member(actuationServiceAccount.email().applyValue(_email -> String.format("serviceAccount:%s", _email)))
                .build());
    
            var tenantStorageAdmin = new com.pulumi.gcp.projects.IAMMember("tenantStorageAdmin", com.pulumi.gcp.projects.IAMMemberArgs.builder()
                .project(tenantProject.projectId())
                .role("roles/storage.admin")
                .member(actuationServiceAccount.email().applyValue(_email -> String.format("serviceAccount:%s", _email)))
                .build());
    
            var tenantComputeAdmin = new com.pulumi.gcp.projects.IAMMember("tenantComputeAdmin", com.pulumi.gcp.projects.IAMMemberArgs.builder()
                .project(tenantProject.projectId())
                .role("roles/compute.admin")
                .member(actuationServiceAccount.email().applyValue(_email -> String.format("serviceAccount:%s", _email)))
                .build());
    
            var actuationTokenCreator = new com.pulumi.gcp.serviceaccount.IAMMember("actuationTokenCreator", com.pulumi.gcp.serviceaccount.IAMMemberArgs.builder()
                .serviceAccountId(actuationServiceAccount.name())
                .role("roles/iam.serviceAccountTokenCreator")
                .member("serviceAccount:service-1111111111111@gcp-sa-saasservicemgmt.iam.gserviceaccount.com")
                .build());
    
            var provisionUnitOperation = new UnitOperation("provisionUnitOperation", UnitOperationArgs.builder()
                .location(location)
                .unitOperationId("provision-unit-operation")
                .unit(exampleUnit.id())
                .waitForCompletion(true)
                .provision(UnitOperationProvisionArgs.builder()
                    .release(exampleRelease.id())
                    .inputVariables(                
                        UnitOperationProvisionInputVariableArgs.builder()
                            .variable("tenant_project_id")
                            .value(tenantProject.projectId())
                            .type("STRING")
                            .build(),
                        UnitOperationProvisionInputVariableArgs.builder()
                            .variable("tenant_project_number")
                            .value(tenantProject.number())
                            .type("INT")
                            .build(),
                        UnitOperationProvisionInputVariableArgs.builder()
                            .variable("zone")
                            .value("us-central1-a")
                            .type("STRING")
                            .build(),
                        UnitOperationProvisionInputVariableArgs.builder()
                            .variable("instance_name")
                            .value("terraform-test-instance")
                            .type("STRING")
                            .build(),
                        UnitOperationProvisionInputVariableArgs.builder()
                            .variable("actuation_sa")
                            .value(actuationServiceAccount.email())
                            .type("STRING")
                            .build())
                    .build())
                .labels(Map.of("label-one", "foo"))
                .annotations(Map.of("annotation-one", "bar"))
                .build(), CustomResourceOptions.builder()
                    .dependsOn(                
                        tenantConfigAdmin,
                        tenantStorageAdmin,
                        tenantComputeAdmin,
                        actuationTokenCreator,
                        saasServices)
                    .build());
    
            var noopUpgradeUnitOperation = new UnitOperation("noopUpgradeUnitOperation", UnitOperationArgs.builder()
                .location(location)
                .unitOperationId("upgrade-unit-operation")
                .unit(exampleUnit.id())
                .waitForCompletion(true)
                .upgrade(UnitOperationUpgradeArgs.builder()
                    .release(exampleRelease.id())
                    .inputVariables(                
                        UnitOperationUpgradeInputVariableArgs.builder()
                            .variable("tenant_project_id")
                            .value(tenantProject.projectId())
                            .type("STRING")
                            .build(),
                        UnitOperationUpgradeInputVariableArgs.builder()
                            .variable("tenant_project_number")
                            .value(tenantProject.number())
                            .type("INT")
                            .build(),
                        UnitOperationUpgradeInputVariableArgs.builder()
                            .variable("zone")
                            .value("us-central1-a")
                            .type("STRING")
                            .build(),
                        UnitOperationUpgradeInputVariableArgs.builder()
                            .variable("instance_name")
                            .value("terraform-test-instance")
                            .type("STRING")
                            .build(),
                        UnitOperationUpgradeInputVariableArgs.builder()
                            .variable("actuation_sa")
                            .value(actuationServiceAccount.email())
                            .type("STRING")
                            .build())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(provisionUnitOperation)
                    .build());
    
            var deprovisionOperation = new UnitOperation("deprovisionOperation", UnitOperationArgs.builder()
                .location(location)
                .unitOperationId("deprovision-unit-operation")
                .unit(exampleUnit.id())
                .waitForCompletion(true)
                .deprovision(UnitOperationDeprovisionArgs.builder()
                    .build())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(noopUpgradeUnitOperation)
                    .build());
    
        }
    }
    
    resources:
      exampleSaas:
        type: gcp:saasruntime:SaaS
        name: example_saas
        properties:
          saasId: example-saas
          location: ${location}
          locations:
            - name: ${location}
      clusterUnitKind:
        type: gcp:saasruntime:UnitKind
        name: cluster_unit_kind
        properties:
          location: ${location}
          unitKindId: vm-unitkind
          saas: ${exampleSaas.id}
          defaultRelease: projects/my-project-name/locations/${location}/releases/example-release
      exampleRelease:
        type: gcp:saasruntime:Release
        name: example_release
        properties:
          location: ${location}
          releaseId: example-release
          unitKind: ${clusterUnitKind.id}
          blueprint:
            package: us-central1-docker.pkg.dev/ci-test-project-188019/test-repo/tf-test-easysaas-alpha-image@sha256:7992fdbaeaf998ecd31a7f937bb26e38a781ecf49b24857a6176c1e9bfc299ee
      exampleUnit:
        type: gcp:saasruntime:Unit
        name: example_unit
        properties:
          location: ${location}
          unitId: example-unit
          unitKind: ${clusterUnitKind.id}
      tenantProject:
        type: gcp:organizations:Project
        name: tenant_project
        properties:
          projectId: ${tenantProjectId}
          name: ${tenantProjectId}
          billingAccount: 000000-0000000-0000000-000000
          orgId: '123456789'
          deletionPolicy: DELETE
      saasServices:
        type: gcp:projects:Service
        name: saas_services
        properties:
          project: ${tenantProject.projectId}
          service: compute.googleapis.com
          disableDependentServices: true
      actuationServiceAccount:
        type: gcp:serviceaccount:Account
        name: actuation_service_account
        properties:
          accountId: actuator
          displayName: SaaS Actuation Service Account
      tenantConfigAdmin:
        type: gcp:projects:IAMMember
        name: tenant_config_admin
        properties:
          project: ${tenantProject.projectId}
          role: roles/config.admin
          member: serviceAccount:${actuationServiceAccount.email}
      tenantStorageAdmin:
        type: gcp:projects:IAMMember
        name: tenant_storage_admin
        properties:
          project: ${tenantProject.projectId}
          role: roles/storage.admin
          member: serviceAccount:${actuationServiceAccount.email}
      tenantComputeAdmin:
        type: gcp:projects:IAMMember
        name: tenant_compute_admin
        properties:
          project: ${tenantProject.projectId}
          role: roles/compute.admin
          member: serviceAccount:${actuationServiceAccount.email}
      actuationTokenCreator:
        type: gcp:serviceaccount:IAMMember
        name: actuation_token_creator
        properties:
          serviceAccountId: ${actuationServiceAccount.name}
          role: roles/iam.serviceAccountTokenCreator
          member: serviceAccount:service-1111111111111@gcp-sa-saasservicemgmt.iam.gserviceaccount.com
      provisionUnitOperation:
        type: gcp:saasruntime:UnitOperation
        name: provision_unit_operation
        properties:
          location: ${location}
          unitOperationId: provision-unit-operation
          unit: ${exampleUnit.id}
          waitForCompletion: true
          provision:
            release: ${exampleRelease.id}
            inputVariables:
              - variable: tenant_project_id
                value: ${tenantProject.projectId}
                type: STRING
              - variable: tenant_project_number
                value: ${tenantProject.number}
                type: INT
              - variable: zone
                value: us-central1-a
                type: STRING
              - variable: instance_name
                value: terraform-test-instance
                type: STRING
              - variable: actuation_sa
                value: ${actuationServiceAccount.email}
                type: STRING
          labels:
            label-one: foo
          annotations:
            annotation-one: bar
        options:
          dependsOn:
            - ${tenantConfigAdmin}
            - ${tenantStorageAdmin}
            - ${tenantComputeAdmin}
            - ${actuationTokenCreator}
            - ${saasServices}
      noopUpgradeUnitOperation:
        type: gcp:saasruntime:UnitOperation
        name: noop_upgrade_unit_operation
        properties:
          location: ${location}
          unitOperationId: upgrade-unit-operation
          unit: ${exampleUnit.id}
          waitForCompletion: true
          upgrade:
            release: ${exampleRelease.id}
            inputVariables:
              - variable: tenant_project_id
                value: ${tenantProject.projectId}
                type: STRING
              - variable: tenant_project_number
                value: ${tenantProject.number}
                type: INT
              - variable: zone
                value: us-central1-a
                type: STRING
              - variable: instance_name
                value: terraform-test-instance
                type: STRING
              - variable: actuation_sa
                value: ${actuationServiceAccount.email}
                type: STRING
        options:
          dependsOn:
            - ${provisionUnitOperation}
      deprovisionOperation:
        type: gcp:saasruntime:UnitOperation
        name: deprovision_operation
        properties:
          location: ${location}
          unitOperationId: deprovision-unit-operation
          unit: ${exampleUnit.id}
          waitForCompletion: true
          deprovision: {}
        options:
          dependsOn:
            - ${noopUpgradeUnitOperation}
    variables:
      location: us-east1
      tenantProjectId: tenant
    

    Create UnitOperation Resource

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

    Constructor syntax

    new UnitOperation(name: string, args: UnitOperationArgs, opts?: CustomResourceOptions);
    @overload
    def UnitOperation(resource_name: str,
                      args: UnitOperationArgs,
                      opts: Optional[ResourceOptions] = None)
    
    @overload
    def UnitOperation(resource_name: str,
                      opts: Optional[ResourceOptions] = None,
                      location: Optional[str] = None,
                      unit: Optional[str] = None,
                      unit_operation_id: Optional[str] = None,
                      annotations: Optional[Mapping[str, str]] = None,
                      deprovision: Optional[UnitOperationDeprovisionArgs] = None,
                      labels: Optional[Mapping[str, str]] = None,
                      project: Optional[str] = None,
                      provision: Optional[UnitOperationProvisionArgs] = None,
                      upgrade: Optional[UnitOperationUpgradeArgs] = None,
                      wait_for_completion: Optional[bool] = None)
    func NewUnitOperation(ctx *Context, name string, args UnitOperationArgs, opts ...ResourceOption) (*UnitOperation, error)
    public UnitOperation(string name, UnitOperationArgs args, CustomResourceOptions? opts = null)
    public UnitOperation(String name, UnitOperationArgs args)
    public UnitOperation(String name, UnitOperationArgs args, CustomResourceOptions options)
    
    type: gcp:saasruntime:UnitOperation
    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 UnitOperationArgs
    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 UnitOperationArgs
    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 UnitOperationArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args UnitOperationArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args UnitOperationArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

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

    var unitOperationResource = new Gcp.SaaSRuntime.UnitOperation("unitOperationResource", new()
    {
        Location = "string",
        Unit = "string",
        UnitOperationId = "string",
        Annotations = 
        {
            { "string", "string" },
        },
        Deprovision = null,
        Labels = 
        {
            { "string", "string" },
        },
        Project = "string",
        Provision = new Gcp.SaaSRuntime.Inputs.UnitOperationProvisionArgs
        {
            InputVariables = new[]
            {
                new Gcp.SaaSRuntime.Inputs.UnitOperationProvisionInputVariableArgs
                {
                    Variable = "string",
                    Type = "string",
                    Value = "string",
                },
            },
            Release = "string",
        },
        Upgrade = new Gcp.SaaSRuntime.Inputs.UnitOperationUpgradeArgs
        {
            InputVariables = new[]
            {
                new Gcp.SaaSRuntime.Inputs.UnitOperationUpgradeInputVariableArgs
                {
                    Variable = "string",
                    Type = "string",
                    Value = "string",
                },
            },
            Release = "string",
        },
        WaitForCompletion = false,
    });
    
    example, err := saasruntime.NewUnitOperation(ctx, "unitOperationResource", &saasruntime.UnitOperationArgs{
    	Location:        pulumi.String("string"),
    	Unit:            pulumi.String("string"),
    	UnitOperationId: pulumi.String("string"),
    	Annotations: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	Deprovision: &saasruntime.UnitOperationDeprovisionArgs{},
    	Labels: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	Project: pulumi.String("string"),
    	Provision: &saasruntime.UnitOperationProvisionArgs{
    		InputVariables: saasruntime.UnitOperationProvisionInputVariableArray{
    			&saasruntime.UnitOperationProvisionInputVariableArgs{
    				Variable: pulumi.String("string"),
    				Type:     pulumi.String("string"),
    				Value:    pulumi.String("string"),
    			},
    		},
    		Release: pulumi.String("string"),
    	},
    	Upgrade: &saasruntime.UnitOperationUpgradeArgs{
    		InputVariables: saasruntime.UnitOperationUpgradeInputVariableArray{
    			&saasruntime.UnitOperationUpgradeInputVariableArgs{
    				Variable: pulumi.String("string"),
    				Type:     pulumi.String("string"),
    				Value:    pulumi.String("string"),
    			},
    		},
    		Release: pulumi.String("string"),
    	},
    	WaitForCompletion: pulumi.Bool(false),
    })
    
    var unitOperationResource = new UnitOperation("unitOperationResource", UnitOperationArgs.builder()
        .location("string")
        .unit("string")
        .unitOperationId("string")
        .annotations(Map.of("string", "string"))
        .deprovision(UnitOperationDeprovisionArgs.builder()
            .build())
        .labels(Map.of("string", "string"))
        .project("string")
        .provision(UnitOperationProvisionArgs.builder()
            .inputVariables(UnitOperationProvisionInputVariableArgs.builder()
                .variable("string")
                .type("string")
                .value("string")
                .build())
            .release("string")
            .build())
        .upgrade(UnitOperationUpgradeArgs.builder()
            .inputVariables(UnitOperationUpgradeInputVariableArgs.builder()
                .variable("string")
                .type("string")
                .value("string")
                .build())
            .release("string")
            .build())
        .waitForCompletion(false)
        .build());
    
    unit_operation_resource = gcp.saasruntime.UnitOperation("unitOperationResource",
        location="string",
        unit="string",
        unit_operation_id="string",
        annotations={
            "string": "string",
        },
        deprovision={},
        labels={
            "string": "string",
        },
        project="string",
        provision={
            "input_variables": [{
                "variable": "string",
                "type": "string",
                "value": "string",
            }],
            "release": "string",
        },
        upgrade={
            "input_variables": [{
                "variable": "string",
                "type": "string",
                "value": "string",
            }],
            "release": "string",
        },
        wait_for_completion=False)
    
    const unitOperationResource = new gcp.saasruntime.UnitOperation("unitOperationResource", {
        location: "string",
        unit: "string",
        unitOperationId: "string",
        annotations: {
            string: "string",
        },
        deprovision: {},
        labels: {
            string: "string",
        },
        project: "string",
        provision: {
            inputVariables: [{
                variable: "string",
                type: "string",
                value: "string",
            }],
            release: "string",
        },
        upgrade: {
            inputVariables: [{
                variable: "string",
                type: "string",
                value: "string",
            }],
            release: "string",
        },
        waitForCompletion: false,
    });
    
    type: gcp:saasruntime:UnitOperation
    properties:
        annotations:
            string: string
        deprovision: {}
        labels:
            string: string
        location: string
        project: string
        provision:
            inputVariables:
                - type: string
                  value: string
                  variable: string
            release: string
        unit: string
        unitOperationId: string
        upgrade:
            inputVariables:
                - type: string
                  value: string
                  variable: string
            release: string
        waitForCompletion: false
    

    UnitOperation Resource Properties

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

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The UnitOperation resource accepts the following input properties:

    Location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    Unit string
    The Unit a given UnitOperation will act upon.
    UnitOperationId string
    The ID value for the new unit operation.
    Annotations Dictionary<string, string>
    Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field effective_annotations for all of the annotations present on the resource.
    Deprovision UnitOperationDeprovision
    Deprovision is the unit operation that deprovision the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned.
    Labels Dictionary<string, string>
    The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Provision UnitOperationProvision
    Provision is the unit operation that provision the underlying resources represented by a Unit. Can only execute if the Unit is not currently provisioned. Structure is documented below.
    Upgrade UnitOperationUpgrade
    Upgrade is the unit operation that upgrades a provisioned unit, which may also include the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned. Structure is documented below.
    WaitForCompletion bool
    If true, wait for the UnitOperation to reach a terminal state (SUCCEEDED, FAILED, CANCELLED) before completing the apply.
    Location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    Unit string
    The Unit a given UnitOperation will act upon.
    UnitOperationId string
    The ID value for the new unit operation.
    Annotations map[string]string
    Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field effective_annotations for all of the annotations present on the resource.
    Deprovision UnitOperationDeprovisionArgs
    Deprovision is the unit operation that deprovision the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned.
    Labels map[string]string
    The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Provision UnitOperationProvisionArgs
    Provision is the unit operation that provision the underlying resources represented by a Unit. Can only execute if the Unit is not currently provisioned. Structure is documented below.
    Upgrade UnitOperationUpgradeArgs
    Upgrade is the unit operation that upgrades a provisioned unit, which may also include the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned. Structure is documented below.
    WaitForCompletion bool
    If true, wait for the UnitOperation to reach a terminal state (SUCCEEDED, FAILED, CANCELLED) before completing the apply.
    location String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    unit String
    The Unit a given UnitOperation will act upon.
    unitOperationId String
    The ID value for the new unit operation.
    annotations Map<String,String>
    Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field effective_annotations for all of the annotations present on the resource.
    deprovision UnitOperationDeprovision
    Deprovision is the unit operation that deprovision the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned.
    labels Map<String,String>
    The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    provision UnitOperationProvision
    Provision is the unit operation that provision the underlying resources represented by a Unit. Can only execute if the Unit is not currently provisioned. Structure is documented below.
    upgrade UnitOperationUpgrade
    Upgrade is the unit operation that upgrades a provisioned unit, which may also include the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned. Structure is documented below.
    waitForCompletion Boolean
    If true, wait for the UnitOperation to reach a terminal state (SUCCEEDED, FAILED, CANCELLED) before completing the apply.
    location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    unit string
    The Unit a given UnitOperation will act upon.
    unitOperationId string
    The ID value for the new unit operation.
    annotations {[key: string]: string}
    Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field effective_annotations for all of the annotations present on the resource.
    deprovision UnitOperationDeprovision
    Deprovision is the unit operation that deprovision the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned.
    labels {[key: string]: string}
    The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    provision UnitOperationProvision
    Provision is the unit operation that provision the underlying resources represented by a Unit. Can only execute if the Unit is not currently provisioned. Structure is documented below.
    upgrade UnitOperationUpgrade
    Upgrade is the unit operation that upgrades a provisioned unit, which may also include the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned. Structure is documented below.
    waitForCompletion boolean
    If true, wait for the UnitOperation to reach a terminal state (SUCCEEDED, FAILED, CANCELLED) before completing the apply.
    location str
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    unit str
    The Unit a given UnitOperation will act upon.
    unit_operation_id str
    The ID value for the new unit operation.
    annotations Mapping[str, str]
    Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field effective_annotations for all of the annotations present on the resource.
    deprovision UnitOperationDeprovisionArgs
    Deprovision is the unit operation that deprovision the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned.
    labels Mapping[str, str]
    The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    provision UnitOperationProvisionArgs
    Provision is the unit operation that provision the underlying resources represented by a Unit. Can only execute if the Unit is not currently provisioned. Structure is documented below.
    upgrade UnitOperationUpgradeArgs
    Upgrade is the unit operation that upgrades a provisioned unit, which may also include the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned. Structure is documented below.
    wait_for_completion bool
    If true, wait for the UnitOperation to reach a terminal state (SUCCEEDED, FAILED, CANCELLED) before completing the apply.
    location String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    unit String
    The Unit a given UnitOperation will act upon.
    unitOperationId String
    The ID value for the new unit operation.
    annotations Map<String>
    Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field effective_annotations for all of the annotations present on the resource.
    deprovision Property Map
    Deprovision is the unit operation that deprovision the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned.
    labels Map<String>
    The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    provision Property Map
    Provision is the unit operation that provision the underlying resources represented by a Unit. Can only execute if the Unit is not currently provisioned. Structure is documented below.
    upgrade Property Map
    Upgrade is the unit operation that upgrades a provisioned unit, which may also include the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned. Structure is documented below.
    waitForCompletion Boolean
    If true, wait for the UnitOperation to reach a terminal state (SUCCEEDED, FAILED, CANCELLED) before completing the apply.

    Outputs

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

    Conditions List<UnitOperationCondition>
    A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
    CreateTime string
    The timestamp when the resource was created.
    EffectiveAnnotations Dictionary<string, string>
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    EffectiveLabels Dictionary<string, string>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    EngineState string
    The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
    ErrorCategory string
    Possible values: NOT_APPLICABLE FATAL RETRIABLE IGNORABLE STANDARD
    Etag string
    An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    Id string
    The provider-assigned unique ID for this managed resource.
    Name string
    Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/unitOperations/{unitOperation}"
    PulumiLabels Dictionary<string, string>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    State string
    UnitOperationState describes the current state of the unit operation. Possible values: UNIT_OPERATION_STATE_UNKNOWN UNIT_OPERATION_STATE_PENDING UNIT_OPERATION_STATE_SCHEDULED UNIT_OPERATION_STATE_RUNNING UNIT_OPERATION_STATE_SUCCEEDED UNIT_OPERATION_STATE_FAILED UNIT_OPERATION_STATE_CANCELLED
    Uid string
    The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    UpdateTime string
    The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    Conditions []UnitOperationCondition
    A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
    CreateTime string
    The timestamp when the resource was created.
    EffectiveAnnotations map[string]string
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    EffectiveLabels map[string]string
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    EngineState string
    The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
    ErrorCategory string
    Possible values: NOT_APPLICABLE FATAL RETRIABLE IGNORABLE STANDARD
    Etag string
    An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    Id string
    The provider-assigned unique ID for this managed resource.
    Name string
    Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/unitOperations/{unitOperation}"
    PulumiLabels map[string]string
    The combination of labels configured directly on the resource and default labels configured on the provider.
    State string
    UnitOperationState describes the current state of the unit operation. Possible values: UNIT_OPERATION_STATE_UNKNOWN UNIT_OPERATION_STATE_PENDING UNIT_OPERATION_STATE_SCHEDULED UNIT_OPERATION_STATE_RUNNING UNIT_OPERATION_STATE_SUCCEEDED UNIT_OPERATION_STATE_FAILED UNIT_OPERATION_STATE_CANCELLED
    Uid string
    The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    UpdateTime string
    The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    conditions List<UnitOperationCondition>
    A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
    createTime String
    The timestamp when the resource was created.
    effectiveAnnotations Map<String,String>
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    effectiveLabels Map<String,String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    engineState String
    The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
    errorCategory String
    Possible values: NOT_APPLICABLE FATAL RETRIABLE IGNORABLE STANDARD
    etag String
    An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    id String
    The provider-assigned unique ID for this managed resource.
    name String
    Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/unitOperations/{unitOperation}"
    pulumiLabels Map<String,String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    state String
    UnitOperationState describes the current state of the unit operation. Possible values: UNIT_OPERATION_STATE_UNKNOWN UNIT_OPERATION_STATE_PENDING UNIT_OPERATION_STATE_SCHEDULED UNIT_OPERATION_STATE_RUNNING UNIT_OPERATION_STATE_SUCCEEDED UNIT_OPERATION_STATE_FAILED UNIT_OPERATION_STATE_CANCELLED
    uid String
    The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    updateTime String
    The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    conditions UnitOperationCondition[]
    A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
    createTime string
    The timestamp when the resource was created.
    effectiveAnnotations {[key: string]: string}
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    effectiveLabels {[key: string]: string}
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    engineState string
    The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
    errorCategory string
    Possible values: NOT_APPLICABLE FATAL RETRIABLE IGNORABLE STANDARD
    etag string
    An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    id string
    The provider-assigned unique ID for this managed resource.
    name string
    Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/unitOperations/{unitOperation}"
    pulumiLabels {[key: string]: string}
    The combination of labels configured directly on the resource and default labels configured on the provider.
    state string
    UnitOperationState describes the current state of the unit operation. Possible values: UNIT_OPERATION_STATE_UNKNOWN UNIT_OPERATION_STATE_PENDING UNIT_OPERATION_STATE_SCHEDULED UNIT_OPERATION_STATE_RUNNING UNIT_OPERATION_STATE_SUCCEEDED UNIT_OPERATION_STATE_FAILED UNIT_OPERATION_STATE_CANCELLED
    uid string
    The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    updateTime string
    The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    conditions Sequence[UnitOperationCondition]
    A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
    create_time str
    The timestamp when the resource was created.
    effective_annotations Mapping[str, str]
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    effective_labels Mapping[str, str]
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    engine_state str
    The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
    error_category str
    Possible values: NOT_APPLICABLE FATAL RETRIABLE IGNORABLE STANDARD
    etag str
    An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    id str
    The provider-assigned unique ID for this managed resource.
    name str
    Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/unitOperations/{unitOperation}"
    pulumi_labels Mapping[str, str]
    The combination of labels configured directly on the resource and default labels configured on the provider.
    state str
    UnitOperationState describes the current state of the unit operation. Possible values: UNIT_OPERATION_STATE_UNKNOWN UNIT_OPERATION_STATE_PENDING UNIT_OPERATION_STATE_SCHEDULED UNIT_OPERATION_STATE_RUNNING UNIT_OPERATION_STATE_SUCCEEDED UNIT_OPERATION_STATE_FAILED UNIT_OPERATION_STATE_CANCELLED
    uid str
    The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    update_time str
    The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    conditions List<Property Map>
    A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
    createTime String
    The timestamp when the resource was created.
    effectiveAnnotations Map<String>
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    effectiveLabels Map<String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    engineState String
    The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
    errorCategory String
    Possible values: NOT_APPLICABLE FATAL RETRIABLE IGNORABLE STANDARD
    etag String
    An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    id String
    The provider-assigned unique ID for this managed resource.
    name String
    Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/unitOperations/{unitOperation}"
    pulumiLabels Map<String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    state String
    UnitOperationState describes the current state of the unit operation. Possible values: UNIT_OPERATION_STATE_UNKNOWN UNIT_OPERATION_STATE_PENDING UNIT_OPERATION_STATE_SCHEDULED UNIT_OPERATION_STATE_RUNNING UNIT_OPERATION_STATE_SUCCEEDED UNIT_OPERATION_STATE_FAILED UNIT_OPERATION_STATE_CANCELLED
    uid String
    The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    updateTime String
    The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.

    Look up Existing UnitOperation Resource

    Get an existing UnitOperation 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?: UnitOperationState, opts?: CustomResourceOptions): UnitOperation
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            annotations: Optional[Mapping[str, str]] = None,
            conditions: Optional[Sequence[UnitOperationConditionArgs]] = None,
            create_time: Optional[str] = None,
            deprovision: Optional[UnitOperationDeprovisionArgs] = None,
            effective_annotations: Optional[Mapping[str, str]] = None,
            effective_labels: Optional[Mapping[str, str]] = None,
            engine_state: Optional[str] = None,
            error_category: Optional[str] = None,
            etag: Optional[str] = None,
            labels: Optional[Mapping[str, str]] = None,
            location: Optional[str] = None,
            name: Optional[str] = None,
            project: Optional[str] = None,
            provision: Optional[UnitOperationProvisionArgs] = None,
            pulumi_labels: Optional[Mapping[str, str]] = None,
            state: Optional[str] = None,
            uid: Optional[str] = None,
            unit: Optional[str] = None,
            unit_operation_id: Optional[str] = None,
            update_time: Optional[str] = None,
            upgrade: Optional[UnitOperationUpgradeArgs] = None,
            wait_for_completion: Optional[bool] = None) -> UnitOperation
    func GetUnitOperation(ctx *Context, name string, id IDInput, state *UnitOperationState, opts ...ResourceOption) (*UnitOperation, error)
    public static UnitOperation Get(string name, Input<string> id, UnitOperationState? state, CustomResourceOptions? opts = null)
    public static UnitOperation get(String name, Output<String> id, UnitOperationState state, CustomResourceOptions options)
    resources:  _:    type: gcp:saasruntime:UnitOperation    get:      id: ${id}
    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:
    Annotations Dictionary<string, string>
    Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field effective_annotations for all of the annotations present on the resource.
    Conditions List<UnitOperationCondition>
    A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
    CreateTime string
    The timestamp when the resource was created.
    Deprovision UnitOperationDeprovision
    Deprovision is the unit operation that deprovision the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned.
    EffectiveAnnotations Dictionary<string, string>
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    EffectiveLabels Dictionary<string, string>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    EngineState string
    The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
    ErrorCategory string
    Possible values: NOT_APPLICABLE FATAL RETRIABLE IGNORABLE STANDARD
    Etag string
    An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    Labels Dictionary<string, string>
    The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    Location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    Name string
    Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/unitOperations/{unitOperation}"
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Provision UnitOperationProvision
    Provision is the unit operation that provision the underlying resources represented by a Unit. Can only execute if the Unit is not currently provisioned. Structure is documented below.
    PulumiLabels Dictionary<string, string>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    State string
    UnitOperationState describes the current state of the unit operation. Possible values: UNIT_OPERATION_STATE_UNKNOWN UNIT_OPERATION_STATE_PENDING UNIT_OPERATION_STATE_SCHEDULED UNIT_OPERATION_STATE_RUNNING UNIT_OPERATION_STATE_SUCCEEDED UNIT_OPERATION_STATE_FAILED UNIT_OPERATION_STATE_CANCELLED
    Uid string
    The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    Unit string
    The Unit a given UnitOperation will act upon.
    UnitOperationId string
    The ID value for the new unit operation.
    UpdateTime string
    The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    Upgrade UnitOperationUpgrade
    Upgrade is the unit operation that upgrades a provisioned unit, which may also include the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned. Structure is documented below.
    WaitForCompletion bool
    If true, wait for the UnitOperation to reach a terminal state (SUCCEEDED, FAILED, CANCELLED) before completing the apply.
    Annotations map[string]string
    Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field effective_annotations for all of the annotations present on the resource.
    Conditions []UnitOperationConditionArgs
    A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
    CreateTime string
    The timestamp when the resource was created.
    Deprovision UnitOperationDeprovisionArgs
    Deprovision is the unit operation that deprovision the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned.
    EffectiveAnnotations map[string]string
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    EffectiveLabels map[string]string
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    EngineState string
    The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
    ErrorCategory string
    Possible values: NOT_APPLICABLE FATAL RETRIABLE IGNORABLE STANDARD
    Etag string
    An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    Labels map[string]string
    The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    Location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    Name string
    Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/unitOperations/{unitOperation}"
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Provision UnitOperationProvisionArgs
    Provision is the unit operation that provision the underlying resources represented by a Unit. Can only execute if the Unit is not currently provisioned. Structure is documented below.
    PulumiLabels map[string]string
    The combination of labels configured directly on the resource and default labels configured on the provider.
    State string
    UnitOperationState describes the current state of the unit operation. Possible values: UNIT_OPERATION_STATE_UNKNOWN UNIT_OPERATION_STATE_PENDING UNIT_OPERATION_STATE_SCHEDULED UNIT_OPERATION_STATE_RUNNING UNIT_OPERATION_STATE_SUCCEEDED UNIT_OPERATION_STATE_FAILED UNIT_OPERATION_STATE_CANCELLED
    Uid string
    The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    Unit string
    The Unit a given UnitOperation will act upon.
    UnitOperationId string
    The ID value for the new unit operation.
    UpdateTime string
    The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    Upgrade UnitOperationUpgradeArgs
    Upgrade is the unit operation that upgrades a provisioned unit, which may also include the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned. Structure is documented below.
    WaitForCompletion bool
    If true, wait for the UnitOperation to reach a terminal state (SUCCEEDED, FAILED, CANCELLED) before completing the apply.
    annotations Map<String,String>
    Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field effective_annotations for all of the annotations present on the resource.
    conditions List<UnitOperationCondition>
    A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
    createTime String
    The timestamp when the resource was created.
    deprovision UnitOperationDeprovision
    Deprovision is the unit operation that deprovision the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned.
    effectiveAnnotations Map<String,String>
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    effectiveLabels Map<String,String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    engineState String
    The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
    errorCategory String
    Possible values: NOT_APPLICABLE FATAL RETRIABLE IGNORABLE STANDARD
    etag String
    An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    labels Map<String,String>
    The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    location String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    name String
    Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/unitOperations/{unitOperation}"
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    provision UnitOperationProvision
    Provision is the unit operation that provision the underlying resources represented by a Unit. Can only execute if the Unit is not currently provisioned. Structure is documented below.
    pulumiLabels Map<String,String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    state String
    UnitOperationState describes the current state of the unit operation. Possible values: UNIT_OPERATION_STATE_UNKNOWN UNIT_OPERATION_STATE_PENDING UNIT_OPERATION_STATE_SCHEDULED UNIT_OPERATION_STATE_RUNNING UNIT_OPERATION_STATE_SUCCEEDED UNIT_OPERATION_STATE_FAILED UNIT_OPERATION_STATE_CANCELLED
    uid String
    The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    unit String
    The Unit a given UnitOperation will act upon.
    unitOperationId String
    The ID value for the new unit operation.
    updateTime String
    The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    upgrade UnitOperationUpgrade
    Upgrade is the unit operation that upgrades a provisioned unit, which may also include the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned. Structure is documented below.
    waitForCompletion Boolean
    If true, wait for the UnitOperation to reach a terminal state (SUCCEEDED, FAILED, CANCELLED) before completing the apply.
    annotations {[key: string]: string}
    Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field effective_annotations for all of the annotations present on the resource.
    conditions UnitOperationCondition[]
    A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
    createTime string
    The timestamp when the resource was created.
    deprovision UnitOperationDeprovision
    Deprovision is the unit operation that deprovision the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned.
    effectiveAnnotations {[key: string]: string}
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    effectiveLabels {[key: string]: string}
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    engineState string
    The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
    errorCategory string
    Possible values: NOT_APPLICABLE FATAL RETRIABLE IGNORABLE STANDARD
    etag string
    An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    labels {[key: string]: string}
    The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    name string
    Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/unitOperations/{unitOperation}"
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    provision UnitOperationProvision
    Provision is the unit operation that provision the underlying resources represented by a Unit. Can only execute if the Unit is not currently provisioned. Structure is documented below.
    pulumiLabels {[key: string]: string}
    The combination of labels configured directly on the resource and default labels configured on the provider.
    state string
    UnitOperationState describes the current state of the unit operation. Possible values: UNIT_OPERATION_STATE_UNKNOWN UNIT_OPERATION_STATE_PENDING UNIT_OPERATION_STATE_SCHEDULED UNIT_OPERATION_STATE_RUNNING UNIT_OPERATION_STATE_SUCCEEDED UNIT_OPERATION_STATE_FAILED UNIT_OPERATION_STATE_CANCELLED
    uid string
    The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    unit string
    The Unit a given UnitOperation will act upon.
    unitOperationId string
    The ID value for the new unit operation.
    updateTime string
    The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    upgrade UnitOperationUpgrade
    Upgrade is the unit operation that upgrades a provisioned unit, which may also include the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned. Structure is documented below.
    waitForCompletion boolean
    If true, wait for the UnitOperation to reach a terminal state (SUCCEEDED, FAILED, CANCELLED) before completing the apply.
    annotations Mapping[str, str]
    Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field effective_annotations for all of the annotations present on the resource.
    conditions Sequence[UnitOperationConditionArgs]
    A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
    create_time str
    The timestamp when the resource was created.
    deprovision UnitOperationDeprovisionArgs
    Deprovision is the unit operation that deprovision the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned.
    effective_annotations Mapping[str, str]
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    effective_labels Mapping[str, str]
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    engine_state str
    The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
    error_category str
    Possible values: NOT_APPLICABLE FATAL RETRIABLE IGNORABLE STANDARD
    etag str
    An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    labels Mapping[str, str]
    The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    location str
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    name str
    Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/unitOperations/{unitOperation}"
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    provision UnitOperationProvisionArgs
    Provision is the unit operation that provision the underlying resources represented by a Unit. Can only execute if the Unit is not currently provisioned. Structure is documented below.
    pulumi_labels Mapping[str, str]
    The combination of labels configured directly on the resource and default labels configured on the provider.
    state str
    UnitOperationState describes the current state of the unit operation. Possible values: UNIT_OPERATION_STATE_UNKNOWN UNIT_OPERATION_STATE_PENDING UNIT_OPERATION_STATE_SCHEDULED UNIT_OPERATION_STATE_RUNNING UNIT_OPERATION_STATE_SUCCEEDED UNIT_OPERATION_STATE_FAILED UNIT_OPERATION_STATE_CANCELLED
    uid str
    The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    unit str
    The Unit a given UnitOperation will act upon.
    unit_operation_id str
    The ID value for the new unit operation.
    update_time str
    The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    upgrade UnitOperationUpgradeArgs
    Upgrade is the unit operation that upgrades a provisioned unit, which may also include the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned. Structure is documented below.
    wait_for_completion bool
    If true, wait for the UnitOperation to reach a terminal state (SUCCEEDED, FAILED, CANCELLED) before completing the apply.
    annotations Map<String>
    Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field effective_annotations for all of the annotations present on the resource.
    conditions List<Property Map>
    A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
    createTime String
    The timestamp when the resource was created.
    deprovision Property Map
    Deprovision is the unit operation that deprovision the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned.
    effectiveAnnotations Map<String>
    All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
    effectiveLabels Map<String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    engineState String
    The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
    errorCategory String
    Possible values: NOT_APPLICABLE FATAL RETRIABLE IGNORABLE STANDARD
    etag String
    An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    labels Map<String>
    The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    location String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    name String
    Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/unitOperations/{unitOperation}"
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    provision Property Map
    Provision is the unit operation that provision the underlying resources represented by a Unit. Can only execute if the Unit is not currently provisioned. Structure is documented below.
    pulumiLabels Map<String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    state String
    UnitOperationState describes the current state of the unit operation. Possible values: UNIT_OPERATION_STATE_UNKNOWN UNIT_OPERATION_STATE_PENDING UNIT_OPERATION_STATE_SCHEDULED UNIT_OPERATION_STATE_RUNNING UNIT_OPERATION_STATE_SUCCEEDED UNIT_OPERATION_STATE_FAILED UNIT_OPERATION_STATE_CANCELLED
    uid String
    The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    unit String
    The Unit a given UnitOperation will act upon.
    unitOperationId String
    The ID value for the new unit operation.
    updateTime String
    The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    upgrade Property Map
    Upgrade is the unit operation that upgrades a provisioned unit, which may also include the underlying resources represented by a Unit. Can only execute if the Unit is currently provisioned. Structure is documented below.
    waitForCompletion Boolean
    If true, wait for the UnitOperation to reach a terminal state (SUCCEEDED, FAILED, CANCELLED) before completing the apply.

    Supporting Types

    UnitOperationCondition, UnitOperationConditionArgs

    LastTransitionTime string
    (Output) Last time the condition transited from one status to another.
    Message string
    (Output) Human readable message indicating details about the last transition.
    Reason string
    (Output) Brief reason for the condition's last transition.
    Status string
    (Output) Status of the condition. Possible values: STATUS_UNKNOWN STATUS_TRUE STATUS_FALSE
    Type string
    (Output) Type of the condition. Possible values: TYPE_SCHEDULED TYPE_RUNNING TYPE_SUCCEEDED TYPE_CANCELLED
    LastTransitionTime string
    (Output) Last time the condition transited from one status to another.
    Message string
    (Output) Human readable message indicating details about the last transition.
    Reason string
    (Output) Brief reason for the condition's last transition.
    Status string
    (Output) Status of the condition. Possible values: STATUS_UNKNOWN STATUS_TRUE STATUS_FALSE
    Type string
    (Output) Type of the condition. Possible values: TYPE_SCHEDULED TYPE_RUNNING TYPE_SUCCEEDED TYPE_CANCELLED
    lastTransitionTime String
    (Output) Last time the condition transited from one status to another.
    message String
    (Output) Human readable message indicating details about the last transition.
    reason String
    (Output) Brief reason for the condition's last transition.
    status String
    (Output) Status of the condition. Possible values: STATUS_UNKNOWN STATUS_TRUE STATUS_FALSE
    type String
    (Output) Type of the condition. Possible values: TYPE_SCHEDULED TYPE_RUNNING TYPE_SUCCEEDED TYPE_CANCELLED
    lastTransitionTime string
    (Output) Last time the condition transited from one status to another.
    message string
    (Output) Human readable message indicating details about the last transition.
    reason string
    (Output) Brief reason for the condition's last transition.
    status string
    (Output) Status of the condition. Possible values: STATUS_UNKNOWN STATUS_TRUE STATUS_FALSE
    type string
    (Output) Type of the condition. Possible values: TYPE_SCHEDULED TYPE_RUNNING TYPE_SUCCEEDED TYPE_CANCELLED
    last_transition_time str
    (Output) Last time the condition transited from one status to another.
    message str
    (Output) Human readable message indicating details about the last transition.
    reason str
    (Output) Brief reason for the condition's last transition.
    status str
    (Output) Status of the condition. Possible values: STATUS_UNKNOWN STATUS_TRUE STATUS_FALSE
    type str
    (Output) Type of the condition. Possible values: TYPE_SCHEDULED TYPE_RUNNING TYPE_SUCCEEDED TYPE_CANCELLED
    lastTransitionTime String
    (Output) Last time the condition transited from one status to another.
    message String
    (Output) Human readable message indicating details about the last transition.
    reason String
    (Output) Brief reason for the condition's last transition.
    status String
    (Output) Status of the condition. Possible values: STATUS_UNKNOWN STATUS_TRUE STATUS_FALSE
    type String
    (Output) Type of the condition. Possible values: TYPE_SCHEDULED TYPE_RUNNING TYPE_SUCCEEDED TYPE_CANCELLED

    UnitOperationProvision, UnitOperationProvisionArgs

    InputVariables List<UnitOperationProvisionInputVariable>
    Set of input variables. Maximum 100. (optional) Structure is documented below.
    Release string
    Reference to the Release object to use for the Unit. (optional).
    InputVariables []UnitOperationProvisionInputVariable
    Set of input variables. Maximum 100. (optional) Structure is documented below.
    Release string
    Reference to the Release object to use for the Unit. (optional).
    inputVariables List<UnitOperationProvisionInputVariable>
    Set of input variables. Maximum 100. (optional) Structure is documented below.
    release String
    Reference to the Release object to use for the Unit. (optional).
    inputVariables UnitOperationProvisionInputVariable[]
    Set of input variables. Maximum 100. (optional) Structure is documented below.
    release string
    Reference to the Release object to use for the Unit. (optional).
    input_variables Sequence[UnitOperationProvisionInputVariable]
    Set of input variables. Maximum 100. (optional) Structure is documented below.
    release str
    Reference to the Release object to use for the Unit. (optional).
    inputVariables List<Property Map>
    Set of input variables. Maximum 100. (optional) Structure is documented below.
    release String
    Reference to the Release object to use for the Unit. (optional).

    UnitOperationProvisionInputVariable, UnitOperationProvisionInputVariableArgs

    Variable string
    Name of the variable from actuation configs.
    Type string
    Name of a supported variable type. Supported types are string, int, bool. Possible values: STRING INT BOOL
    Value string
    String encoded value for the variable.
    Variable string
    Name of the variable from actuation configs.
    Type string
    Name of a supported variable type. Supported types are string, int, bool. Possible values: STRING INT BOOL
    Value string
    String encoded value for the variable.
    variable String
    Name of the variable from actuation configs.
    type String
    Name of a supported variable type. Supported types are string, int, bool. Possible values: STRING INT BOOL
    value String
    String encoded value for the variable.
    variable string
    Name of the variable from actuation configs.
    type string
    Name of a supported variable type. Supported types are string, int, bool. Possible values: STRING INT BOOL
    value string
    String encoded value for the variable.
    variable str
    Name of the variable from actuation configs.
    type str
    Name of a supported variable type. Supported types are string, int, bool. Possible values: STRING INT BOOL
    value str
    String encoded value for the variable.
    variable String
    Name of the variable from actuation configs.
    type String
    Name of a supported variable type. Supported types are string, int, bool. Possible values: STRING INT BOOL
    value String
    String encoded value for the variable.

    UnitOperationUpgrade, UnitOperationUpgradeArgs

    InputVariables List<UnitOperationUpgradeInputVariable>
    Set of input variables. Maximum 100. (optional) Structure is documented below.
    Release string
    Reference to the Release object to use for the Unit. (optional).
    InputVariables []UnitOperationUpgradeInputVariable
    Set of input variables. Maximum 100. (optional) Structure is documented below.
    Release string
    Reference to the Release object to use for the Unit. (optional).
    inputVariables List<UnitOperationUpgradeInputVariable>
    Set of input variables. Maximum 100. (optional) Structure is documented below.
    release String
    Reference to the Release object to use for the Unit. (optional).
    inputVariables UnitOperationUpgradeInputVariable[]
    Set of input variables. Maximum 100. (optional) Structure is documented below.
    release string
    Reference to the Release object to use for the Unit. (optional).
    input_variables Sequence[UnitOperationUpgradeInputVariable]
    Set of input variables. Maximum 100. (optional) Structure is documented below.
    release str
    Reference to the Release object to use for the Unit. (optional).
    inputVariables List<Property Map>
    Set of input variables. Maximum 100. (optional) Structure is documented below.
    release String
    Reference to the Release object to use for the Unit. (optional).

    UnitOperationUpgradeInputVariable, UnitOperationUpgradeInputVariableArgs

    Variable string
    Name of the variable from actuation configs.
    Type string
    Name of a supported variable type. Supported types are string, int, bool. Possible values: STRING INT BOOL
    Value string
    String encoded value for the variable.
    Variable string
    Name of the variable from actuation configs.
    Type string
    Name of a supported variable type. Supported types are string, int, bool. Possible values: STRING INT BOOL
    Value string
    String encoded value for the variable.
    variable String
    Name of the variable from actuation configs.
    type String
    Name of a supported variable type. Supported types are string, int, bool. Possible values: STRING INT BOOL
    value String
    String encoded value for the variable.
    variable string
    Name of the variable from actuation configs.
    type string
    Name of a supported variable type. Supported types are string, int, bool. Possible values: STRING INT BOOL
    value string
    String encoded value for the variable.
    variable str
    Name of the variable from actuation configs.
    type str
    Name of a supported variable type. Supported types are string, int, bool. Possible values: STRING INT BOOL
    value str
    String encoded value for the variable.
    variable String
    Name of the variable from actuation configs.
    type String
    Name of a supported variable type. Supported types are string, int, bool. Possible values: STRING INT BOOL
    value String
    String encoded value for the variable.

    Import

    UnitOperation can be imported using any of these accepted formats:

    • projects/{{project}}/locations/{{location}}/unitOperations/{{unit_operation_id}}
    • {{project}}/{{location}}/{{unit_operation_id}}
    • {{location}}/{{unit_operation_id}}

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

    $ pulumi import gcp:saasruntime/unitOperation:UnitOperation default projects/{{project}}/locations/{{location}}/unitOperations/{{unit_operation_id}}
    $ pulumi import gcp:saasruntime/unitOperation:UnitOperation default {{project}}/{{location}}/{{unit_operation_id}}
    $ pulumi import gcp:saasruntime/unitOperation:UnitOperation default {{location}}/{{unit_operation_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
    Viewing docs for Google Cloud v9.15.0
    published on Thursday, Mar 12, 2026 by Pulumi
      Try Pulumi Cloud free. Your team will thank you.