Resource Policy Args
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
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const foo = new gcp.compute.ResourcePolicy("foo", {
name: "gce-policy",
region: "us-central1",
snapshotSchedulePolicy: {
schedule: {
dailySchedule: {
daysInCycle: 1,
startTime: "04:00",
},
},
},
});
import pulumi
import pulumi_gcp as gcp
foo = gcp.compute.ResourcePolicy("foo",
name="gce-policy",
region="us-central1",
snapshot_schedule_policy={
"schedule": {
"daily_schedule": {
"days_in_cycle": 1,
"start_time": "04:00",
},
},
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var foo = new Gcp.Compute.ResourcePolicy("foo", new()
{
Name = "gce-policy",
Region = "us-central1",
SnapshotSchedulePolicy = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyArgs
{
Schedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs
{
DailySchedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs
{
DaysInCycle = 1,
StartTime = "04:00",
},
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewResourcePolicy(ctx, "foo", &compute.ResourcePolicyArgs{
Name: pulumi.String("gce-policy"),
Region: pulumi.String("us-central1"),
SnapshotSchedulePolicy: &compute.ResourcePolicySnapshotSchedulePolicyArgs{
Schedule: &compute.ResourcePolicySnapshotSchedulePolicyScheduleArgs{
DailySchedule: &compute.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs{
DaysInCycle: pulumi.Int(1),
StartTime: pulumi.String("04:00"),
},
},
},
})
if err != nil {
return err
}
return nil
})
}
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()
.name("gce-policy")
.region("us-central1")
.snapshotSchedulePolicy(ResourcePolicySnapshotSchedulePolicyArgs.builder()
.schedule(ResourcePolicySnapshotSchedulePolicyScheduleArgs.builder()
.dailySchedule(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs.builder()
.daysInCycle(1)
.startTime("04:00")
.build())
.build())
.build())
.build());
}
}
resources:
foo:
type: gcp:compute:ResourcePolicy
properties:
name: gce-policy
region: us-central1
snapshotSchedulePolicy:
schedule:
dailySchedule:
daysInCycle: 1
startTime: 04:00
Resource Policy Full
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const bar = new gcp.compute.ResourcePolicy("bar", {
name: "gce-policy",
region: "us-central1",
snapshotSchedulePolicy: {
schedule: {
hourlySchedule: {
hoursInCycle: 20,
startTime: "23:00",
},
},
retentionPolicy: {
maxRetentionDays: 10,
onSourceDiskDelete: "KEEP_AUTO_SNAPSHOTS",
},
snapshotProperties: {
labels: {
my_label: "value",
},
storageLocations: "us",
guestFlush: true,
},
},
});
import pulumi
import pulumi_gcp as gcp
bar = gcp.compute.ResourcePolicy("bar",
name="gce-policy",
region="us-central1",
snapshot_schedule_policy={
"schedule": {
"hourly_schedule": {
"hours_in_cycle": 20,
"start_time": "23:00",
},
},
"retention_policy": {
"max_retention_days": 10,
"on_source_disk_delete": "KEEP_AUTO_SNAPSHOTS",
},
"snapshot_properties": {
"labels": {
"my_label": "value",
},
"storage_locations": "us",
"guest_flush": True,
},
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var bar = new Gcp.Compute.ResourcePolicy("bar", new()
{
Name = "gce-policy",
Region = "us-central1",
SnapshotSchedulePolicy = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyArgs
{
Schedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs
{
HourlySchedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs
{
HoursInCycle = 20,
StartTime = "23:00",
},
},
RetentionPolicy = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs
{
MaxRetentionDays = 10,
OnSourceDiskDelete = "KEEP_AUTO_SNAPSHOTS",
},
SnapshotProperties = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs
{
Labels =
{
{ "my_label", "value" },
},
StorageLocations = "us",
GuestFlush = true,
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewResourcePolicy(ctx, "bar", &compute.ResourcePolicyArgs{
Name: pulumi.String("gce-policy"),
Region: pulumi.String("us-central1"),
SnapshotSchedulePolicy: &compute.ResourcePolicySnapshotSchedulePolicyArgs{
Schedule: &compute.ResourcePolicySnapshotSchedulePolicyScheduleArgs{
HourlySchedule: &compute.ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs{
HoursInCycle: pulumi.Int(20),
StartTime: pulumi.String("23:00"),
},
},
RetentionPolicy: &compute.ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{
MaxRetentionDays: pulumi.Int(10),
OnSourceDiskDelete: pulumi.String("KEEP_AUTO_SNAPSHOTS"),
},
SnapshotProperties: &compute.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{
Labels: pulumi.StringMap{
"my_label": pulumi.String("value"),
},
StorageLocations: pulumi.String("us"),
GuestFlush: pulumi.Bool(true),
},
},
})
if err != nil {
return err
}
return nil
})
}
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.ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs;
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()
.name("gce-policy")
.region("us-central1")
.snapshotSchedulePolicy(ResourcePolicySnapshotSchedulePolicyArgs.builder()
.schedule(ResourcePolicySnapshotSchedulePolicyScheduleArgs.builder()
.hourlySchedule(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs.builder()
.hoursInCycle(20)
.startTime("23:00")
.build())
.build())
.retentionPolicy(ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs.builder()
.maxRetentionDays(10)
.onSourceDiskDelete("KEEP_AUTO_SNAPSHOTS")
.build())
.snapshotProperties(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs.builder()
.labels(Map.of("my_label", "value"))
.storageLocations("us")
.guestFlush(true)
.build())
.build())
.build());
}
}
resources:
bar:
type: gcp:compute:ResourcePolicy
properties:
name: gce-policy
region: us-central1
snapshotSchedulePolicy:
schedule:
hourlySchedule:
hoursInCycle: 20
startTime: 23:00
retentionPolicy:
maxRetentionDays: 10
onSourceDiskDelete: KEEP_AUTO_SNAPSHOTS
snapshotProperties:
labels:
my_label: value
storageLocations: us
guestFlush: true
Resource Policy Placement Policy
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const baz = new gcp.compute.ResourcePolicy("baz", {
name: "gce-policy",
region: "us-central1",
groupPlacementPolicy: {
vmCount: 2,
collocation: "COLLOCATED",
},
});
import pulumi
import pulumi_gcp as gcp
baz = gcp.compute.ResourcePolicy("baz",
name="gce-policy",
region="us-central1",
group_placement_policy={
"vm_count": 2,
"collocation": "COLLOCATED",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var baz = new Gcp.Compute.ResourcePolicy("baz", new()
{
Name = "gce-policy",
Region = "us-central1",
GroupPlacementPolicy = new Gcp.Compute.Inputs.ResourcePolicyGroupPlacementPolicyArgs
{
VmCount = 2,
Collocation = "COLLOCATED",
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewResourcePolicy(ctx, "baz", &compute.ResourcePolicyArgs{
Name: pulumi.String("gce-policy"),
Region: pulumi.String("us-central1"),
GroupPlacementPolicy: &compute.ResourcePolicyGroupPlacementPolicyArgs{
VmCount: pulumi.Int(2),
Collocation: pulumi.String("COLLOCATED"),
},
})
if err != nil {
return err
}
return nil
})
}
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()
.name("gce-policy")
.region("us-central1")
.groupPlacementPolicy(ResourcePolicyGroupPlacementPolicyArgs.builder()
.vmCount(2)
.collocation("COLLOCATED")
.build())
.build());
}
}
resources:
baz:
type: gcp:compute:ResourcePolicy
properties:
name: gce-policy
region: us-central1
groupPlacementPolicy:
vmCount: 2
collocation: COLLOCATED
Resource Policy Placement Policy Max Distance
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const baz = new gcp.compute.ResourcePolicy("baz", {
name: "gce-policy",
region: "us-central1",
groupPlacementPolicy: {
vmCount: 2,
collocation: "COLLOCATED",
maxDistance: 2,
},
});
import pulumi
import pulumi_gcp as gcp
baz = gcp.compute.ResourcePolicy("baz",
name="gce-policy",
region="us-central1",
group_placement_policy={
"vm_count": 2,
"collocation": "COLLOCATED",
"max_distance": 2,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var baz = new Gcp.Compute.ResourcePolicy("baz", new()
{
Name = "gce-policy",
Region = "us-central1",
GroupPlacementPolicy = new Gcp.Compute.Inputs.ResourcePolicyGroupPlacementPolicyArgs
{
VmCount = 2,
Collocation = "COLLOCATED",
MaxDistance = 2,
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewResourcePolicy(ctx, "baz", &compute.ResourcePolicyArgs{
Name: pulumi.String("gce-policy"),
Region: pulumi.String("us-central1"),
GroupPlacementPolicy: &compute.ResourcePolicyGroupPlacementPolicyArgs{
VmCount: pulumi.Int(2),
Collocation: pulumi.String("COLLOCATED"),
MaxDistance: pulumi.Int(2),
},
})
if err != nil {
return err
}
return nil
})
}
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()
.name("gce-policy")
.region("us-central1")
.groupPlacementPolicy(ResourcePolicyGroupPlacementPolicyArgs.builder()
.vmCount(2)
.collocation("COLLOCATED")
.maxDistance(2)
.build())
.build());
}
}
resources:
baz:
type: gcp:compute:ResourcePolicy
properties:
name: gce-policy
region: us-central1
groupPlacementPolicy:
vmCount: 2
collocation: COLLOCATED
maxDistance: 2
Resource Policy Instance Schedule Policy
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const hourly = new gcp.compute.ResourcePolicy("hourly", {
name: "gce-policy",
region: "us-central1",
description: "Start and stop instances",
instanceSchedulePolicy: {
vmStartSchedule: {
schedule: "0 * * * *",
},
vmStopSchedule: {
schedule: "15 * * * *",
},
timeZone: "US/Central",
},
});
import pulumi
import pulumi_gcp as gcp
hourly = gcp.compute.ResourcePolicy("hourly",
name="gce-policy",
region="us-central1",
description="Start and stop instances",
instance_schedule_policy={
"vm_start_schedule": {
"schedule": "0 * * * *",
},
"vm_stop_schedule": {
"schedule": "15 * * * *",
},
"time_zone": "US/Central",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var hourly = new Gcp.Compute.ResourcePolicy("hourly", new()
{
Name = "gce-policy",
Region = "us-central1",
Description = "Start and stop instances",
InstanceSchedulePolicy = new Gcp.Compute.Inputs.ResourcePolicyInstanceSchedulePolicyArgs
{
VmStartSchedule = new Gcp.Compute.Inputs.ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs
{
Schedule = "0 * * * *",
},
VmStopSchedule = new Gcp.Compute.Inputs.ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs
{
Schedule = "15 * * * *",
},
TimeZone = "US/Central",
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewResourcePolicy(ctx, "hourly", &compute.ResourcePolicyArgs{
Name: pulumi.String("gce-policy"),
Region: pulumi.String("us-central1"),
Description: pulumi.String("Start and stop instances"),
InstanceSchedulePolicy: &compute.ResourcePolicyInstanceSchedulePolicyArgs{
VmStartSchedule: &compute.ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs{
Schedule: pulumi.String("0 * * * *"),
},
VmStopSchedule: &compute.ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs{
Schedule: pulumi.String("15 * * * *"),
},
TimeZone: pulumi.String("US/Central"),
},
})
if err != nil {
return err
}
return nil
})
}
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()
.name("gce-policy")
.region("us-central1")
.description("Start and stop instances")
.instanceSchedulePolicy(ResourcePolicyInstanceSchedulePolicyArgs.builder()
.vmStartSchedule(ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs.builder()
.schedule("0 * * * *")
.build())
.vmStopSchedule(ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs.builder()
.schedule("15 * * * *")
.build())
.timeZone("US/Central")
.build())
.build());
}
}
resources:
hourly:
type: gcp:compute:ResourcePolicy
properties:
name: gce-policy
region: us-central1
description: Start and stop instances
instanceSchedulePolicy:
vmStartSchedule:
schedule: 0 * * * *
vmStopSchedule:
schedule: 15 * * * *
timeZone: US/Central
Resource Policy Snapshot Schedule Chain Name
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const hourly = new gcp.compute.ResourcePolicy("hourly", {
name: "gce-policy",
region: "us-central1",
description: "chain name snapshot",
snapshotSchedulePolicy: {
schedule: {
hourlySchedule: {
hoursInCycle: 20,
startTime: "23:00",
},
},
retentionPolicy: {
maxRetentionDays: 14,
onSourceDiskDelete: "KEEP_AUTO_SNAPSHOTS",
},
snapshotProperties: {
labels: {
my_label: "value",
},
storageLocations: "us",
guestFlush: true,
chainName: "test-schedule-chain-name",
},
},
});
import pulumi
import pulumi_gcp as gcp
hourly = gcp.compute.ResourcePolicy("hourly",
name="gce-policy",
region="us-central1",
description="chain name snapshot",
snapshot_schedule_policy={
"schedule": {
"hourly_schedule": {
"hours_in_cycle": 20,
"start_time": "23:00",
},
},
"retention_policy": {
"max_retention_days": 14,
"on_source_disk_delete": "KEEP_AUTO_SNAPSHOTS",
},
"snapshot_properties": {
"labels": {
"my_label": "value",
},
"storage_locations": "us",
"guest_flush": True,
"chain_name": "test-schedule-chain-name",
},
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var hourly = new Gcp.Compute.ResourcePolicy("hourly", new()
{
Name = "gce-policy",
Region = "us-central1",
Description = "chain name snapshot",
SnapshotSchedulePolicy = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyArgs
{
Schedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs
{
HourlySchedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs
{
HoursInCycle = 20,
StartTime = "23:00",
},
},
RetentionPolicy = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs
{
MaxRetentionDays = 14,
OnSourceDiskDelete = "KEEP_AUTO_SNAPSHOTS",
},
SnapshotProperties = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs
{
Labels =
{
{ "my_label", "value" },
},
StorageLocations = "us",
GuestFlush = true,
ChainName = "test-schedule-chain-name",
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewResourcePolicy(ctx, "hourly", &compute.ResourcePolicyArgs{
Name: pulumi.String("gce-policy"),
Region: pulumi.String("us-central1"),
Description: pulumi.String("chain name snapshot"),
SnapshotSchedulePolicy: &compute.ResourcePolicySnapshotSchedulePolicyArgs{
Schedule: &compute.ResourcePolicySnapshotSchedulePolicyScheduleArgs{
HourlySchedule: &compute.ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs{
HoursInCycle: pulumi.Int(20),
StartTime: pulumi.String("23:00"),
},
},
RetentionPolicy: &compute.ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{
MaxRetentionDays: pulumi.Int(14),
OnSourceDiskDelete: pulumi.String("KEEP_AUTO_SNAPSHOTS"),
},
SnapshotProperties: &compute.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{
Labels: pulumi.StringMap{
"my_label": pulumi.String("value"),
},
StorageLocations: pulumi.String("us"),
GuestFlush: pulumi.Bool(true),
ChainName: pulumi.String("test-schedule-chain-name"),
},
},
})
if err != nil {
return err
}
return nil
})
}
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.ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs;
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()
.name("gce-policy")
.region("us-central1")
.description("chain name snapshot")
.snapshotSchedulePolicy(ResourcePolicySnapshotSchedulePolicyArgs.builder()
.schedule(ResourcePolicySnapshotSchedulePolicyScheduleArgs.builder()
.hourlySchedule(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs.builder()
.hoursInCycle(20)
.startTime("23:00")
.build())
.build())
.retentionPolicy(ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs.builder()
.maxRetentionDays(14)
.onSourceDiskDelete("KEEP_AUTO_SNAPSHOTS")
.build())
.snapshotProperties(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs.builder()
.labels(Map.of("my_label", "value"))
.storageLocations("us")
.guestFlush(true)
.chainName("test-schedule-chain-name")
.build())
.build())
.build());
}
}
resources:
hourly:
type: gcp:compute:ResourcePolicy
properties:
name: gce-policy
region: us-central1
description: chain name snapshot
snapshotSchedulePolicy:
schedule:
hourlySchedule:
hoursInCycle: 20
startTime: 23:00
retentionPolicy:
maxRetentionDays: 14
onSourceDiskDelete: KEEP_AUTO_SNAPSHOTS
snapshotProperties:
labels:
my_label: value
storageLocations: us
guestFlush: true
chainName: test-schedule-chain-name
Resource Policy Consistency Group
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const cgroup = new gcp.compute.ResourcePolicy("cgroup", {
name: "gce-policy",
region: "europe-west1",
diskConsistencyGroupPolicy: {
enabled: true,
},
});
import pulumi
import pulumi_gcp as gcp
cgroup = gcp.compute.ResourcePolicy("cgroup",
name="gce-policy",
region="europe-west1",
disk_consistency_group_policy={
"enabled": True,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var cgroup = new Gcp.Compute.ResourcePolicy("cgroup", new()
{
Name = "gce-policy",
Region = "europe-west1",
DiskConsistencyGroupPolicy = new Gcp.Compute.Inputs.ResourcePolicyDiskConsistencyGroupPolicyArgs
{
Enabled = true,
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewResourcePolicy(ctx, "cgroup", &compute.ResourcePolicyArgs{
Name: pulumi.String("gce-policy"),
Region: pulumi.String("europe-west1"),
DiskConsistencyGroupPolicy: &compute.ResourcePolicyDiskConsistencyGroupPolicyArgs{
Enabled: pulumi.Bool(true),
},
})
if err != nil {
return err
}
return nil
})
}
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()
.name("gce-policy")
.region("europe-west1")
.diskConsistencyGroupPolicy(ResourcePolicyDiskConsistencyGroupPolicyArgs.builder()
.enabled(true)
.build())
.build());
}
}
resources:
cgroup:
type: gcp:compute:ResourcePolicy
properties:
name: gce-policy
region: europe-west1
diskConsistencyGroupPolicy:
enabled: true
Import
ResourcePolicy can be imported using any of these accepted formats:
projects/{{project}}/regions/{{region}}/resourcePolicies/{{name}}
{{project}}/{{region}}/{{name}}
{{region}}/{{name}}
{{name}}
When using thepulumi import
command, ResourcePolicy can be imported using one of the formats above. For example:
$ 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
Properties
An optional description of this resource. Provide this property when you create the resource.
Replication consistency group for asynchronous disk replication. Structure is documented below.
Resource policy for instances used for placement configuration. Structure is documented below.
Resource policy for scheduling instance operations. Structure is documented below.
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.
Policy for creating snapshots of persistent disks. Structure is documented below.