ResourcePolicyArgs

data class ResourcePolicyArgs(val description: Output<String>? = null, val diskConsistencyGroupPolicy: Output<ResourcePolicyDiskConsistencyGroupPolicyArgs>? = null, val groupPlacementPolicy: Output<ResourcePolicyGroupPlacementPolicyArgs>? = null, val instanceSchedulePolicy: Output<ResourcePolicyInstanceSchedulePolicyArgs>? = null, val name: Output<String>? = null, val project: Output<String>? = null, val region: Output<String>? = null, val snapshotSchedulePolicy: Output<ResourcePolicySnapshotSchedulePolicyArgs>? = null) : ConvertibleToJava<ResourcePolicyArgs>

A policy that can be attached to a resource to specify or schedule actions on that resource. To get more information about ResourcePolicy, see:

Example Usage

Resource Policy Basic

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ResourcePolicy;
import com.pulumi.gcp.compute.ResourcePolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var foo = new ResourcePolicy("foo", ResourcePolicyArgs.builder()
.region("us-central1")
.snapshotSchedulePolicy(ResourcePolicySnapshotSchedulePolicyArgs.builder()
.schedule(ResourcePolicySnapshotSchedulePolicyScheduleArgs.builder()
.dailySchedule(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs.builder()
.daysInCycle(1)
.startTime("04:00")
.build())
.build())
.build())
.build());
}
}

Resource Policy Full

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ResourcePolicy;
import com.pulumi.gcp.compute.ResourcePolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var bar = new ResourcePolicy("bar", ResourcePolicyArgs.builder()
.region("us-central1")
.snapshotSchedulePolicy(ResourcePolicySnapshotSchedulePolicyArgs.builder()
.retentionPolicy(ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs.builder()
.maxRetentionDays(10)
.onSourceDiskDelete("KEEP_AUTO_SNAPSHOTS")
.build())
.schedule(ResourcePolicySnapshotSchedulePolicyScheduleArgs.builder()
.hourlySchedule(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs.builder()
.hoursInCycle(20)
.startTime("23:00")
.build())
.build())
.snapshotProperties(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs.builder()
.guestFlush(true)
.labels(Map.of("myLabel", "value"))
.storageLocations("us")
.build())
.build())
.build());
}
}

Resource Policy Placement Policy

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ResourcePolicy;
import com.pulumi.gcp.compute.ResourcePolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicyGroupPlacementPolicyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var baz = new ResourcePolicy("baz", ResourcePolicyArgs.builder()
.groupPlacementPolicy(ResourcePolicyGroupPlacementPolicyArgs.builder()
.collocation("COLLOCATED")
.vmCount(2)
.build())
.region("us-central1")
.build());
}
}

Resource Policy Placement Policy Max Distance

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ResourcePolicy;
import com.pulumi.gcp.compute.ResourcePolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicyGroupPlacementPolicyArgs;
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) {
var baz = new ResourcePolicy("baz", ResourcePolicyArgs.builder()
.region("us-central1")
.groupPlacementPolicy(ResourcePolicyGroupPlacementPolicyArgs.builder()
.vmCount(2)
.collocation("COLLOCATED")
.maxDistance(2)
.build())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
}
}

Resource Policy Instance Schedule Policy

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ResourcePolicy;
import com.pulumi.gcp.compute.ResourcePolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicyInstanceSchedulePolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var hourly = new ResourcePolicy("hourly", ResourcePolicyArgs.builder()
.description("Start and stop instances")
.instanceSchedulePolicy(ResourcePolicyInstanceSchedulePolicyArgs.builder()
.timeZone("US/Central")
.vmStartSchedule(ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs.builder()
.schedule("0 * * * *")
.build())
.vmStopSchedule(ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs.builder()
.schedule("15 * * * *")
.build())
.build())
.region("us-central1")
.build());
}
}

Resource Policy Snapshot Schedule Chain Name

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ResourcePolicy;
import com.pulumi.gcp.compute.ResourcePolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var hourly = new ResourcePolicy("hourly", ResourcePolicyArgs.builder()
.description("chain name snapshot")
.region("us-central1")
.snapshotSchedulePolicy(ResourcePolicySnapshotSchedulePolicyArgs.builder()
.retentionPolicy(ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs.builder()
.maxRetentionDays(14)
.onSourceDiskDelete("KEEP_AUTO_SNAPSHOTS")
.build())
.schedule(ResourcePolicySnapshotSchedulePolicyScheduleArgs.builder()
.hourlySchedule(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs.builder()
.hoursInCycle(20)
.startTime("23:00")
.build())
.build())
.snapshotProperties(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs.builder()
.chainName("test-schedule-chain-name")
.guestFlush(true)
.labels(Map.of("myLabel", "value"))
.storageLocations("us")
.build())
.build())
.build());
}
}

Resource Policy Consistency Group

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ResourcePolicy;
import com.pulumi.gcp.compute.ResourcePolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicyDiskConsistencyGroupPolicyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var cgroup = new ResourcePolicy("cgroup", ResourcePolicyArgs.builder()
.diskConsistencyGroupPolicy(ResourcePolicyDiskConsistencyGroupPolicyArgs.builder()
.enabled(true)
.build())
.region("europe-west1")
.build());
}
}

Import

ResourcePolicy can be imported using any of these accepted formats

$ pulumi import gcp:compute/resourcePolicy:ResourcePolicy default projects/{{project}}/regions/{{region}}/resourcePolicies/{{name}}
$ pulumi import gcp:compute/resourcePolicy:ResourcePolicy default {{project}}/{{region}}/{{name}}
$ pulumi import gcp:compute/resourcePolicy:ResourcePolicy default {{region}}/{{name}}
$ pulumi import gcp:compute/resourcePolicy:ResourcePolicy default {{name}}

Constructors

Link copied to clipboard
constructor(description: Output<String>? = null, diskConsistencyGroupPolicy: Output<ResourcePolicyDiskConsistencyGroupPolicyArgs>? = null, groupPlacementPolicy: Output<ResourcePolicyGroupPlacementPolicyArgs>? = null, instanceSchedulePolicy: Output<ResourcePolicyInstanceSchedulePolicyArgs>? = null, name: Output<String>? = null, project: Output<String>? = null, region: Output<String>? = null, snapshotSchedulePolicy: Output<ResourcePolicySnapshotSchedulePolicyArgs>? = null)

Properties

Link copied to clipboard
val description: Output<String>? = null

An optional description of this resource. Provide this property when you create the resource.

Link copied to clipboard

Replication consistency group for asynchronous disk replication. Structure is documented below.

Link copied to clipboard

Resource policy for instances used for placement configuration. Structure is documented below.

Link copied to clipboard

Resource policy for scheduling instance operations. Structure is documented below.

Link copied to clipboard
val name: Output<String>? = null

The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.

Link copied to clipboard
val project: Output<String>? = null

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

Link copied to clipboard
val region: Output<String>? = null

Region where resource policy resides.

Link copied to clipboard

Policy for creating snapshots of persistent disks. Structure is documented below.

Functions

Link copied to clipboard
open override fun toJava(): ResourcePolicyArgs