<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_resource_object_doc_lines() -> List[str]: """Generate documentation lines for all collected resource objects. As API documentation is generated we keep a running list of objects used in request parameters and responses. This section will generate documentation for each object and provide an inline reference in the API documentation. :returns: A list of lines required to generate the documentation. """

    # First loop through  all resources and make sure to add any properties that
    # are objects and not already in `ALL_RESOURCES`.  We iterate over a copy
    # since we will be modifying the dict during the loop.
    for resource_name, a_type in ALL_RESOURCES.copy().items():
        for prop_a_type in a_type.properties.values():
            if issubclass(prop_a_type, Object):
                resource_name = prop_a_type.title
                if resource_name is None:
                    class_name = prop_a_type.__name__
                    resource_name = class_name_to_resource_name(class_name)
                ALL_RESOURCES[resource_name] = prop_a_type
            elif (issubclass(prop_a_type, Array) and
                    prop_a_type.items is not None and
                    not isinstance(prop_a_type.items, list) and
                    issubclass(prop_a_type.items, Object)):
                # This means the type is an array of objects, so we want to
                # collect the object as a resource we can document later.
                resource_name = prop_a_type.items.title
                if resource_name is None:
                    class_name = prop_a_type.items.__name__
                    resource_name = class_name_to_resource_name(class_name)
                ALL_RESOURCES[resource_name] = prop_a_type.items

    # If we don't have any resources to document, just return.
    if not ALL_RESOURCES:
        return []

    lines = ['Resource Objects', '----------------']
    for resource_name in sorted(ALL_RESOURCES.keys()):
        a_type = ALL_RESOURCES[resource_name]
        # First add a reference to the resource
        resource_ref = '_resource-{}'.format(
            '-'.join(resource_name.lower().split(' ')))
        lines.extend(['.. {}:'.format(resource_ref), ''])
        # Add resource name heading
        lines.extend([resource_name, '#' * len(resource_name)])
        # Add resource description
        lines.extend([a_type.description, ''])
        # Only document attributes if it has properties defined.
        if a_type.properties:
            # Add attributes documentation.
            lines.extend(['Attributes', '**********'])
            for prop in a_type.properties:
                prop_a_type = a_type.properties[prop]
                description = a_type.properties[prop].description.strip()
                # Add any object reference if the property is an object or
                # an array of objects.
                obj_ref = ''
                if issubclass(prop_a_type, Object):
                    obj_ref = get_object_reference(prop_a_type)
                elif (issubclass(prop_a_type, Array) and
                        prop_a_type.items is not None and
                        not isinstance(prop_a_type.items, list) and
                        issubclass(prop_a_type.items, Object)):
                    # This means the type is an array of objects.
                    obj_ref = get_object_reference(prop_a_type.items)
                elif (issubclass(prop_a_type, Array) and
                        prop_a_type.items is not None):
                    description += get_array_items_description(prop_a_type)
                native_type = a_type.properties[prop].native_type.__name__
                if prop in a_type.required:
                    description = '**Required**.  ' + description
                lines.append('* **{}** (*{}*) - {}{}'.format(
                    prop, native_type, description, obj_ref).strip())
            lines.append('')
        # Add example of object.
        lines.extend(['Example', '*******'])
        example = a_type.get_example()
        pretty_json = json.dumps(example, separators=(',', ': '), indent=4,
                                 sort_keys=True)
        pretty_json_lines = prefix_lines(pretty_json, '   ')
        lines.extend(['.. code-block:: json', ''])
        lines.extend(pretty_json_lines)
    return lines