published on Thursday, Mar 12, 2026 by Pulumi
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.
- Unit
Operation stringId - 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_annotationsfor all of the annotations present on the resource. - Deprovision
Unit
Operation Deprovision - 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_labelsfor 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
Unit
Operation Provision - 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
Unit
Operation Upgrade - 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 boolCompletion - 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.
- Unit
Operation stringId - 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_annotationsfor all of the annotations present on the resource. - Deprovision
Unit
Operation Deprovision Args - 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_labelsfor 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
Unit
Operation Provision Args - 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
Unit
Operation Upgrade Args - 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 boolCompletion - 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.
- unit
Operation StringId - 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_annotationsfor all of the annotations present on the resource. - deprovision
Unit
Operation Deprovision - 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_labelsfor 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
Unit
Operation Provision - 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
Unit
Operation Upgrade - 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 BooleanCompletion - 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.
- unit
Operation stringId - 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_annotationsfor all of the annotations present on the resource. - deprovision
Unit
Operation Deprovision - 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_labelsfor 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
Unit
Operation Provision - 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
Unit
Operation Upgrade - 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 booleanCompletion - 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_ strid - 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_annotationsfor all of the annotations present on the resource. - deprovision
Unit
Operation Deprovision Args - 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_labelsfor 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
Unit
Operation Provision Args - 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
Unit
Operation Upgrade Args - 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_ boolcompletion - 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.
- unit
Operation StringId - 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_annotationsfor 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_labelsfor 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.
- wait
For BooleanCompletion - 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<Unit
Operation Condition> - A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
- Create
Time string - The timestamp when the resource was created.
- Effective
Annotations 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.
- Effective
Labels 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.
- Engine
State string - The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
- Error
Category 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}"
- Pulumi
Labels 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.
- Update
Time 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
[]Unit
Operation Condition - A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
- Create
Time string - The timestamp when the resource was created.
- Effective
Annotations 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.
- Effective
Labels 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.
- Engine
State string - The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
- Error
Category 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}"
- Pulumi
Labels 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.
- Update
Time 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<Unit
Operation Condition> - A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
- create
Time String - The timestamp when the resource was created.
- effective
Annotations 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.
- effective
Labels 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.
- engine
State String - The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
- error
Category 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}"
- pulumi
Labels 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.
- update
Time 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
Unit
Operation Condition[] - A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
- create
Time string - The timestamp when the resource was created.
- effective
Annotations {[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.
- effective
Labels {[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.
- engine
State string - The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
- error
Category 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}"
- pulumi
Labels {[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.
- update
Time 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[Unit
Operation Condition] - 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.
- create
Time String - The timestamp when the resource was created.
- effective
Annotations Map<String> - All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- engine
State String - The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
- error
Category 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}"
- pulumi
Labels 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.
- update
Time 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) -> UnitOperationfunc 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.
- 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_annotationsfor all of the annotations present on the resource. - Conditions
List<Unit
Operation Condition> - A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
- Create
Time string - The timestamp when the resource was created.
- Deprovision
Unit
Operation Deprovision - 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 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.
- Effective
Labels 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.
- Engine
State string - The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
- Error
Category 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_labelsfor 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
Unit
Operation Provision - 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 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.
- Unit
Operation stringId - The ID value for the new unit operation.
- Update
Time 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
Unit
Operation Upgrade - 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 boolCompletion - 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_annotationsfor all of the annotations present on the resource. - Conditions
[]Unit
Operation Condition Args - A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
- Create
Time string - The timestamp when the resource was created.
- Deprovision
Unit
Operation Deprovision Args - 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 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.
- Effective
Labels 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.
- Engine
State string - The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
- Error
Category 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_labelsfor 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
Unit
Operation Provision Args - 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 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.
- Unit
Operation stringId - The ID value for the new unit operation.
- Update
Time 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
Unit
Operation Upgrade Args - 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 boolCompletion - 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_annotationsfor all of the annotations present on the resource. - conditions
List<Unit
Operation Condition> - A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
- create
Time String - The timestamp when the resource was created.
- deprovision
Unit
Operation Deprovision - 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 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.
- effective
Labels 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.
- engine
State String - The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
- error
Category 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_labelsfor 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
Unit
Operation Provision - 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 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.
- unit
Operation StringId - The ID value for the new unit operation.
- update
Time 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
Unit
Operation Upgrade - 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 BooleanCompletion - 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_annotationsfor all of the annotations present on the resource. - conditions
Unit
Operation Condition[] - A set of conditions which indicate the various conditions this resource can have. Structure is documented below.
- create
Time string - The timestamp when the resource was created.
- deprovision
Unit
Operation Deprovision - 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 {[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.
- effective
Labels {[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.
- engine
State string - The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
- error
Category 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_labelsfor 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
Unit
Operation Provision - 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 {[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.
- unit
Operation stringId - The ID value for the new unit operation.
- update
Time 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
Unit
Operation Upgrade - 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 booleanCompletion - 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_annotationsfor all of the annotations present on the resource. - conditions
Sequence[Unit
Operation Condition Args] - 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
Unit
Operation Deprovision Args - 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_labelsfor 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
Unit
Operation Provision Args - 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_ strid - 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
Unit
Operation Upgrade Args - 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_ boolcompletion - 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_annotationsfor 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.
- create
Time 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.
- effective
Annotations Map<String> - All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- engine
State String - The engine state for on-going deployment engine operation(s). This field is opaque for external usage.
- error
Category 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_labelsfor 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.
- pulumi
Labels 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.
- unit
Operation StringId - The ID value for the new unit operation.
- update
Time 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.
- wait
For BooleanCompletion - If true, wait for the UnitOperation to reach a terminal state (SUCCEEDED, FAILED, CANCELLED) before completing the apply.
Supporting Types
UnitOperationCondition, UnitOperationConditionArgs
- Last
Transition stringTime - (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 stringTime - (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 StringTime - (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 stringTime - (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_ strtime - (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
- last
Transition StringTime - (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
- Input
Variables List<UnitOperation Provision Input Variable> - 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 []UnitOperation Provision Input Variable - 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 List<UnitOperation Provision Input Variable> - 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 UnitOperation Provision Input Variable[] - 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[UnitOperation Provision Input Variable] - Set of input variables. Maximum 100. (optional) Structure is documented below.
- release str
- Reference to the Release object to use for the Unit. (optional).
- input
Variables 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
UnitOperationUpgrade, UnitOperationUpgradeArgs
- Input
Variables List<UnitOperation Upgrade Input Variable> - 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 []UnitOperation Upgrade Input Variable - 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 List<UnitOperation Upgrade Input Variable> - 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 UnitOperation Upgrade Input Variable[] - 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[UnitOperation Upgrade Input Variable] - Set of input variables. Maximum 100. (optional) Structure is documented below.
- release str
- Reference to the Release object to use for the Unit. (optional).
- input
Variables 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
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-betaTerraform Provider.
published on Thursday, Mar 12, 2026 by Pulumi
