Snapshot
Snapshot resource. API Version: 2020-12-01.
Example Usage
Create a snapshot by importing an unmanaged blob from a different subscription.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var snapshot = new AzureNative.Compute.Snapshot("snapshot", new()
{
CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
{
CreateOption = "Import",
SourceUri = "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd",
StorageAccountId = "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
},
Location = "West US",
ResourceGroupName = "myResourceGroup",
SnapshotName = "mySnapshot1",
});
});
package main
import (
compute "github.com/pulumi/pulumi-azure-native-sdk/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewSnapshot(ctx, "snapshot", &compute.SnapshotArgs{
CreationData: &compute.CreationDataArgs{
CreateOption: pulumi.String("Import"),
SourceUri: pulumi.String("https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"),
StorageAccountId: pulumi.String("subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount"),
},
Location: pulumi.String("West US"),
ResourceGroupName: pulumi.String("myResourceGroup"),
SnapshotName: pulumi.String("mySnapshot1"),
})
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.azurenative.compute.Snapshot;
import com.pulumi.azurenative.compute.SnapshotArgs;
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 snapshot = new Snapshot("snapshot", SnapshotArgs.builder()
.creationData(Map.ofEntries(
Map.entry("createOption", "Import"),
Map.entry("sourceUri", "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"),
Map.entry("storageAccountId", "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount")
))
.location("West US")
.resourceGroupName("myResourceGroup")
.snapshotName("mySnapshot1")
.build());
}
}
Create a snapshot by importing an unmanaged blob from the same subscription.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var snapshot = new AzureNative.Compute.Snapshot("snapshot", new()
{
CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
{
CreateOption = "Import",
SourceUri = "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd",
},
Location = "West US",
ResourceGroupName = "myResourceGroup",
SnapshotName = "mySnapshot1",
});
});
package main
import (
compute "github.com/pulumi/pulumi-azure-native-sdk/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewSnapshot(ctx, "snapshot", &compute.SnapshotArgs{
CreationData: &compute.CreationDataArgs{
CreateOption: pulumi.String("Import"),
SourceUri: pulumi.String("https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"),
},
Location: pulumi.String("West US"),
ResourceGroupName: pulumi.String("myResourceGroup"),
SnapshotName: pulumi.String("mySnapshot1"),
})
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.azurenative.compute.Snapshot;
import com.pulumi.azurenative.compute.SnapshotArgs;
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 snapshot = new Snapshot("snapshot", SnapshotArgs.builder()
.creationData(Map.ofEntries(
Map.entry("createOption", "Import"),
Map.entry("sourceUri", "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd")
))
.location("West US")
.resourceGroupName("myResourceGroup")
.snapshotName("mySnapshot1")
.build());
}
}
Create a snapshot from an existing snapshot in the same or a different subscription.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var snapshot = new AzureNative.Compute.Snapshot("snapshot", new()
{
CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
{
CreateOption = "Copy",
SourceResourceId = "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot1",
},
Location = "West US",
ResourceGroupName = "myResourceGroup",
SnapshotName = "mySnapshot2",
});
});
package main
import (
compute "github.com/pulumi/pulumi-azure-native-sdk/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewSnapshot(ctx, "snapshot", &compute.SnapshotArgs{
CreationData: &compute.CreationDataArgs{
CreateOption: pulumi.String("Copy"),
SourceResourceId: pulumi.String("subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot1"),
},
Location: pulumi.String("West US"),
ResourceGroupName: pulumi.String("myResourceGroup"),
SnapshotName: pulumi.String("mySnapshot2"),
})
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.azurenative.compute.Snapshot;
import com.pulumi.azurenative.compute.SnapshotArgs;
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 snapshot = new Snapshot("snapshot", SnapshotArgs.builder()
.creationData(Map.ofEntries(
Map.entry("createOption", "Copy"),
Map.entry("sourceResourceId", "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot1")
))
.location("West US")
.resourceGroupName("myResourceGroup")
.snapshotName("mySnapshot2")
.build());
}
}
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:compute:Snapshot mySnapshot2 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/snapshots/{snapshotName}
Properties
Disk source information. CreationData information cannot be changed after the disk has been created.
ARM id of the DiskAccess resource for using private endpoints on disks.
The size of the disk in bytes. This field is read only.
If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size.
Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys.
Encryption settings collection used be Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot.
The extended location where the snapshot will be created. Extended location cannot be changed.
The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
Whether a snapshot is incremental. Incremental snapshots on the same disk occupy less space than full snapshots and can be diffed.
Policy for accessing the disk via network.
The disk provisioning state.
Purchase plan information for the image from which the source disk for the snapshot was originally created.
The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. This is an optional parameter for incremental snapshot and the default behavior is the SKU will be set to the same sku as the previous snapshot
Indicates the OS on a snapshot supports hibernation.
The time when the snapshot was created.