-
Notifications
You must be signed in to change notification settings - Fork 5.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Additional TieringPolicy and ProtectedItemExtendedInfo details for Microsoft.RecoveryServices version 2021-12-01 #17517
Changes from 5 commits
3014257
c9543ed
0cf5fdd
0acbb0e
0e335a5
09d4329
c6d0484
0685ca5
96705a0
664b873
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5454,6 +5454,21 @@ | |
"description": "The oldest backup copy available for this backup item.", | ||
"type": "string" | ||
}, | ||
"oldestRecoveryPointInVault": { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Replied above #Closed |
||
"format": "date-time", | ||
"description": "The oldest backup copy available for this backup item in vault tier", | ||
"type": "string" | ||
}, | ||
"oldestRecoveryPointInArchive": { | ||
"format": "date-time", | ||
"description": "The oldest backup copy available for this backup item in archive tier", | ||
"type": "string" | ||
}, | ||
"newestRecoveryPointInArchive": { | ||
"format": "date-time", | ||
"description": "The latest backup copy available for this backup item in archive tier", | ||
"type": "string" | ||
}, | ||
"recoveryPointCount": { | ||
"format": "int32", | ||
"description": "Number of backup copies available for this backup item.", | ||
|
@@ -5485,6 +5500,13 @@ | |
"$ref": "#/definitions/RetentionPolicy", | ||
"description": "Retention policy with the details on backup copy retention ranges." | ||
}, | ||
"tieringPolicy": { | ||
"description": "Tiering policy to automatically move RPs to another tier\r\nKey is Target Tier, defined in RecoveryPointTierType enum.\r\nTiering policy specifies the criteria to move RP to the target tier.", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In a GET call, all supported tiers will be populated by the service in the response. In a CreateOrUpdate call, any target tiers omitted by user in the request will result in service retaining the existing policy for that target tier. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please call out the default behavior in description There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Added There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There is only one source tier and one target tier supported as of now for the move, which will be mentioned in the feature documentation There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please specify the conditions inline or add a link to the documentation. Also when you add support for more combinations, it will be considered a breaking change and you will have to release that as a part of a new API version. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The documentation is not available yet. I'll add the conditions inline. Yes, new combinations will be added in a new API version. |
||
"type": "object", | ||
"additionalProperties": { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why is this modeled as additionalProperties? ARM doesn't allow additionalProperties unless the members are unknown, dynamic or user defined. Ref: https://armwiki.azurewebsites.net/api_contracts/guidelines/openapi.html#oapi032-only-use-additionalproperties-when-the-object-properties-are-dynamic-unknown-or-user-defined #Closed There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The tieringPolicy field is a dictionary. As per the OpenAPI specification, dictionaries need to be defined with the additionalProperties keyword. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is the size of the dictionary dynamic? Meaning can the user only specify one element out of all the possible elements? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes |
||
"$ref": "#/definitions/TieringPolicy" | ||
} | ||
}, | ||
"instantRpRetentionRangeInDays": { | ||
"format": "int32", | ||
"description": "Instant RP retention policy range in days", | ||
|
@@ -5807,6 +5829,21 @@ | |
"description": "The oldest backup copy available for this backup item.", | ||
"type": "string" | ||
}, | ||
"oldestRecoveryPointInVault": { | ||
"format": "date-time", | ||
"description": "The oldest backup copy available for this backup item in vault tier", | ||
"type": "string" | ||
}, | ||
"oldestRecoveryPointInArchive": { | ||
"format": "date-time", | ||
"description": "The oldest backup copy available for this backup item in archive tier", | ||
"type": "string" | ||
}, | ||
"newestRecoveryPointInArchive": { | ||
"format": "date-time", | ||
"description": "The latest backup copy available for this backup item in archive tier", | ||
"type": "string" | ||
}, | ||
"recoveryPointCount": { | ||
"format": "int32", | ||
"description": "Number of backup copies available for this backup item.", | ||
|
@@ -9001,6 +9038,13 @@ | |
"retentionPolicy": { | ||
"$ref": "#/definitions/RetentionPolicy", | ||
"description": "Retention policy with the details on backup copy retention ranges." | ||
}, | ||
"tieringPolicy": { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. As mentioned above, 2021-12-01 is a new API version and these changes were missed in an earlier PR for this version. There are currently no consumers for this API version. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You still have to get an approval from the breaking change review board as the API version is exposed. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Got approval from breaking change review board (attached on email thread) |
||
"description": "Tiering policy to automatically move RPs to another tier.\r\nKey is Target Tier, defined in RecoveryPointTierType enum.\r\nTiering policy specifies the criteria to move RP to the target tier.", | ||
"type": "object", | ||
"additionalProperties": { | ||
"$ref": "#/definitions/TieringPolicy" | ||
} | ||
} | ||
} | ||
}, | ||
|
@@ -12434,6 +12478,46 @@ | |
} | ||
} | ||
} | ||
}, | ||
"TieringPolicy": { | ||
"description": "Tiering Policy for a target tier.\r\nIf the policy is not specified for a given target tier, service retains the existing configured tiering policy for that tier", | ||
"type": "object", | ||
"properties": { | ||
"tieringMode": { | ||
"description": "Tiering Mode to control automatic tiering of recovery points. Supported values are:\r\n1. TierRecommended: Tier all recovery points recommended to be tiered\r\n2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.\r\n3. DoNotTier: Do not tier any recovery points", | ||
"enum": [ | ||
"Invalid", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's the default value of the enum and not intended to be explicitly specified by user. Any string value specified by user that is not part of the enum gets translated into "invalid" on service side. |
||
"TierRecommended", | ||
anjorsh marked this conversation as resolved.
Show resolved
Hide resolved
|
||
"TierAfter", | ||
"DoNotTier" | ||
], | ||
"type": "string", | ||
"x-ms-enum": { | ||
"name": "TieringMode", | ||
"modelAsString": true | ||
} | ||
}, | ||
"duration": { | ||
"format": "int32", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Greater than or equal to zero There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do you want to place a restriction on the max value to catch accidental updates with unintended large values? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The service does validate the number before accepting the update, and returns an error code if the check fails. The actual permissible range is dynamically calculated by the service during the update call and can vary based on a number of factors. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If you have external documentation on the rules it will be great to add a link to it in the description |
||
"description": "Number of days/weeks/months/years to retain backups in current tier before tiering.\r\nUsed only if TieringMode is set to TierAfter", | ||
"type": "integer" | ||
}, | ||
"durationType": { | ||
"description": "Retention duration type: days/weeks/months/years\r\nUsed only if TieringMode is set to TierAfter", | ||
"enum": [ | ||
"Invalid", | ||
anjorsh marked this conversation as resolved.
Show resolved
Hide resolved
|
||
"Days", | ||
"Weeks", | ||
"Months", | ||
"Years" | ||
], | ||
"type": "string", | ||
"x-ms-enum": { | ||
"name": "RetentionDurationType", | ||
"modelAsString": true | ||
} | ||
} | ||
} | ||
} | ||
}, | ||
"parameters": { | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
across all tiers?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
consider clarifying that in the description