Resources/Schema/New-CmAzIaasRecoveryServicesPolicy.Schema.json
{
"$schema": "http://json-schema.org/draft-07/schema", "$id": "New-CmAzIaasRecoveryServicesVault.Policy", "type": "object", "title": "New-CmAzIaasRecoveryServicesVault.Policy", "description": "Settings Root.", "definitions": { "retentionTimes": { "$id": "#/definitions/retentionTimes", "type": ["array", "null"], "title": "RetentionTimes", "description": "List of times when the backup procedure should be triggered.", "items": { "$id": "#/retentionTimes/items", "allOf": [ { "$id": "#/retentionTimes/items/allOf", "type": "string" } ] } }, "retentionDuration": { "$id": "#/definitions/retentionDuration", "type": ["object", "null"], "title": "RetentionDuration", "description": "Length of time the backup is retained.", "properties": { "count": { "$id": "#/definitions/retentionDuration/count", "type": ["integer", "null"], "title": "Count", "description": "Value used for the length of retaining the backup." }, "durationType": { "$id": "#/definitions/retentionDuration/durationType", "type": ["string", "null"], "title": "DurationType", "description": "Metric used for the length of retaining the backup." } }, "additionalProperties": false }, "daysOfTheWeek": { "$id": "#/definitions/daysOfTheWeek", "type": ["array", "null"], "title": "DaysOfTheWeek", "description": "Available days for weekly schedules.", "items": { "$id": "#/definitions/daysOfTheWeek/items", "allOf": [ { "$id": "#/definitions/daysOfTheWeek/items/allOf", "type": "string", "enum": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] } ] } }, "dailyRetentionFormat": { "$id": "#/definitions/dailyRetentionFormat", "type": ["object", "null"], "title": "DailyRetentionFormat", "description": "Format for what day of the month a backup schedule is set.", "properties": { "daysOfTheMonth": { "$id": "#/definitions/dailyRetentionFormat/daysOfTheMonth", "type": ["object", "null"], "title": "DaysOfTheMonth", "description": "Contains details for what day of the month a backup should be scheduled.", "properties": { "date": { "$id": "#/definitions/dailyRetentionFormat/daysOfTheMonth/date", "type": ["integer", "null"], "title": "Date", "description": "Day of the month a backup should be scheduled.", "minimum": 1, "maximum": 31 }, "isLast": { "$id": "#/definitions/dailyRetentionFormat/daysOfTheMonth/isLast", "type": ["boolean", "null"], "title": "IsLast", "description": "Weither to use the last day of the month instead of the date." } }, "additionalProperties": false } }, "additionalProperties": false }, "weeklyRetentionFormat": { "$id": "#/definitions/weeklyRetentionFormat", "type": ["object", "null"], "title": "WeeklyRetentionFormat", "description": "Format for what week of the month a backup schedule is set.", "properties": { "daysOfTheWeek": { "$ref": "#/definitions/daysOfTheWeek" }, "weeksOfTheMonth": { "$id": "#/definitions/weeklyRetentionFormat/weeksOfTheMonth", "type": ["array", "null"], "title": "WeeksOfTheMonth", "description": "Contains details for what week of the month a backup should be scheduled.", "items": { "$id": "#/definitions/weeklyRetentionFormat/weeksOfTheMonth/items", "allOf": [ { "$id": "#/definitions/weeklyRetentionFormat/weeksOfTheMonth/items/allOf", "type": "string", "enum": ["First", "Second", "Third", "Fourth", "Last", "Invalid"] } ] } } }, "additionalProperties": false }, "retentionScheduleFormatType": { "$id": "#/definitions/retentionScheduleFormatType", "type": ["string", "null"], "title": "RetentionScheduleFormatType", "description": "What frequency format should be used for backups.", "enum": ["Invalid", "Daily", "Weekly", null] } }, "required": [ "policies" ], "properties": { "policies": { "$id": "#/policies", "type": "array", "title": "Policies", "description": "List of policies containing backup details, schedule times and the backup's retention periods.", "items": { "$id": "#/policies/items", "minLength": 1, "allOf": [ { "$id": "#/policies/items/allOf", "type": "object", "required": [ "policyName", "timeZone", "instantRpRetentionRangeInDays", "retention" ], "properties": { "policyName": { "$id": "#/policies/items/allOf/policyName", "type": "string", "title": "PolicyName", "description": "Name of the backup policy." }, "timeZone": { "$id": "#/policies/items/allOf/timeZone", "type": "string", "title": "TimeZone", "description": "Timezone for the policy's schedule." }, "instantRpRetentionRangeInDays": { "$id": "#/policies/items/allOf/instantRpRetentionRangeInDays", "type": "integer", "title": "InstantRpRetentionRangeInDays", "description": "Number of days for instant rp retention policy.", "minimum": 1 }, "schedule": { "$id": "#/policies/items/allOf/schedule", "type": ["object", "null"], "title": "Schedule", "description": "Contains details required to deploy a backup schedule.", "properties": { "scheduleRunFrequency": { "$id": "#/policies/items/allOf/schedule/scheduleRunFrequency", "type": ["string", "null"], "title": "ScheduleRunFrequency", "description": "Frequency metric for the backup schedule.", "Enum": ["Daily", "Weekly", "Monthly"] }, "scheduleRunTimes": { "$id": "#/policies/items/allOf/schedule/scheduleRunTimes", "type": ["array", "null"], "title": "ScheduleRunTimes", "description": "Datetimes of when the schedules will be ran.", "items": { "$id": "#/policies/items/allOf/schedule/scheduleRunTimes/items", "allOf": [ { "$id": "#/policies/items/allOf/schedule/scheduleRunTimes/items/allOf", "type": "string", "format": "date-time" } ] } }, "schedulePolicyType": { "$id": "#/policies/items/allOf/schedule/schedulePolicyType", "type": ["string", "null"], "title": "SchedulePolicyType", "description": "Type of policy to be scheduled.", "enum": ["LogSchedulePolicy", "LongTermSchedulePolicy", "SimpleSchedulePolicy", null] }, "scheduleRunDays": { "$id": "#/policies/items/allOf/schedule/scheduleRunDays", "type": ["array", "null"], "title": "ScheduleRunDays", "description": "Days of the week of when schedule will be ran.", "items": { "$id": "#/policies/items/allOf/schedule/scheduleRunTimes/items", "allOf": [ { "$id": "#/policies/items/allOf/schedule/scheduleRunTimes/items/allOf", "type": "string", "enum": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] } ] } }, "scheduleFrequencyInMins": { "$id": "#/policies/items/allOf/schedule/scheduleFrequencyInMins", "type": ["integer", "null"], "title": "ScheduleFrequencyInMins", "description": "Frequency in minutes for log schedule policies." }, "scheduleWeeklyFrequency": { "$id": "#/policies/items/allOf/schedule/scheduleWeeklyFrequency", "type": ["string", "null"], "title": "ScheduleWeeklyFrequency", "description": "Intervals when the schedule will be run in number of weeks." } }, "additionalProperties": false }, "retention": { "$id": "#/policies/items/allOf/retention", "type": "object", "title": "Retention", "description": "Container of retention policy details to be deployed.", "required": [ "retentionPolicyType" ], "properties": { "retentionPolicyType": { "$id": "#/policies/items/allOf/retention/retentionPolicyType", "type": "string", "title": "RetentionPolicyType", "description": "Type of retention policy to use.", "enum": ["SimpleRetentionPolicy", "LongTermRetentionPolicy"] }, "dailySchedule": { "$id": "#/policies/items/allOf/retention/dailySchedule", "type": ["string", "object"], "title": "DailySchedule", "description": "Contains daily backup schedule details.", "properties": { "retentionTimes": { "$ref": "#/definitions/retentionTimes" }, "retentionDuration": { "$ref": "#/definitions/retentionDuration" } }, "additionalProperties": false }, "weeklySchedule": { "$id": "#/policies/items/allOf/retention/weeklySchedule", "type": ["object", "null"], "title": "WeeklySchedule", "description": "Contains weekly backup schedule details.", "properties": { "retentionTimes": { "$ref": "#/definitions/retentionTimes" }, "retentionDuration": { "$ref": "#/definitions/retentionDuration" }, "daysOfTheWeek": { "$ref": "#/definitions/daysOfTheWeek" } }, "additionalProperties": false }, "monthlySchedule": { "$id": "#/policies/items/allOf/retention/monthlySchedule", "type": ["object", "null"], "title": "MonthlySchedule", "description": "Contains monthly backup schedule details.", "properties": { "retentionTimes": { "$ref": "#/definitions/retentionTimes" }, "retentionDuration": { "$ref": "#/definitions/retentionDuration" }, "retentionScheduleDaily": { "$ref": "#/definitions/dailyRetentionFormat" }, "retentionScheduleWeekly": { "$ref": "#/definitions/weeklyRetentionFormat" }, "retentionScheduleFormatType": { "$ref": "#/definitions/retentionScheduleFormatType"} }, "additionalProperties": false }, "yearlySchedule": { "$id": "#/policies/items/allOf/retention/yearlySchedule", "type": ["object", "null"], "title": "YearlySchedule", "description": "Contains year backup schedule details.", "properties": { "retentionTimes": { "$ref": "#/definitions/retentionTimes" }, "retentionDuration": { "$ref": "#/definitions/retentionDuration" }, "retentionScheduleDaily": { "$ref": "#/definitions/dailyRetentionFormat" }, "retentionScheduleWeekly": { "$ref": "#/definitions/weeklyRetentionFormat" }, "retentionScheduleFormatType": { "$ref": "#/definitions/retentionScheduleFormatType" }, "monthsOfYear": { "$id": "#/policies/items/allOf/retention/yearlySchedule/monthsOfYear", "type": ["array", "null"], "title": "MonthsOfYear", "description": "Available months for yearly schedules.", "items": { "$id": "#/policies/items/allOf/retention/yearlySchedule/monthsOfYear/items", "allOf": [ { "$id": "#/policies/items/allOf/retention/yearlySchedule/monthsOfYear/items/allOf", "type": "string", "enum": [ "Invalid", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ] } ] } } }, "additionalProperties": false } }, "additionalProperties": false } }, "additionalProperties": false } ] } } }, "additionalProperties": false } |