'Get all the attributes from the complex parameter model that should
be exposed as command line arguments.
:param class model: The parameter model class.
:param str path: Request parameter namespace.'

def _get_attrs(self, model, path):

    for (attr, details) in model._attribute_map.items():
        conditions = []
        conditions.append(model._validation.get(attr, {}).get('readonly'))
        conditions.append(model._validation.get(attr, {}).get('constant'))
        conditions.append(('.'.join([path, attr]) in self.ignore))
        conditions.append((details['type'][0] in ['{']))
        if (not any(conditions)):
            (yield (attr, details))
