Recursively documents parameters in nested structures
(self, model, doc)
| 253 | doc.style.end_ul() |
| 254 | |
| 255 | def _document_nested_structure(self, model, doc): |
| 256 | """Recursively documents parameters in nested structures""" |
| 257 | member_type_name = getattr(model, 'type_name', None) |
| 258 | if member_type_name == 'structure': |
| 259 | required_members = model.metadata.get('required', []) |
| 260 | for member_name, member_shape in model.members.items(): |
| 261 | is_required = member_name in required_members |
| 262 | self._doc_member( |
| 263 | doc, |
| 264 | member_name, |
| 265 | member_shape, |
| 266 | stack=[model.name], |
| 267 | required=is_required, |
| 268 | ) |
| 269 | elif member_type_name == 'list': |
| 270 | self._doc_member( |
| 271 | doc, '', model.member, stack=[model.name], required=False |
| 272 | ) |
| 273 | elif member_type_name == 'map': |
| 274 | key_shape = model.key |
| 275 | key_name = key_shape.serialization.get('name', 'key') |
| 276 | self._doc_member( |
| 277 | doc, key_name, key_shape, stack=[model.name], required=False |
| 278 | ) |
| 279 | value_shape = model.value |
| 280 | value_name = value_shape.serialization.get('name', 'value') |
| 281 | self._doc_member( |
| 282 | doc, |
| 283 | value_name, |
| 284 | value_shape, |
| 285 | stack=[model.name], |
| 286 | required=False, |
| 287 | ) |
| 288 | |
| 289 | def _doc_member( |
| 290 | self, doc, member_name, member_shape, stack, required=False |