################### User Facing Objects ################### The |FRAMEWORK_NAME| utilizes several objects to provide consistency during execution. This section will describe the objects you will interact with as a developer writing new |STEP_NAME_PLURAL|. .. @TODO - Add links for the objects that are not part of the low_code project. **Reference Docs:** :py:mod:`ResultContainer `, :py:mod:`Collection `, :py:mod:`Dynamic App `, :py:mod:`Credential `, :py:mod:`Device `. The following UML diagram shows how the different objects and how they interact with each other: .. image:: ../diagrams/user_facing_objects.png The |CONTEXT_SAVER_NAME_BOLD| object is the standard data interface. During the collection, the |FRAMEWORK_NAME| uses this object to have a reference and move information between the |STEP_NAME_PLURAL| and |STEP_NAME_PLURAL|. The **Collection** object is a representation of a collection in a Dynamic Application. The |FRAMEWORK_NAME| gets needed information from the collections, where the most important value is the snippet argument where the different |STEP_NAME_PLURAL| are defined, these are used to know how the data should be parsed, which of those the user wants, etc. The **Dynamic App** object is a representation of a Dynamic Application with needed information that is used during the collection, after complete the collection, the object also will contain the results, which are going to be used to store data and be able to show to the user in the UI. The **Credential** object represents a collection credential that is used at collection time, to retrieve data, accessing the remote device by specified protocol. The **Device** object is a representation of an SL1 device being used in a Snippet Dynamic Application. This object only has the needed attributes for collection in a snippet context.