Singleton
---------

The Data model type resource called ``data/Datamodel`` has an attribute
``singleton`` that can take any of 3 values:

* None (default):  no singleton constraint
* ``system``: a system singleton that only allows one instance throughout the system
* ``hierarchy``: a hierarchy singleton that only allows one instance every hierarchy


For example, the snippet below shows a simple ``data/Datamodel`` instance
called ``LoginBanner`` that can itself only have one instance per hierarchy:

::

    "data": {
        "doc": "doc",
        "Meta": {
            "operations": [
                "add",
                "clone",
                "export",
                "export_bulkload_template",
                "get",
                "help",
                "move",
                "list",
                "migration",
                "transform",
                "remove",
                "tag",
                "tag_version",
                "update",
                "field_display_policy"
            ],
            "summary_attrs": [
                "login_banner"
            ],
            "singleton": "hierarchy",
            "attr_props": [
                {
                    "title": "Login Banner",
                    "required": true,
                    "type": "string",
                    "displayable": true,
                    "name": "login_banner"
                }
            ]
        },
        "name": "LoginBanner"
    }

.. |VOSS-4-UC| replace:: VOSS-4-UC
.. |Unified CM| replace:: Unified CM