@@ -118,9 +118,11 @@ def __init__(
118118 self ,
119119 noncurrent_days : int | None = None ,
120120 storage_class : str | None = None ,
121+ newer_noncurrent_versions : int | None = None ,
121122 ):
122123 self ._noncurrent_days = noncurrent_days
123124 self ._storage_class = storage_class
125+ self ._newer_noncurrent_versions = newer_noncurrent_versions
124126
125127 @property
126128 def noncurrent_days (self ) -> int | None :
@@ -132,6 +134,11 @@ def storage_class(self) -> str | None:
132134 """Get storage class."""
133135 return self ._storage_class
134136
137+ @property
138+ def newer_noncurrent_versions (self ) -> int | None :
139+ """Get Newer Noncurrent versions."""
140+ return self ._newer_noncurrent_versions
141+
135142 @classmethod
136143 def fromxml (cls : Type [B ], element : ET .Element ) -> B :
137144 """Create new object with values from XML element."""
@@ -140,9 +147,11 @@ def fromxml(cls: Type[B], element: ET.Element) -> B:
140147 find (element , "NoncurrentVersionTransition" , True ),
141148 )
142149 noncurrent_days = findtext (element , "NoncurrentDays" )
150+ versions = findtext (element , "NewerNoncurrentVersions" )
143151 return cls (
144152 int (noncurrent_days ) if noncurrent_days else None ,
145153 findtext (element , "StorageClass" ),
154+ int (versions ) if versions else None ,
146155 )
147156
148157 def toxml (self , element : ET .Element | None ) -> ET .Element :
@@ -154,6 +163,9 @@ def toxml(self, element: ET.Element | None) -> ET.Element:
154163 SubElement (element , "NoncurrentDays" , str (self ._noncurrent_days ))
155164 if self ._storage_class :
156165 SubElement (element , "StorageClass" , self ._storage_class )
166+ if self ._newer_noncurrent_versions :
167+ SubElement (element , "NewerNoncurrentVersions" ,
168+ str (self ._newer_noncurrent_versions ))
157169 return element
158170
159171
@@ -163,14 +175,21 @@ def toxml(self, element: ET.Element | None) -> ET.Element:
163175class NoncurrentVersionExpiration :
164176 """Noncurrent version expiration."""
165177
166- def __init__ (self , noncurrent_days : int | None = None ):
178+ def __init__ (self , noncurrent_days : int | None = None ,
179+ newer_noncurrent_versions : int | None = None ):
167180 self ._noncurrent_days = noncurrent_days
181+ self ._newer_noncurrent_versions = newer_noncurrent_versions
168182
169183 @property
170184 def noncurrent_days (self ) -> int | None :
171185 """Get Noncurrent days."""
172186 return self ._noncurrent_days
173187
188+ @property
189+ def newer_noncurrent_versions (self ) -> int | None :
190+ """Get Newer Noncurrent versions."""
191+ return self ._newer_noncurrent_versions
192+
174193 @classmethod
175194 def fromxml (cls : Type [C ], element : ET .Element ) -> C :
176195 """Create new object with values from XML element."""
@@ -179,7 +198,9 @@ def fromxml(cls: Type[C], element: ET.Element) -> C:
179198 find (element , "NoncurrentVersionExpiration" , True ),
180199 )
181200 noncurrent_days = findtext (element , "NoncurrentDays" )
182- return cls (int (noncurrent_days ) if noncurrent_days else None )
201+ versions = findtext (element , "NewerNoncurrentVersions" )
202+ return cls (int (noncurrent_days ) if noncurrent_days else None ,
203+ int (versions ) if versions else None )
183204
184205 def toxml (self , element : ET .Element | None ) -> ET .Element :
185206 """Convert to XML."""
@@ -188,6 +209,9 @@ def toxml(self, element: ET.Element | None) -> ET.Element:
188209 element = SubElement (element , "NoncurrentVersionExpiration" )
189210 if self ._noncurrent_days :
190211 SubElement (element , "NoncurrentDays" , str (self ._noncurrent_days ))
212+ if self ._newer_noncurrent_versions :
213+ SubElement (element , "NewerNoncurrentVersions" ,
214+ str (self ._newer_noncurrent_versions ))
191215 return element
192216
193217
0 commit comments