code: def get_definition(self):
          '''Returns the definition of the complex item'''
  
          serialized = super(ComplexSchemaItem, self).serialize()
          # Adjust entries in the serialization
          del serialized['definition_name']
          serialized['title'] = self.definition_name
  
          properties = {}
          required_attr_names = []
  
          for attr_name in self._attributes:
              attr = getattr(self, attr_name)
              if attr and isinstance(attr, BaseSchemaItem):
                  # Remove the attribute entry added by the base serialization
                  del serialized[attr_name]
                  properties[attr_name] = attr.serialize()
                  properties[attr_name]['type'] = attr.__type__
                  if attr.required:
                      required_attr_names.append(attr_name)
          if serialized.get('properties') is None:
              serialized['properties'] = {}
          serialized['properties'].update(properties)
  
          # Assign the required array
          if required_attr_names:
              serialized['required'] = required_attr_names
          return serializef get_definition(self):
          '''Returns the definition of the complex item'''
  
          serialized = super(ComplexSchemaItem, self).serialize()
          # Adjust entries in the serialization
          del serialized['definition_name']
          serialized['title'] = self.definition_name
  
          properties = {}
          required_attr_names = []
  
          for attr_name in self._attributes:
              attr = getattr(self, attr_name)
              if attr and isinstance(attr, BaseSchemaItem):
                  # Remove the attribute entry added by the base serialization
                  del serialized[attr_name]
                  properties[attr_name] = attr.serialize()
                  properties[attr_name]['type'] = attr.__type__
                  if attr.required:
                      required_attr_names.append(attr_name)
          if serialized.get('properties') is None:
              serialized['properties'] = {}
          serialized['properties'].update(properties)
  
          # Assign the required array
          if required_attr_names:
              serialized['required'] = required_attr_names
          return serialized
docs: Returns the definition of the complex item