the maximum time allowed before the policy expires. While the application can express this time in any units they desire, the class truncates to milliseconds.
typename DurationRep
a placeholder to match the Rep tparam for duration's type. The semantics of this template parameter are documented in std::chrono::duration<>. In brief, the underlying arithmetic type used to store the number of ticks. For our purposes it is simply a formal parameter.
typename DurationPeriod
a placeholder to match the Period tparam for duration's type. The semantics of this template parameter are documented in std::chrono::duration<>. In brief, the length of the tick in seconds, expressed as a std::ratio<>. For our purposes it is simply a formal parameter.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["\u003cp\u003eThis document outlines the \u003ccode\u003eVersionsLimitedTimeRetryPolicy\u003c/code\u003e class, which is designed for handling retries in the \u003ccode\u003eVersionsConnection\u003c/code\u003e based on elapsed time.\u003c/p\u003e\n"],["\u003cp\u003eThe retry policy terminates if a non-transient error occurs or if the elapsed time exceeds a predefined duration, with \u003ccode\u003ekUnavailable\u003c/code\u003e being the only status code that's considered a transient error.\u003c/p\u003e\n"],["\u003cp\u003eThe class includes constructors for setting the maximum retry duration and copy constructors, also offering methods for determining the maximum duration, handling failures, checking exhaustion, identifying permanent failures, and creating clones.\u003c/p\u003e\n"],["\u003cp\u003eThe class contains several different versions with links to their respective pages, the latest being the release candidate 2.37.0-rc, all of which use this class.\u003c/p\u003e\n"],["\u003cp\u003eA type alias called \u003ccode\u003eBaseType\u003c/code\u003e which is an alias of \u003ccode\u003eVersionsRetryPolicy\u003c/code\u003e is also defined in this class.\u003c/p\u003e\n"]]],[],null,["# Class VersionsLimitedTimeRetryPolicy (2.29.0)\n\nVersion 2.29.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/appengine/latest/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.41.0](/cpp/docs/reference/appengine/2.41.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.40.0](/cpp/docs/reference/appengine/2.40.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.39.0](/cpp/docs/reference/appengine/2.39.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.38.0](/cpp/docs/reference/appengine/2.38.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.37.0](/cpp/docs/reference/appengine/2.37.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.36.0](/cpp/docs/reference/appengine/2.36.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.35.0](/cpp/docs/reference/appengine/2.35.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.34.0](/cpp/docs/reference/appengine/2.34.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.33.0](/cpp/docs/reference/appengine/2.33.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.32.0](/cpp/docs/reference/appengine/2.32.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.31.0](/cpp/docs/reference/appengine/2.31.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.30.0](/cpp/docs/reference/appengine/2.30.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.29.0](/cpp/docs/reference/appengine/2.29.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.28.0](/cpp/docs/reference/appengine/2.28.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.27.0](/cpp/docs/reference/appengine/2.27.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.26.0](/cpp/docs/reference/appengine/2.26.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.25.1](/cpp/docs/reference/appengine/2.25.1/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.24.0](/cpp/docs/reference/appengine/2.24.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.23.0](/cpp/docs/reference/appengine/2.23.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.22.1](/cpp/docs/reference/appengine/2.22.1/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.21.0](/cpp/docs/reference/appengine/2.21.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.20.0](/cpp/docs/reference/appengine/2.20.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.19.0](/cpp/docs/reference/appengine/2.19.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.18.0](/cpp/docs/reference/appengine/2.18.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.17.0](/cpp/docs/reference/appengine/2.17.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.16.0](/cpp/docs/reference/appengine/2.16.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.15.1](/cpp/docs/reference/appengine/2.15.1/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.14.0](/cpp/docs/reference/appengine/2.14.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.13.0](/cpp/docs/reference/appengine/2.13.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.12.0](/cpp/docs/reference/appengine/2.12.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.11.0](/cpp/docs/reference/appengine/2.11.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy) \nA retry policy for [`VersionsConnection`](/cpp/docs/reference/appengine/2.29.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsConnection) based on elapsed time. \nThis policy stops retrying if:\n\n- An RPC returns a non-transient error.\n- The elapsed time in the retry loop exceeds a prescribed duration.\n\nIn this class the following status codes are treated as transient errors:\n\n- [`kUnavailable`](https://cloud.google.com/cpp/docs/reference/common/latest/namespacegoogle_1_1cloud_1a90e17f75452470f0f3ee1a06ffe58847.html)\n\nConstructors\n------------\n\n### VersionsLimitedTimeRetryPolicy(std::chrono::duration\\\u003c DurationRep, DurationPeriod \\\u003e)\n\nConstructor given a `std::chrono::duration\u003c\u003e` object. \n\n###### See Also\n\n\u003chttps://en.cppreference.com/w/cpp/chrono/duration\u003e for more information about `std::chrono::duration`.\n\n### VersionsLimitedTimeRetryPolicy(VersionsLimitedTimeRetryPolicy \\&\\&)\n\n### VersionsLimitedTimeRetryPolicy(VersionsLimitedTimeRetryPolicy const \\&)\n\nFunctions\n---------\n\n### maximum_duration() const\n\n### virtual OnFailure(Status const \\&)\n\n### virtual IsExhausted() const\n\n### virtual IsPermanentFailure(Status const \\&) const\n\n### virtual clone() const\n\nCreates a new instance of the policy, reset to the initial state.\n\nType Aliases\n------------\n\n### BaseType\n\n**Alias Of** : `VersionsRetryPolicy`"]]