1. Packages
  2. Azure Native
  3. API Docs
  4. recoveryservices
  5. ProtectionPolicy
This is the latest version of Azure Native. Use the Azure Native v1 docs if using the v1 version of this package.
Azure Native v2.63.0 published on Tuesday, Sep 24, 2024 by Pulumi

azure-native.recoveryservices.ProtectionPolicy

Explore with Pulumi AI

azure-native logo
This is the latest version of Azure Native. Use the Azure Native v1 docs if using the v1 version of this package.
Azure Native v2.63.0 published on Tuesday, Sep 24, 2024 by Pulumi

    Base class for backup policy. Workload-specific backup policies are derived from this class. Azure REST API version: 2023-04-01. Prior API version in Azure Native 1.x: 2021-02-01.

    Other available API versions: 2016-06-01, 2023-06-01, 2023-08-01, 2024-01-01, 2024-02-01, 2024-04-01, 2024-04-30-preview.

    Example Usage

    Create or Update Daily Azure Storage Protection Policy

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var protectionPolicy = new AzureNative.RecoveryServices.ProtectionPolicy("protectionPolicy", new()
        {
            PolicyName = "dailyPolicy2",
            Properties = new AzureNative.RecoveryServices.Inputs.AzureFileShareProtectionPolicyArgs
            {
                BackupManagementType = "AzureStorage",
                RetentionPolicy = new AzureNative.RecoveryServices.Inputs.LongTermRetentionPolicyArgs
                {
                    DailySchedule = new AzureNative.RecoveryServices.Inputs.DailyRetentionScheduleArgs
                    {
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 5,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Days,
                        },
                        RetentionTimes = new[]
                        {
                            "2021-09-29T08:00:00.000Z",
                        },
                    },
                    MonthlySchedule = new AzureNative.RecoveryServices.Inputs.MonthlyRetentionScheduleArgs
                    {
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 60,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Months,
                        },
                        RetentionScheduleFormatType = AzureNative.RecoveryServices.RetentionScheduleFormat.Weekly,
                        RetentionScheduleWeekly = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatArgs
                        {
                            DaysOfTheWeek = new[]
                            {
                                AzureNative.RecoveryServices.DayOfWeek.Sunday,
                            },
                            WeeksOfTheMonth = new[]
                            {
                                AzureNative.RecoveryServices.WeekOfMonth.First,
                            },
                        },
                        RetentionTimes = new[]
                        {
                            "2021-09-29T08:00:00.000Z",
                        },
                    },
                    RetentionPolicyType = "LongTermRetentionPolicy",
                    WeeklySchedule = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionScheduleArgs
                    {
                        DaysOfTheWeek = new[]
                        {
                            AzureNative.RecoveryServices.DayOfWeek.Sunday,
                        },
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 12,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Weeks,
                        },
                        RetentionTimes = new[]
                        {
                            "2021-09-29T08:00:00.000Z",
                        },
                    },
                    YearlySchedule = new AzureNative.RecoveryServices.Inputs.YearlyRetentionScheduleArgs
                    {
                        MonthsOfYear = new[]
                        {
                            AzureNative.RecoveryServices.MonthOfYear.January,
                        },
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 10,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Years,
                        },
                        RetentionScheduleFormatType = AzureNative.RecoveryServices.RetentionScheduleFormat.Weekly,
                        RetentionScheduleWeekly = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatArgs
                        {
                            DaysOfTheWeek = new[]
                            {
                                AzureNative.RecoveryServices.DayOfWeek.Sunday,
                            },
                            WeeksOfTheMonth = new[]
                            {
                                AzureNative.RecoveryServices.WeekOfMonth.First,
                            },
                        },
                        RetentionTimes = new[]
                        {
                            "2021-09-29T08:00:00.000Z",
                        },
                    },
                },
                SchedulePolicy = new AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyArgs
                {
                    SchedulePolicyType = "SimpleSchedulePolicy",
                    ScheduleRunFrequency = AzureNative.RecoveryServices.ScheduleRunType.Daily,
                    ScheduleRunTimes = new[]
                    {
                        "2021-09-29T08:00:00.000Z",
                    },
                },
                TimeZone = "UTC",
                WorkLoadType = AzureNative.RecoveryServices.WorkloadType.AzureFileShare,
            },
            ResourceGroupName = "SwaggerTestRg",
            VaultName = "swaggertestvault",
        });
    
    });
    
    package main
    
    import (
    	recoveryservices "github.com/pulumi/pulumi-azure-native-sdk/recoveryservices/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := recoveryservices.NewProtectionPolicy(ctx, "protectionPolicy", &recoveryservices.ProtectionPolicyArgs{
    			PolicyName: pulumi.String("dailyPolicy2"),
    			Properties: &recoveryservices.AzureFileShareProtectionPolicyArgs{
    				BackupManagementType: pulumi.String("AzureStorage"),
    				RetentionPolicy: recoveryservices.LongTermRetentionPolicy{
    					DailySchedule: recoveryservices.DailyRetentionSchedule{
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        5,
    							DurationType: recoveryservices.RetentionDurationTypeDays,
    						},
    						RetentionTimes: []string{
    							"2021-09-29T08:00:00.000Z",
    						},
    					},
    					MonthlySchedule: recoveryservices.MonthlyRetentionSchedule{
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        60,
    							DurationType: recoveryservices.RetentionDurationTypeMonths,
    						},
    						RetentionScheduleFormatType: recoveryservices.RetentionScheduleFormatWeekly,
    						RetentionScheduleWeekly: recoveryservices.WeeklyRetentionFormat{
    							DaysOfTheWeek: []recoveryservices.DayOfWeek{
    								recoveryservices.DayOfWeekSunday,
    							},
    							WeeksOfTheMonth: []recoveryservices.WeekOfMonth{
    								recoveryservices.WeekOfMonthFirst,
    							},
    						},
    						RetentionTimes: []string{
    							"2021-09-29T08:00:00.000Z",
    						},
    					},
    					RetentionPolicyType: "LongTermRetentionPolicy",
    					WeeklySchedule: recoveryservices.WeeklyRetentionSchedule{
    						DaysOfTheWeek: []recoveryservices.DayOfWeek{
    							recoveryservices.DayOfWeekSunday,
    						},
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        12,
    							DurationType: recoveryservices.RetentionDurationTypeWeeks,
    						},
    						RetentionTimes: []string{
    							"2021-09-29T08:00:00.000Z",
    						},
    					},
    					YearlySchedule: recoveryservices.YearlyRetentionSchedule{
    						MonthsOfYear: []recoveryservices.MonthOfYear{
    							recoveryservices.MonthOfYearJanuary,
    						},
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        10,
    							DurationType: recoveryservices.RetentionDurationTypeYears,
    						},
    						RetentionScheduleFormatType: recoveryservices.RetentionScheduleFormatWeekly,
    						RetentionScheduleWeekly: recoveryservices.WeeklyRetentionFormat{
    							DaysOfTheWeek: []recoveryservices.DayOfWeek{
    								recoveryservices.DayOfWeekSunday,
    							},
    							WeeksOfTheMonth: []recoveryservices.WeekOfMonth{
    								recoveryservices.WeekOfMonthFirst,
    							},
    						},
    						RetentionTimes: []string{
    							"2021-09-29T08:00:00.000Z",
    						},
    					},
    				},
    				SchedulePolicy: recoveryservices.SimpleSchedulePolicy{
    					SchedulePolicyType:   "SimpleSchedulePolicy",
    					ScheduleRunFrequency: recoveryservices.ScheduleRunTypeDaily,
    					ScheduleRunTimes: []string{
    						"2021-09-29T08:00:00.000Z",
    					},
    				},
    				TimeZone:     pulumi.String("UTC"),
    				WorkLoadType: pulumi.String(recoveryservices.WorkloadTypeAzureFileShare),
    			},
    			ResourceGroupName: pulumi.String("SwaggerTestRg"),
    			VaultName:         pulumi.String("swaggertestvault"),
    		})
    		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.recoveryservices.ProtectionPolicy;
    import com.pulumi.azurenative.recoveryservices.ProtectionPolicyArgs;
    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 protectionPolicy = new ProtectionPolicy("protectionPolicy", ProtectionPolicyArgs.builder()
                .policyName("dailyPolicy2")
                .properties(AzureFileShareProtectionPolicyArgs.builder()
                    .backupManagementType("AzureStorage")
                    .retentionPolicy(LongTermRetentionPolicyArgs.builder()
                        .dailySchedule(DailyRetentionScheduleArgs.builder()
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(5)
                                .durationType("Days")
                                .build())
                            .retentionTimes("2021-09-29T08:00:00.000Z")
                            .build())
                        .monthlySchedule(MonthlyRetentionScheduleArgs.builder()
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(60)
                                .durationType("Months")
                                .build())
                            .retentionScheduleFormatType("Weekly")
                            .retentionScheduleWeekly(WeeklyRetentionFormatArgs.builder()
                                .daysOfTheWeek("Sunday")
                                .weeksOfTheMonth("First")
                                .build())
                            .retentionTimes("2021-09-29T08:00:00.000Z")
                            .build())
                        .retentionPolicyType("LongTermRetentionPolicy")
                        .weeklySchedule(WeeklyRetentionScheduleArgs.builder()
                            .daysOfTheWeek("Sunday")
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(12)
                                .durationType("Weeks")
                                .build())
                            .retentionTimes("2021-09-29T08:00:00.000Z")
                            .build())
                        .yearlySchedule(YearlyRetentionScheduleArgs.builder()
                            .monthsOfYear("January")
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(10)
                                .durationType("Years")
                                .build())
                            .retentionScheduleFormatType("Weekly")
                            .retentionScheduleWeekly(WeeklyRetentionFormatArgs.builder()
                                .daysOfTheWeek("Sunday")
                                .weeksOfTheMonth("First")
                                .build())
                            .retentionTimes("2021-09-29T08:00:00.000Z")
                            .build())
                        .build())
                    .schedulePolicy(SimpleSchedulePolicyArgs.builder()
                        .schedulePolicyType("SimpleSchedulePolicy")
                        .scheduleRunFrequency("Daily")
                        .scheduleRunTimes("2021-09-29T08:00:00.000Z")
                        .build())
                    .timeZone("UTC")
                    .workLoadType("AzureFileShare")
                    .build())
                .resourceGroupName("SwaggerTestRg")
                .vaultName("swaggertestvault")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    protection_policy = azure_native.recoveryservices.ProtectionPolicy("protectionPolicy",
        policy_name="dailyPolicy2",
        properties={
            "backup_management_type": "AzureStorage",
            "retention_policy": {
                "daily_schedule": {
                    "retention_duration": {
                        "count": 5,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.DAYS,
                    },
                    "retention_times": ["2021-09-29T08:00:00.000Z"],
                },
                "monthly_schedule": {
                    "retention_duration": {
                        "count": 60,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.MONTHS,
                    },
                    "retention_schedule_format_type": azure_native.recoveryservices.RetentionScheduleFormat.WEEKLY,
                    "retention_schedule_weekly": {
                        "days_of_the_week": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                        "weeks_of_the_month": [azure_native.recoveryservices.WeekOfMonth.FIRST],
                    },
                    "retention_times": ["2021-09-29T08:00:00.000Z"],
                },
                "retention_policy_type": "LongTermRetentionPolicy",
                "weekly_schedule": {
                    "days_of_the_week": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                    "retention_duration": {
                        "count": 12,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.WEEKS,
                    },
                    "retention_times": ["2021-09-29T08:00:00.000Z"],
                },
                "yearly_schedule": {
                    "months_of_year": [azure_native.recoveryservices.MonthOfYear.JANUARY],
                    "retention_duration": {
                        "count": 10,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.YEARS,
                    },
                    "retention_schedule_format_type": azure_native.recoveryservices.RetentionScheduleFormat.WEEKLY,
                    "retention_schedule_weekly": {
                        "days_of_the_week": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                        "weeks_of_the_month": [azure_native.recoveryservices.WeekOfMonth.FIRST],
                    },
                    "retention_times": ["2021-09-29T08:00:00.000Z"],
                },
            },
            "schedule_policy": {
                "schedule_policy_type": "SimpleSchedulePolicy",
                "schedule_run_frequency": azure_native.recoveryservices.ScheduleRunType.DAILY,
                "schedule_run_times": ["2021-09-29T08:00:00.000Z"],
            },
            "time_zone": "UTC",
            "work_load_type": azure_native.recoveryservices.WorkloadType.AZURE_FILE_SHARE,
        },
        resource_group_name="SwaggerTestRg",
        vault_name="swaggertestvault")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const protectionPolicy = new azure_native.recoveryservices.ProtectionPolicy("protectionPolicy", {
        policyName: "dailyPolicy2",
        properties: {
            backupManagementType: "AzureStorage",
            retentionPolicy: {
                dailySchedule: {
                    retentionDuration: {
                        count: 5,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Days,
                    },
                    retentionTimes: ["2021-09-29T08:00:00.000Z"],
                },
                monthlySchedule: {
                    retentionDuration: {
                        count: 60,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Months,
                    },
                    retentionScheduleFormatType: azure_native.recoveryservices.RetentionScheduleFormat.Weekly,
                    retentionScheduleWeekly: {
                        daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                        weeksOfTheMonth: [azure_native.recoveryservices.WeekOfMonth.First],
                    },
                    retentionTimes: ["2021-09-29T08:00:00.000Z"],
                },
                retentionPolicyType: "LongTermRetentionPolicy",
                weeklySchedule: {
                    daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                    retentionDuration: {
                        count: 12,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Weeks,
                    },
                    retentionTimes: ["2021-09-29T08:00:00.000Z"],
                },
                yearlySchedule: {
                    monthsOfYear: [azure_native.recoveryservices.MonthOfYear.January],
                    retentionDuration: {
                        count: 10,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Years,
                    },
                    retentionScheduleFormatType: azure_native.recoveryservices.RetentionScheduleFormat.Weekly,
                    retentionScheduleWeekly: {
                        daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                        weeksOfTheMonth: [azure_native.recoveryservices.WeekOfMonth.First],
                    },
                    retentionTimes: ["2021-09-29T08:00:00.000Z"],
                },
            },
            schedulePolicy: {
                schedulePolicyType: "SimpleSchedulePolicy",
                scheduleRunFrequency: azure_native.recoveryservices.ScheduleRunType.Daily,
                scheduleRunTimes: ["2021-09-29T08:00:00.000Z"],
            },
            timeZone: "UTC",
            workLoadType: azure_native.recoveryservices.WorkloadType.AzureFileShare,
        },
        resourceGroupName: "SwaggerTestRg",
        vaultName: "swaggertestvault",
    });
    
    resources:
      protectionPolicy:
        type: azure-native:recoveryservices:ProtectionPolicy
        properties:
          policyName: dailyPolicy2
          properties:
            backupManagementType: AzureStorage
            retentionPolicy:
              dailySchedule:
                retentionDuration:
                  count: 5
                  durationType: Days
                retentionTimes:
                  - 2021-09-29T08:00:00.000Z
              monthlySchedule:
                retentionDuration:
                  count: 60
                  durationType: Months
                retentionScheduleFormatType: Weekly
                retentionScheduleWeekly:
                  daysOfTheWeek:
                    - Sunday
                  weeksOfTheMonth:
                    - First
                retentionTimes:
                  - 2021-09-29T08:00:00.000Z
              retentionPolicyType: LongTermRetentionPolicy
              weeklySchedule:
                daysOfTheWeek:
                  - Sunday
                retentionDuration:
                  count: 12
                  durationType: Weeks
                retentionTimes:
                  - 2021-09-29T08:00:00.000Z
              yearlySchedule:
                monthsOfYear:
                  - January
                retentionDuration:
                  count: 10
                  durationType: Years
                retentionScheduleFormatType: Weekly
                retentionScheduleWeekly:
                  daysOfTheWeek:
                    - Sunday
                  weeksOfTheMonth:
                    - First
                retentionTimes:
                  - 2021-09-29T08:00:00.000Z
            schedulePolicy:
              schedulePolicyType: SimpleSchedulePolicy
              scheduleRunFrequency: Daily
              scheduleRunTimes:
                - 2021-09-29T08:00:00.000Z
            timeZone: UTC
            workLoadType: AzureFileShare
          resourceGroupName: SwaggerTestRg
          vaultName: swaggertestvault
    

    Create or Update Enhanced Azure Vm Protection Policy with Hourly backup

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var protectionPolicy = new AzureNative.RecoveryServices.ProtectionPolicy("protectionPolicy", new()
        {
            PolicyName = "v2-daily-sample",
            Properties = new AzureNative.RecoveryServices.Inputs.AzureIaaSVMProtectionPolicyArgs
            {
                BackupManagementType = "AzureIaasVM",
                InstantRpRetentionRangeInDays = 30,
                PolicyType = AzureNative.RecoveryServices.IAASVMPolicyType.V2,
                RetentionPolicy = new AzureNative.RecoveryServices.Inputs.LongTermRetentionPolicyArgs
                {
                    DailySchedule = new AzureNative.RecoveryServices.Inputs.DailyRetentionScheduleArgs
                    {
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 180,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Days,
                        },
                        RetentionTimes = new[]
                        {
                            "2021-12-17T08:00:00+00:00",
                        },
                    },
                    MonthlySchedule = new AzureNative.RecoveryServices.Inputs.MonthlyRetentionScheduleArgs
                    {
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 60,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Months,
                        },
                        RetentionScheduleFormatType = AzureNative.RecoveryServices.RetentionScheduleFormat.Weekly,
                        RetentionScheduleWeekly = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatArgs
                        {
                            DaysOfTheWeek = new[]
                            {
                                AzureNative.RecoveryServices.DayOfWeek.Sunday,
                            },
                            WeeksOfTheMonth = new[]
                            {
                                AzureNative.RecoveryServices.WeekOfMonth.First,
                            },
                        },
                        RetentionTimes = new[]
                        {
                            "2021-12-17T08:00:00+00:00",
                        },
                    },
                    RetentionPolicyType = "LongTermRetentionPolicy",
                    WeeklySchedule = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionScheduleArgs
                    {
                        DaysOfTheWeek = new[]
                        {
                            AzureNative.RecoveryServices.DayOfWeek.Sunday,
                        },
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 12,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Weeks,
                        },
                        RetentionTimes = new[]
                        {
                            "2021-12-17T08:00:00+00:00",
                        },
                    },
                    YearlySchedule = new AzureNative.RecoveryServices.Inputs.YearlyRetentionScheduleArgs
                    {
                        MonthsOfYear = new[]
                        {
                            AzureNative.RecoveryServices.MonthOfYear.January,
                        },
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 10,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Years,
                        },
                        RetentionScheduleFormatType = AzureNative.RecoveryServices.RetentionScheduleFormat.Weekly,
                        RetentionScheduleWeekly = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatArgs
                        {
                            DaysOfTheWeek = new[]
                            {
                                AzureNative.RecoveryServices.DayOfWeek.Sunday,
                            },
                            WeeksOfTheMonth = new[]
                            {
                                AzureNative.RecoveryServices.WeekOfMonth.First,
                            },
                        },
                        RetentionTimes = new[]
                        {
                            "2021-12-17T08:00:00+00:00",
                        },
                    },
                },
                SchedulePolicy = new AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyV2Args
                {
                    HourlySchedule = new AzureNative.RecoveryServices.Inputs.HourlyScheduleArgs
                    {
                        Interval = 4,
                        ScheduleWindowDuration = 16,
                        ScheduleWindowStartTime = "2021-12-17T08:00:00Z",
                    },
                    SchedulePolicyType = "SimpleSchedulePolicyV2",
                    ScheduleRunFrequency = AzureNative.RecoveryServices.ScheduleRunType.Hourly,
                },
                TimeZone = "India Standard Time",
            },
            ResourceGroupName = "SwaggerTestRg",
            VaultName = "NetSDKTestRsVault",
        });
    
    });
    
    package main
    
    import (
    	recoveryservices "github.com/pulumi/pulumi-azure-native-sdk/recoveryservices/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := recoveryservices.NewProtectionPolicy(ctx, "protectionPolicy", &recoveryservices.ProtectionPolicyArgs{
    			PolicyName: pulumi.String("v2-daily-sample"),
    			Properties: &recoveryservices.AzureIaaSVMProtectionPolicyArgs{
    				BackupManagementType:          pulumi.String("AzureIaasVM"),
    				InstantRpRetentionRangeInDays: pulumi.Int(30),
    				PolicyType:                    pulumi.String(recoveryservices.IAASVMPolicyTypeV2),
    				RetentionPolicy: recoveryservices.LongTermRetentionPolicy{
    					DailySchedule: recoveryservices.DailyRetentionSchedule{
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        180,
    							DurationType: recoveryservices.RetentionDurationTypeDays,
    						},
    						RetentionTimes: []string{
    							"2021-12-17T08:00:00+00:00",
    						},
    					},
    					MonthlySchedule: recoveryservices.MonthlyRetentionSchedule{
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        60,
    							DurationType: recoveryservices.RetentionDurationTypeMonths,
    						},
    						RetentionScheduleFormatType: recoveryservices.RetentionScheduleFormatWeekly,
    						RetentionScheduleWeekly: recoveryservices.WeeklyRetentionFormat{
    							DaysOfTheWeek: []recoveryservices.DayOfWeek{
    								recoveryservices.DayOfWeekSunday,
    							},
    							WeeksOfTheMonth: []recoveryservices.WeekOfMonth{
    								recoveryservices.WeekOfMonthFirst,
    							},
    						},
    						RetentionTimes: []string{
    							"2021-12-17T08:00:00+00:00",
    						},
    					},
    					RetentionPolicyType: "LongTermRetentionPolicy",
    					WeeklySchedule: recoveryservices.WeeklyRetentionSchedule{
    						DaysOfTheWeek: []recoveryservices.DayOfWeek{
    							recoveryservices.DayOfWeekSunday,
    						},
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        12,
    							DurationType: recoveryservices.RetentionDurationTypeWeeks,
    						},
    						RetentionTimes: []string{
    							"2021-12-17T08:00:00+00:00",
    						},
    					},
    					YearlySchedule: recoveryservices.YearlyRetentionSchedule{
    						MonthsOfYear: []recoveryservices.MonthOfYear{
    							recoveryservices.MonthOfYearJanuary,
    						},
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        10,
    							DurationType: recoveryservices.RetentionDurationTypeYears,
    						},
    						RetentionScheduleFormatType: recoveryservices.RetentionScheduleFormatWeekly,
    						RetentionScheduleWeekly: recoveryservices.WeeklyRetentionFormat{
    							DaysOfTheWeek: []recoveryservices.DayOfWeek{
    								recoveryservices.DayOfWeekSunday,
    							},
    							WeeksOfTheMonth: []recoveryservices.WeekOfMonth{
    								recoveryservices.WeekOfMonthFirst,
    							},
    						},
    						RetentionTimes: []string{
    							"2021-12-17T08:00:00+00:00",
    						},
    					},
    				},
    				SchedulePolicy: recoveryservices.SimpleSchedulePolicyV2{
    					HourlySchedule: recoveryservices.HourlySchedule{
    						Interval:                4,
    						ScheduleWindowDuration:  16,
    						ScheduleWindowStartTime: "2021-12-17T08:00:00Z",
    					},
    					SchedulePolicyType:   "SimpleSchedulePolicyV2",
    					ScheduleRunFrequency: recoveryservices.ScheduleRunTypeHourly,
    				},
    				TimeZone: pulumi.String("India Standard Time"),
    			},
    			ResourceGroupName: pulumi.String("SwaggerTestRg"),
    			VaultName:         pulumi.String("NetSDKTestRsVault"),
    		})
    		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.recoveryservices.ProtectionPolicy;
    import com.pulumi.azurenative.recoveryservices.ProtectionPolicyArgs;
    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 protectionPolicy = new ProtectionPolicy("protectionPolicy", ProtectionPolicyArgs.builder()
                .policyName("v2-daily-sample")
                .properties(AzureFileShareProtectionPolicyArgs.builder()
                    .backupManagementType("AzureIaasVM")
                    .instantRpRetentionRangeInDays(30)
                    .policyType("V2")
                    .retentionPolicy(LongTermRetentionPolicyArgs.builder()
                        .dailySchedule(DailyRetentionScheduleArgs.builder()
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(180)
                                .durationType("Days")
                                .build())
                            .retentionTimes("2021-12-17T08:00:00+00:00")
                            .build())
                        .monthlySchedule(MonthlyRetentionScheduleArgs.builder()
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(60)
                                .durationType("Months")
                                .build())
                            .retentionScheduleFormatType("Weekly")
                            .retentionScheduleWeekly(WeeklyRetentionFormatArgs.builder()
                                .daysOfTheWeek("Sunday")
                                .weeksOfTheMonth("First")
                                .build())
                            .retentionTimes("2021-12-17T08:00:00+00:00")
                            .build())
                        .retentionPolicyType("LongTermRetentionPolicy")
                        .weeklySchedule(WeeklyRetentionScheduleArgs.builder()
                            .daysOfTheWeek("Sunday")
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(12)
                                .durationType("Weeks")
                                .build())
                            .retentionTimes("2021-12-17T08:00:00+00:00")
                            .build())
                        .yearlySchedule(YearlyRetentionScheduleArgs.builder()
                            .monthsOfYear("January")
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(10)
                                .durationType("Years")
                                .build())
                            .retentionScheduleFormatType("Weekly")
                            .retentionScheduleWeekly(WeeklyRetentionFormatArgs.builder()
                                .daysOfTheWeek("Sunday")
                                .weeksOfTheMonth("First")
                                .build())
                            .retentionTimes("2021-12-17T08:00:00+00:00")
                            .build())
                        .build())
                    .schedulePolicy(SimpleSchedulePolicyV2Args.builder()
                        .hourlySchedule(HourlyScheduleArgs.builder()
                            .interval(4)
                            .scheduleWindowDuration(16)
                            .scheduleWindowStartTime("2021-12-17T08:00:00Z")
                            .build())
                        .schedulePolicyType("SimpleSchedulePolicyV2")
                        .scheduleRunFrequency("Hourly")
                        .build())
                    .timeZone("India Standard Time")
                    .build())
                .resourceGroupName("SwaggerTestRg")
                .vaultName("NetSDKTestRsVault")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    protection_policy = azure_native.recoveryservices.ProtectionPolicy("protectionPolicy",
        policy_name="v2-daily-sample",
        properties={
            "backup_management_type": "AzureIaasVM",
            "instant_rp_retention_range_in_days": 30,
            "policy_type": azure_native.recoveryservices.IAASVMPolicyType.V2,
            "retention_policy": {
                "daily_schedule": {
                    "retention_duration": {
                        "count": 180,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.DAYS,
                    },
                    "retention_times": ["2021-12-17T08:00:00+00:00"],
                },
                "monthly_schedule": {
                    "retention_duration": {
                        "count": 60,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.MONTHS,
                    },
                    "retention_schedule_format_type": azure_native.recoveryservices.RetentionScheduleFormat.WEEKLY,
                    "retention_schedule_weekly": {
                        "days_of_the_week": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                        "weeks_of_the_month": [azure_native.recoveryservices.WeekOfMonth.FIRST],
                    },
                    "retention_times": ["2021-12-17T08:00:00+00:00"],
                },
                "retention_policy_type": "LongTermRetentionPolicy",
                "weekly_schedule": {
                    "days_of_the_week": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                    "retention_duration": {
                        "count": 12,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.WEEKS,
                    },
                    "retention_times": ["2021-12-17T08:00:00+00:00"],
                },
                "yearly_schedule": {
                    "months_of_year": [azure_native.recoveryservices.MonthOfYear.JANUARY],
                    "retention_duration": {
                        "count": 10,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.YEARS,
                    },
                    "retention_schedule_format_type": azure_native.recoveryservices.RetentionScheduleFormat.WEEKLY,
                    "retention_schedule_weekly": {
                        "days_of_the_week": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                        "weeks_of_the_month": [azure_native.recoveryservices.WeekOfMonth.FIRST],
                    },
                    "retention_times": ["2021-12-17T08:00:00+00:00"],
                },
            },
            "schedule_policy": {
                "hourly_schedule": {
                    "interval": 4,
                    "schedule_window_duration": 16,
                    "schedule_window_start_time": "2021-12-17T08:00:00Z",
                },
                "schedule_policy_type": "SimpleSchedulePolicyV2",
                "schedule_run_frequency": azure_native.recoveryservices.ScheduleRunType.HOURLY,
            },
            "time_zone": "India Standard Time",
        },
        resource_group_name="SwaggerTestRg",
        vault_name="NetSDKTestRsVault")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const protectionPolicy = new azure_native.recoveryservices.ProtectionPolicy("protectionPolicy", {
        policyName: "v2-daily-sample",
        properties: {
            backupManagementType: "AzureIaasVM",
            instantRpRetentionRangeInDays: 30,
            policyType: azure_native.recoveryservices.IAASVMPolicyType.V2,
            retentionPolicy: {
                dailySchedule: {
                    retentionDuration: {
                        count: 180,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Days,
                    },
                    retentionTimes: ["2021-12-17T08:00:00+00:00"],
                },
                monthlySchedule: {
                    retentionDuration: {
                        count: 60,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Months,
                    },
                    retentionScheduleFormatType: azure_native.recoveryservices.RetentionScheduleFormat.Weekly,
                    retentionScheduleWeekly: {
                        daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                        weeksOfTheMonth: [azure_native.recoveryservices.WeekOfMonth.First],
                    },
                    retentionTimes: ["2021-12-17T08:00:00+00:00"],
                },
                retentionPolicyType: "LongTermRetentionPolicy",
                weeklySchedule: {
                    daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                    retentionDuration: {
                        count: 12,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Weeks,
                    },
                    retentionTimes: ["2021-12-17T08:00:00+00:00"],
                },
                yearlySchedule: {
                    monthsOfYear: [azure_native.recoveryservices.MonthOfYear.January],
                    retentionDuration: {
                        count: 10,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Years,
                    },
                    retentionScheduleFormatType: azure_native.recoveryservices.RetentionScheduleFormat.Weekly,
                    retentionScheduleWeekly: {
                        daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                        weeksOfTheMonth: [azure_native.recoveryservices.WeekOfMonth.First],
                    },
                    retentionTimes: ["2021-12-17T08:00:00+00:00"],
                },
            },
            schedulePolicy: {
                hourlySchedule: {
                    interval: 4,
                    scheduleWindowDuration: 16,
                    scheduleWindowStartTime: "2021-12-17T08:00:00Z",
                },
                schedulePolicyType: "SimpleSchedulePolicyV2",
                scheduleRunFrequency: azure_native.recoveryservices.ScheduleRunType.Hourly,
            },
            timeZone: "India Standard Time",
        },
        resourceGroupName: "SwaggerTestRg",
        vaultName: "NetSDKTestRsVault",
    });
    
    resources:
      protectionPolicy:
        type: azure-native:recoveryservices:ProtectionPolicy
        properties:
          policyName: v2-daily-sample
          properties:
            backupManagementType: AzureIaasVM
            instantRpRetentionRangeInDays: 30
            policyType: V2
            retentionPolicy:
              dailySchedule:
                retentionDuration:
                  count: 180
                  durationType: Days
                retentionTimes:
                  - 2021-12-17T08:00:00+00:00
              monthlySchedule:
                retentionDuration:
                  count: 60
                  durationType: Months
                retentionScheduleFormatType: Weekly
                retentionScheduleWeekly:
                  daysOfTheWeek:
                    - Sunday
                  weeksOfTheMonth:
                    - First
                retentionTimes:
                  - 2021-12-17T08:00:00+00:00
              retentionPolicyType: LongTermRetentionPolicy
              weeklySchedule:
                daysOfTheWeek:
                  - Sunday
                retentionDuration:
                  count: 12
                  durationType: Weeks
                retentionTimes:
                  - 2021-12-17T08:00:00+00:00
              yearlySchedule:
                monthsOfYear:
                  - January
                retentionDuration:
                  count: 10
                  durationType: Years
                retentionScheduleFormatType: Weekly
                retentionScheduleWeekly:
                  daysOfTheWeek:
                    - Sunday
                  weeksOfTheMonth:
                    - First
                retentionTimes:
                  - 2021-12-17T08:00:00+00:00
            schedulePolicy:
              hourlySchedule:
                interval: 4
                scheduleWindowDuration: 16
                scheduleWindowStartTime: 2021-12-17T08:00:00Z
              schedulePolicyType: SimpleSchedulePolicyV2
              scheduleRunFrequency: Hourly
            timeZone: India Standard Time
          resourceGroupName: SwaggerTestRg
          vaultName: NetSDKTestRsVault
    

    Create or Update Enhanced Azure Vm Protection Policy with daily backup

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var protectionPolicy = new AzureNative.RecoveryServices.ProtectionPolicy("protectionPolicy", new()
        {
            PolicyName = "v2-daily-sample",
            Properties = new AzureNative.RecoveryServices.Inputs.AzureIaaSVMProtectionPolicyArgs
            {
                BackupManagementType = "AzureIaasVM",
                InstantRpRetentionRangeInDays = 30,
                PolicyType = AzureNative.RecoveryServices.IAASVMPolicyType.V2,
                RetentionPolicy = new AzureNative.RecoveryServices.Inputs.LongTermRetentionPolicyArgs
                {
                    DailySchedule = new AzureNative.RecoveryServices.Inputs.DailyRetentionScheduleArgs
                    {
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 180,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Days,
                        },
                        RetentionTimes = new[]
                        {
                            "2021-12-17T08:00:00+00:00",
                        },
                    },
                    MonthlySchedule = new AzureNative.RecoveryServices.Inputs.MonthlyRetentionScheduleArgs
                    {
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 60,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Months,
                        },
                        RetentionScheduleFormatType = AzureNative.RecoveryServices.RetentionScheduleFormat.Weekly,
                        RetentionScheduleWeekly = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatArgs
                        {
                            DaysOfTheWeek = new[]
                            {
                                AzureNative.RecoveryServices.DayOfWeek.Sunday,
                            },
                            WeeksOfTheMonth = new[]
                            {
                                AzureNative.RecoveryServices.WeekOfMonth.First,
                            },
                        },
                        RetentionTimes = new[]
                        {
                            "2021-12-17T08:00:00+00:00",
                        },
                    },
                    RetentionPolicyType = "LongTermRetentionPolicy",
                    WeeklySchedule = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionScheduleArgs
                    {
                        DaysOfTheWeek = new[]
                        {
                            AzureNative.RecoveryServices.DayOfWeek.Sunday,
                        },
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 12,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Weeks,
                        },
                        RetentionTimes = new[]
                        {
                            "2021-12-17T08:00:00+00:00",
                        },
                    },
                    YearlySchedule = new AzureNative.RecoveryServices.Inputs.YearlyRetentionScheduleArgs
                    {
                        MonthsOfYear = new[]
                        {
                            AzureNative.RecoveryServices.MonthOfYear.January,
                        },
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 10,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Years,
                        },
                        RetentionScheduleFormatType = AzureNative.RecoveryServices.RetentionScheduleFormat.Weekly,
                        RetentionScheduleWeekly = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatArgs
                        {
                            DaysOfTheWeek = new[]
                            {
                                AzureNative.RecoveryServices.DayOfWeek.Sunday,
                            },
                            WeeksOfTheMonth = new[]
                            {
                                AzureNative.RecoveryServices.WeekOfMonth.First,
                            },
                        },
                        RetentionTimes = new[]
                        {
                            "2021-12-17T08:00:00+00:00",
                        },
                    },
                },
                SchedulePolicy = new AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyV2Args
                {
                    DailySchedule = new AzureNative.RecoveryServices.Inputs.DailyScheduleArgs
                    {
                        ScheduleRunTimes = new[]
                        {
                            "2018-01-24T10:00:00Z",
                        },
                    },
                    SchedulePolicyType = "SimpleSchedulePolicyV2",
                    ScheduleRunFrequency = AzureNative.RecoveryServices.ScheduleRunType.Daily,
                },
                TimeZone = "India Standard Time",
            },
            ResourceGroupName = "SwaggerTestRg",
            VaultName = "NetSDKTestRsVault",
        });
    
    });
    
    package main
    
    import (
    	recoveryservices "github.com/pulumi/pulumi-azure-native-sdk/recoveryservices/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := recoveryservices.NewProtectionPolicy(ctx, "protectionPolicy", &recoveryservices.ProtectionPolicyArgs{
    			PolicyName: pulumi.String("v2-daily-sample"),
    			Properties: &recoveryservices.AzureIaaSVMProtectionPolicyArgs{
    				BackupManagementType:          pulumi.String("AzureIaasVM"),
    				InstantRpRetentionRangeInDays: pulumi.Int(30),
    				PolicyType:                    pulumi.String(recoveryservices.IAASVMPolicyTypeV2),
    				RetentionPolicy: recoveryservices.LongTermRetentionPolicy{
    					DailySchedule: recoveryservices.DailyRetentionSchedule{
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        180,
    							DurationType: recoveryservices.RetentionDurationTypeDays,
    						},
    						RetentionTimes: []string{
    							"2021-12-17T08:00:00+00:00",
    						},
    					},
    					MonthlySchedule: recoveryservices.MonthlyRetentionSchedule{
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        60,
    							DurationType: recoveryservices.RetentionDurationTypeMonths,
    						},
    						RetentionScheduleFormatType: recoveryservices.RetentionScheduleFormatWeekly,
    						RetentionScheduleWeekly: recoveryservices.WeeklyRetentionFormat{
    							DaysOfTheWeek: []recoveryservices.DayOfWeek{
    								recoveryservices.DayOfWeekSunday,
    							},
    							WeeksOfTheMonth: []recoveryservices.WeekOfMonth{
    								recoveryservices.WeekOfMonthFirst,
    							},
    						},
    						RetentionTimes: []string{
    							"2021-12-17T08:00:00+00:00",
    						},
    					},
    					RetentionPolicyType: "LongTermRetentionPolicy",
    					WeeklySchedule: recoveryservices.WeeklyRetentionSchedule{
    						DaysOfTheWeek: []recoveryservices.DayOfWeek{
    							recoveryservices.DayOfWeekSunday,
    						},
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        12,
    							DurationType: recoveryservices.RetentionDurationTypeWeeks,
    						},
    						RetentionTimes: []string{
    							"2021-12-17T08:00:00+00:00",
    						},
    					},
    					YearlySchedule: recoveryservices.YearlyRetentionSchedule{
    						MonthsOfYear: []recoveryservices.MonthOfYear{
    							recoveryservices.MonthOfYearJanuary,
    						},
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        10,
    							DurationType: recoveryservices.RetentionDurationTypeYears,
    						},
    						RetentionScheduleFormatType: recoveryservices.RetentionScheduleFormatWeekly,
    						RetentionScheduleWeekly: recoveryservices.WeeklyRetentionFormat{
    							DaysOfTheWeek: []recoveryservices.DayOfWeek{
    								recoveryservices.DayOfWeekSunday,
    							},
    							WeeksOfTheMonth: []recoveryservices.WeekOfMonth{
    								recoveryservices.WeekOfMonthFirst,
    							},
    						},
    						RetentionTimes: []string{
    							"2021-12-17T08:00:00+00:00",
    						},
    					},
    				},
    				SchedulePolicy: recoveryservices.SimpleSchedulePolicyV2{
    					DailySchedule: recoveryservices.DailySchedule{
    						ScheduleRunTimes: []string{
    							"2018-01-24T10:00:00Z",
    						},
    					},
    					SchedulePolicyType:   "SimpleSchedulePolicyV2",
    					ScheduleRunFrequency: recoveryservices.ScheduleRunTypeDaily,
    				},
    				TimeZone: pulumi.String("India Standard Time"),
    			},
    			ResourceGroupName: pulumi.String("SwaggerTestRg"),
    			VaultName:         pulumi.String("NetSDKTestRsVault"),
    		})
    		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.recoveryservices.ProtectionPolicy;
    import com.pulumi.azurenative.recoveryservices.ProtectionPolicyArgs;
    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 protectionPolicy = new ProtectionPolicy("protectionPolicy", ProtectionPolicyArgs.builder()
                .policyName("v2-daily-sample")
                .properties(AzureFileShareProtectionPolicyArgs.builder()
                    .backupManagementType("AzureIaasVM")
                    .instantRpRetentionRangeInDays(30)
                    .policyType("V2")
                    .retentionPolicy(LongTermRetentionPolicyArgs.builder()
                        .dailySchedule(DailyRetentionScheduleArgs.builder()
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(180)
                                .durationType("Days")
                                .build())
                            .retentionTimes("2021-12-17T08:00:00+00:00")
                            .build())
                        .monthlySchedule(MonthlyRetentionScheduleArgs.builder()
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(60)
                                .durationType("Months")
                                .build())
                            .retentionScheduleFormatType("Weekly")
                            .retentionScheduleWeekly(WeeklyRetentionFormatArgs.builder()
                                .daysOfTheWeek("Sunday")
                                .weeksOfTheMonth("First")
                                .build())
                            .retentionTimes("2021-12-17T08:00:00+00:00")
                            .build())
                        .retentionPolicyType("LongTermRetentionPolicy")
                        .weeklySchedule(WeeklyRetentionScheduleArgs.builder()
                            .daysOfTheWeek("Sunday")
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(12)
                                .durationType("Weeks")
                                .build())
                            .retentionTimes("2021-12-17T08:00:00+00:00")
                            .build())
                        .yearlySchedule(YearlyRetentionScheduleArgs.builder()
                            .monthsOfYear("January")
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(10)
                                .durationType("Years")
                                .build())
                            .retentionScheduleFormatType("Weekly")
                            .retentionScheduleWeekly(WeeklyRetentionFormatArgs.builder()
                                .daysOfTheWeek("Sunday")
                                .weeksOfTheMonth("First")
                                .build())
                            .retentionTimes("2021-12-17T08:00:00+00:00")
                            .build())
                        .build())
                    .schedulePolicy(SimpleSchedulePolicyV2Args.builder()
                        .dailySchedule(DailyScheduleArgs.builder()
                            .scheduleRunTimes("2018-01-24T10:00:00Z")
                            .build())
                        .schedulePolicyType("SimpleSchedulePolicyV2")
                        .scheduleRunFrequency("Daily")
                        .build())
                    .timeZone("India Standard Time")
                    .build())
                .resourceGroupName("SwaggerTestRg")
                .vaultName("NetSDKTestRsVault")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    protection_policy = azure_native.recoveryservices.ProtectionPolicy("protectionPolicy",
        policy_name="v2-daily-sample",
        properties={
            "backup_management_type": "AzureIaasVM",
            "instant_rp_retention_range_in_days": 30,
            "policy_type": azure_native.recoveryservices.IAASVMPolicyType.V2,
            "retention_policy": {
                "daily_schedule": {
                    "retention_duration": {
                        "count": 180,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.DAYS,
                    },
                    "retention_times": ["2021-12-17T08:00:00+00:00"],
                },
                "monthly_schedule": {
                    "retention_duration": {
                        "count": 60,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.MONTHS,
                    },
                    "retention_schedule_format_type": azure_native.recoveryservices.RetentionScheduleFormat.WEEKLY,
                    "retention_schedule_weekly": {
                        "days_of_the_week": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                        "weeks_of_the_month": [azure_native.recoveryservices.WeekOfMonth.FIRST],
                    },
                    "retention_times": ["2021-12-17T08:00:00+00:00"],
                },
                "retention_policy_type": "LongTermRetentionPolicy",
                "weekly_schedule": {
                    "days_of_the_week": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                    "retention_duration": {
                        "count": 12,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.WEEKS,
                    },
                    "retention_times": ["2021-12-17T08:00:00+00:00"],
                },
                "yearly_schedule": {
                    "months_of_year": [azure_native.recoveryservices.MonthOfYear.JANUARY],
                    "retention_duration": {
                        "count": 10,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.YEARS,
                    },
                    "retention_schedule_format_type": azure_native.recoveryservices.RetentionScheduleFormat.WEEKLY,
                    "retention_schedule_weekly": {
                        "days_of_the_week": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                        "weeks_of_the_month": [azure_native.recoveryservices.WeekOfMonth.FIRST],
                    },
                    "retention_times": ["2021-12-17T08:00:00+00:00"],
                },
            },
            "schedule_policy": {
                "daily_schedule": {
                    "schedule_run_times": ["2018-01-24T10:00:00Z"],
                },
                "schedule_policy_type": "SimpleSchedulePolicyV2",
                "schedule_run_frequency": azure_native.recoveryservices.ScheduleRunType.DAILY,
            },
            "time_zone": "India Standard Time",
        },
        resource_group_name="SwaggerTestRg",
        vault_name="NetSDKTestRsVault")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const protectionPolicy = new azure_native.recoveryservices.ProtectionPolicy("protectionPolicy", {
        policyName: "v2-daily-sample",
        properties: {
            backupManagementType: "AzureIaasVM",
            instantRpRetentionRangeInDays: 30,
            policyType: azure_native.recoveryservices.IAASVMPolicyType.V2,
            retentionPolicy: {
                dailySchedule: {
                    retentionDuration: {
                        count: 180,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Days,
                    },
                    retentionTimes: ["2021-12-17T08:00:00+00:00"],
                },
                monthlySchedule: {
                    retentionDuration: {
                        count: 60,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Months,
                    },
                    retentionScheduleFormatType: azure_native.recoveryservices.RetentionScheduleFormat.Weekly,
                    retentionScheduleWeekly: {
                        daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                        weeksOfTheMonth: [azure_native.recoveryservices.WeekOfMonth.First],
                    },
                    retentionTimes: ["2021-12-17T08:00:00+00:00"],
                },
                retentionPolicyType: "LongTermRetentionPolicy",
                weeklySchedule: {
                    daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                    retentionDuration: {
                        count: 12,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Weeks,
                    },
                    retentionTimes: ["2021-12-17T08:00:00+00:00"],
                },
                yearlySchedule: {
                    monthsOfYear: [azure_native.recoveryservices.MonthOfYear.January],
                    retentionDuration: {
                        count: 10,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Years,
                    },
                    retentionScheduleFormatType: azure_native.recoveryservices.RetentionScheduleFormat.Weekly,
                    retentionScheduleWeekly: {
                        daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                        weeksOfTheMonth: [azure_native.recoveryservices.WeekOfMonth.First],
                    },
                    retentionTimes: ["2021-12-17T08:00:00+00:00"],
                },
            },
            schedulePolicy: {
                dailySchedule: {
                    scheduleRunTimes: ["2018-01-24T10:00:00Z"],
                },
                schedulePolicyType: "SimpleSchedulePolicyV2",
                scheduleRunFrequency: azure_native.recoveryservices.ScheduleRunType.Daily,
            },
            timeZone: "India Standard Time",
        },
        resourceGroupName: "SwaggerTestRg",
        vaultName: "NetSDKTestRsVault",
    });
    
    resources:
      protectionPolicy:
        type: azure-native:recoveryservices:ProtectionPolicy
        properties:
          policyName: v2-daily-sample
          properties:
            backupManagementType: AzureIaasVM
            instantRpRetentionRangeInDays: 30
            policyType: V2
            retentionPolicy:
              dailySchedule:
                retentionDuration:
                  count: 180
                  durationType: Days
                retentionTimes:
                  - 2021-12-17T08:00:00+00:00
              monthlySchedule:
                retentionDuration:
                  count: 60
                  durationType: Months
                retentionScheduleFormatType: Weekly
                retentionScheduleWeekly:
                  daysOfTheWeek:
                    - Sunday
                  weeksOfTheMonth:
                    - First
                retentionTimes:
                  - 2021-12-17T08:00:00+00:00
              retentionPolicyType: LongTermRetentionPolicy
              weeklySchedule:
                daysOfTheWeek:
                  - Sunday
                retentionDuration:
                  count: 12
                  durationType: Weeks
                retentionTimes:
                  - 2021-12-17T08:00:00+00:00
              yearlySchedule:
                monthsOfYear:
                  - January
                retentionDuration:
                  count: 10
                  durationType: Years
                retentionScheduleFormatType: Weekly
                retentionScheduleWeekly:
                  daysOfTheWeek:
                    - Sunday
                  weeksOfTheMonth:
                    - First
                retentionTimes:
                  - 2021-12-17T08:00:00+00:00
            schedulePolicy:
              dailySchedule:
                scheduleRunTimes:
                  - 2018-01-24T10:00:00Z
              schedulePolicyType: SimpleSchedulePolicyV2
              scheduleRunFrequency: Daily
            timeZone: India Standard Time
          resourceGroupName: SwaggerTestRg
          vaultName: NetSDKTestRsVault
    

    Create or Update Full Azure Vm Protection Policy

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var protectionPolicy = new AzureNative.RecoveryServices.ProtectionPolicy("protectionPolicy", new()
        {
            PolicyName = "testPolicy1",
            Properties = new AzureNative.RecoveryServices.Inputs.AzureIaaSVMProtectionPolicyArgs
            {
                BackupManagementType = "AzureIaasVM",
                RetentionPolicy = new AzureNative.RecoveryServices.Inputs.LongTermRetentionPolicyArgs
                {
                    MonthlySchedule = new AzureNative.RecoveryServices.Inputs.MonthlyRetentionScheduleArgs
                    {
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 2,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Months,
                        },
                        RetentionScheduleFormatType = AzureNative.RecoveryServices.RetentionScheduleFormat.Weekly,
                        RetentionScheduleWeekly = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatArgs
                        {
                            DaysOfTheWeek = new[]
                            {
                                AzureNative.RecoveryServices.DayOfWeek.Wednesday,
                                AzureNative.RecoveryServices.DayOfWeek.Thursday,
                            },
                            WeeksOfTheMonth = new[]
                            {
                                AzureNative.RecoveryServices.WeekOfMonth.First,
                                AzureNative.RecoveryServices.WeekOfMonth.Third,
                            },
                        },
                        RetentionTimes = new[]
                        {
                            "2018-01-24T10:00:00Z",
                        },
                    },
                    RetentionPolicyType = "LongTermRetentionPolicy",
                    WeeklySchedule = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionScheduleArgs
                    {
                        DaysOfTheWeek = new[]
                        {
                            AzureNative.RecoveryServices.DayOfWeek.Monday,
                            AzureNative.RecoveryServices.DayOfWeek.Wednesday,
                            AzureNative.RecoveryServices.DayOfWeek.Thursday,
                        },
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 1,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Weeks,
                        },
                        RetentionTimes = new[]
                        {
                            "2018-01-24T10:00:00Z",
                        },
                    },
                    YearlySchedule = new AzureNative.RecoveryServices.Inputs.YearlyRetentionScheduleArgs
                    {
                        MonthsOfYear = new[]
                        {
                            AzureNative.RecoveryServices.MonthOfYear.February,
                            AzureNative.RecoveryServices.MonthOfYear.November,
                        },
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 4,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Years,
                        },
                        RetentionScheduleFormatType = AzureNative.RecoveryServices.RetentionScheduleFormat.Weekly,
                        RetentionScheduleWeekly = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatArgs
                        {
                            DaysOfTheWeek = new[]
                            {
                                AzureNative.RecoveryServices.DayOfWeek.Monday,
                                AzureNative.RecoveryServices.DayOfWeek.Thursday,
                            },
                            WeeksOfTheMonth = new[]
                            {
                                AzureNative.RecoveryServices.WeekOfMonth.Fourth,
                            },
                        },
                        RetentionTimes = new[]
                        {
                            "2018-01-24T10:00:00Z",
                        },
                    },
                },
                SchedulePolicy = new AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyArgs
                {
                    SchedulePolicyType = "SimpleSchedulePolicy",
                    ScheduleRunDays = new[]
                    {
                        AzureNative.RecoveryServices.DayOfWeek.Monday,
                        AzureNative.RecoveryServices.DayOfWeek.Wednesday,
                        AzureNative.RecoveryServices.DayOfWeek.Thursday,
                    },
                    ScheduleRunFrequency = AzureNative.RecoveryServices.ScheduleRunType.Weekly,
                    ScheduleRunTimes = new[]
                    {
                        "2018-01-24T10:00:00Z",
                    },
                },
                TimeZone = "Pacific Standard Time",
            },
            ResourceGroupName = "SwaggerTestRg",
            VaultName = "NetSDKTestRsVault",
        });
    
    });
    
    package main
    
    import (
    	recoveryservices "github.com/pulumi/pulumi-azure-native-sdk/recoveryservices/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := recoveryservices.NewProtectionPolicy(ctx, "protectionPolicy", &recoveryservices.ProtectionPolicyArgs{
    			PolicyName: pulumi.String("testPolicy1"),
    			Properties: &recoveryservices.AzureIaaSVMProtectionPolicyArgs{
    				BackupManagementType: pulumi.String("AzureIaasVM"),
    				RetentionPolicy: recoveryservices.LongTermRetentionPolicy{
    					MonthlySchedule: recoveryservices.MonthlyRetentionSchedule{
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        2,
    							DurationType: recoveryservices.RetentionDurationTypeMonths,
    						},
    						RetentionScheduleFormatType: recoveryservices.RetentionScheduleFormatWeekly,
    						RetentionScheduleWeekly: recoveryservices.WeeklyRetentionFormat{
    							DaysOfTheWeek: []recoveryservices.DayOfWeek{
    								recoveryservices.DayOfWeekWednesday,
    								recoveryservices.DayOfWeekThursday,
    							},
    							WeeksOfTheMonth: []recoveryservices.WeekOfMonth{
    								recoveryservices.WeekOfMonthFirst,
    								recoveryservices.WeekOfMonthThird,
    							},
    						},
    						RetentionTimes: []string{
    							"2018-01-24T10:00:00Z",
    						},
    					},
    					RetentionPolicyType: "LongTermRetentionPolicy",
    					WeeklySchedule: recoveryservices.WeeklyRetentionSchedule{
    						DaysOfTheWeek: []recoveryservices.DayOfWeek{
    							recoveryservices.DayOfWeekMonday,
    							recoveryservices.DayOfWeekWednesday,
    							recoveryservices.DayOfWeekThursday,
    						},
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        1,
    							DurationType: recoveryservices.RetentionDurationTypeWeeks,
    						},
    						RetentionTimes: []string{
    							"2018-01-24T10:00:00Z",
    						},
    					},
    					YearlySchedule: recoveryservices.YearlyRetentionSchedule{
    						MonthsOfYear: []recoveryservices.MonthOfYear{
    							recoveryservices.MonthOfYearFebruary,
    							recoveryservices.MonthOfYearNovember,
    						},
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        4,
    							DurationType: recoveryservices.RetentionDurationTypeYears,
    						},
    						RetentionScheduleFormatType: recoveryservices.RetentionScheduleFormatWeekly,
    						RetentionScheduleWeekly: recoveryservices.WeeklyRetentionFormat{
    							DaysOfTheWeek: []recoveryservices.DayOfWeek{
    								recoveryservices.DayOfWeekMonday,
    								recoveryservices.DayOfWeekThursday,
    							},
    							WeeksOfTheMonth: []recoveryservices.WeekOfMonth{
    								recoveryservices.WeekOfMonthFourth,
    							},
    						},
    						RetentionTimes: []string{
    							"2018-01-24T10:00:00Z",
    						},
    					},
    				},
    				SchedulePolicy: recoveryservices.SimpleSchedulePolicy{
    					SchedulePolicyType: "SimpleSchedulePolicy",
    					ScheduleRunDays: []recoveryservices.DayOfWeek{
    						recoveryservices.DayOfWeekMonday,
    						recoveryservices.DayOfWeekWednesday,
    						recoveryservices.DayOfWeekThursday,
    					},
    					ScheduleRunFrequency: recoveryservices.ScheduleRunTypeWeekly,
    					ScheduleRunTimes: []string{
    						"2018-01-24T10:00:00Z",
    					},
    				},
    				TimeZone: pulumi.String("Pacific Standard Time"),
    			},
    			ResourceGroupName: pulumi.String("SwaggerTestRg"),
    			VaultName:         pulumi.String("NetSDKTestRsVault"),
    		})
    		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.recoveryservices.ProtectionPolicy;
    import com.pulumi.azurenative.recoveryservices.ProtectionPolicyArgs;
    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 protectionPolicy = new ProtectionPolicy("protectionPolicy", ProtectionPolicyArgs.builder()
                .policyName("testPolicy1")
                .properties(AzureFileShareProtectionPolicyArgs.builder()
                    .backupManagementType("AzureIaasVM")
                    .retentionPolicy(LongTermRetentionPolicyArgs.builder()
                        .monthlySchedule(MonthlyRetentionScheduleArgs.builder()
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(2)
                                .durationType("Months")
                                .build())
                            .retentionScheduleFormatType("Weekly")
                            .retentionScheduleWeekly(WeeklyRetentionFormatArgs.builder()
                                .daysOfTheWeek(                            
                                    "Wednesday",
                                    "Thursday")
                                .weeksOfTheMonth(                            
                                    "First",
                                    "Third")
                                .build())
                            .retentionTimes("2018-01-24T10:00:00Z")
                            .build())
                        .retentionPolicyType("LongTermRetentionPolicy")
                        .weeklySchedule(WeeklyRetentionScheduleArgs.builder()
                            .daysOfTheWeek(                        
                                "Monday",
                                "Wednesday",
                                "Thursday")
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(1)
                                .durationType("Weeks")
                                .build())
                            .retentionTimes("2018-01-24T10:00:00Z")
                            .build())
                        .yearlySchedule(YearlyRetentionScheduleArgs.builder()
                            .monthsOfYear(                        
                                "February",
                                "November")
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(4)
                                .durationType("Years")
                                .build())
                            .retentionScheduleFormatType("Weekly")
                            .retentionScheduleWeekly(WeeklyRetentionFormatArgs.builder()
                                .daysOfTheWeek(                            
                                    "Monday",
                                    "Thursday")
                                .weeksOfTheMonth("Fourth")
                                .build())
                            .retentionTimes("2018-01-24T10:00:00Z")
                            .build())
                        .build())
                    .schedulePolicy(SimpleSchedulePolicyArgs.builder()
                        .schedulePolicyType("SimpleSchedulePolicy")
                        .scheduleRunDays(                    
                            "Monday",
                            "Wednesday",
                            "Thursday")
                        .scheduleRunFrequency("Weekly")
                        .scheduleRunTimes("2018-01-24T10:00:00Z")
                        .build())
                    .timeZone("Pacific Standard Time")
                    .build())
                .resourceGroupName("SwaggerTestRg")
                .vaultName("NetSDKTestRsVault")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    protection_policy = azure_native.recoveryservices.ProtectionPolicy("protectionPolicy",
        policy_name="testPolicy1",
        properties={
            "backup_management_type": "AzureIaasVM",
            "retention_policy": {
                "monthly_schedule": {
                    "retention_duration": {
                        "count": 2,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.MONTHS,
                    },
                    "retention_schedule_format_type": azure_native.recoveryservices.RetentionScheduleFormat.WEEKLY,
                    "retention_schedule_weekly": {
                        "days_of_the_week": [
                            azure_native.recoveryservices.DayOfWeek.WEDNESDAY,
                            azure_native.recoveryservices.DayOfWeek.THURSDAY,
                        ],
                        "weeks_of_the_month": [
                            azure_native.recoveryservices.WeekOfMonth.FIRST,
                            azure_native.recoveryservices.WeekOfMonth.THIRD,
                        ],
                    },
                    "retention_times": ["2018-01-24T10:00:00Z"],
                },
                "retention_policy_type": "LongTermRetentionPolicy",
                "weekly_schedule": {
                    "days_of_the_week": [
                        azure_native.recoveryservices.DayOfWeek.MONDAY,
                        azure_native.recoveryservices.DayOfWeek.WEDNESDAY,
                        azure_native.recoveryservices.DayOfWeek.THURSDAY,
                    ],
                    "retention_duration": {
                        "count": 1,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.WEEKS,
                    },
                    "retention_times": ["2018-01-24T10:00:00Z"],
                },
                "yearly_schedule": {
                    "months_of_year": [
                        azure_native.recoveryservices.MonthOfYear.FEBRUARY,
                        azure_native.recoveryservices.MonthOfYear.NOVEMBER,
                    ],
                    "retention_duration": {
                        "count": 4,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.YEARS,
                    },
                    "retention_schedule_format_type": azure_native.recoveryservices.RetentionScheduleFormat.WEEKLY,
                    "retention_schedule_weekly": {
                        "days_of_the_week": [
                            azure_native.recoveryservices.DayOfWeek.MONDAY,
                            azure_native.recoveryservices.DayOfWeek.THURSDAY,
                        ],
                        "weeks_of_the_month": [azure_native.recoveryservices.WeekOfMonth.FOURTH],
                    },
                    "retention_times": ["2018-01-24T10:00:00Z"],
                },
            },
            "schedule_policy": {
                "schedule_policy_type": "SimpleSchedulePolicy",
                "schedule_run_days": [
                    azure_native.recoveryservices.DayOfWeek.MONDAY,
                    azure_native.recoveryservices.DayOfWeek.WEDNESDAY,
                    azure_native.recoveryservices.DayOfWeek.THURSDAY,
                ],
                "schedule_run_frequency": azure_native.recoveryservices.ScheduleRunType.WEEKLY,
                "schedule_run_times": ["2018-01-24T10:00:00Z"],
            },
            "time_zone": "Pacific Standard Time",
        },
        resource_group_name="SwaggerTestRg",
        vault_name="NetSDKTestRsVault")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const protectionPolicy = new azure_native.recoveryservices.ProtectionPolicy("protectionPolicy", {
        policyName: "testPolicy1",
        properties: {
            backupManagementType: "AzureIaasVM",
            retentionPolicy: {
                monthlySchedule: {
                    retentionDuration: {
                        count: 2,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Months,
                    },
                    retentionScheduleFormatType: azure_native.recoveryservices.RetentionScheduleFormat.Weekly,
                    retentionScheduleWeekly: {
                        daysOfTheWeek: [
                            azure_native.recoveryservices.DayOfWeek.Wednesday,
                            azure_native.recoveryservices.DayOfWeek.Thursday,
                        ],
                        weeksOfTheMonth: [
                            azure_native.recoveryservices.WeekOfMonth.First,
                            azure_native.recoveryservices.WeekOfMonth.Third,
                        ],
                    },
                    retentionTimes: ["2018-01-24T10:00:00Z"],
                },
                retentionPolicyType: "LongTermRetentionPolicy",
                weeklySchedule: {
                    daysOfTheWeek: [
                        azure_native.recoveryservices.DayOfWeek.Monday,
                        azure_native.recoveryservices.DayOfWeek.Wednesday,
                        azure_native.recoveryservices.DayOfWeek.Thursday,
                    ],
                    retentionDuration: {
                        count: 1,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Weeks,
                    },
                    retentionTimes: ["2018-01-24T10:00:00Z"],
                },
                yearlySchedule: {
                    monthsOfYear: [
                        azure_native.recoveryservices.MonthOfYear.February,
                        azure_native.recoveryservices.MonthOfYear.November,
                    ],
                    retentionDuration: {
                        count: 4,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Years,
                    },
                    retentionScheduleFormatType: azure_native.recoveryservices.RetentionScheduleFormat.Weekly,
                    retentionScheduleWeekly: {
                        daysOfTheWeek: [
                            azure_native.recoveryservices.DayOfWeek.Monday,
                            azure_native.recoveryservices.DayOfWeek.Thursday,
                        ],
                        weeksOfTheMonth: [azure_native.recoveryservices.WeekOfMonth.Fourth],
                    },
                    retentionTimes: ["2018-01-24T10:00:00Z"],
                },
            },
            schedulePolicy: {
                schedulePolicyType: "SimpleSchedulePolicy",
                scheduleRunDays: [
                    azure_native.recoveryservices.DayOfWeek.Monday,
                    azure_native.recoveryservices.DayOfWeek.Wednesday,
                    azure_native.recoveryservices.DayOfWeek.Thursday,
                ],
                scheduleRunFrequency: azure_native.recoveryservices.ScheduleRunType.Weekly,
                scheduleRunTimes: ["2018-01-24T10:00:00Z"],
            },
            timeZone: "Pacific Standard Time",
        },
        resourceGroupName: "SwaggerTestRg",
        vaultName: "NetSDKTestRsVault",
    });
    
    resources:
      protectionPolicy:
        type: azure-native:recoveryservices:ProtectionPolicy
        properties:
          policyName: testPolicy1
          properties:
            backupManagementType: AzureIaasVM
            retentionPolicy:
              monthlySchedule:
                retentionDuration:
                  count: 2
                  durationType: Months
                retentionScheduleFormatType: Weekly
                retentionScheduleWeekly:
                  daysOfTheWeek:
                    - Wednesday
                    - Thursday
                  weeksOfTheMonth:
                    - First
                    - Third
                retentionTimes:
                  - 2018-01-24T10:00:00Z
              retentionPolicyType: LongTermRetentionPolicy
              weeklySchedule:
                daysOfTheWeek:
                  - Monday
                  - Wednesday
                  - Thursday
                retentionDuration:
                  count: 1
                  durationType: Weeks
                retentionTimes:
                  - 2018-01-24T10:00:00Z
              yearlySchedule:
                monthsOfYear:
                  - February
                  - November
                retentionDuration:
                  count: 4
                  durationType: Years
                retentionScheduleFormatType: Weekly
                retentionScheduleWeekly:
                  daysOfTheWeek:
                    - Monday
                    - Thursday
                  weeksOfTheMonth:
                    - Fourth
                retentionTimes:
                  - 2018-01-24T10:00:00Z
            schedulePolicy:
              schedulePolicyType: SimpleSchedulePolicy
              scheduleRunDays:
                - Monday
                - Wednesday
                - Thursday
              scheduleRunFrequency: Weekly
              scheduleRunTimes:
                - 2018-01-24T10:00:00Z
            timeZone: Pacific Standard Time
          resourceGroupName: SwaggerTestRg
          vaultName: NetSDKTestRsVault
    

    Create or Update Full Azure Workload Protection Policy

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var protectionPolicy = new AzureNative.RecoveryServices.ProtectionPolicy("protectionPolicy", new()
        {
            PolicyName = "testPolicy1",
            Properties = new AzureNative.RecoveryServices.Inputs.AzureVmWorkloadProtectionPolicyArgs
            {
                BackupManagementType = "AzureWorkload",
                Settings = new AzureNative.RecoveryServices.Inputs.SettingsArgs
                {
                    Issqlcompression = false,
                    TimeZone = "Pacific Standard Time",
                },
                SubProtectionPolicy = new[]
                {
                    new AzureNative.RecoveryServices.Inputs.SubProtectionPolicyArgs
                    {
                        PolicyType = AzureNative.RecoveryServices.PolicyType.Full,
                        RetentionPolicy = new AzureNative.RecoveryServices.Inputs.LongTermRetentionPolicyArgs
                        {
                            MonthlySchedule = new AzureNative.RecoveryServices.Inputs.MonthlyRetentionScheduleArgs
                            {
                                RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                                {
                                    Count = 1,
                                    DurationType = AzureNative.RecoveryServices.RetentionDurationType.Months,
                                },
                                RetentionScheduleFormatType = AzureNative.RecoveryServices.RetentionScheduleFormat.Weekly,
                                RetentionScheduleWeekly = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatArgs
                                {
                                    DaysOfTheWeek = new[]
                                    {
                                        AzureNative.RecoveryServices.DayOfWeek.Sunday,
                                    },
                                    WeeksOfTheMonth = new[]
                                    {
                                        AzureNative.RecoveryServices.WeekOfMonth.Second,
                                    },
                                },
                                RetentionTimes = new[]
                                {
                                    "2018-01-24T10:00:00Z",
                                },
                            },
                            RetentionPolicyType = "LongTermRetentionPolicy",
                            WeeklySchedule = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionScheduleArgs
                            {
                                DaysOfTheWeek = new[]
                                {
                                    AzureNative.RecoveryServices.DayOfWeek.Sunday,
                                    AzureNative.RecoveryServices.DayOfWeek.Tuesday,
                                },
                                RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                                {
                                    Count = 2,
                                    DurationType = AzureNative.RecoveryServices.RetentionDurationType.Weeks,
                                },
                                RetentionTimes = new[]
                                {
                                    "2018-01-24T10:00:00Z",
                                },
                            },
                            YearlySchedule = new AzureNative.RecoveryServices.Inputs.YearlyRetentionScheduleArgs
                            {
                                MonthsOfYear = new[]
                                {
                                    AzureNative.RecoveryServices.MonthOfYear.January,
                                    AzureNative.RecoveryServices.MonthOfYear.June,
                                    AzureNative.RecoveryServices.MonthOfYear.December,
                                },
                                RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                                {
                                    Count = 1,
                                    DurationType = AzureNative.RecoveryServices.RetentionDurationType.Years,
                                },
                                RetentionScheduleFormatType = AzureNative.RecoveryServices.RetentionScheduleFormat.Weekly,
                                RetentionScheduleWeekly = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatArgs
                                {
                                    DaysOfTheWeek = new[]
                                    {
                                        AzureNative.RecoveryServices.DayOfWeek.Sunday,
                                    },
                                    WeeksOfTheMonth = new[]
                                    {
                                        AzureNative.RecoveryServices.WeekOfMonth.Last,
                                    },
                                },
                                RetentionTimes = new[]
                                {
                                    "2018-01-24T10:00:00Z",
                                },
                            },
                        },
                        SchedulePolicy = new AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyArgs
                        {
                            SchedulePolicyType = "SimpleSchedulePolicy",
                            ScheduleRunDays = new[]
                            {
                                AzureNative.RecoveryServices.DayOfWeek.Sunday,
                                AzureNative.RecoveryServices.DayOfWeek.Tuesday,
                            },
                            ScheduleRunFrequency = AzureNative.RecoveryServices.ScheduleRunType.Weekly,
                            ScheduleRunTimes = new[]
                            {
                                "2018-01-24T10:00:00Z",
                            },
                        },
                    },
                    new AzureNative.RecoveryServices.Inputs.SubProtectionPolicyArgs
                    {
                        PolicyType = AzureNative.RecoveryServices.PolicyType.Differential,
                        RetentionPolicy = new AzureNative.RecoveryServices.Inputs.SimpleRetentionPolicyArgs
                        {
                            RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                            {
                                Count = 8,
                                DurationType = AzureNative.RecoveryServices.RetentionDurationType.Days,
                            },
                            RetentionPolicyType = "SimpleRetentionPolicy",
                        },
                        SchedulePolicy = new AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyArgs
                        {
                            SchedulePolicyType = "SimpleSchedulePolicy",
                            ScheduleRunDays = new[]
                            {
                                AzureNative.RecoveryServices.DayOfWeek.Friday,
                            },
                            ScheduleRunFrequency = AzureNative.RecoveryServices.ScheduleRunType.Weekly,
                            ScheduleRunTimes = new[]
                            {
                                "2018-01-24T10:00:00Z",
                            },
                        },
                    },
                    new AzureNative.RecoveryServices.Inputs.SubProtectionPolicyArgs
                    {
                        PolicyType = AzureNative.RecoveryServices.PolicyType.Log,
                        RetentionPolicy = new AzureNative.RecoveryServices.Inputs.SimpleRetentionPolicyArgs
                        {
                            RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                            {
                                Count = 7,
                                DurationType = AzureNative.RecoveryServices.RetentionDurationType.Days,
                            },
                            RetentionPolicyType = "SimpleRetentionPolicy",
                        },
                        SchedulePolicy = new AzureNative.RecoveryServices.Inputs.LogSchedulePolicyArgs
                        {
                            ScheduleFrequencyInMins = 60,
                            SchedulePolicyType = "LogSchedulePolicy",
                        },
                    },
                },
                WorkLoadType = AzureNative.RecoveryServices.WorkloadType.SQLDataBase,
            },
            ResourceGroupName = "SwaggerTestRg",
            VaultName = "NetSDKTestRsVault",
        });
    
    });
    
    package main
    
    import (
    	recoveryservices "github.com/pulumi/pulumi-azure-native-sdk/recoveryservices/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := recoveryservices.NewProtectionPolicy(ctx, "protectionPolicy", &recoveryservices.ProtectionPolicyArgs{
    			PolicyName: pulumi.String("testPolicy1"),
    			Properties: &recoveryservices.AzureVmWorkloadProtectionPolicyArgs{
    				BackupManagementType: pulumi.String("AzureWorkload"),
    				Settings: &recoveryservices.SettingsArgs{
    					Issqlcompression: pulumi.Bool(false),
    					TimeZone:         pulumi.String("Pacific Standard Time"),
    				},
    				SubProtectionPolicy: recoveryservices.SubProtectionPolicyArray{
    					&recoveryservices.SubProtectionPolicyArgs{
    						PolicyType: pulumi.String(recoveryservices.PolicyTypeFull),
    						RetentionPolicy: recoveryservices.LongTermRetentionPolicy{
    							MonthlySchedule: recoveryservices.MonthlyRetentionSchedule{
    								RetentionDuration: recoveryservices.RetentionDuration{
    									Count:        1,
    									DurationType: recoveryservices.RetentionDurationTypeMonths,
    								},
    								RetentionScheduleFormatType: recoveryservices.RetentionScheduleFormatWeekly,
    								RetentionScheduleWeekly: recoveryservices.WeeklyRetentionFormat{
    									DaysOfTheWeek: []recoveryservices.DayOfWeek{
    										recoveryservices.DayOfWeekSunday,
    									},
    									WeeksOfTheMonth: []recoveryservices.WeekOfMonth{
    										recoveryservices.WeekOfMonthSecond,
    									},
    								},
    								RetentionTimes: []string{
    									"2018-01-24T10:00:00Z",
    								},
    							},
    							RetentionPolicyType: "LongTermRetentionPolicy",
    							WeeklySchedule: recoveryservices.WeeklyRetentionSchedule{
    								DaysOfTheWeek: []recoveryservices.DayOfWeek{
    									recoveryservices.DayOfWeekSunday,
    									recoveryservices.DayOfWeekTuesday,
    								},
    								RetentionDuration: recoveryservices.RetentionDuration{
    									Count:        2,
    									DurationType: recoveryservices.RetentionDurationTypeWeeks,
    								},
    								RetentionTimes: []string{
    									"2018-01-24T10:00:00Z",
    								},
    							},
    							YearlySchedule: recoveryservices.YearlyRetentionSchedule{
    								MonthsOfYear: []recoveryservices.MonthOfYear{
    									recoveryservices.MonthOfYearJanuary,
    									recoveryservices.MonthOfYearJune,
    									recoveryservices.MonthOfYearDecember,
    								},
    								RetentionDuration: recoveryservices.RetentionDuration{
    									Count:        1,
    									DurationType: recoveryservices.RetentionDurationTypeYears,
    								},
    								RetentionScheduleFormatType: recoveryservices.RetentionScheduleFormatWeekly,
    								RetentionScheduleWeekly: recoveryservices.WeeklyRetentionFormat{
    									DaysOfTheWeek: []recoveryservices.DayOfWeek{
    										recoveryservices.DayOfWeekSunday,
    									},
    									WeeksOfTheMonth: []recoveryservices.WeekOfMonth{
    										recoveryservices.WeekOfMonthLast,
    									},
    								},
    								RetentionTimes: []string{
    									"2018-01-24T10:00:00Z",
    								},
    							},
    						},
    						SchedulePolicy: recoveryservices.SimpleSchedulePolicy{
    							SchedulePolicyType: "SimpleSchedulePolicy",
    							ScheduleRunDays: []recoveryservices.DayOfWeek{
    								recoveryservices.DayOfWeekSunday,
    								recoveryservices.DayOfWeekTuesday,
    							},
    							ScheduleRunFrequency: recoveryservices.ScheduleRunTypeWeekly,
    							ScheduleRunTimes: []string{
    								"2018-01-24T10:00:00Z",
    							},
    						},
    					},
    					&recoveryservices.SubProtectionPolicyArgs{
    						PolicyType: pulumi.String(recoveryservices.PolicyTypeDifferential),
    						RetentionPolicy: recoveryservices.SimpleRetentionPolicy{
    							RetentionDuration: recoveryservices.RetentionDuration{
    								Count:        8,
    								DurationType: recoveryservices.RetentionDurationTypeDays,
    							},
    							RetentionPolicyType: "SimpleRetentionPolicy",
    						},
    						SchedulePolicy: recoveryservices.SimpleSchedulePolicy{
    							SchedulePolicyType: "SimpleSchedulePolicy",
    							ScheduleRunDays: []recoveryservices.DayOfWeek{
    								recoveryservices.DayOfWeekFriday,
    							},
    							ScheduleRunFrequency: recoveryservices.ScheduleRunTypeWeekly,
    							ScheduleRunTimes: []string{
    								"2018-01-24T10:00:00Z",
    							},
    						},
    					},
    					&recoveryservices.SubProtectionPolicyArgs{
    						PolicyType: pulumi.String(recoveryservices.PolicyTypeLog),
    						RetentionPolicy: recoveryservices.SimpleRetentionPolicy{
    							RetentionDuration: recoveryservices.RetentionDuration{
    								Count:        7,
    								DurationType: recoveryservices.RetentionDurationTypeDays,
    							},
    							RetentionPolicyType: "SimpleRetentionPolicy",
    						},
    						SchedulePolicy: recoveryservices.LogSchedulePolicy{
    							ScheduleFrequencyInMins: 60,
    							SchedulePolicyType:      "LogSchedulePolicy",
    						},
    					},
    				},
    				WorkLoadType: pulumi.String(recoveryservices.WorkloadTypeSQLDataBase),
    			},
    			ResourceGroupName: pulumi.String("SwaggerTestRg"),
    			VaultName:         pulumi.String("NetSDKTestRsVault"),
    		})
    		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.recoveryservices.ProtectionPolicy;
    import com.pulumi.azurenative.recoveryservices.ProtectionPolicyArgs;
    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 protectionPolicy = new ProtectionPolicy("protectionPolicy", ProtectionPolicyArgs.builder()
                .policyName("testPolicy1")
                .properties(AzureFileShareProtectionPolicyArgs.builder()
                    .backupManagementType("AzureWorkload")
                    .settings(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
                    .subProtectionPolicy(                
                        %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
                        %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
                        %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
                    .workLoadType("SQLDataBase")
                    .build())
                .resourceGroupName("SwaggerTestRg")
                .vaultName("NetSDKTestRsVault")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    protection_policy = azure_native.recoveryservices.ProtectionPolicy("protectionPolicy",
        policy_name="testPolicy1",
        properties={
            "backup_management_type": "AzureWorkload",
            "settings": {
                "issqlcompression": False,
                "time_zone": "Pacific Standard Time",
            },
            "sub_protection_policy": [
                {
                    "policy_type": azure_native.recoveryservices.PolicyType.FULL,
                    "retention_policy": {
                        "monthly_schedule": {
                            "retention_duration": {
                                "count": 1,
                                "duration_type": azure_native.recoveryservices.RetentionDurationType.MONTHS,
                            },
                            "retention_schedule_format_type": azure_native.recoveryservices.RetentionScheduleFormat.WEEKLY,
                            "retention_schedule_weekly": {
                                "days_of_the_week": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                                "weeks_of_the_month": [azure_native.recoveryservices.WeekOfMonth.SECOND],
                            },
                            "retention_times": ["2018-01-24T10:00:00Z"],
                        },
                        "retention_policy_type": "LongTermRetentionPolicy",
                        "weekly_schedule": {
                            "days_of_the_week": [
                                azure_native.recoveryservices.DayOfWeek.SUNDAY,
                                azure_native.recoveryservices.DayOfWeek.TUESDAY,
                            ],
                            "retention_duration": {
                                "count": 2,
                                "duration_type": azure_native.recoveryservices.RetentionDurationType.WEEKS,
                            },
                            "retention_times": ["2018-01-24T10:00:00Z"],
                        },
                        "yearly_schedule": {
                            "months_of_year": [
                                azure_native.recoveryservices.MonthOfYear.JANUARY,
                                azure_native.recoveryservices.MonthOfYear.JUNE,
                                azure_native.recoveryservices.MonthOfYear.DECEMBER,
                            ],
                            "retention_duration": {
                                "count": 1,
                                "duration_type": azure_native.recoveryservices.RetentionDurationType.YEARS,
                            },
                            "retention_schedule_format_type": azure_native.recoveryservices.RetentionScheduleFormat.WEEKLY,
                            "retention_schedule_weekly": {
                                "days_of_the_week": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                                "weeks_of_the_month": [azure_native.recoveryservices.WeekOfMonth.LAST],
                            },
                            "retention_times": ["2018-01-24T10:00:00Z"],
                        },
                    },
                    "schedule_policy": {
                        "schedule_policy_type": "SimpleSchedulePolicy",
                        "schedule_run_days": [
                            azure_native.recoveryservices.DayOfWeek.SUNDAY,
                            azure_native.recoveryservices.DayOfWeek.TUESDAY,
                        ],
                        "schedule_run_frequency": azure_native.recoveryservices.ScheduleRunType.WEEKLY,
                        "schedule_run_times": ["2018-01-24T10:00:00Z"],
                    },
                },
                {
                    "policy_type": azure_native.recoveryservices.PolicyType.DIFFERENTIAL,
                    "retention_policy": {
                        "retention_duration": {
                            "count": 8,
                            "duration_type": azure_native.recoveryservices.RetentionDurationType.DAYS,
                        },
                        "retention_policy_type": "SimpleRetentionPolicy",
                    },
                    "schedule_policy": {
                        "schedule_policy_type": "SimpleSchedulePolicy",
                        "schedule_run_days": [azure_native.recoveryservices.DayOfWeek.FRIDAY],
                        "schedule_run_frequency": azure_native.recoveryservices.ScheduleRunType.WEEKLY,
                        "schedule_run_times": ["2018-01-24T10:00:00Z"],
                    },
                },
                {
                    "policy_type": azure_native.recoveryservices.PolicyType.LOG,
                    "retention_policy": {
                        "retention_duration": {
                            "count": 7,
                            "duration_type": azure_native.recoveryservices.RetentionDurationType.DAYS,
                        },
                        "retention_policy_type": "SimpleRetentionPolicy",
                    },
                    "schedule_policy": {
                        "schedule_frequency_in_mins": 60,
                        "schedule_policy_type": "LogSchedulePolicy",
                    },
                },
            ],
            "work_load_type": azure_native.recoveryservices.WorkloadType.SQL_DATA_BASE,
        },
        resource_group_name="SwaggerTestRg",
        vault_name="NetSDKTestRsVault")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const protectionPolicy = new azure_native.recoveryservices.ProtectionPolicy("protectionPolicy", {
        policyName: "testPolicy1",
        properties: {
            backupManagementType: "AzureWorkload",
            settings: {
                issqlcompression: false,
                timeZone: "Pacific Standard Time",
            },
            subProtectionPolicy: [
                {
                    policyType: azure_native.recoveryservices.PolicyType.Full,
                    retentionPolicy: {
                        monthlySchedule: {
                            retentionDuration: {
                                count: 1,
                                durationType: azure_native.recoveryservices.RetentionDurationType.Months,
                            },
                            retentionScheduleFormatType: azure_native.recoveryservices.RetentionScheduleFormat.Weekly,
                            retentionScheduleWeekly: {
                                daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                                weeksOfTheMonth: [azure_native.recoveryservices.WeekOfMonth.Second],
                            },
                            retentionTimes: ["2018-01-24T10:00:00Z"],
                        },
                        retentionPolicyType: "LongTermRetentionPolicy",
                        weeklySchedule: {
                            daysOfTheWeek: [
                                azure_native.recoveryservices.DayOfWeek.Sunday,
                                azure_native.recoveryservices.DayOfWeek.Tuesday,
                            ],
                            retentionDuration: {
                                count: 2,
                                durationType: azure_native.recoveryservices.RetentionDurationType.Weeks,
                            },
                            retentionTimes: ["2018-01-24T10:00:00Z"],
                        },
                        yearlySchedule: {
                            monthsOfYear: [
                                azure_native.recoveryservices.MonthOfYear.January,
                                azure_native.recoveryservices.MonthOfYear.June,
                                azure_native.recoveryservices.MonthOfYear.December,
                            ],
                            retentionDuration: {
                                count: 1,
                                durationType: azure_native.recoveryservices.RetentionDurationType.Years,
                            },
                            retentionScheduleFormatType: azure_native.recoveryservices.RetentionScheduleFormat.Weekly,
                            retentionScheduleWeekly: {
                                daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                                weeksOfTheMonth: [azure_native.recoveryservices.WeekOfMonth.Last],
                            },
                            retentionTimes: ["2018-01-24T10:00:00Z"],
                        },
                    },
                    schedulePolicy: {
                        schedulePolicyType: "SimpleSchedulePolicy",
                        scheduleRunDays: [
                            azure_native.recoveryservices.DayOfWeek.Sunday,
                            azure_native.recoveryservices.DayOfWeek.Tuesday,
                        ],
                        scheduleRunFrequency: azure_native.recoveryservices.ScheduleRunType.Weekly,
                        scheduleRunTimes: ["2018-01-24T10:00:00Z"],
                    },
                },
                {
                    policyType: azure_native.recoveryservices.PolicyType.Differential,
                    retentionPolicy: {
                        retentionDuration: {
                            count: 8,
                            durationType: azure_native.recoveryservices.RetentionDurationType.Days,
                        },
                        retentionPolicyType: "SimpleRetentionPolicy",
                    },
                    schedulePolicy: {
                        schedulePolicyType: "SimpleSchedulePolicy",
                        scheduleRunDays: [azure_native.recoveryservices.DayOfWeek.Friday],
                        scheduleRunFrequency: azure_native.recoveryservices.ScheduleRunType.Weekly,
                        scheduleRunTimes: ["2018-01-24T10:00:00Z"],
                    },
                },
                {
                    policyType: azure_native.recoveryservices.PolicyType.Log,
                    retentionPolicy: {
                        retentionDuration: {
                            count: 7,
                            durationType: azure_native.recoveryservices.RetentionDurationType.Days,
                        },
                        retentionPolicyType: "SimpleRetentionPolicy",
                    },
                    schedulePolicy: {
                        scheduleFrequencyInMins: 60,
                        schedulePolicyType: "LogSchedulePolicy",
                    },
                },
            ],
            workLoadType: azure_native.recoveryservices.WorkloadType.SQLDataBase,
        },
        resourceGroupName: "SwaggerTestRg",
        vaultName: "NetSDKTestRsVault",
    });
    
    resources:
      protectionPolicy:
        type: azure-native:recoveryservices:ProtectionPolicy
        properties:
          policyName: testPolicy1
          properties:
            backupManagementType: AzureWorkload
            settings:
              issqlcompression: false
              timeZone: Pacific Standard Time
            subProtectionPolicy:
              - policyType: Full
                retentionPolicy:
                  monthlySchedule:
                    retentionDuration:
                      count: 1
                      durationType: Months
                    retentionScheduleFormatType: Weekly
                    retentionScheduleWeekly:
                      daysOfTheWeek:
                        - Sunday
                      weeksOfTheMonth:
                        - Second
                    retentionTimes:
                      - 2018-01-24T10:00:00Z
                  retentionPolicyType: LongTermRetentionPolicy
                  weeklySchedule:
                    daysOfTheWeek:
                      - Sunday
                      - Tuesday
                    retentionDuration:
                      count: 2
                      durationType: Weeks
                    retentionTimes:
                      - 2018-01-24T10:00:00Z
                  yearlySchedule:
                    monthsOfYear:
                      - January
                      - June
                      - December
                    retentionDuration:
                      count: 1
                      durationType: Years
                    retentionScheduleFormatType: Weekly
                    retentionScheduleWeekly:
                      daysOfTheWeek:
                        - Sunday
                      weeksOfTheMonth:
                        - Last
                    retentionTimes:
                      - 2018-01-24T10:00:00Z
                schedulePolicy:
                  schedulePolicyType: SimpleSchedulePolicy
                  scheduleRunDays:
                    - Sunday
                    - Tuesday
                  scheduleRunFrequency: Weekly
                  scheduleRunTimes:
                    - 2018-01-24T10:00:00Z
              - policyType: Differential
                retentionPolicy:
                  retentionDuration:
                    count: 8
                    durationType: Days
                  retentionPolicyType: SimpleRetentionPolicy
                schedulePolicy:
                  schedulePolicyType: SimpleSchedulePolicy
                  scheduleRunDays:
                    - Friday
                  scheduleRunFrequency: Weekly
                  scheduleRunTimes:
                    - 2018-01-24T10:00:00Z
              - policyType: Log
                retentionPolicy:
                  retentionDuration:
                    count: 7
                    durationType: Days
                  retentionPolicyType: SimpleRetentionPolicy
                schedulePolicy:
                  scheduleFrequencyInMins: 60
                  schedulePolicyType: LogSchedulePolicy
            workLoadType: SQLDataBase
          resourceGroupName: SwaggerTestRg
          vaultName: NetSDKTestRsVault
    

    Create or Update Hourly Azure Storage Protection Policy

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var protectionPolicy = new AzureNative.RecoveryServices.ProtectionPolicy("protectionPolicy", new()
        {
            PolicyName = "newPolicy2",
            Properties = new AzureNative.RecoveryServices.Inputs.AzureFileShareProtectionPolicyArgs
            {
                BackupManagementType = "AzureStorage",
                RetentionPolicy = new AzureNative.RecoveryServices.Inputs.LongTermRetentionPolicyArgs
                {
                    DailySchedule = new AzureNative.RecoveryServices.Inputs.DailyRetentionScheduleArgs
                    {
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 5,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Days,
                        },
                    },
                    MonthlySchedule = new AzureNative.RecoveryServices.Inputs.MonthlyRetentionScheduleArgs
                    {
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 60,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Months,
                        },
                        RetentionScheduleFormatType = AzureNative.RecoveryServices.RetentionScheduleFormat.Weekly,
                        RetentionScheduleWeekly = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatArgs
                        {
                            DaysOfTheWeek = new[]
                            {
                                AzureNative.RecoveryServices.DayOfWeek.Sunday,
                            },
                            WeeksOfTheMonth = new[]
                            {
                                AzureNative.RecoveryServices.WeekOfMonth.First,
                            },
                        },
                    },
                    RetentionPolicyType = "LongTermRetentionPolicy",
                    WeeklySchedule = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionScheduleArgs
                    {
                        DaysOfTheWeek = new[]
                        {
                            AzureNative.RecoveryServices.DayOfWeek.Sunday,
                        },
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 12,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Weeks,
                        },
                    },
                    YearlySchedule = new AzureNative.RecoveryServices.Inputs.YearlyRetentionScheduleArgs
                    {
                        MonthsOfYear = new[]
                        {
                            AzureNative.RecoveryServices.MonthOfYear.January,
                        },
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 10,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Years,
                        },
                        RetentionScheduleFormatType = AzureNative.RecoveryServices.RetentionScheduleFormat.Weekly,
                        RetentionScheduleWeekly = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatArgs
                        {
                            DaysOfTheWeek = new[]
                            {
                                AzureNative.RecoveryServices.DayOfWeek.Sunday,
                            },
                            WeeksOfTheMonth = new[]
                            {
                                AzureNative.RecoveryServices.WeekOfMonth.First,
                            },
                        },
                    },
                },
                SchedulePolicy = new AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyArgs
                {
                    HourlySchedule = new AzureNative.RecoveryServices.Inputs.HourlyScheduleArgs
                    {
                        Interval = 4,
                        ScheduleWindowDuration = 12,
                        ScheduleWindowStartTime = "2021-09-29T08:00:00.000Z",
                    },
                    SchedulePolicyType = "SimpleSchedulePolicy",
                    ScheduleRunFrequency = AzureNative.RecoveryServices.ScheduleRunType.Hourly,
                },
                TimeZone = "UTC",
                WorkLoadType = AzureNative.RecoveryServices.WorkloadType.AzureFileShare,
            },
            ResourceGroupName = "SwaggerTestRg",
            VaultName = "swaggertestvault",
        });
    
    });
    
    package main
    
    import (
    	recoveryservices "github.com/pulumi/pulumi-azure-native-sdk/recoveryservices/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := recoveryservices.NewProtectionPolicy(ctx, "protectionPolicy", &recoveryservices.ProtectionPolicyArgs{
    			PolicyName: pulumi.String("newPolicy2"),
    			Properties: &recoveryservices.AzureFileShareProtectionPolicyArgs{
    				BackupManagementType: pulumi.String("AzureStorage"),
    				RetentionPolicy: recoveryservices.LongTermRetentionPolicy{
    					DailySchedule: recoveryservices.DailyRetentionSchedule{
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        5,
    							DurationType: recoveryservices.RetentionDurationTypeDays,
    						},
    					},
    					MonthlySchedule: recoveryservices.MonthlyRetentionSchedule{
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        60,
    							DurationType: recoveryservices.RetentionDurationTypeMonths,
    						},
    						RetentionScheduleFormatType: recoveryservices.RetentionScheduleFormatWeekly,
    						RetentionScheduleWeekly: recoveryservices.WeeklyRetentionFormat{
    							DaysOfTheWeek: []recoveryservices.DayOfWeek{
    								recoveryservices.DayOfWeekSunday,
    							},
    							WeeksOfTheMonth: []recoveryservices.WeekOfMonth{
    								recoveryservices.WeekOfMonthFirst,
    							},
    						},
    					},
    					RetentionPolicyType: "LongTermRetentionPolicy",
    					WeeklySchedule: recoveryservices.WeeklyRetentionSchedule{
    						DaysOfTheWeek: []recoveryservices.DayOfWeek{
    							recoveryservices.DayOfWeekSunday,
    						},
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        12,
    							DurationType: recoveryservices.RetentionDurationTypeWeeks,
    						},
    					},
    					YearlySchedule: recoveryservices.YearlyRetentionSchedule{
    						MonthsOfYear: []recoveryservices.MonthOfYear{
    							recoveryservices.MonthOfYearJanuary,
    						},
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        10,
    							DurationType: recoveryservices.RetentionDurationTypeYears,
    						},
    						RetentionScheduleFormatType: recoveryservices.RetentionScheduleFormatWeekly,
    						RetentionScheduleWeekly: recoveryservices.WeeklyRetentionFormat{
    							DaysOfTheWeek: []recoveryservices.DayOfWeek{
    								recoveryservices.DayOfWeekSunday,
    							},
    							WeeksOfTheMonth: []recoveryservices.WeekOfMonth{
    								recoveryservices.WeekOfMonthFirst,
    							},
    						},
    					},
    				},
    				SchedulePolicy: recoveryservices.SimpleSchedulePolicy{
    					HourlySchedule: recoveryservices.HourlySchedule{
    						Interval:                4,
    						ScheduleWindowDuration:  12,
    						ScheduleWindowStartTime: "2021-09-29T08:00:00.000Z",
    					},
    					SchedulePolicyType:   "SimpleSchedulePolicy",
    					ScheduleRunFrequency: recoveryservices.ScheduleRunTypeHourly,
    				},
    				TimeZone:     pulumi.String("UTC"),
    				WorkLoadType: pulumi.String(recoveryservices.WorkloadTypeAzureFileShare),
    			},
    			ResourceGroupName: pulumi.String("SwaggerTestRg"),
    			VaultName:         pulumi.String("swaggertestvault"),
    		})
    		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.recoveryservices.ProtectionPolicy;
    import com.pulumi.azurenative.recoveryservices.ProtectionPolicyArgs;
    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 protectionPolicy = new ProtectionPolicy("protectionPolicy", ProtectionPolicyArgs.builder()
                .policyName("newPolicy2")
                .properties(AzureFileShareProtectionPolicyArgs.builder()
                    .backupManagementType("AzureStorage")
                    .retentionPolicy(LongTermRetentionPolicyArgs.builder()
                        .dailySchedule(DailyRetentionScheduleArgs.builder()
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(5)
                                .durationType("Days")
                                .build())
                            .build())
                        .monthlySchedule(MonthlyRetentionScheduleArgs.builder()
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(60)
                                .durationType("Months")
                                .build())
                            .retentionScheduleFormatType("Weekly")
                            .retentionScheduleWeekly(WeeklyRetentionFormatArgs.builder()
                                .daysOfTheWeek("Sunday")
                                .weeksOfTheMonth("First")
                                .build())
                            .build())
                        .retentionPolicyType("LongTermRetentionPolicy")
                        .weeklySchedule(WeeklyRetentionScheduleArgs.builder()
                            .daysOfTheWeek("Sunday")
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(12)
                                .durationType("Weeks")
                                .build())
                            .build())
                        .yearlySchedule(YearlyRetentionScheduleArgs.builder()
                            .monthsOfYear("January")
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(10)
                                .durationType("Years")
                                .build())
                            .retentionScheduleFormatType("Weekly")
                            .retentionScheduleWeekly(WeeklyRetentionFormatArgs.builder()
                                .daysOfTheWeek("Sunday")
                                .weeksOfTheMonth("First")
                                .build())
                            .build())
                        .build())
                    .schedulePolicy(SimpleSchedulePolicyArgs.builder()
                        .hourlySchedule(HourlyScheduleArgs.builder()
                            .interval(4)
                            .scheduleWindowDuration(12)
                            .scheduleWindowStartTime("2021-09-29T08:00:00.000Z")
                            .build())
                        .schedulePolicyType("SimpleSchedulePolicy")
                        .scheduleRunFrequency("Hourly")
                        .build())
                    .timeZone("UTC")
                    .workLoadType("AzureFileShare")
                    .build())
                .resourceGroupName("SwaggerTestRg")
                .vaultName("swaggertestvault")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    protection_policy = azure_native.recoveryservices.ProtectionPolicy("protectionPolicy",
        policy_name="newPolicy2",
        properties={
            "backup_management_type": "AzureStorage",
            "retention_policy": {
                "daily_schedule": {
                    "retention_duration": {
                        "count": 5,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.DAYS,
                    },
                },
                "monthly_schedule": {
                    "retention_duration": {
                        "count": 60,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.MONTHS,
                    },
                    "retention_schedule_format_type": azure_native.recoveryservices.RetentionScheduleFormat.WEEKLY,
                    "retention_schedule_weekly": {
                        "days_of_the_week": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                        "weeks_of_the_month": [azure_native.recoveryservices.WeekOfMonth.FIRST],
                    },
                },
                "retention_policy_type": "LongTermRetentionPolicy",
                "weekly_schedule": {
                    "days_of_the_week": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                    "retention_duration": {
                        "count": 12,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.WEEKS,
                    },
                },
                "yearly_schedule": {
                    "months_of_year": [azure_native.recoveryservices.MonthOfYear.JANUARY],
                    "retention_duration": {
                        "count": 10,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.YEARS,
                    },
                    "retention_schedule_format_type": azure_native.recoveryservices.RetentionScheduleFormat.WEEKLY,
                    "retention_schedule_weekly": {
                        "days_of_the_week": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                        "weeks_of_the_month": [azure_native.recoveryservices.WeekOfMonth.FIRST],
                    },
                },
            },
            "schedule_policy": {
                "hourly_schedule": {
                    "interval": 4,
                    "schedule_window_duration": 12,
                    "schedule_window_start_time": "2021-09-29T08:00:00.000Z",
                },
                "schedule_policy_type": "SimpleSchedulePolicy",
                "schedule_run_frequency": azure_native.recoveryservices.ScheduleRunType.HOURLY,
            },
            "time_zone": "UTC",
            "work_load_type": azure_native.recoveryservices.WorkloadType.AZURE_FILE_SHARE,
        },
        resource_group_name="SwaggerTestRg",
        vault_name="swaggertestvault")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const protectionPolicy = new azure_native.recoveryservices.ProtectionPolicy("protectionPolicy", {
        policyName: "newPolicy2",
        properties: {
            backupManagementType: "AzureStorage",
            retentionPolicy: {
                dailySchedule: {
                    retentionDuration: {
                        count: 5,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Days,
                    },
                },
                monthlySchedule: {
                    retentionDuration: {
                        count: 60,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Months,
                    },
                    retentionScheduleFormatType: azure_native.recoveryservices.RetentionScheduleFormat.Weekly,
                    retentionScheduleWeekly: {
                        daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                        weeksOfTheMonth: [azure_native.recoveryservices.WeekOfMonth.First],
                    },
                },
                retentionPolicyType: "LongTermRetentionPolicy",
                weeklySchedule: {
                    daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                    retentionDuration: {
                        count: 12,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Weeks,
                    },
                },
                yearlySchedule: {
                    monthsOfYear: [azure_native.recoveryservices.MonthOfYear.January],
                    retentionDuration: {
                        count: 10,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Years,
                    },
                    retentionScheduleFormatType: azure_native.recoveryservices.RetentionScheduleFormat.Weekly,
                    retentionScheduleWeekly: {
                        daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                        weeksOfTheMonth: [azure_native.recoveryservices.WeekOfMonth.First],
                    },
                },
            },
            schedulePolicy: {
                hourlySchedule: {
                    interval: 4,
                    scheduleWindowDuration: 12,
                    scheduleWindowStartTime: "2021-09-29T08:00:00.000Z",
                },
                schedulePolicyType: "SimpleSchedulePolicy",
                scheduleRunFrequency: azure_native.recoveryservices.ScheduleRunType.Hourly,
            },
            timeZone: "UTC",
            workLoadType: azure_native.recoveryservices.WorkloadType.AzureFileShare,
        },
        resourceGroupName: "SwaggerTestRg",
        vaultName: "swaggertestvault",
    });
    
    resources:
      protectionPolicy:
        type: azure-native:recoveryservices:ProtectionPolicy
        properties:
          policyName: newPolicy2
          properties:
            backupManagementType: AzureStorage
            retentionPolicy:
              dailySchedule:
                retentionDuration:
                  count: 5
                  durationType: Days
              monthlySchedule:
                retentionDuration:
                  count: 60
                  durationType: Months
                retentionScheduleFormatType: Weekly
                retentionScheduleWeekly:
                  daysOfTheWeek:
                    - Sunday
                  weeksOfTheMonth:
                    - First
              retentionPolicyType: LongTermRetentionPolicy
              weeklySchedule:
                daysOfTheWeek:
                  - Sunday
                retentionDuration:
                  count: 12
                  durationType: Weeks
              yearlySchedule:
                monthsOfYear:
                  - January
                retentionDuration:
                  count: 10
                  durationType: Years
                retentionScheduleFormatType: Weekly
                retentionScheduleWeekly:
                  daysOfTheWeek:
                    - Sunday
                  weeksOfTheMonth:
                    - First
            schedulePolicy:
              hourlySchedule:
                interval: 4
                scheduleWindowDuration: 12
                scheduleWindowStartTime: 2021-09-29T08:00:00.000Z
              schedulePolicyType: SimpleSchedulePolicy
              scheduleRunFrequency: Hourly
            timeZone: UTC
            workLoadType: AzureFileShare
          resourceGroupName: SwaggerTestRg
          vaultName: swaggertestvault
    

    Create or Update Simple Azure Vm Protection Policy

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var protectionPolicy = new AzureNative.RecoveryServices.ProtectionPolicy("protectionPolicy", new()
        {
            PolicyName = "testPolicy1",
            Properties = new AzureNative.RecoveryServices.Inputs.AzureIaaSVMProtectionPolicyArgs
            {
                BackupManagementType = "AzureIaasVM",
                RetentionPolicy = new AzureNative.RecoveryServices.Inputs.LongTermRetentionPolicyArgs
                {
                    DailySchedule = new AzureNative.RecoveryServices.Inputs.DailyRetentionScheduleArgs
                    {
                        RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                        {
                            Count = 1,
                            DurationType = AzureNative.RecoveryServices.RetentionDurationType.Days,
                        },
                        RetentionTimes = new[]
                        {
                            "2018-01-24T02:00:00Z",
                        },
                    },
                    RetentionPolicyType = "LongTermRetentionPolicy",
                },
                SchedulePolicy = new AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyArgs
                {
                    SchedulePolicyType = "SimpleSchedulePolicy",
                    ScheduleRunFrequency = AzureNative.RecoveryServices.ScheduleRunType.Daily,
                    ScheduleRunTimes = new[]
                    {
                        "2018-01-24T02:00:00Z",
                    },
                },
                TimeZone = "Pacific Standard Time",
            },
            ResourceGroupName = "SwaggerTestRg",
            VaultName = "NetSDKTestRsVault",
        });
    
    });
    
    package main
    
    import (
    	recoveryservices "github.com/pulumi/pulumi-azure-native-sdk/recoveryservices/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := recoveryservices.NewProtectionPolicy(ctx, "protectionPolicy", &recoveryservices.ProtectionPolicyArgs{
    			PolicyName: pulumi.String("testPolicy1"),
    			Properties: &recoveryservices.AzureIaaSVMProtectionPolicyArgs{
    				BackupManagementType: pulumi.String("AzureIaasVM"),
    				RetentionPolicy: recoveryservices.LongTermRetentionPolicy{
    					DailySchedule: recoveryservices.DailyRetentionSchedule{
    						RetentionDuration: recoveryservices.RetentionDuration{
    							Count:        1,
    							DurationType: recoveryservices.RetentionDurationTypeDays,
    						},
    						RetentionTimes: []string{
    							"2018-01-24T02:00:00Z",
    						},
    					},
    					RetentionPolicyType: "LongTermRetentionPolicy",
    				},
    				SchedulePolicy: recoveryservices.SimpleSchedulePolicy{
    					SchedulePolicyType:   "SimpleSchedulePolicy",
    					ScheduleRunFrequency: recoveryservices.ScheduleRunTypeDaily,
    					ScheduleRunTimes: []string{
    						"2018-01-24T02:00:00Z",
    					},
    				},
    				TimeZone: pulumi.String("Pacific Standard Time"),
    			},
    			ResourceGroupName: pulumi.String("SwaggerTestRg"),
    			VaultName:         pulumi.String("NetSDKTestRsVault"),
    		})
    		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.recoveryservices.ProtectionPolicy;
    import com.pulumi.azurenative.recoveryservices.ProtectionPolicyArgs;
    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 protectionPolicy = new ProtectionPolicy("protectionPolicy", ProtectionPolicyArgs.builder()
                .policyName("testPolicy1")
                .properties(AzureFileShareProtectionPolicyArgs.builder()
                    .backupManagementType("AzureIaasVM")
                    .retentionPolicy(LongTermRetentionPolicyArgs.builder()
                        .dailySchedule(DailyRetentionScheduleArgs.builder()
                            .retentionDuration(RetentionDurationArgs.builder()
                                .count(1)
                                .durationType("Days")
                                .build())
                            .retentionTimes("2018-01-24T02:00:00Z")
                            .build())
                        .retentionPolicyType("LongTermRetentionPolicy")
                        .build())
                    .schedulePolicy(SimpleSchedulePolicyArgs.builder()
                        .schedulePolicyType("SimpleSchedulePolicy")
                        .scheduleRunFrequency("Daily")
                        .scheduleRunTimes("2018-01-24T02:00:00Z")
                        .build())
                    .timeZone("Pacific Standard Time")
                    .build())
                .resourceGroupName("SwaggerTestRg")
                .vaultName("NetSDKTestRsVault")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    protection_policy = azure_native.recoveryservices.ProtectionPolicy("protectionPolicy",
        policy_name="testPolicy1",
        properties={
            "backup_management_type": "AzureIaasVM",
            "retention_policy": {
                "daily_schedule": {
                    "retention_duration": {
                        "count": 1,
                        "duration_type": azure_native.recoveryservices.RetentionDurationType.DAYS,
                    },
                    "retention_times": ["2018-01-24T02:00:00Z"],
                },
                "retention_policy_type": "LongTermRetentionPolicy",
            },
            "schedule_policy": {
                "schedule_policy_type": "SimpleSchedulePolicy",
                "schedule_run_frequency": azure_native.recoveryservices.ScheduleRunType.DAILY,
                "schedule_run_times": ["2018-01-24T02:00:00Z"],
            },
            "time_zone": "Pacific Standard Time",
        },
        resource_group_name="SwaggerTestRg",
        vault_name="NetSDKTestRsVault")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const protectionPolicy = new azure_native.recoveryservices.ProtectionPolicy("protectionPolicy", {
        policyName: "testPolicy1",
        properties: {
            backupManagementType: "AzureIaasVM",
            retentionPolicy: {
                dailySchedule: {
                    retentionDuration: {
                        count: 1,
                        durationType: azure_native.recoveryservices.RetentionDurationType.Days,
                    },
                    retentionTimes: ["2018-01-24T02:00:00Z"],
                },
                retentionPolicyType: "LongTermRetentionPolicy",
            },
            schedulePolicy: {
                schedulePolicyType: "SimpleSchedulePolicy",
                scheduleRunFrequency: azure_native.recoveryservices.ScheduleRunType.Daily,
                scheduleRunTimes: ["2018-01-24T02:00:00Z"],
            },
            timeZone: "Pacific Standard Time",
        },
        resourceGroupName: "SwaggerTestRg",
        vaultName: "NetSDKTestRsVault",
    });
    
    resources:
      protectionPolicy:
        type: azure-native:recoveryservices:ProtectionPolicy
        properties:
          policyName: testPolicy1
          properties:
            backupManagementType: AzureIaasVM
            retentionPolicy:
              dailySchedule:
                retentionDuration:
                  count: 1
                  durationType: Days
                retentionTimes:
                  - 2018-01-24T02:00:00Z
              retentionPolicyType: LongTermRetentionPolicy
            schedulePolicy:
              schedulePolicyType: SimpleSchedulePolicy
              scheduleRunFrequency: Daily
              scheduleRunTimes:
                - 2018-01-24T02:00:00Z
            timeZone: Pacific Standard Time
          resourceGroupName: SwaggerTestRg
          vaultName: NetSDKTestRsVault
    

    Create ProtectionPolicy Resource

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

    Constructor syntax

    new ProtectionPolicy(name: string, args: ProtectionPolicyArgs, opts?: CustomResourceOptions);
    @overload
    def ProtectionPolicy(resource_name: str,
                         args: ProtectionPolicyArgs,
                         opts: Optional[ResourceOptions] = None)
    
    @overload
    def ProtectionPolicy(resource_name: str,
                         opts: Optional[ResourceOptions] = None,
                         resource_group_name: Optional[str] = None,
                         vault_name: Optional[str] = None,
                         e_tag: Optional[str] = None,
                         location: Optional[str] = None,
                         policy_name: Optional[str] = None,
                         properties: Optional[Union[AzureFileShareProtectionPolicyArgs, AzureIaaSVMProtectionPolicyArgs, AzureSqlProtectionPolicyArgs, AzureVmWorkloadProtectionPolicyArgs, GenericProtectionPolicyArgs, MabProtectionPolicyArgs]] = None,
                         tags: Optional[Mapping[str, str]] = None)
    func NewProtectionPolicy(ctx *Context, name string, args ProtectionPolicyArgs, opts ...ResourceOption) (*ProtectionPolicy, error)
    public ProtectionPolicy(string name, ProtectionPolicyArgs args, CustomResourceOptions? opts = null)
    public ProtectionPolicy(String name, ProtectionPolicyArgs args)
    public ProtectionPolicy(String name, ProtectionPolicyArgs args, CustomResourceOptions options)
    
    type: azure-native:recoveryservices:ProtectionPolicy
    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 ProtectionPolicyArgs
    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 ProtectionPolicyArgs
    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 ProtectionPolicyArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ProtectionPolicyArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ProtectionPolicyArgs
    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 protectionPolicyResource = new AzureNative.RecoveryServices.ProtectionPolicy("protectionPolicyResource", new()
    {
        ResourceGroupName = "string",
        VaultName = "string",
        ETag = "string",
        Location = "string",
        PolicyName = "string",
        Properties = new AzureNative.RecoveryServices.Inputs.AzureFileShareProtectionPolicyArgs
        {
            BackupManagementType = "AzureStorage",
            ProtectedItemsCount = 0,
            ResourceGuardOperationRequests = new[]
            {
                "string",
            },
            RetentionPolicy = new AzureNative.RecoveryServices.Inputs.LongTermRetentionPolicyArgs
            {
                RetentionPolicyType = "LongTermRetentionPolicy",
                DailySchedule = new AzureNative.RecoveryServices.Inputs.DailyRetentionScheduleArgs
                {
                    RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                    {
                        Count = 0,
                        DurationType = "string",
                    },
                    RetentionTimes = new[]
                    {
                        "string",
                    },
                },
                MonthlySchedule = new AzureNative.RecoveryServices.Inputs.MonthlyRetentionScheduleArgs
                {
                    RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                    {
                        Count = 0,
                        DurationType = "string",
                    },
                    RetentionScheduleDaily = new AzureNative.RecoveryServices.Inputs.DailyRetentionFormatArgs
                    {
                        DaysOfTheMonth = new[]
                        {
                            new AzureNative.RecoveryServices.Inputs.DayArgs
                            {
                                Date = 0,
                                IsLast = false,
                            },
                        },
                    },
                    RetentionScheduleFormatType = "string",
                    RetentionScheduleWeekly = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatArgs
                    {
                        DaysOfTheWeek = new[]
                        {
                            AzureNative.RecoveryServices.DayOfWeek.Sunday,
                        },
                        WeeksOfTheMonth = new[]
                        {
                            AzureNative.RecoveryServices.WeekOfMonth.First,
                        },
                    },
                    RetentionTimes = new[]
                    {
                        "string",
                    },
                },
                WeeklySchedule = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionScheduleArgs
                {
                    DaysOfTheWeek = new[]
                    {
                        AzureNative.RecoveryServices.DayOfWeek.Sunday,
                    },
                    RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                    {
                        Count = 0,
                        DurationType = "string",
                    },
                    RetentionTimes = new[]
                    {
                        "string",
                    },
                },
                YearlySchedule = new AzureNative.RecoveryServices.Inputs.YearlyRetentionScheduleArgs
                {
                    MonthsOfYear = new[]
                    {
                        AzureNative.RecoveryServices.MonthOfYear.Invalid,
                    },
                    RetentionDuration = new AzureNative.RecoveryServices.Inputs.RetentionDurationArgs
                    {
                        Count = 0,
                        DurationType = "string",
                    },
                    RetentionScheduleDaily = new AzureNative.RecoveryServices.Inputs.DailyRetentionFormatArgs
                    {
                        DaysOfTheMonth = new[]
                        {
                            new AzureNative.RecoveryServices.Inputs.DayArgs
                            {
                                Date = 0,
                                IsLast = false,
                            },
                        },
                    },
                    RetentionScheduleFormatType = "string",
                    RetentionScheduleWeekly = new AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatArgs
                    {
                        DaysOfTheWeek = new[]
                        {
                            AzureNative.RecoveryServices.DayOfWeek.Sunday,
                        },
                        WeeksOfTheMonth = new[]
                        {
                            AzureNative.RecoveryServices.WeekOfMonth.First,
                        },
                    },
                    RetentionTimes = new[]
                    {
                        "string",
                    },
                },
            },
            SchedulePolicy = new AzureNative.RecoveryServices.Inputs.LogSchedulePolicyArgs
            {
                SchedulePolicyType = "LogSchedulePolicy",
                ScheduleFrequencyInMins = 0,
            },
            TimeZone = "string",
            WorkLoadType = "string",
        },
        Tags = 
        {
            { "string", "string" },
        },
    });
    
    example, err := recoveryservices.NewProtectionPolicy(ctx, "protectionPolicyResource", &recoveryservices.ProtectionPolicyArgs{
    	ResourceGroupName: pulumi.String("string"),
    	VaultName:         pulumi.String("string"),
    	ETag:              pulumi.String("string"),
    	Location:          pulumi.String("string"),
    	PolicyName:        pulumi.String("string"),
    	Properties: &recoveryservices.AzureFileShareProtectionPolicyArgs{
    		BackupManagementType: pulumi.String("AzureStorage"),
    		ProtectedItemsCount:  pulumi.Int(0),
    		ResourceGuardOperationRequests: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		RetentionPolicy: recoveryservices.LongTermRetentionPolicy{
    			RetentionPolicyType: "LongTermRetentionPolicy",
    			DailySchedule: recoveryservices.DailyRetentionSchedule{
    				RetentionDuration: recoveryservices.RetentionDuration{
    					Count:        0,
    					DurationType: "string",
    				},
    				RetentionTimes: []string{
    					"string",
    				},
    			},
    			MonthlySchedule: recoveryservices.MonthlyRetentionSchedule{
    				RetentionDuration: recoveryservices.RetentionDuration{
    					Count:        0,
    					DurationType: "string",
    				},
    				RetentionScheduleDaily: recoveryservices.DailyRetentionFormat{
    					DaysOfTheMonth: []recoveryservices.Day{
    						{
    							Date:   0,
    							IsLast: false,
    						},
    					},
    				},
    				RetentionScheduleFormatType: "string",
    				RetentionScheduleWeekly: recoveryservices.WeeklyRetentionFormat{
    					DaysOfTheWeek: []recoveryservices.DayOfWeek{
    						recoveryservices.DayOfWeekSunday,
    					},
    					WeeksOfTheMonth: []recoveryservices.WeekOfMonth{
    						recoveryservices.WeekOfMonthFirst,
    					},
    				},
    				RetentionTimes: []string{
    					"string",
    				},
    			},
    			WeeklySchedule: recoveryservices.WeeklyRetentionSchedule{
    				DaysOfTheWeek: []recoveryservices.DayOfWeek{
    					recoveryservices.DayOfWeekSunday,
    				},
    				RetentionDuration: recoveryservices.RetentionDuration{
    					Count:        0,
    					DurationType: "string",
    				},
    				RetentionTimes: []string{
    					"string",
    				},
    			},
    			YearlySchedule: recoveryservices.YearlyRetentionSchedule{
    				MonthsOfYear: []recoveryservices.MonthOfYear{
    					recoveryservices.MonthOfYearInvalid,
    				},
    				RetentionDuration: recoveryservices.RetentionDuration{
    					Count:        0,
    					DurationType: "string",
    				},
    				RetentionScheduleDaily: recoveryservices.DailyRetentionFormat{
    					DaysOfTheMonth: []recoveryservices.Day{
    						{
    							Date:   0,
    							IsLast: false,
    						},
    					},
    				},
    				RetentionScheduleFormatType: "string",
    				RetentionScheduleWeekly: recoveryservices.WeeklyRetentionFormat{
    					DaysOfTheWeek: []recoveryservices.DayOfWeek{
    						recoveryservices.DayOfWeekSunday,
    					},
    					WeeksOfTheMonth: []recoveryservices.WeekOfMonth{
    						recoveryservices.WeekOfMonthFirst,
    					},
    				},
    				RetentionTimes: []string{
    					"string",
    				},
    			},
    		},
    		SchedulePolicy: recoveryservices.LogSchedulePolicy{
    			SchedulePolicyType:      "LogSchedulePolicy",
    			ScheduleFrequencyInMins: 0,
    		},
    		TimeZone:     pulumi.String("string"),
    		WorkLoadType: pulumi.String("string"),
    	},
    	Tags: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    })
    
    var protectionPolicyResource = new ProtectionPolicy("protectionPolicyResource", ProtectionPolicyArgs.builder()
        .resourceGroupName("string")
        .vaultName("string")
        .eTag("string")
        .location("string")
        .policyName("string")
        .properties(AzureFileShareProtectionPolicyArgs.builder()
            .backupManagementType("AzureStorage")
            .protectedItemsCount(0)
            .resourceGuardOperationRequests("string")
            .retentionPolicy(LongTermRetentionPolicyArgs.builder()
                .retentionPolicyType("LongTermRetentionPolicy")
                .dailySchedule(DailyRetentionScheduleArgs.builder()
                    .retentionDuration(RetentionDurationArgs.builder()
                        .count(0)
                        .durationType("string")
                        .build())
                    .retentionTimes("string")
                    .build())
                .monthlySchedule(MonthlyRetentionScheduleArgs.builder()
                    .retentionDuration(RetentionDurationArgs.builder()
                        .count(0)
                        .durationType("string")
                        .build())
                    .retentionScheduleDaily(DailyRetentionFormatArgs.builder()
                        .daysOfTheMonth(DayArgs.builder()
                            .date(0)
                            .isLast(false)
                            .build())
                        .build())
                    .retentionScheduleFormatType("string")
                    .retentionScheduleWeekly(WeeklyRetentionFormatArgs.builder()
                        .daysOfTheWeek("Sunday")
                        .weeksOfTheMonth("First")
                        .build())
                    .retentionTimes("string")
                    .build())
                .weeklySchedule(WeeklyRetentionScheduleArgs.builder()
                    .daysOfTheWeek("Sunday")
                    .retentionDuration(RetentionDurationArgs.builder()
                        .count(0)
                        .durationType("string")
                        .build())
                    .retentionTimes("string")
                    .build())
                .yearlySchedule(YearlyRetentionScheduleArgs.builder()
                    .monthsOfYear("Invalid")
                    .retentionDuration(RetentionDurationArgs.builder()
                        .count(0)
                        .durationType("string")
                        .build())
                    .retentionScheduleDaily(DailyRetentionFormatArgs.builder()
                        .daysOfTheMonth(DayArgs.builder()
                            .date(0)
                            .isLast(false)
                            .build())
                        .build())
                    .retentionScheduleFormatType("string")
                    .retentionScheduleWeekly(WeeklyRetentionFormatArgs.builder()
                        .daysOfTheWeek("Sunday")
                        .weeksOfTheMonth("First")
                        .build())
                    .retentionTimes("string")
                    .build())
                .build())
            .schedulePolicy(LogSchedulePolicyArgs.builder()
                .schedulePolicyType("LogSchedulePolicy")
                .scheduleFrequencyInMins(0)
                .build())
            .timeZone("string")
            .workLoadType("string")
            .build())
        .tags(Map.of("string", "string"))
        .build());
    
    protection_policy_resource = azure_native.recoveryservices.ProtectionPolicy("protectionPolicyResource",
        resource_group_name="string",
        vault_name="string",
        e_tag="string",
        location="string",
        policy_name="string",
        properties={
            "backupManagementType": "AzureStorage",
            "protectedItemsCount": 0,
            "resourceGuardOperationRequests": ["string"],
            "retentionPolicy": {
                "retentionPolicyType": "LongTermRetentionPolicy",
                "dailySchedule": {
                    "retentionDuration": {
                        "count": 0,
                        "durationType": "string",
                    },
                    "retentionTimes": ["string"],
                },
                "monthlySchedule": {
                    "retentionDuration": {
                        "count": 0,
                        "durationType": "string",
                    },
                    "retentionScheduleDaily": {
                        "daysOfTheMonth": [{
                            "date": 0,
                            "isLast": False,
                        }],
                    },
                    "retentionScheduleFormatType": "string",
                    "retentionScheduleWeekly": {
                        "daysOfTheWeek": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                        "weeksOfTheMonth": [azure_native.recoveryservices.WeekOfMonth.FIRST],
                    },
                    "retentionTimes": ["string"],
                },
                "weeklySchedule": {
                    "daysOfTheWeek": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                    "retentionDuration": {
                        "count": 0,
                        "durationType": "string",
                    },
                    "retentionTimes": ["string"],
                },
                "yearlySchedule": {
                    "monthsOfYear": [azure_native.recoveryservices.MonthOfYear.INVALID],
                    "retentionDuration": {
                        "count": 0,
                        "durationType": "string",
                    },
                    "retentionScheduleDaily": {
                        "daysOfTheMonth": [{
                            "date": 0,
                            "isLast": False,
                        }],
                    },
                    "retentionScheduleFormatType": "string",
                    "retentionScheduleWeekly": {
                        "daysOfTheWeek": [azure_native.recoveryservices.DayOfWeek.SUNDAY],
                        "weeksOfTheMonth": [azure_native.recoveryservices.WeekOfMonth.FIRST],
                    },
                    "retentionTimes": ["string"],
                },
            },
            "schedulePolicy": {
                "schedulePolicyType": "LogSchedulePolicy",
                "scheduleFrequencyInMins": 0,
            },
            "timeZone": "string",
            "workLoadType": "string",
        },
        tags={
            "string": "string",
        })
    
    const protectionPolicyResource = new azure_native.recoveryservices.ProtectionPolicy("protectionPolicyResource", {
        resourceGroupName: "string",
        vaultName: "string",
        eTag: "string",
        location: "string",
        policyName: "string",
        properties: {
            backupManagementType: "AzureStorage",
            protectedItemsCount: 0,
            resourceGuardOperationRequests: ["string"],
            retentionPolicy: {
                retentionPolicyType: "LongTermRetentionPolicy",
                dailySchedule: {
                    retentionDuration: {
                        count: 0,
                        durationType: "string",
                    },
                    retentionTimes: ["string"],
                },
                monthlySchedule: {
                    retentionDuration: {
                        count: 0,
                        durationType: "string",
                    },
                    retentionScheduleDaily: {
                        daysOfTheMonth: [{
                            date: 0,
                            isLast: false,
                        }],
                    },
                    retentionScheduleFormatType: "string",
                    retentionScheduleWeekly: {
                        daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                        weeksOfTheMonth: [azure_native.recoveryservices.WeekOfMonth.First],
                    },
                    retentionTimes: ["string"],
                },
                weeklySchedule: {
                    daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                    retentionDuration: {
                        count: 0,
                        durationType: "string",
                    },
                    retentionTimes: ["string"],
                },
                yearlySchedule: {
                    monthsOfYear: [azure_native.recoveryservices.MonthOfYear.Invalid],
                    retentionDuration: {
                        count: 0,
                        durationType: "string",
                    },
                    retentionScheduleDaily: {
                        daysOfTheMonth: [{
                            date: 0,
                            isLast: false,
                        }],
                    },
                    retentionScheduleFormatType: "string",
                    retentionScheduleWeekly: {
                        daysOfTheWeek: [azure_native.recoveryservices.DayOfWeek.Sunday],
                        weeksOfTheMonth: [azure_native.recoveryservices.WeekOfMonth.First],
                    },
                    retentionTimes: ["string"],
                },
            },
            schedulePolicy: {
                schedulePolicyType: "LogSchedulePolicy",
                scheduleFrequencyInMins: 0,
            },
            timeZone: "string",
            workLoadType: "string",
        },
        tags: {
            string: "string",
        },
    });
    
    type: azure-native:recoveryservices:ProtectionPolicy
    properties:
        eTag: string
        location: string
        policyName: string
        properties:
            backupManagementType: AzureStorage
            protectedItemsCount: 0
            resourceGuardOperationRequests:
                - string
            retentionPolicy:
                dailySchedule:
                    retentionDuration:
                        count: 0
                        durationType: string
                    retentionTimes:
                        - string
                monthlySchedule:
                    retentionDuration:
                        count: 0
                        durationType: string
                    retentionScheduleDaily:
                        daysOfTheMonth:
                            - date: 0
                              isLast: false
                    retentionScheduleFormatType: string
                    retentionScheduleWeekly:
                        daysOfTheWeek:
                            - Sunday
                        weeksOfTheMonth:
                            - First
                    retentionTimes:
                        - string
                retentionPolicyType: LongTermRetentionPolicy
                weeklySchedule:
                    daysOfTheWeek:
                        - Sunday
                    retentionDuration:
                        count: 0
                        durationType: string
                    retentionTimes:
                        - string
                yearlySchedule:
                    monthsOfYear:
                        - Invalid
                    retentionDuration:
                        count: 0
                        durationType: string
                    retentionScheduleDaily:
                        daysOfTheMonth:
                            - date: 0
                              isLast: false
                    retentionScheduleFormatType: string
                    retentionScheduleWeekly:
                        daysOfTheWeek:
                            - Sunday
                        weeksOfTheMonth:
                            - First
                    retentionTimes:
                        - string
            schedulePolicy:
                scheduleFrequencyInMins: 0
                schedulePolicyType: LogSchedulePolicy
            timeZone: string
            workLoadType: string
        resourceGroupName: string
        tags:
            string: string
        vaultName: string
    

    ProtectionPolicy Resource Properties

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

    Inputs

    The ProtectionPolicy resource accepts the following input properties:

    ResourceGroupName string
    The name of the resource group where the recovery services vault is present.
    VaultName string
    The name of the recovery services vault.
    ETag string
    Optional ETag.
    Location string
    Resource location.
    PolicyName string
    Backup policy to be created.
    Properties AzureFileShareProtectionPolicyArgs | AzureIaaSVMProtectionPolicyArgs | AzureSqlProtectionPolicyArgs | AzureVmWorkloadProtectionPolicyArgs | GenericProtectionPolicyArgs | MabProtectionPolicyArgs
    ProtectionPolicyResource properties
    Tags map[string]string
    Resource tags.
    resourceGroupName String
    The name of the resource group where the recovery services vault is present.
    vaultName String
    The name of the recovery services vault.
    eTag String
    Optional ETag.
    location String
    Resource location.
    policyName String
    Backup policy to be created.
    properties AzureFileShareProtectionPolicy | AzureIaaSVMProtectionPolicy | AzureSqlProtectionPolicy | AzureVmWorkloadProtectionPolicy | GenericProtectionPolicy | MabProtectionPolicy
    ProtectionPolicyResource properties
    tags Map<String,String>
    Resource tags.
    resourceGroupName string
    The name of the resource group where the recovery services vault is present.
    vaultName string
    The name of the recovery services vault.
    eTag string
    Optional ETag.
    location string
    Resource location.
    policyName string
    Backup policy to be created.
    properties AzureFileShareProtectionPolicy | AzureIaaSVMProtectionPolicy | AzureSqlProtectionPolicy | AzureVmWorkloadProtectionPolicy | GenericProtectionPolicy | MabProtectionPolicy
    ProtectionPolicyResource properties
    tags {[key: string]: string}
    Resource tags.
    resource_group_name str
    The name of the resource group where the recovery services vault is present.
    vault_name str
    The name of the recovery services vault.
    e_tag str
    Optional ETag.
    location str
    Resource location.
    policy_name str
    Backup policy to be created.
    properties AzureFileShareProtectionPolicyArgs | AzureIaaSVMProtectionPolicyArgs | AzureSqlProtectionPolicyArgs | AzureVmWorkloadProtectionPolicyArgs | GenericProtectionPolicyArgs | MabProtectionPolicyArgs
    ProtectionPolicyResource properties
    tags Mapping[str, str]
    Resource tags.
    resourceGroupName String
    The name of the resource group where the recovery services vault is present.
    vaultName String
    The name of the recovery services vault.
    eTag String
    Optional ETag.
    location String
    Resource location.
    policyName String
    Backup policy to be created.
    properties Property Map | Property Map | Property Map | Property Map | Property Map | Property Map
    ProtectionPolicyResource properties
    tags Map<String>
    Resource tags.

    Outputs

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

    Id string
    The provider-assigned unique ID for this managed resource.
    Name string
    Resource name associated with the resource.
    Type string
    Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
    Id string
    The provider-assigned unique ID for this managed resource.
    Name string
    Resource name associated with the resource.
    Type string
    Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
    id String
    The provider-assigned unique ID for this managed resource.
    name String
    Resource name associated with the resource.
    type String
    Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
    id string
    The provider-assigned unique ID for this managed resource.
    name string
    Resource name associated with the resource.
    type string
    Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
    id str
    The provider-assigned unique ID for this managed resource.
    name str
    Resource name associated with the resource.
    type str
    Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
    id String
    The provider-assigned unique ID for this managed resource.
    name String
    Resource name associated with the resource.
    type String
    Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...

    Supporting Types

    AzureFileShareProtectionPolicy, AzureFileShareProtectionPolicyArgs

    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests List<string>
    ResourceGuard Operation Requests
    RetentionPolicy Pulumi.AzureNative.RecoveryServices.Inputs.LongTermRetentionPolicy | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleRetentionPolicy
    Retention policy with the details on backup copy retention ranges.
    SchedulePolicy Pulumi.AzureNative.RecoveryServices.Inputs.LogSchedulePolicy | Pulumi.AzureNative.RecoveryServices.Inputs.LongTermSchedulePolicy | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicy | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyV2
    Backup schedule specified as part of backup policy.
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    WorkLoadType string | Pulumi.AzureNative.RecoveryServices.WorkloadType
    Type of workload for the backup management
    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests []string
    ResourceGuard Operation Requests
    RetentionPolicy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy with the details on backup copy retention ranges.
    SchedulePolicy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule specified as part of backup policy.
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    WorkLoadType string | WorkloadType
    Type of workload for the backup management
    protectedItemsCount Integer
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule specified as part of backup policy.
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    workLoadType String | WorkloadType
    Type of workload for the backup management
    protectedItemsCount number
    Number of items associated with this policy.
    resourceGuardOperationRequests string[]
    ResourceGuard Operation Requests
    retentionPolicy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule specified as part of backup policy.
    timeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    workLoadType string | WorkloadType
    Type of workload for the backup management
    protected_items_count int
    Number of items associated with this policy.
    resource_guard_operation_requests Sequence[str]
    ResourceGuard Operation Requests
    retention_policy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy with the details on backup copy retention ranges.
    schedule_policy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule specified as part of backup policy.
    time_zone str
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    work_load_type str | WorkloadType
    Type of workload for the backup management
    protectedItemsCount Number
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy Property Map | Property Map
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy Property Map | Property Map | Property Map | Property Map
    Backup schedule specified as part of backup policy.
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    workLoadType String | "Invalid" | "VM" | "FileFolder" | "AzureSqlDb" | "SQLDB" | "Exchange" | "Sharepoint" | "VMwareVM" | "SystemState" | "Client" | "GenericDataSource" | "SQLDataBase" | "AzureFileShare" | "SAPHanaDatabase" | "SAPAseDatabase" | "SAPHanaDBInstance"
    Type of workload for the backup management

    AzureFileShareProtectionPolicyResponse, AzureFileShareProtectionPolicyResponseArgs

    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests List<string>
    ResourceGuard Operation Requests
    RetentionPolicy Pulumi.AzureNative.RecoveryServices.Inputs.LongTermRetentionPolicyResponse | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleRetentionPolicyResponse
    Retention policy with the details on backup copy retention ranges.
    SchedulePolicy Pulumi.AzureNative.RecoveryServices.Inputs.LogSchedulePolicyResponse | Pulumi.AzureNative.RecoveryServices.Inputs.LongTermSchedulePolicyResponse | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyResponse | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyV2Response
    Backup schedule specified as part of backup policy.
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    WorkLoadType string
    Type of workload for the backup management
    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests []string
    ResourceGuard Operation Requests
    RetentionPolicy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy with the details on backup copy retention ranges.
    SchedulePolicy LogSchedulePolicyResponse | LongTermSchedulePolicyResponse | SimpleSchedulePolicyResponse | SimpleSchedulePolicyV2Response
    Backup schedule specified as part of backup policy.
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    WorkLoadType string
    Type of workload for the backup management
    protectedItemsCount Integer
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy LogSchedulePolicyResponse | LongTermSchedulePolicyResponse | SimpleSchedulePolicyResponse | SimpleSchedulePolicyV2Response
    Backup schedule specified as part of backup policy.
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    workLoadType String
    Type of workload for the backup management
    protectedItemsCount number
    Number of items associated with this policy.
    resourceGuardOperationRequests string[]
    ResourceGuard Operation Requests
    retentionPolicy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy LogSchedulePolicyResponse | LongTermSchedulePolicyResponse | SimpleSchedulePolicyResponse | SimpleSchedulePolicyV2Response
    Backup schedule specified as part of backup policy.
    timeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    workLoadType string
    Type of workload for the backup management
    protected_items_count int
    Number of items associated with this policy.
    resource_guard_operation_requests Sequence[str]
    ResourceGuard Operation Requests
    retention_policy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy with the details on backup copy retention ranges.
    schedule_policy LogSchedulePolicyResponse | LongTermSchedulePolicyResponse | SimpleSchedulePolicyResponse | SimpleSchedulePolicyV2Response
    Backup schedule specified as part of backup policy.
    time_zone str
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    work_load_type str
    Type of workload for the backup management
    protectedItemsCount Number
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy Property Map | Property Map
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy Property Map | Property Map | Property Map | Property Map
    Backup schedule specified as part of backup policy.
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    workLoadType String
    Type of workload for the backup management

    AzureIaaSVMProtectionPolicy, AzureIaaSVMProtectionPolicyArgs

    InstantRPDetails Pulumi.AzureNative.RecoveryServices.Inputs.InstantRPAdditionalDetails
    InstantRpRetentionRangeInDays int
    Instant RP retention policy range in days
    PolicyType string | Pulumi.AzureNative.RecoveryServices.IAASVMPolicyType
    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests List<string>
    ResourceGuard Operation Requests
    RetentionPolicy Pulumi.AzureNative.RecoveryServices.Inputs.LongTermRetentionPolicy | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleRetentionPolicy
    Retention policy with the details on backup copy retention ranges.
    SchedulePolicy Pulumi.AzureNative.RecoveryServices.Inputs.LogSchedulePolicy | Pulumi.AzureNative.RecoveryServices.Inputs.LongTermSchedulePolicy | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicy | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyV2
    Backup schedule specified as part of backup policy.
    TieringPolicy Dictionary<string, Pulumi.AzureNative.RecoveryServices.Inputs.TieringPolicy>
    Tiering policy to automatically move RPs to another tier Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    InstantRPDetails InstantRPAdditionalDetails
    InstantRpRetentionRangeInDays int
    Instant RP retention policy range in days
    PolicyType string | IAASVMPolicyType
    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests []string
    ResourceGuard Operation Requests
    RetentionPolicy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy with the details on backup copy retention ranges.
    SchedulePolicy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule specified as part of backup policy.
    TieringPolicy map[string]TieringPolicy
    Tiering policy to automatically move RPs to another tier Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    instantRPDetails InstantRPAdditionalDetails
    instantRpRetentionRangeInDays Integer
    Instant RP retention policy range in days
    policyType String | IAASVMPolicyType
    protectedItemsCount Integer
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule specified as part of backup policy.
    tieringPolicy Map<String,TieringPolicy>
    Tiering policy to automatically move RPs to another tier Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    instantRPDetails InstantRPAdditionalDetails
    instantRpRetentionRangeInDays number
    Instant RP retention policy range in days
    policyType string | IAASVMPolicyType
    protectedItemsCount number
    Number of items associated with this policy.
    resourceGuardOperationRequests string[]
    ResourceGuard Operation Requests
    retentionPolicy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule specified as part of backup policy.
    tieringPolicy {[key: string]: TieringPolicy}
    Tiering policy to automatically move RPs to another tier Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    timeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    instant_rp_details InstantRPAdditionalDetails
    instant_rp_retention_range_in_days int
    Instant RP retention policy range in days
    policy_type str | IAASVMPolicyType
    protected_items_count int
    Number of items associated with this policy.
    resource_guard_operation_requests Sequence[str]
    ResourceGuard Operation Requests
    retention_policy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy with the details on backup copy retention ranges.
    schedule_policy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule specified as part of backup policy.
    tiering_policy Mapping[str, TieringPolicy]
    Tiering policy to automatically move RPs to another tier Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    time_zone str
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    instantRPDetails Property Map
    instantRpRetentionRangeInDays Number
    Instant RP retention policy range in days
    policyType String | "Invalid" | "V1" | "V2"
    protectedItemsCount Number
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy Property Map | Property Map
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy Property Map | Property Map | Property Map | Property Map
    Backup schedule specified as part of backup policy.
    tieringPolicy Map<Property Map>
    Tiering policy to automatically move RPs to another tier Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".

    AzureIaaSVMProtectionPolicyResponse, AzureIaaSVMProtectionPolicyResponseArgs

    InstantRPDetails Pulumi.AzureNative.RecoveryServices.Inputs.InstantRPAdditionalDetailsResponse
    InstantRpRetentionRangeInDays int
    Instant RP retention policy range in days
    PolicyType string
    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests List<string>
    ResourceGuard Operation Requests
    RetentionPolicy Pulumi.AzureNative.RecoveryServices.Inputs.LongTermRetentionPolicyResponse | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleRetentionPolicyResponse
    Retention policy with the details on backup copy retention ranges.
    SchedulePolicy Pulumi.AzureNative.RecoveryServices.Inputs.LogSchedulePolicyResponse | Pulumi.AzureNative.RecoveryServices.Inputs.LongTermSchedulePolicyResponse | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyResponse | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyV2Response
    Backup schedule specified as part of backup policy.
    TieringPolicy Dictionary<string, Pulumi.AzureNative.RecoveryServices.Inputs.TieringPolicyResponse>
    Tiering policy to automatically move RPs to another tier Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    InstantRPDetails InstantRPAdditionalDetailsResponse
    InstantRpRetentionRangeInDays int
    Instant RP retention policy range in days
    PolicyType string
    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests []string
    ResourceGuard Operation Requests
    RetentionPolicy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy with the details on backup copy retention ranges.
    SchedulePolicy LogSchedulePolicyResponse | LongTermSchedulePolicyResponse | SimpleSchedulePolicyResponse | SimpleSchedulePolicyV2Response
    Backup schedule specified as part of backup policy.
    TieringPolicy map[string]TieringPolicyResponse
    Tiering policy to automatically move RPs to another tier Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    instantRPDetails InstantRPAdditionalDetailsResponse
    instantRpRetentionRangeInDays Integer
    Instant RP retention policy range in days
    policyType String
    protectedItemsCount Integer
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy LogSchedulePolicyResponse | LongTermSchedulePolicyResponse | SimpleSchedulePolicyResponse | SimpleSchedulePolicyV2Response
    Backup schedule specified as part of backup policy.
    tieringPolicy Map<String,TieringPolicyResponse>
    Tiering policy to automatically move RPs to another tier Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    instantRPDetails InstantRPAdditionalDetailsResponse
    instantRpRetentionRangeInDays number
    Instant RP retention policy range in days
    policyType string
    protectedItemsCount number
    Number of items associated with this policy.
    resourceGuardOperationRequests string[]
    ResourceGuard Operation Requests
    retentionPolicy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy LogSchedulePolicyResponse | LongTermSchedulePolicyResponse | SimpleSchedulePolicyResponse | SimpleSchedulePolicyV2Response
    Backup schedule specified as part of backup policy.
    tieringPolicy {[key: string]: TieringPolicyResponse}
    Tiering policy to automatically move RPs to another tier Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    timeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    instant_rp_details InstantRPAdditionalDetailsResponse
    instant_rp_retention_range_in_days int
    Instant RP retention policy range in days
    policy_type str
    protected_items_count int
    Number of items associated with this policy.
    resource_guard_operation_requests Sequence[str]
    ResourceGuard Operation Requests
    retention_policy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy with the details on backup copy retention ranges.
    schedule_policy LogSchedulePolicyResponse | LongTermSchedulePolicyResponse | SimpleSchedulePolicyResponse | SimpleSchedulePolicyV2Response
    Backup schedule specified as part of backup policy.
    tiering_policy Mapping[str, TieringPolicyResponse]
    Tiering policy to automatically move RPs to another tier Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    time_zone str
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    instantRPDetails Property Map
    instantRpRetentionRangeInDays Number
    Instant RP retention policy range in days
    policyType String
    protectedItemsCount Number
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy Property Map | Property Map
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy Property Map | Property Map | Property Map | Property Map
    Backup schedule specified as part of backup policy.
    tieringPolicy Map<Property Map>
    Tiering policy to automatically move RPs to another tier Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".

    AzureSqlProtectionPolicy, AzureSqlProtectionPolicyArgs

    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests []string
    ResourceGuard Operation Requests
    RetentionPolicy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy details.
    protectedItemsCount Integer
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy details.
    protectedItemsCount number
    Number of items associated with this policy.
    resourceGuardOperationRequests string[]
    ResourceGuard Operation Requests
    retentionPolicy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy details.
    protected_items_count int
    Number of items associated with this policy.
    resource_guard_operation_requests Sequence[str]
    ResourceGuard Operation Requests
    retention_policy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy details.
    protectedItemsCount Number
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy Property Map | Property Map
    Retention policy details.

    AzureSqlProtectionPolicyResponse, AzureSqlProtectionPolicyResponseArgs

    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests []string
    ResourceGuard Operation Requests
    RetentionPolicy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy details.
    protectedItemsCount Integer
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy details.
    protectedItemsCount number
    Number of items associated with this policy.
    resourceGuardOperationRequests string[]
    ResourceGuard Operation Requests
    retentionPolicy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy details.
    protected_items_count int
    Number of items associated with this policy.
    resource_guard_operation_requests Sequence[str]
    ResourceGuard Operation Requests
    retention_policy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy details.
    protectedItemsCount Number
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy Property Map | Property Map
    Retention policy details.

    AzureVmWorkloadProtectionPolicy, AzureVmWorkloadProtectionPolicyArgs

    MakePolicyConsistent bool
    Fix the policy inconsistency
    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests List<string>
    ResourceGuard Operation Requests
    Settings Pulumi.AzureNative.RecoveryServices.Inputs.Settings
    Common settings for the backup management
    SubProtectionPolicy List<Pulumi.AzureNative.RecoveryServices.Inputs.SubProtectionPolicy>
    List of sub-protection policies which includes schedule and retention
    WorkLoadType string | Pulumi.AzureNative.RecoveryServices.WorkloadType
    Type of workload for the backup management
    MakePolicyConsistent bool
    Fix the policy inconsistency
    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests []string
    ResourceGuard Operation Requests
    Settings Settings
    Common settings for the backup management
    SubProtectionPolicy []SubProtectionPolicy
    List of sub-protection policies which includes schedule and retention
    WorkLoadType string | WorkloadType
    Type of workload for the backup management
    makePolicyConsistent Boolean
    Fix the policy inconsistency
    protectedItemsCount Integer
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    settings Settings
    Common settings for the backup management
    subProtectionPolicy List<SubProtectionPolicy>
    List of sub-protection policies which includes schedule and retention
    workLoadType String | WorkloadType
    Type of workload for the backup management
    makePolicyConsistent boolean
    Fix the policy inconsistency
    protectedItemsCount number
    Number of items associated with this policy.
    resourceGuardOperationRequests string[]
    ResourceGuard Operation Requests
    settings Settings
    Common settings for the backup management
    subProtectionPolicy SubProtectionPolicy[]
    List of sub-protection policies which includes schedule and retention
    workLoadType string | WorkloadType
    Type of workload for the backup management
    make_policy_consistent bool
    Fix the policy inconsistency
    protected_items_count int
    Number of items associated with this policy.
    resource_guard_operation_requests Sequence[str]
    ResourceGuard Operation Requests
    settings Settings
    Common settings for the backup management
    sub_protection_policy Sequence[SubProtectionPolicy]
    List of sub-protection policies which includes schedule and retention
    work_load_type str | WorkloadType
    Type of workload for the backup management
    makePolicyConsistent Boolean
    Fix the policy inconsistency
    protectedItemsCount Number
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    settings Property Map
    Common settings for the backup management
    subProtectionPolicy List<Property Map>
    List of sub-protection policies which includes schedule and retention
    workLoadType String | "Invalid" | "VM" | "FileFolder" | "AzureSqlDb" | "SQLDB" | "Exchange" | "Sharepoint" | "VMwareVM" | "SystemState" | "Client" | "GenericDataSource" | "SQLDataBase" | "AzureFileShare" | "SAPHanaDatabase" | "SAPAseDatabase" | "SAPHanaDBInstance"
    Type of workload for the backup management

    AzureVmWorkloadProtectionPolicyResponse, AzureVmWorkloadProtectionPolicyResponseArgs

    MakePolicyConsistent bool
    Fix the policy inconsistency
    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests List<string>
    ResourceGuard Operation Requests
    Settings Pulumi.AzureNative.RecoveryServices.Inputs.SettingsResponse
    Common settings for the backup management
    SubProtectionPolicy List<Pulumi.AzureNative.RecoveryServices.Inputs.SubProtectionPolicyResponse>
    List of sub-protection policies which includes schedule and retention
    WorkLoadType string
    Type of workload for the backup management
    MakePolicyConsistent bool
    Fix the policy inconsistency
    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests []string
    ResourceGuard Operation Requests
    Settings SettingsResponse
    Common settings for the backup management
    SubProtectionPolicy []SubProtectionPolicyResponse
    List of sub-protection policies which includes schedule and retention
    WorkLoadType string
    Type of workload for the backup management
    makePolicyConsistent Boolean
    Fix the policy inconsistency
    protectedItemsCount Integer
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    settings SettingsResponse
    Common settings for the backup management
    subProtectionPolicy List<SubProtectionPolicyResponse>
    List of sub-protection policies which includes schedule and retention
    workLoadType String
    Type of workload for the backup management
    makePolicyConsistent boolean
    Fix the policy inconsistency
    protectedItemsCount number
    Number of items associated with this policy.
    resourceGuardOperationRequests string[]
    ResourceGuard Operation Requests
    settings SettingsResponse
    Common settings for the backup management
    subProtectionPolicy SubProtectionPolicyResponse[]
    List of sub-protection policies which includes schedule and retention
    workLoadType string
    Type of workload for the backup management
    make_policy_consistent bool
    Fix the policy inconsistency
    protected_items_count int
    Number of items associated with this policy.
    resource_guard_operation_requests Sequence[str]
    ResourceGuard Operation Requests
    settings SettingsResponse
    Common settings for the backup management
    sub_protection_policy Sequence[SubProtectionPolicyResponse]
    List of sub-protection policies which includes schedule and retention
    work_load_type str
    Type of workload for the backup management
    makePolicyConsistent Boolean
    Fix the policy inconsistency
    protectedItemsCount Number
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    settings Property Map
    Common settings for the backup management
    subProtectionPolicy List<Property Map>
    List of sub-protection policies which includes schedule and retention
    workLoadType String
    Type of workload for the backup management

    DailyRetentionFormat, DailyRetentionFormatArgs

    DaysOfTheMonth []Day
    List of days of the month.
    daysOfTheMonth List<Day>
    List of days of the month.
    daysOfTheMonth Day[]
    List of days of the month.
    days_of_the_month Sequence[Day]
    List of days of the month.
    daysOfTheMonth List<Property Map>
    List of days of the month.

    DailyRetentionFormatResponse, DailyRetentionFormatResponseArgs

    DaysOfTheMonth []DayResponse
    List of days of the month.
    daysOfTheMonth List<DayResponse>
    List of days of the month.
    daysOfTheMonth DayResponse[]
    List of days of the month.
    days_of_the_month Sequence[DayResponse]
    List of days of the month.
    daysOfTheMonth List<Property Map>
    List of days of the month.

    DailyRetentionSchedule, DailyRetentionScheduleArgs

    RetentionDuration Pulumi.AzureNative.RecoveryServices.Inputs.RetentionDuration
    Retention duration of retention Policy.
    RetentionTimes List<string>
    Retention times of retention policy.
    RetentionDuration RetentionDuration
    Retention duration of retention Policy.
    RetentionTimes []string
    Retention times of retention policy.
    retentionDuration RetentionDuration
    Retention duration of retention Policy.
    retentionTimes List<String>
    Retention times of retention policy.
    retentionDuration RetentionDuration
    Retention duration of retention Policy.
    retentionTimes string[]
    Retention times of retention policy.
    retention_duration RetentionDuration
    Retention duration of retention Policy.
    retention_times Sequence[str]
    Retention times of retention policy.
    retentionDuration Property Map
    Retention duration of retention Policy.
    retentionTimes List<String>
    Retention times of retention policy.

    DailyRetentionScheduleResponse, DailyRetentionScheduleResponseArgs

    RetentionDuration Pulumi.AzureNative.RecoveryServices.Inputs.RetentionDurationResponse
    Retention duration of retention Policy.
    RetentionTimes List<string>
    Retention times of retention policy.
    RetentionDuration RetentionDurationResponse
    Retention duration of retention Policy.
    RetentionTimes []string
    Retention times of retention policy.
    retentionDuration RetentionDurationResponse
    Retention duration of retention Policy.
    retentionTimes List<String>
    Retention times of retention policy.
    retentionDuration RetentionDurationResponse
    Retention duration of retention Policy.
    retentionTimes string[]
    Retention times of retention policy.
    retention_duration RetentionDurationResponse
    Retention duration of retention Policy.
    retention_times Sequence[str]
    Retention times of retention policy.
    retentionDuration Property Map
    Retention duration of retention Policy.
    retentionTimes List<String>
    Retention times of retention policy.

    DailySchedule, DailyScheduleArgs

    ScheduleRunTimes List<string>
    List of times of day this schedule has to be run.
    ScheduleRunTimes []string
    List of times of day this schedule has to be run.
    scheduleRunTimes List<String>
    List of times of day this schedule has to be run.
    scheduleRunTimes string[]
    List of times of day this schedule has to be run.
    schedule_run_times Sequence[str]
    List of times of day this schedule has to be run.
    scheduleRunTimes List<String>
    List of times of day this schedule has to be run.

    DailyScheduleResponse, DailyScheduleResponseArgs

    ScheduleRunTimes List<string>
    List of times of day this schedule has to be run.
    ScheduleRunTimes []string
    List of times of day this schedule has to be run.
    scheduleRunTimes List<String>
    List of times of day this schedule has to be run.
    scheduleRunTimes string[]
    List of times of day this schedule has to be run.
    schedule_run_times Sequence[str]
    List of times of day this schedule has to be run.
    scheduleRunTimes List<String>
    List of times of day this schedule has to be run.

    Day, DayArgs

    Date int
    Date of the month
    IsLast bool
    Whether Date is last date of month
    Date int
    Date of the month
    IsLast bool
    Whether Date is last date of month
    date Integer
    Date of the month
    isLast Boolean
    Whether Date is last date of month
    date number
    Date of the month
    isLast boolean
    Whether Date is last date of month
    date int
    Date of the month
    is_last bool
    Whether Date is last date of month
    date Number
    Date of the month
    isLast Boolean
    Whether Date is last date of month

    DayOfWeek, DayOfWeekArgs

    Sunday
    Sunday
    Monday
    Monday
    Tuesday
    Tuesday
    Wednesday
    Wednesday
    Thursday
    Thursday
    Friday
    Friday
    Saturday
    Saturday
    DayOfWeekSunday
    Sunday
    DayOfWeekMonday
    Monday
    DayOfWeekTuesday
    Tuesday
    DayOfWeekWednesday
    Wednesday
    DayOfWeekThursday
    Thursday
    DayOfWeekFriday
    Friday
    DayOfWeekSaturday
    Saturday
    Sunday
    Sunday
    Monday
    Monday
    Tuesday
    Tuesday
    Wednesday
    Wednesday
    Thursday
    Thursday
    Friday
    Friday
    Saturday
    Saturday
    Sunday
    Sunday
    Monday
    Monday
    Tuesday
    Tuesday
    Wednesday
    Wednesday
    Thursday
    Thursday
    Friday
    Friday
    Saturday
    Saturday
    SUNDAY
    Sunday
    MONDAY
    Monday
    TUESDAY
    Tuesday
    WEDNESDAY
    Wednesday
    THURSDAY
    Thursday
    FRIDAY
    Friday
    SATURDAY
    Saturday
    "Sunday"
    Sunday
    "Monday"
    Monday
    "Tuesday"
    Tuesday
    "Wednesday"
    Wednesday
    "Thursday"
    Thursday
    "Friday"
    Friday
    "Saturday"
    Saturday

    DayResponse, DayResponseArgs

    Date int
    Date of the month
    IsLast bool
    Whether Date is last date of month
    Date int
    Date of the month
    IsLast bool
    Whether Date is last date of month
    date Integer
    Date of the month
    isLast Boolean
    Whether Date is last date of month
    date number
    Date of the month
    isLast boolean
    Whether Date is last date of month
    date int
    Date of the month
    is_last bool
    Whether Date is last date of month
    date Number
    Date of the month
    isLast Boolean
    Whether Date is last date of month

    GenericProtectionPolicy, GenericProtectionPolicyArgs

    FabricName string
    Name of this policy's fabric.
    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests List<string>
    ResourceGuard Operation Requests
    SubProtectionPolicy List<Pulumi.AzureNative.RecoveryServices.Inputs.SubProtectionPolicy>
    List of sub-protection policies which includes schedule and retention
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    FabricName string
    Name of this policy's fabric.
    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests []string
    ResourceGuard Operation Requests
    SubProtectionPolicy []SubProtectionPolicy
    List of sub-protection policies which includes schedule and retention
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    fabricName String
    Name of this policy's fabric.
    protectedItemsCount Integer
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    subProtectionPolicy List<SubProtectionPolicy>
    List of sub-protection policies which includes schedule and retention
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    fabricName string
    Name of this policy's fabric.
    protectedItemsCount number
    Number of items associated with this policy.
    resourceGuardOperationRequests string[]
    ResourceGuard Operation Requests
    subProtectionPolicy SubProtectionPolicy[]
    List of sub-protection policies which includes schedule and retention
    timeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    fabric_name str
    Name of this policy's fabric.
    protected_items_count int
    Number of items associated with this policy.
    resource_guard_operation_requests Sequence[str]
    ResourceGuard Operation Requests
    sub_protection_policy Sequence[SubProtectionPolicy]
    List of sub-protection policies which includes schedule and retention
    time_zone str
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    fabricName String
    Name of this policy's fabric.
    protectedItemsCount Number
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    subProtectionPolicy List<Property Map>
    List of sub-protection policies which includes schedule and retention
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".

    GenericProtectionPolicyResponse, GenericProtectionPolicyResponseArgs

    FabricName string
    Name of this policy's fabric.
    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests List<string>
    ResourceGuard Operation Requests
    SubProtectionPolicy List<Pulumi.AzureNative.RecoveryServices.Inputs.SubProtectionPolicyResponse>
    List of sub-protection policies which includes schedule and retention
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    FabricName string
    Name of this policy's fabric.
    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests []string
    ResourceGuard Operation Requests
    SubProtectionPolicy []SubProtectionPolicyResponse
    List of sub-protection policies which includes schedule and retention
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    fabricName String
    Name of this policy's fabric.
    protectedItemsCount Integer
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    subProtectionPolicy List<SubProtectionPolicyResponse>
    List of sub-protection policies which includes schedule and retention
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    fabricName string
    Name of this policy's fabric.
    protectedItemsCount number
    Number of items associated with this policy.
    resourceGuardOperationRequests string[]
    ResourceGuard Operation Requests
    subProtectionPolicy SubProtectionPolicyResponse[]
    List of sub-protection policies which includes schedule and retention
    timeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    fabric_name str
    Name of this policy's fabric.
    protected_items_count int
    Number of items associated with this policy.
    resource_guard_operation_requests Sequence[str]
    ResourceGuard Operation Requests
    sub_protection_policy Sequence[SubProtectionPolicyResponse]
    List of sub-protection policies which includes schedule and retention
    time_zone str
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    fabricName String
    Name of this policy's fabric.
    protectedItemsCount Number
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    subProtectionPolicy List<Property Map>
    List of sub-protection policies which includes schedule and retention
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".

    HourlySchedule, HourlyScheduleArgs

    Interval int
    Interval at which backup needs to be triggered. For hourly the value can be 4/6/8/12
    ScheduleWindowDuration int
    To specify duration of the backup window
    ScheduleWindowStartTime string
    To specify start time of the backup window
    Interval int
    Interval at which backup needs to be triggered. For hourly the value can be 4/6/8/12
    ScheduleWindowDuration int
    To specify duration of the backup window
    ScheduleWindowStartTime string
    To specify start time of the backup window
    interval Integer
    Interval at which backup needs to be triggered. For hourly the value can be 4/6/8/12
    scheduleWindowDuration Integer
    To specify duration of the backup window
    scheduleWindowStartTime String
    To specify start time of the backup window
    interval number
    Interval at which backup needs to be triggered. For hourly the value can be 4/6/8/12
    scheduleWindowDuration number
    To specify duration of the backup window
    scheduleWindowStartTime string
    To specify start time of the backup window
    interval int
    Interval at which backup needs to be triggered. For hourly the value can be 4/6/8/12
    schedule_window_duration int
    To specify duration of the backup window
    schedule_window_start_time str
    To specify start time of the backup window
    interval Number
    Interval at which backup needs to be triggered. For hourly the value can be 4/6/8/12
    scheduleWindowDuration Number
    To specify duration of the backup window
    scheduleWindowStartTime String
    To specify start time of the backup window

    HourlyScheduleResponse, HourlyScheduleResponseArgs

    Interval int
    Interval at which backup needs to be triggered. For hourly the value can be 4/6/8/12
    ScheduleWindowDuration int
    To specify duration of the backup window
    ScheduleWindowStartTime string
    To specify start time of the backup window
    Interval int
    Interval at which backup needs to be triggered. For hourly the value can be 4/6/8/12
    ScheduleWindowDuration int
    To specify duration of the backup window
    ScheduleWindowStartTime string
    To specify start time of the backup window
    interval Integer
    Interval at which backup needs to be triggered. For hourly the value can be 4/6/8/12
    scheduleWindowDuration Integer
    To specify duration of the backup window
    scheduleWindowStartTime String
    To specify start time of the backup window
    interval number
    Interval at which backup needs to be triggered. For hourly the value can be 4/6/8/12
    scheduleWindowDuration number
    To specify duration of the backup window
    scheduleWindowStartTime string
    To specify start time of the backup window
    interval int
    Interval at which backup needs to be triggered. For hourly the value can be 4/6/8/12
    schedule_window_duration int
    To specify duration of the backup window
    schedule_window_start_time str
    To specify start time of the backup window
    interval Number
    Interval at which backup needs to be triggered. For hourly the value can be 4/6/8/12
    scheduleWindowDuration Number
    To specify duration of the backup window
    scheduleWindowStartTime String
    To specify start time of the backup window

    IAASVMPolicyType, IAASVMPolicyTypeArgs

    Invalid
    Invalid
    V1
    V1
    V2
    V2
    IAASVMPolicyTypeInvalid
    Invalid
    IAASVMPolicyTypeV1
    V1
    IAASVMPolicyTypeV2
    V2
    Invalid
    Invalid
    V1
    V1
    V2
    V2
    Invalid
    Invalid
    V1
    V1
    V2
    V2
    INVALID
    Invalid
    V1
    V1
    V2
    V2
    "Invalid"
    Invalid
    "V1"
    V1
    "V2"
    V2

    InstantRPAdditionalDetails, InstantRPAdditionalDetailsArgs

    InstantRPAdditionalDetailsResponse, InstantRPAdditionalDetailsResponseArgs

    LogSchedulePolicy, LogSchedulePolicyArgs

    ScheduleFrequencyInMins int
    Frequency of the log schedule operation of this policy in minutes.
    ScheduleFrequencyInMins int
    Frequency of the log schedule operation of this policy in minutes.
    scheduleFrequencyInMins Integer
    Frequency of the log schedule operation of this policy in minutes.
    scheduleFrequencyInMins number
    Frequency of the log schedule operation of this policy in minutes.
    schedule_frequency_in_mins int
    Frequency of the log schedule operation of this policy in minutes.
    scheduleFrequencyInMins Number
    Frequency of the log schedule operation of this policy in minutes.

    LogSchedulePolicyResponse, LogSchedulePolicyResponseArgs

    ScheduleFrequencyInMins int
    Frequency of the log schedule operation of this policy in minutes.
    ScheduleFrequencyInMins int
    Frequency of the log schedule operation of this policy in minutes.
    scheduleFrequencyInMins Integer
    Frequency of the log schedule operation of this policy in minutes.
    scheduleFrequencyInMins number
    Frequency of the log schedule operation of this policy in minutes.
    schedule_frequency_in_mins int
    Frequency of the log schedule operation of this policy in minutes.
    scheduleFrequencyInMins Number
    Frequency of the log schedule operation of this policy in minutes.

    LongTermRetentionPolicy, LongTermRetentionPolicyArgs

    DailySchedule DailyRetentionSchedule
    Daily retention schedule of the protection policy.
    MonthlySchedule MonthlyRetentionSchedule
    Monthly retention schedule of the protection policy.
    WeeklySchedule WeeklyRetentionSchedule
    Weekly retention schedule of the protection policy.
    YearlySchedule YearlyRetentionSchedule
    Yearly retention schedule of the protection policy.
    dailySchedule DailyRetentionSchedule
    Daily retention schedule of the protection policy.
    monthlySchedule MonthlyRetentionSchedule
    Monthly retention schedule of the protection policy.
    weeklySchedule WeeklyRetentionSchedule
    Weekly retention schedule of the protection policy.
    yearlySchedule YearlyRetentionSchedule
    Yearly retention schedule of the protection policy.
    dailySchedule DailyRetentionSchedule
    Daily retention schedule of the protection policy.
    monthlySchedule MonthlyRetentionSchedule
    Monthly retention schedule of the protection policy.
    weeklySchedule WeeklyRetentionSchedule
    Weekly retention schedule of the protection policy.
    yearlySchedule YearlyRetentionSchedule
    Yearly retention schedule of the protection policy.
    daily_schedule DailyRetentionSchedule
    Daily retention schedule of the protection policy.
    monthly_schedule MonthlyRetentionSchedule
    Monthly retention schedule of the protection policy.
    weekly_schedule WeeklyRetentionSchedule
    Weekly retention schedule of the protection policy.
    yearly_schedule YearlyRetentionSchedule
    Yearly retention schedule of the protection policy.
    dailySchedule Property Map
    Daily retention schedule of the protection policy.
    monthlySchedule Property Map
    Monthly retention schedule of the protection policy.
    weeklySchedule Property Map
    Weekly retention schedule of the protection policy.
    yearlySchedule Property Map
    Yearly retention schedule of the protection policy.

    LongTermRetentionPolicyResponse, LongTermRetentionPolicyResponseArgs

    DailySchedule DailyRetentionScheduleResponse
    Daily retention schedule of the protection policy.
    MonthlySchedule MonthlyRetentionScheduleResponse
    Monthly retention schedule of the protection policy.
    WeeklySchedule WeeklyRetentionScheduleResponse
    Weekly retention schedule of the protection policy.
    YearlySchedule YearlyRetentionScheduleResponse
    Yearly retention schedule of the protection policy.
    dailySchedule DailyRetentionScheduleResponse
    Daily retention schedule of the protection policy.
    monthlySchedule MonthlyRetentionScheduleResponse
    Monthly retention schedule of the protection policy.
    weeklySchedule WeeklyRetentionScheduleResponse
    Weekly retention schedule of the protection policy.
    yearlySchedule YearlyRetentionScheduleResponse
    Yearly retention schedule of the protection policy.
    dailySchedule DailyRetentionScheduleResponse
    Daily retention schedule of the protection policy.
    monthlySchedule MonthlyRetentionScheduleResponse
    Monthly retention schedule of the protection policy.
    weeklySchedule WeeklyRetentionScheduleResponse
    Weekly retention schedule of the protection policy.
    yearlySchedule YearlyRetentionScheduleResponse
    Yearly retention schedule of the protection policy.
    daily_schedule DailyRetentionScheduleResponse
    Daily retention schedule of the protection policy.
    monthly_schedule MonthlyRetentionScheduleResponse
    Monthly retention schedule of the protection policy.
    weekly_schedule WeeklyRetentionScheduleResponse
    Weekly retention schedule of the protection policy.
    yearly_schedule YearlyRetentionScheduleResponse
    Yearly retention schedule of the protection policy.
    dailySchedule Property Map
    Daily retention schedule of the protection policy.
    monthlySchedule Property Map
    Monthly retention schedule of the protection policy.
    weeklySchedule Property Map
    Weekly retention schedule of the protection policy.
    yearlySchedule Property Map
    Yearly retention schedule of the protection policy.

    LongTermSchedulePolicy, LongTermSchedulePolicyArgs

    LongTermSchedulePolicyResponse, LongTermSchedulePolicyResponseArgs

    MabProtectionPolicy, MabProtectionPolicyArgs

    ProtectedItemsCount int
    Number of items associated with this policy.
    ResourceGuardOperationRequests []string
    ResourceGuard Operation Requests
    RetentionPolicy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy details.
    SchedulePolicy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule of backup policy.
    protectedItemsCount Integer
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy details.
    schedulePolicy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule of backup policy.
    protectedItemsCount number
    Number of items associated with this policy.
    resourceGuardOperationRequests string[]
    ResourceGuard Operation Requests
    retentionPolicy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy details.
    schedulePolicy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule of backup policy.
    protected_items_count int
    Number of items associated with this policy.
    resource_guard_operation_requests Sequence[str]
    ResourceGuard Operation Requests
    retention_policy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy details.
    schedule_policy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule of backup policy.
    protectedItemsCount Number
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy Property Map | Property Map
    Retention policy details.
    schedulePolicy Property Map | Property Map | Property Map | Property Map
    Backup schedule of backup policy.

    MabProtectionPolicyResponse, MabProtectionPolicyResponseArgs

    protectedItemsCount Integer
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy details.
    schedulePolicy LogSchedulePolicyResponse | LongTermSchedulePolicyResponse | SimpleSchedulePolicyResponse | SimpleSchedulePolicyV2Response
    Backup schedule of backup policy.
    protectedItemsCount Number
    Number of items associated with this policy.
    resourceGuardOperationRequests List<String>
    ResourceGuard Operation Requests
    retentionPolicy Property Map | Property Map
    Retention policy details.
    schedulePolicy Property Map | Property Map | Property Map | Property Map
    Backup schedule of backup policy.

    MonthOfYear, MonthOfYearArgs

    Invalid
    Invalid
    January
    January
    February
    February
    March
    March
    April
    April
    May
    May
    June
    June
    July
    July
    August
    August
    September
    September
    October
    October
    November
    November
    December
    December
    MonthOfYearInvalid
    Invalid
    MonthOfYearJanuary
    January
    MonthOfYearFebruary
    February
    MonthOfYearMarch
    March
    MonthOfYearApril
    April
    MonthOfYearMay
    May
    MonthOfYearJune
    June
    MonthOfYearJuly
    July
    MonthOfYearAugust
    August
    MonthOfYearSeptember
    September
    MonthOfYearOctober
    October
    MonthOfYearNovember
    November
    MonthOfYearDecember
    December
    Invalid
    Invalid
    January
    January
    February
    February
    March
    March
    April
    April
    May
    May
    June
    June
    July
    July
    August
    August
    September
    September
    October
    October
    November
    November
    December
    December
    Invalid
    Invalid
    January
    January
    February
    February
    March
    March
    April
    April
    May
    May
    June
    June
    July
    July
    August
    August
    September
    September
    October
    October
    November
    November
    December
    December
    INVALID
    Invalid
    JANUARY
    January
    FEBRUARY
    February
    MARCH
    March
    APRIL
    April
    MAY
    May
    JUNE
    June
    JULY
    July
    AUGUST
    August
    SEPTEMBER
    September
    OCTOBER
    October
    NOVEMBER
    November
    DECEMBER
    December
    "Invalid"
    Invalid
    "January"
    January
    "February"
    February
    "March"
    March
    "April"
    April
    "May"
    May
    "June"
    June
    "July"
    July
    "August"
    August
    "September"
    September
    "October"
    October
    "November"
    November
    "December"
    December

    MonthlyRetentionSchedule, MonthlyRetentionScheduleArgs

    RetentionDuration Pulumi.AzureNative.RecoveryServices.Inputs.RetentionDuration
    Retention duration of retention Policy.
    RetentionScheduleDaily Pulumi.AzureNative.RecoveryServices.Inputs.DailyRetentionFormat
    Daily retention format for monthly retention policy.
    RetentionScheduleFormatType string | Pulumi.AzureNative.RecoveryServices.RetentionScheduleFormat
    Retention schedule format type for monthly retention policy.
    RetentionScheduleWeekly Pulumi.AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormat
    Weekly retention format for monthly retention policy.
    RetentionTimes List<string>
    Retention times of retention policy.
    RetentionDuration RetentionDuration
    Retention duration of retention Policy.
    RetentionScheduleDaily DailyRetentionFormat
    Daily retention format for monthly retention policy.
    RetentionScheduleFormatType string | RetentionScheduleFormat
    Retention schedule format type for monthly retention policy.
    RetentionScheduleWeekly WeeklyRetentionFormat
    Weekly retention format for monthly retention policy.
    RetentionTimes []string
    Retention times of retention policy.
    retentionDuration RetentionDuration
    Retention duration of retention Policy.
    retentionScheduleDaily DailyRetentionFormat
    Daily retention format for monthly retention policy.
    retentionScheduleFormatType String | RetentionScheduleFormat
    Retention schedule format type for monthly retention policy.
    retentionScheduleWeekly WeeklyRetentionFormat
    Weekly retention format for monthly retention policy.
    retentionTimes List<String>
    Retention times of retention policy.
    retentionDuration RetentionDuration
    Retention duration of retention Policy.
    retentionScheduleDaily DailyRetentionFormat
    Daily retention format for monthly retention policy.
    retentionScheduleFormatType string | RetentionScheduleFormat
    Retention schedule format type for monthly retention policy.
    retentionScheduleWeekly WeeklyRetentionFormat
    Weekly retention format for monthly retention policy.
    retentionTimes string[]
    Retention times of retention policy.
    retention_duration RetentionDuration
    Retention duration of retention Policy.
    retention_schedule_daily DailyRetentionFormat
    Daily retention format for monthly retention policy.
    retention_schedule_format_type str | RetentionScheduleFormat
    Retention schedule format type for monthly retention policy.
    retention_schedule_weekly WeeklyRetentionFormat
    Weekly retention format for monthly retention policy.
    retention_times Sequence[str]
    Retention times of retention policy.
    retentionDuration Property Map
    Retention duration of retention Policy.
    retentionScheduleDaily Property Map
    Daily retention format for monthly retention policy.
    retentionScheduleFormatType String | "Invalid" | "Daily" | "Weekly"
    Retention schedule format type for monthly retention policy.
    retentionScheduleWeekly Property Map
    Weekly retention format for monthly retention policy.
    retentionTimes List<String>
    Retention times of retention policy.

    MonthlyRetentionScheduleResponse, MonthlyRetentionScheduleResponseArgs

    RetentionDuration Pulumi.AzureNative.RecoveryServices.Inputs.RetentionDurationResponse
    Retention duration of retention Policy.
    RetentionScheduleDaily Pulumi.AzureNative.RecoveryServices.Inputs.DailyRetentionFormatResponse
    Daily retention format for monthly retention policy.
    RetentionScheduleFormatType string
    Retention schedule format type for monthly retention policy.
    RetentionScheduleWeekly Pulumi.AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatResponse
    Weekly retention format for monthly retention policy.
    RetentionTimes List<string>
    Retention times of retention policy.
    RetentionDuration RetentionDurationResponse
    Retention duration of retention Policy.
    RetentionScheduleDaily DailyRetentionFormatResponse
    Daily retention format for monthly retention policy.
    RetentionScheduleFormatType string
    Retention schedule format type for monthly retention policy.
    RetentionScheduleWeekly WeeklyRetentionFormatResponse
    Weekly retention format for monthly retention policy.
    RetentionTimes []string
    Retention times of retention policy.
    retentionDuration RetentionDurationResponse
    Retention duration of retention Policy.
    retentionScheduleDaily DailyRetentionFormatResponse
    Daily retention format for monthly retention policy.
    retentionScheduleFormatType String
    Retention schedule format type for monthly retention policy.
    retentionScheduleWeekly WeeklyRetentionFormatResponse
    Weekly retention format for monthly retention policy.
    retentionTimes List<String>
    Retention times of retention policy.
    retentionDuration RetentionDurationResponse
    Retention duration of retention Policy.
    retentionScheduleDaily DailyRetentionFormatResponse
    Daily retention format for monthly retention policy.
    retentionScheduleFormatType string
    Retention schedule format type for monthly retention policy.
    retentionScheduleWeekly WeeklyRetentionFormatResponse
    Weekly retention format for monthly retention policy.
    retentionTimes string[]
    Retention times of retention policy.
    retention_duration RetentionDurationResponse
    Retention duration of retention Policy.
    retention_schedule_daily DailyRetentionFormatResponse
    Daily retention format for monthly retention policy.
    retention_schedule_format_type str
    Retention schedule format type for monthly retention policy.
    retention_schedule_weekly WeeklyRetentionFormatResponse
    Weekly retention format for monthly retention policy.
    retention_times Sequence[str]
    Retention times of retention policy.
    retentionDuration Property Map
    Retention duration of retention Policy.
    retentionScheduleDaily Property Map
    Daily retention format for monthly retention policy.
    retentionScheduleFormatType String
    Retention schedule format type for monthly retention policy.
    retentionScheduleWeekly Property Map
    Weekly retention format for monthly retention policy.
    retentionTimes List<String>
    Retention times of retention policy.

    PolicyType, PolicyTypeArgs

    Invalid
    Invalid
    Full
    Full
    Differential
    Differential
    Log
    Log
    CopyOnlyFull
    CopyOnlyFull
    Incremental
    Incremental
    SnapshotFull
    SnapshotFull
    SnapshotCopyOnlyFull
    SnapshotCopyOnlyFull
    PolicyTypeInvalid
    Invalid
    PolicyTypeFull
    Full
    PolicyTypeDifferential
    Differential
    PolicyTypeLog
    Log
    PolicyTypeCopyOnlyFull
    CopyOnlyFull
    PolicyTypeIncremental
    Incremental
    PolicyTypeSnapshotFull
    SnapshotFull
    PolicyTypeSnapshotCopyOnlyFull
    SnapshotCopyOnlyFull
    Invalid
    Invalid
    Full
    Full
    Differential
    Differential
    Log
    Log
    CopyOnlyFull
    CopyOnlyFull
    Incremental
    Incremental
    SnapshotFull
    SnapshotFull
    SnapshotCopyOnlyFull
    SnapshotCopyOnlyFull
    Invalid
    Invalid
    Full
    Full
    Differential
    Differential
    Log
    Log
    CopyOnlyFull
    CopyOnlyFull
    Incremental
    Incremental
    SnapshotFull
    SnapshotFull
    SnapshotCopyOnlyFull
    SnapshotCopyOnlyFull
    INVALID
    Invalid
    FULL
    Full
    DIFFERENTIAL
    Differential
    LOG
    Log
    COPY_ONLY_FULL
    CopyOnlyFull
    INCREMENTAL
    Incremental
    SNAPSHOT_FULL
    SnapshotFull
    SNAPSHOT_COPY_ONLY_FULL
    SnapshotCopyOnlyFull
    "Invalid"
    Invalid
    "Full"
    Full
    "Differential"
    Differential
    "Log"
    Log
    "CopyOnlyFull"
    CopyOnlyFull
    "Incremental"
    Incremental
    "SnapshotFull"
    SnapshotFull
    "SnapshotCopyOnlyFull"
    SnapshotCopyOnlyFull

    RetentionDuration, RetentionDurationArgs

    Count int
    Count of duration types. Retention duration is obtained by the counting the duration type Count times. For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks.
    DurationType string | Pulumi.AzureNative.RecoveryServices.RetentionDurationType
    Retention duration type of retention policy.
    Count int
    Count of duration types. Retention duration is obtained by the counting the duration type Count times. For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks.
    DurationType string | RetentionDurationType
    Retention duration type of retention policy.
    count Integer
    Count of duration types. Retention duration is obtained by the counting the duration type Count times. For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks.
    durationType String | RetentionDurationType
    Retention duration type of retention policy.
    count number
    Count of duration types. Retention duration is obtained by the counting the duration type Count times. For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks.
    durationType string | RetentionDurationType
    Retention duration type of retention policy.
    count int
    Count of duration types. Retention duration is obtained by the counting the duration type Count times. For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks.
    duration_type str | RetentionDurationType
    Retention duration type of retention policy.
    count Number
    Count of duration types. Retention duration is obtained by the counting the duration type Count times. For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks.
    durationType String | "Invalid" | "Days" | "Weeks" | "Months" | "Years"
    Retention duration type of retention policy.

    RetentionDurationResponse, RetentionDurationResponseArgs

    Count int
    Count of duration types. Retention duration is obtained by the counting the duration type Count times. For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks.
    DurationType string
    Retention duration type of retention policy.
    Count int
    Count of duration types. Retention duration is obtained by the counting the duration type Count times. For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks.
    DurationType string
    Retention duration type of retention policy.
    count Integer
    Count of duration types. Retention duration is obtained by the counting the duration type Count times. For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks.
    durationType String
    Retention duration type of retention policy.
    count number
    Count of duration types. Retention duration is obtained by the counting the duration type Count times. For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks.
    durationType string
    Retention duration type of retention policy.
    count int
    Count of duration types. Retention duration is obtained by the counting the duration type Count times. For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks.
    duration_type str
    Retention duration type of retention policy.
    count Number
    Count of duration types. Retention duration is obtained by the counting the duration type Count times. For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks.
    durationType String
    Retention duration type of retention policy.

    RetentionDurationType, RetentionDurationTypeArgs

    Invalid
    Invalid
    Days
    Days
    Weeks
    Weeks
    Months
    Months
    Years
    Years
    RetentionDurationTypeInvalid
    Invalid
    RetentionDurationTypeDays
    Days
    RetentionDurationTypeWeeks
    Weeks
    RetentionDurationTypeMonths
    Months
    RetentionDurationTypeYears
    Years
    Invalid
    Invalid
    Days
    Days
    Weeks
    Weeks
    Months
    Months
    Years
    Years
    Invalid
    Invalid
    Days
    Days
    Weeks
    Weeks
    Months
    Months
    Years
    Years
    INVALID
    Invalid
    DAYS
    Days
    WEEKS
    Weeks
    MONTHS
    Months
    YEARS
    Years
    "Invalid"
    Invalid
    "Days"
    Days
    "Weeks"
    Weeks
    "Months"
    Months
    "Years"
    Years

    RetentionScheduleFormat, RetentionScheduleFormatArgs

    Invalid
    Invalid
    Daily
    Daily
    Weekly
    Weekly
    RetentionScheduleFormatInvalid
    Invalid
    RetentionScheduleFormatDaily
    Daily
    RetentionScheduleFormatWeekly
    Weekly
    Invalid
    Invalid
    Daily
    Daily
    Weekly
    Weekly
    Invalid
    Invalid
    Daily
    Daily
    Weekly
    Weekly
    INVALID
    Invalid
    DAILY
    Daily
    WEEKLY
    Weekly
    "Invalid"
    Invalid
    "Daily"
    Daily
    "Weekly"
    Weekly

    ScheduleRunType, ScheduleRunTypeArgs

    Invalid
    Invalid
    Daily
    Daily
    Weekly
    Weekly
    Hourly
    Hourly
    ScheduleRunTypeInvalid
    Invalid
    ScheduleRunTypeDaily
    Daily
    ScheduleRunTypeWeekly
    Weekly
    ScheduleRunTypeHourly
    Hourly
    Invalid
    Invalid
    Daily
    Daily
    Weekly
    Weekly
    Hourly
    Hourly
    Invalid
    Invalid
    Daily
    Daily
    Weekly
    Weekly
    Hourly
    Hourly
    INVALID
    Invalid
    DAILY
    Daily
    WEEKLY
    Weekly
    HOURLY
    Hourly
    "Invalid"
    Invalid
    "Daily"
    Daily
    "Weekly"
    Weekly
    "Hourly"
    Hourly

    Settings, SettingsArgs

    IsCompression bool
    Workload compression flag. This has been added so that 'isSqlCompression' will be deprecated once clients upgrade to consider this flag.
    Issqlcompression bool
    SQL compression flag
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    IsCompression bool
    Workload compression flag. This has been added so that 'isSqlCompression' will be deprecated once clients upgrade to consider this flag.
    Issqlcompression bool
    SQL compression flag
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    isCompression Boolean
    Workload compression flag. This has been added so that 'isSqlCompression' will be deprecated once clients upgrade to consider this flag.
    issqlcompression Boolean
    SQL compression flag
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    isCompression boolean
    Workload compression flag. This has been added so that 'isSqlCompression' will be deprecated once clients upgrade to consider this flag.
    issqlcompression boolean
    SQL compression flag
    timeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    is_compression bool
    Workload compression flag. This has been added so that 'isSqlCompression' will be deprecated once clients upgrade to consider this flag.
    issqlcompression bool
    SQL compression flag
    time_zone str
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    isCompression Boolean
    Workload compression flag. This has been added so that 'isSqlCompression' will be deprecated once clients upgrade to consider this flag.
    issqlcompression Boolean
    SQL compression flag
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".

    SettingsResponse, SettingsResponseArgs

    IsCompression bool
    Workload compression flag. This has been added so that 'isSqlCompression' will be deprecated once clients upgrade to consider this flag.
    Issqlcompression bool
    SQL compression flag
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    IsCompression bool
    Workload compression flag. This has been added so that 'isSqlCompression' will be deprecated once clients upgrade to consider this flag.
    Issqlcompression bool
    SQL compression flag
    TimeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    isCompression Boolean
    Workload compression flag. This has been added so that 'isSqlCompression' will be deprecated once clients upgrade to consider this flag.
    issqlcompression Boolean
    SQL compression flag
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    isCompression boolean
    Workload compression flag. This has been added so that 'isSqlCompression' will be deprecated once clients upgrade to consider this flag.
    issqlcompression boolean
    SQL compression flag
    timeZone string
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    is_compression bool
    Workload compression flag. This has been added so that 'isSqlCompression' will be deprecated once clients upgrade to consider this flag.
    issqlcompression bool
    SQL compression flag
    time_zone str
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
    isCompression Boolean
    Workload compression flag. This has been added so that 'isSqlCompression' will be deprecated once clients upgrade to consider this flag.
    issqlcompression Boolean
    SQL compression flag
    timeZone String
    TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".

    SimpleRetentionPolicy, SimpleRetentionPolicyArgs

    RetentionDuration RetentionDuration
    Retention duration of the protection policy.
    retentionDuration RetentionDuration
    Retention duration of the protection policy.
    retentionDuration RetentionDuration
    Retention duration of the protection policy.
    retention_duration RetentionDuration
    Retention duration of the protection policy.
    retentionDuration Property Map
    Retention duration of the protection policy.

    SimpleRetentionPolicyResponse, SimpleRetentionPolicyResponseArgs

    RetentionDuration RetentionDurationResponse
    Retention duration of the protection policy.
    retentionDuration RetentionDurationResponse
    Retention duration of the protection policy.
    retentionDuration RetentionDurationResponse
    Retention duration of the protection policy.
    retention_duration RetentionDurationResponse
    Retention duration of the protection policy.
    retentionDuration Property Map
    Retention duration of the protection policy.

    SimpleSchedulePolicy, SimpleSchedulePolicyArgs

    HourlySchedule Pulumi.AzureNative.RecoveryServices.Inputs.HourlySchedule
    Hourly Schedule of this Policy
    ScheduleRunDays List<Pulumi.AzureNative.RecoveryServices.DayOfWeek>
    List of days of week this schedule has to be run.
    ScheduleRunFrequency string | Pulumi.AzureNative.RecoveryServices.ScheduleRunType
    Frequency of the schedule operation of this policy.
    ScheduleRunTimes List<string>
    List of times of day this schedule has to be run.
    ScheduleWeeklyFrequency int
    At every number weeks this schedule has to be run.
    HourlySchedule HourlySchedule
    Hourly Schedule of this Policy
    ScheduleRunDays []DayOfWeek
    List of days of week this schedule has to be run.
    ScheduleRunFrequency string | ScheduleRunType
    Frequency of the schedule operation of this policy.
    ScheduleRunTimes []string
    List of times of day this schedule has to be run.
    ScheduleWeeklyFrequency int
    At every number weeks this schedule has to be run.
    hourlySchedule HourlySchedule
    Hourly Schedule of this Policy
    scheduleRunDays List<DayOfWeek>
    List of days of week this schedule has to be run.
    scheduleRunFrequency String | ScheduleRunType
    Frequency of the schedule operation of this policy.
    scheduleRunTimes List<String>
    List of times of day this schedule has to be run.
    scheduleWeeklyFrequency Integer
    At every number weeks this schedule has to be run.
    hourlySchedule HourlySchedule
    Hourly Schedule of this Policy
    scheduleRunDays DayOfWeek[]
    List of days of week this schedule has to be run.
    scheduleRunFrequency string | ScheduleRunType
    Frequency of the schedule operation of this policy.
    scheduleRunTimes string[]
    List of times of day this schedule has to be run.
    scheduleWeeklyFrequency number
    At every number weeks this schedule has to be run.
    hourly_schedule HourlySchedule
    Hourly Schedule of this Policy
    schedule_run_days Sequence[DayOfWeek]
    List of days of week this schedule has to be run.
    schedule_run_frequency str | ScheduleRunType
    Frequency of the schedule operation of this policy.
    schedule_run_times Sequence[str]
    List of times of day this schedule has to be run.
    schedule_weekly_frequency int
    At every number weeks this schedule has to be run.
    hourlySchedule Property Map
    Hourly Schedule of this Policy
    scheduleRunDays List<"Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday">
    List of days of week this schedule has to be run.
    scheduleRunFrequency String | "Invalid" | "Daily" | "Weekly" | "Hourly"
    Frequency of the schedule operation of this policy.
    scheduleRunTimes List<String>
    List of times of day this schedule has to be run.
    scheduleWeeklyFrequency Number
    At every number weeks this schedule has to be run.

    SimpleSchedulePolicyResponse, SimpleSchedulePolicyResponseArgs

    HourlySchedule Pulumi.AzureNative.RecoveryServices.Inputs.HourlyScheduleResponse
    Hourly Schedule of this Policy
    ScheduleRunDays List<string>
    List of days of week this schedule has to be run.
    ScheduleRunFrequency string
    Frequency of the schedule operation of this policy.
    ScheduleRunTimes List<string>
    List of times of day this schedule has to be run.
    ScheduleWeeklyFrequency int
    At every number weeks this schedule has to be run.
    HourlySchedule HourlyScheduleResponse
    Hourly Schedule of this Policy
    ScheduleRunDays []string
    List of days of week this schedule has to be run.
    ScheduleRunFrequency string
    Frequency of the schedule operation of this policy.
    ScheduleRunTimes []string
    List of times of day this schedule has to be run.
    ScheduleWeeklyFrequency int
    At every number weeks this schedule has to be run.
    hourlySchedule HourlyScheduleResponse
    Hourly Schedule of this Policy
    scheduleRunDays List<String>
    List of days of week this schedule has to be run.
    scheduleRunFrequency String
    Frequency of the schedule operation of this policy.
    scheduleRunTimes List<String>
    List of times of day this schedule has to be run.
    scheduleWeeklyFrequency Integer
    At every number weeks this schedule has to be run.
    hourlySchedule HourlyScheduleResponse
    Hourly Schedule of this Policy
    scheduleRunDays string[]
    List of days of week this schedule has to be run.
    scheduleRunFrequency string
    Frequency of the schedule operation of this policy.
    scheduleRunTimes string[]
    List of times of day this schedule has to be run.
    scheduleWeeklyFrequency number
    At every number weeks this schedule has to be run.
    hourly_schedule HourlyScheduleResponse
    Hourly Schedule of this Policy
    schedule_run_days Sequence[str]
    List of days of week this schedule has to be run.
    schedule_run_frequency str
    Frequency of the schedule operation of this policy.
    schedule_run_times Sequence[str]
    List of times of day this schedule has to be run.
    schedule_weekly_frequency int
    At every number weeks this schedule has to be run.
    hourlySchedule Property Map
    Hourly Schedule of this Policy
    scheduleRunDays List<String>
    List of days of week this schedule has to be run.
    scheduleRunFrequency String
    Frequency of the schedule operation of this policy.
    scheduleRunTimes List<String>
    List of times of day this schedule has to be run.
    scheduleWeeklyFrequency Number
    At every number weeks this schedule has to be run.

    SimpleSchedulePolicyV2, SimpleSchedulePolicyV2Args

    DailySchedule DailySchedule
    Daily schedule of this policy
    HourlySchedule HourlySchedule
    hourly schedule of this policy
    ScheduleRunFrequency string | ScheduleRunType
    Frequency of the schedule operation of this policy.
    WeeklySchedule WeeklySchedule
    Weekly schedule of this policy
    dailySchedule DailySchedule
    Daily schedule of this policy
    hourlySchedule HourlySchedule
    hourly schedule of this policy
    scheduleRunFrequency String | ScheduleRunType
    Frequency of the schedule operation of this policy.
    weeklySchedule WeeklySchedule
    Weekly schedule of this policy
    dailySchedule DailySchedule
    Daily schedule of this policy
    hourlySchedule HourlySchedule
    hourly schedule of this policy
    scheduleRunFrequency string | ScheduleRunType
    Frequency of the schedule operation of this policy.
    weeklySchedule WeeklySchedule
    Weekly schedule of this policy
    daily_schedule DailySchedule
    Daily schedule of this policy
    hourly_schedule HourlySchedule
    hourly schedule of this policy
    schedule_run_frequency str | ScheduleRunType
    Frequency of the schedule operation of this policy.
    weekly_schedule WeeklySchedule
    Weekly schedule of this policy
    dailySchedule Property Map
    Daily schedule of this policy
    hourlySchedule Property Map
    hourly schedule of this policy
    scheduleRunFrequency String | "Invalid" | "Daily" | "Weekly" | "Hourly"
    Frequency of the schedule operation of this policy.
    weeklySchedule Property Map
    Weekly schedule of this policy

    SimpleSchedulePolicyV2Response, SimpleSchedulePolicyV2ResponseArgs

    DailySchedule DailyScheduleResponse
    Daily schedule of this policy
    HourlySchedule HourlyScheduleResponse
    hourly schedule of this policy
    ScheduleRunFrequency string
    Frequency of the schedule operation of this policy.
    WeeklySchedule WeeklyScheduleResponse
    Weekly schedule of this policy
    dailySchedule DailyScheduleResponse
    Daily schedule of this policy
    hourlySchedule HourlyScheduleResponse
    hourly schedule of this policy
    scheduleRunFrequency String
    Frequency of the schedule operation of this policy.
    weeklySchedule WeeklyScheduleResponse
    Weekly schedule of this policy
    dailySchedule DailyScheduleResponse
    Daily schedule of this policy
    hourlySchedule HourlyScheduleResponse
    hourly schedule of this policy
    scheduleRunFrequency string
    Frequency of the schedule operation of this policy.
    weeklySchedule WeeklyScheduleResponse
    Weekly schedule of this policy
    daily_schedule DailyScheduleResponse
    Daily schedule of this policy
    hourly_schedule HourlyScheduleResponse
    hourly schedule of this policy
    schedule_run_frequency str
    Frequency of the schedule operation of this policy.
    weekly_schedule WeeklyScheduleResponse
    Weekly schedule of this policy
    dailySchedule Property Map
    Daily schedule of this policy
    hourlySchedule Property Map
    hourly schedule of this policy
    scheduleRunFrequency String
    Frequency of the schedule operation of this policy.
    weeklySchedule Property Map
    Weekly schedule of this policy

    SubProtectionPolicy, SubProtectionPolicyArgs

    PolicyType string | Pulumi.AzureNative.RecoveryServices.PolicyType
    Type of backup policy type
    RetentionPolicy Pulumi.AzureNative.RecoveryServices.Inputs.LongTermRetentionPolicy | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleRetentionPolicy
    Retention policy with the details on backup copy retention ranges.
    SchedulePolicy Pulumi.AzureNative.RecoveryServices.Inputs.LogSchedulePolicy | Pulumi.AzureNative.RecoveryServices.Inputs.LongTermSchedulePolicy | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicy | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyV2
    Backup schedule specified as part of backup policy.
    TieringPolicy Dictionary<string, Pulumi.AzureNative.RecoveryServices.Inputs.TieringPolicy>
    Tiering policy to automatically move RPs to another tier. Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    PolicyType string | PolicyType
    Type of backup policy type
    RetentionPolicy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy with the details on backup copy retention ranges.
    SchedulePolicy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule specified as part of backup policy.
    TieringPolicy map[string]TieringPolicy
    Tiering policy to automatically move RPs to another tier. Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    policyType String | PolicyType
    Type of backup policy type
    retentionPolicy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule specified as part of backup policy.
    tieringPolicy Map<String,TieringPolicy>
    Tiering policy to automatically move RPs to another tier. Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    policyType string | PolicyType
    Type of backup policy type
    retentionPolicy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule specified as part of backup policy.
    tieringPolicy {[key: string]: TieringPolicy}
    Tiering policy to automatically move RPs to another tier. Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    policy_type str | PolicyType
    Type of backup policy type
    retention_policy LongTermRetentionPolicy | SimpleRetentionPolicy
    Retention policy with the details on backup copy retention ranges.
    schedule_policy LogSchedulePolicy | LongTermSchedulePolicy | SimpleSchedulePolicy | SimpleSchedulePolicyV2
    Backup schedule specified as part of backup policy.
    tiering_policy Mapping[str, TieringPolicy]
    Tiering policy to automatically move RPs to another tier. Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    policyType String | "Invalid" | "Full" | "Differential" | "Log" | "CopyOnlyFull" | "Incremental" | "SnapshotFull" | "SnapshotCopyOnlyFull"
    Type of backup policy type
    retentionPolicy Property Map | Property Map
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy Property Map | Property Map | Property Map | Property Map
    Backup schedule specified as part of backup policy.
    tieringPolicy Map<Property Map>
    Tiering policy to automatically move RPs to another tier. Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.

    SubProtectionPolicyResponse, SubProtectionPolicyResponseArgs

    PolicyType string
    Type of backup policy type
    RetentionPolicy Pulumi.AzureNative.RecoveryServices.Inputs.LongTermRetentionPolicyResponse | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleRetentionPolicyResponse
    Retention policy with the details on backup copy retention ranges.
    SchedulePolicy Pulumi.AzureNative.RecoveryServices.Inputs.LogSchedulePolicyResponse | Pulumi.AzureNative.RecoveryServices.Inputs.LongTermSchedulePolicyResponse | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyResponse | Pulumi.AzureNative.RecoveryServices.Inputs.SimpleSchedulePolicyV2Response
    Backup schedule specified as part of backup policy.
    TieringPolicy Dictionary<string, Pulumi.AzureNative.RecoveryServices.Inputs.TieringPolicyResponse>
    Tiering policy to automatically move RPs to another tier. Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    PolicyType string
    Type of backup policy type
    RetentionPolicy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy with the details on backup copy retention ranges.
    SchedulePolicy LogSchedulePolicyResponse | LongTermSchedulePolicyResponse | SimpleSchedulePolicyResponse | SimpleSchedulePolicyV2Response
    Backup schedule specified as part of backup policy.
    TieringPolicy map[string]TieringPolicyResponse
    Tiering policy to automatically move RPs to another tier. Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    policyType String
    Type of backup policy type
    retentionPolicy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy LogSchedulePolicyResponse | LongTermSchedulePolicyResponse | SimpleSchedulePolicyResponse | SimpleSchedulePolicyV2Response
    Backup schedule specified as part of backup policy.
    tieringPolicy Map<String,TieringPolicyResponse>
    Tiering policy to automatically move RPs to another tier. Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    policyType string
    Type of backup policy type
    retentionPolicy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy LogSchedulePolicyResponse | LongTermSchedulePolicyResponse | SimpleSchedulePolicyResponse | SimpleSchedulePolicyV2Response
    Backup schedule specified as part of backup policy.
    tieringPolicy {[key: string]: TieringPolicyResponse}
    Tiering policy to automatically move RPs to another tier. Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    policy_type str
    Type of backup policy type
    retention_policy LongTermRetentionPolicyResponse | SimpleRetentionPolicyResponse
    Retention policy with the details on backup copy retention ranges.
    schedule_policy LogSchedulePolicyResponse | LongTermSchedulePolicyResponse | SimpleSchedulePolicyResponse | SimpleSchedulePolicyV2Response
    Backup schedule specified as part of backup policy.
    tiering_policy Mapping[str, TieringPolicyResponse]
    Tiering policy to automatically move RPs to another tier. Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.
    policyType String
    Type of backup policy type
    retentionPolicy Property Map | Property Map
    Retention policy with the details on backup copy retention ranges.
    schedulePolicy Property Map | Property Map | Property Map | Property Map
    Backup schedule specified as part of backup policy.
    tieringPolicy Map<Property Map>
    Tiering policy to automatically move RPs to another tier. Key is Target Tier, defined in RecoveryPointTierType enum. Tiering policy specifies the criteria to move RP to the target tier.

    TieringMode, TieringModeArgs

    Invalid
    Invalid
    TierRecommended
    TierRecommended
    TierAfter
    TierAfter
    DoNotTier
    DoNotTier
    TieringModeInvalid
    Invalid
    TieringModeTierRecommended
    TierRecommended
    TieringModeTierAfter
    TierAfter
    TieringModeDoNotTier
    DoNotTier
    Invalid
    Invalid
    TierRecommended
    TierRecommended
    TierAfter
    TierAfter
    DoNotTier
    DoNotTier
    Invalid
    Invalid
    TierRecommended
    TierRecommended
    TierAfter
    TierAfter
    DoNotTier
    DoNotTier
    INVALID
    Invalid
    TIER_RECOMMENDED
    TierRecommended
    TIER_AFTER
    TierAfter
    DO_NOT_TIER
    DoNotTier
    "Invalid"
    Invalid
    "TierRecommended"
    TierRecommended
    "TierAfter"
    TierAfter
    "DoNotTier"
    DoNotTier

    TieringPolicy, TieringPolicyArgs

    Duration int
    Number of days/weeks/months/years to retain backups in current tier before tiering. Used only if TieringMode is set to TierAfter
    DurationType string | Pulumi.AzureNative.RecoveryServices.RetentionDurationType
    Retention duration type: days/weeks/months/years Used only if TieringMode is set to TierAfter
    TieringMode string | Pulumi.AzureNative.RecoveryServices.TieringMode
    Tiering Mode to control automatic tiering of recovery points. Supported values are:

    1. TierRecommended: Tier all recovery points recommended to be tiered
    2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.
    3. DoNotTier: Do not tier any recovery points
    Duration int
    Number of days/weeks/months/years to retain backups in current tier before tiering. Used only if TieringMode is set to TierAfter
    DurationType string | RetentionDurationType
    Retention duration type: days/weeks/months/years Used only if TieringMode is set to TierAfter
    TieringMode string | TieringMode
    Tiering Mode to control automatic tiering of recovery points. Supported values are:

    1. TierRecommended: Tier all recovery points recommended to be tiered
    2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.
    3. DoNotTier: Do not tier any recovery points
    duration Integer
    Number of days/weeks/months/years to retain backups in current tier before tiering. Used only if TieringMode is set to TierAfter
    durationType String | RetentionDurationType
    Retention duration type: days/weeks/months/years Used only if TieringMode is set to TierAfter
    tieringMode String | TieringMode
    Tiering Mode to control automatic tiering of recovery points. Supported values are:

    1. TierRecommended: Tier all recovery points recommended to be tiered
    2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.
    3. DoNotTier: Do not tier any recovery points
    duration number
    Number of days/weeks/months/years to retain backups in current tier before tiering. Used only if TieringMode is set to TierAfter
    durationType string | RetentionDurationType
    Retention duration type: days/weeks/months/years Used only if TieringMode is set to TierAfter
    tieringMode string | TieringMode
    Tiering Mode to control automatic tiering of recovery points. Supported values are:

    1. TierRecommended: Tier all recovery points recommended to be tiered
    2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.
    3. DoNotTier: Do not tier any recovery points
    duration int
    Number of days/weeks/months/years to retain backups in current tier before tiering. Used only if TieringMode is set to TierAfter
    duration_type str | RetentionDurationType
    Retention duration type: days/weeks/months/years Used only if TieringMode is set to TierAfter
    tiering_mode str | TieringMode
    Tiering Mode to control automatic tiering of recovery points. Supported values are:

    1. TierRecommended: Tier all recovery points recommended to be tiered
    2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.
    3. DoNotTier: Do not tier any recovery points
    duration Number
    Number of days/weeks/months/years to retain backups in current tier before tiering. Used only if TieringMode is set to TierAfter
    durationType String | "Invalid" | "Days" | "Weeks" | "Months" | "Years"
    Retention duration type: days/weeks/months/years Used only if TieringMode is set to TierAfter
    tieringMode String | "Invalid" | "TierRecommended" | "TierAfter" | "DoNotTier"
    Tiering Mode to control automatic tiering of recovery points. Supported values are:

    1. TierRecommended: Tier all recovery points recommended to be tiered
    2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.
    3. DoNotTier: Do not tier any recovery points

    TieringPolicyResponse, TieringPolicyResponseArgs

    Duration int
    Number of days/weeks/months/years to retain backups in current tier before tiering. Used only if TieringMode is set to TierAfter
    DurationType string
    Retention duration type: days/weeks/months/years Used only if TieringMode is set to TierAfter
    TieringMode string
    Tiering Mode to control automatic tiering of recovery points. Supported values are:

    1. TierRecommended: Tier all recovery points recommended to be tiered
    2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.
    3. DoNotTier: Do not tier any recovery points
    Duration int
    Number of days/weeks/months/years to retain backups in current tier before tiering. Used only if TieringMode is set to TierAfter
    DurationType string
    Retention duration type: days/weeks/months/years Used only if TieringMode is set to TierAfter
    TieringMode string
    Tiering Mode to control automatic tiering of recovery points. Supported values are:

    1. TierRecommended: Tier all recovery points recommended to be tiered
    2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.
    3. DoNotTier: Do not tier any recovery points
    duration Integer
    Number of days/weeks/months/years to retain backups in current tier before tiering. Used only if TieringMode is set to TierAfter
    durationType String
    Retention duration type: days/weeks/months/years Used only if TieringMode is set to TierAfter
    tieringMode String
    Tiering Mode to control automatic tiering of recovery points. Supported values are:

    1. TierRecommended: Tier all recovery points recommended to be tiered
    2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.
    3. DoNotTier: Do not tier any recovery points
    duration number
    Number of days/weeks/months/years to retain backups in current tier before tiering. Used only if TieringMode is set to TierAfter
    durationType string
    Retention duration type: days/weeks/months/years Used only if TieringMode is set to TierAfter
    tieringMode string
    Tiering Mode to control automatic tiering of recovery points. Supported values are:

    1. TierRecommended: Tier all recovery points recommended to be tiered
    2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.
    3. DoNotTier: Do not tier any recovery points
    duration int
    Number of days/weeks/months/years to retain backups in current tier before tiering. Used only if TieringMode is set to TierAfter
    duration_type str
    Retention duration type: days/weeks/months/years Used only if TieringMode is set to TierAfter
    tiering_mode str
    Tiering Mode to control automatic tiering of recovery points. Supported values are:

    1. TierRecommended: Tier all recovery points recommended to be tiered
    2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.
    3. DoNotTier: Do not tier any recovery points
    duration Number
    Number of days/weeks/months/years to retain backups in current tier before tiering. Used only if TieringMode is set to TierAfter
    durationType String
    Retention duration type: days/weeks/months/years Used only if TieringMode is set to TierAfter
    tieringMode String
    Tiering Mode to control automatic tiering of recovery points. Supported values are:

    1. TierRecommended: Tier all recovery points recommended to be tiered
    2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.
    3. DoNotTier: Do not tier any recovery points

    WeekOfMonth, WeekOfMonthArgs

    First
    First
    Second
    Second
    Third
    Third
    Fourth
    Fourth
    Last
    Last
    Invalid
    Invalid
    WeekOfMonthFirst
    First
    WeekOfMonthSecond
    Second
    WeekOfMonthThird
    Third
    WeekOfMonthFourth
    Fourth
    WeekOfMonthLast
    Last
    WeekOfMonthInvalid
    Invalid
    First
    First
    Second
    Second
    Third
    Third
    Fourth
    Fourth
    Last
    Last
    Invalid
    Invalid
    First
    First
    Second
    Second
    Third
    Third
    Fourth
    Fourth
    Last
    Last
    Invalid
    Invalid
    FIRST
    First
    SECOND
    Second
    THIRD
    Third
    FOURTH
    Fourth
    LAST
    Last
    INVALID
    Invalid
    "First"
    First
    "Second"
    Second
    "Third"
    Third
    "Fourth"
    Fourth
    "Last"
    Last
    "Invalid"
    Invalid

    WeeklyRetentionFormat, WeeklyRetentionFormatArgs

    DaysOfTheWeek []DayOfWeek
    List of days of the week.
    WeeksOfTheMonth []WeekOfMonth
    List of weeks of month.
    daysOfTheWeek List<DayOfWeek>
    List of days of the week.
    weeksOfTheMonth List<WeekOfMonth>
    List of weeks of month.
    daysOfTheWeek DayOfWeek[]
    List of days of the week.
    weeksOfTheMonth WeekOfMonth[]
    List of weeks of month.
    days_of_the_week Sequence[DayOfWeek]
    List of days of the week.
    weeks_of_the_month Sequence[WeekOfMonth]
    List of weeks of month.

    WeeklyRetentionFormatResponse, WeeklyRetentionFormatResponseArgs

    DaysOfTheWeek List<string>
    List of days of the week.
    WeeksOfTheMonth List<string>
    List of weeks of month.
    DaysOfTheWeek []string
    List of days of the week.
    WeeksOfTheMonth []string
    List of weeks of month.
    daysOfTheWeek List<String>
    List of days of the week.
    weeksOfTheMonth List<String>
    List of weeks of month.
    daysOfTheWeek string[]
    List of days of the week.
    weeksOfTheMonth string[]
    List of weeks of month.
    days_of_the_week Sequence[str]
    List of days of the week.
    weeks_of_the_month Sequence[str]
    List of weeks of month.
    daysOfTheWeek List<String>
    List of days of the week.
    weeksOfTheMonth List<String>
    List of weeks of month.

    WeeklyRetentionSchedule, WeeklyRetentionScheduleArgs

    DaysOfTheWeek List<Pulumi.AzureNative.RecoveryServices.DayOfWeek>
    List of days of week for weekly retention policy.
    RetentionDuration Pulumi.AzureNative.RecoveryServices.Inputs.RetentionDuration
    Retention duration of retention Policy.
    RetentionTimes List<string>
    Retention times of retention policy.
    DaysOfTheWeek []DayOfWeek
    List of days of week for weekly retention policy.
    RetentionDuration RetentionDuration
    Retention duration of retention Policy.
    RetentionTimes []string
    Retention times of retention policy.
    daysOfTheWeek List<DayOfWeek>
    List of days of week for weekly retention policy.
    retentionDuration RetentionDuration
    Retention duration of retention Policy.
    retentionTimes List<String>
    Retention times of retention policy.
    daysOfTheWeek DayOfWeek[]
    List of days of week for weekly retention policy.
    retentionDuration RetentionDuration
    Retention duration of retention Policy.
    retentionTimes string[]
    Retention times of retention policy.
    days_of_the_week Sequence[DayOfWeek]
    List of days of week for weekly retention policy.
    retention_duration RetentionDuration
    Retention duration of retention Policy.
    retention_times Sequence[str]
    Retention times of retention policy.
    daysOfTheWeek List<"Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday">
    List of days of week for weekly retention policy.
    retentionDuration Property Map
    Retention duration of retention Policy.
    retentionTimes List<String>
    Retention times of retention policy.

    WeeklyRetentionScheduleResponse, WeeklyRetentionScheduleResponseArgs

    DaysOfTheWeek List<string>
    List of days of week for weekly retention policy.
    RetentionDuration Pulumi.AzureNative.RecoveryServices.Inputs.RetentionDurationResponse
    Retention duration of retention Policy.
    RetentionTimes List<string>
    Retention times of retention policy.
    DaysOfTheWeek []string
    List of days of week for weekly retention policy.
    RetentionDuration RetentionDurationResponse
    Retention duration of retention Policy.
    RetentionTimes []string
    Retention times of retention policy.
    daysOfTheWeek List<String>
    List of days of week for weekly retention policy.
    retentionDuration RetentionDurationResponse
    Retention duration of retention Policy.
    retentionTimes List<String>
    Retention times of retention policy.
    daysOfTheWeek string[]
    List of days of week for weekly retention policy.
    retentionDuration RetentionDurationResponse
    Retention duration of retention Policy.
    retentionTimes string[]
    Retention times of retention policy.
    days_of_the_week Sequence[str]
    List of days of week for weekly retention policy.
    retention_duration RetentionDurationResponse
    Retention duration of retention Policy.
    retention_times Sequence[str]
    Retention times of retention policy.
    daysOfTheWeek List<String>
    List of days of week for weekly retention policy.
    retentionDuration Property Map
    Retention duration of retention Policy.
    retentionTimes List<String>
    Retention times of retention policy.

    WeeklySchedule, WeeklyScheduleArgs

    ScheduleRunDays List<Pulumi.AzureNative.RecoveryServices.DayOfWeek>
    ScheduleRunTimes List<string>
    List of times of day this schedule has to be run.
    ScheduleRunDays []DayOfWeek
    ScheduleRunTimes []string
    List of times of day this schedule has to be run.
    scheduleRunDays List<DayOfWeek>
    scheduleRunTimes List<String>
    List of times of day this schedule has to be run.
    scheduleRunDays DayOfWeek[]
    scheduleRunTimes string[]
    List of times of day this schedule has to be run.
    schedule_run_days Sequence[DayOfWeek]
    schedule_run_times Sequence[str]
    List of times of day this schedule has to be run.

    WeeklyScheduleResponse, WeeklyScheduleResponseArgs

    ScheduleRunDays List<string>
    ScheduleRunTimes List<string>
    List of times of day this schedule has to be run.
    ScheduleRunDays []string
    ScheduleRunTimes []string
    List of times of day this schedule has to be run.
    scheduleRunDays List<String>
    scheduleRunTimes List<String>
    List of times of day this schedule has to be run.
    scheduleRunDays string[]
    scheduleRunTimes string[]
    List of times of day this schedule has to be run.
    schedule_run_days Sequence[str]
    schedule_run_times Sequence[str]
    List of times of day this schedule has to be run.
    scheduleRunDays List<String>
    scheduleRunTimes List<String>
    List of times of day this schedule has to be run.

    WorkloadType, WorkloadTypeArgs

    Invalid
    Invalid
    VM
    VM
    FileFolder
    FileFolder
    AzureSqlDb
    AzureSqlDb
    SQLDB
    SQLDB
    Exchange
    Exchange
    Sharepoint
    Sharepoint
    VMwareVM
    VMwareVM
    SystemState
    SystemState
    Client
    Client
    GenericDataSource
    GenericDataSource
    SQLDataBase
    SQLDataBase
    AzureFileShare
    AzureFileShare
    SAPHanaDatabase
    SAPHanaDatabase
    SAPAseDatabase
    SAPAseDatabase
    SAPHanaDBInstance
    SAPHanaDBInstance
    WorkloadTypeInvalid
    Invalid
    WorkloadTypeVM
    VM
    WorkloadTypeFileFolder
    FileFolder
    WorkloadTypeAzureSqlDb
    AzureSqlDb
    WorkloadTypeSQLDB
    SQLDB
    WorkloadTypeExchange
    Exchange
    WorkloadTypeSharepoint
    Sharepoint
    WorkloadTypeVMwareVM
    VMwareVM
    WorkloadTypeSystemState
    SystemState
    WorkloadTypeClient
    Client
    WorkloadTypeGenericDataSource
    GenericDataSource
    WorkloadTypeSQLDataBase
    SQLDataBase
    WorkloadTypeAzureFileShare
    AzureFileShare
    WorkloadTypeSAPHanaDatabase
    SAPHanaDatabase
    WorkloadTypeSAPAseDatabase
    SAPAseDatabase
    WorkloadTypeSAPHanaDBInstance
    SAPHanaDBInstance
    Invalid
    Invalid
    VM
    VM
    FileFolder
    FileFolder
    AzureSqlDb
    AzureSqlDb
    SQLDB
    SQLDB
    Exchange
    Exchange
    Sharepoint
    Sharepoint
    VMwareVM
    VMwareVM
    SystemState
    SystemState
    Client
    Client
    GenericDataSource
    GenericDataSource
    SQLDataBase
    SQLDataBase
    AzureFileShare
    AzureFileShare
    SAPHanaDatabase
    SAPHanaDatabase
    SAPAseDatabase
    SAPAseDatabase
    SAPHanaDBInstance
    SAPHanaDBInstance
    Invalid
    Invalid
    VM
    VM
    FileFolder
    FileFolder
    AzureSqlDb
    AzureSqlDb
    SQLDB
    SQLDB
    Exchange
    Exchange
    Sharepoint
    Sharepoint
    VMwareVM
    VMwareVM
    SystemState
    SystemState
    Client
    Client
    GenericDataSource
    GenericDataSource
    SQLDataBase
    SQLDataBase
    AzureFileShare
    AzureFileShare
    SAPHanaDatabase
    SAPHanaDatabase
    SAPAseDatabase
    SAPAseDatabase
    SAPHanaDBInstance
    SAPHanaDBInstance
    INVALID
    Invalid
    VM
    VM
    FILE_FOLDER
    FileFolder
    AZURE_SQL_DB
    AzureSqlDb
    SQLDB
    SQLDB
    EXCHANGE
    Exchange
    SHAREPOINT
    Sharepoint
    V_MWARE_VM
    VMwareVM
    SYSTEM_STATE
    SystemState
    CLIENT
    Client
    GENERIC_DATA_SOURCE
    GenericDataSource
    SQL_DATA_BASE
    SQLDataBase
    AZURE_FILE_SHARE
    AzureFileShare
    SAP_HANA_DATABASE
    SAPHanaDatabase
    SAPASE_DATABASE
    SAPAseDatabase
    SAP_HANA_DB_INSTANCE
    SAPHanaDBInstance
    "Invalid"
    Invalid
    "VM"
    VM
    "FileFolder"
    FileFolder
    "AzureSqlDb"
    AzureSqlDb
    "SQLDB"
    SQLDB
    "Exchange"
    Exchange
    "Sharepoint"
    Sharepoint
    "VMwareVM"
    VMwareVM
    "SystemState"
    SystemState
    "Client"
    Client
    "GenericDataSource"
    GenericDataSource
    "SQLDataBase"
    SQLDataBase
    "AzureFileShare"
    AzureFileShare
    "SAPHanaDatabase"
    SAPHanaDatabase
    "SAPAseDatabase"
    SAPAseDatabase
    "SAPHanaDBInstance"
    SAPHanaDBInstance

    YearlyRetentionSchedule, YearlyRetentionScheduleArgs

    MonthsOfYear List<Pulumi.AzureNative.RecoveryServices.MonthOfYear>
    List of months of year of yearly retention policy.
    RetentionDuration Pulumi.AzureNative.RecoveryServices.Inputs.RetentionDuration
    Retention duration of retention Policy.
    RetentionScheduleDaily Pulumi.AzureNative.RecoveryServices.Inputs.DailyRetentionFormat
    Daily retention format for yearly retention policy.
    RetentionScheduleFormatType string | Pulumi.AzureNative.RecoveryServices.RetentionScheduleFormat
    Retention schedule format for yearly retention policy.
    RetentionScheduleWeekly Pulumi.AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormat
    Weekly retention format for yearly retention policy.
    RetentionTimes List<string>
    Retention times of retention policy.
    MonthsOfYear []MonthOfYear
    List of months of year of yearly retention policy.
    RetentionDuration RetentionDuration
    Retention duration of retention Policy.
    RetentionScheduleDaily DailyRetentionFormat
    Daily retention format for yearly retention policy.
    RetentionScheduleFormatType string | RetentionScheduleFormat
    Retention schedule format for yearly retention policy.
    RetentionScheduleWeekly WeeklyRetentionFormat
    Weekly retention format for yearly retention policy.
    RetentionTimes []string
    Retention times of retention policy.
    monthsOfYear List<MonthOfYear>
    List of months of year of yearly retention policy.
    retentionDuration RetentionDuration
    Retention duration of retention Policy.
    retentionScheduleDaily DailyRetentionFormat
    Daily retention format for yearly retention policy.
    retentionScheduleFormatType String | RetentionScheduleFormat
    Retention schedule format for yearly retention policy.
    retentionScheduleWeekly WeeklyRetentionFormat
    Weekly retention format for yearly retention policy.
    retentionTimes List<String>
    Retention times of retention policy.
    monthsOfYear MonthOfYear[]
    List of months of year of yearly retention policy.
    retentionDuration RetentionDuration
    Retention duration of retention Policy.
    retentionScheduleDaily DailyRetentionFormat
    Daily retention format for yearly retention policy.
    retentionScheduleFormatType string | RetentionScheduleFormat
    Retention schedule format for yearly retention policy.
    retentionScheduleWeekly WeeklyRetentionFormat
    Weekly retention format for yearly retention policy.
    retentionTimes string[]
    Retention times of retention policy.
    months_of_year Sequence[MonthOfYear]
    List of months of year of yearly retention policy.
    retention_duration RetentionDuration
    Retention duration of retention Policy.
    retention_schedule_daily DailyRetentionFormat
    Daily retention format for yearly retention policy.
    retention_schedule_format_type str | RetentionScheduleFormat
    Retention schedule format for yearly retention policy.
    retention_schedule_weekly WeeklyRetentionFormat
    Weekly retention format for yearly retention policy.
    retention_times Sequence[str]
    Retention times of retention policy.
    monthsOfYear List<"Invalid" | "January" | "February" | "March" | "April" | "May" | "June" | "July" | "August" | "September" | "October" | "November" | "December">
    List of months of year of yearly retention policy.
    retentionDuration Property Map
    Retention duration of retention Policy.
    retentionScheduleDaily Property Map
    Daily retention format for yearly retention policy.
    retentionScheduleFormatType String | "Invalid" | "Daily" | "Weekly"
    Retention schedule format for yearly retention policy.
    retentionScheduleWeekly Property Map
    Weekly retention format for yearly retention policy.
    retentionTimes List<String>
    Retention times of retention policy.

    YearlyRetentionScheduleResponse, YearlyRetentionScheduleResponseArgs

    MonthsOfYear List<string>
    List of months of year of yearly retention policy.
    RetentionDuration Pulumi.AzureNative.RecoveryServices.Inputs.RetentionDurationResponse
    Retention duration of retention Policy.
    RetentionScheduleDaily Pulumi.AzureNative.RecoveryServices.Inputs.DailyRetentionFormatResponse
    Daily retention format for yearly retention policy.
    RetentionScheduleFormatType string
    Retention schedule format for yearly retention policy.
    RetentionScheduleWeekly Pulumi.AzureNative.RecoveryServices.Inputs.WeeklyRetentionFormatResponse
    Weekly retention format for yearly retention policy.
    RetentionTimes List<string>
    Retention times of retention policy.
    MonthsOfYear []string
    List of months of year of yearly retention policy.
    RetentionDuration RetentionDurationResponse
    Retention duration of retention Policy.
    RetentionScheduleDaily DailyRetentionFormatResponse
    Daily retention format for yearly retention policy.
    RetentionScheduleFormatType string
    Retention schedule format for yearly retention policy.
    RetentionScheduleWeekly WeeklyRetentionFormatResponse
    Weekly retention format for yearly retention policy.
    RetentionTimes []string
    Retention times of retention policy.
    monthsOfYear List<String>
    List of months of year of yearly retention policy.
    retentionDuration RetentionDurationResponse
    Retention duration of retention Policy.
    retentionScheduleDaily DailyRetentionFormatResponse
    Daily retention format for yearly retention policy.
    retentionScheduleFormatType String
    Retention schedule format for yearly retention policy.
    retentionScheduleWeekly WeeklyRetentionFormatResponse
    Weekly retention format for yearly retention policy.
    retentionTimes List<String>
    Retention times of retention policy.
    monthsOfYear string[]
    List of months of year of yearly retention policy.
    retentionDuration RetentionDurationResponse
    Retention duration of retention Policy.
    retentionScheduleDaily DailyRetentionFormatResponse
    Daily retention format for yearly retention policy.
    retentionScheduleFormatType string
    Retention schedule format for yearly retention policy.
    retentionScheduleWeekly WeeklyRetentionFormatResponse
    Weekly retention format for yearly retention policy.
    retentionTimes string[]
    Retention times of retention policy.
    months_of_year Sequence[str]
    List of months of year of yearly retention policy.
    retention_duration RetentionDurationResponse
    Retention duration of retention Policy.
    retention_schedule_daily DailyRetentionFormatResponse
    Daily retention format for yearly retention policy.
    retention_schedule_format_type str
    Retention schedule format for yearly retention policy.
    retention_schedule_weekly WeeklyRetentionFormatResponse
    Weekly retention format for yearly retention policy.
    retention_times Sequence[str]
    Retention times of retention policy.
    monthsOfYear List<String>
    List of months of year of yearly retention policy.
    retentionDuration Property Map
    Retention duration of retention Policy.
    retentionScheduleDaily Property Map
    Daily retention format for yearly retention policy.
    retentionScheduleFormatType String
    Retention schedule format for yearly retention policy.
    retentionScheduleWeekly Property Map
    Weekly retention format for yearly retention policy.
    retentionTimes List<String>
    Retention times of retention policy.

    Import

    An existing resource can be imported using its type token, name, and identifier, e.g.

    $ pulumi import azure-native:recoveryservices:ProtectionPolicy testPolicy1 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/{policyName} 
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Azure Native pulumi/pulumi-azure-native
    License
    Apache-2.0
    azure-native logo
    This is the latest version of Azure Native. Use the Azure Native v1 docs if using the v1 version of this package.
    Azure Native v2.63.0 published on Tuesday, Sep 24, 2024 by Pulumi