.. index:: registry_protocol
.. _registry_protocol/0:

.. rst-class:: right

**protocol**

``registry_protocol``
=====================

Registry specification protocol. Objects implementing this protocol should be named after the pack with a ``_registry`` suffix and saved in a file with the same name as the object.

| **Author:** Paulo Moura
| **Version:** 0:12:0
| **Date:** 2022-06-28

| **Compilation flags:**
|    ``static``


| **Dependencies:**
|   (none)


| **Remarks:**
|    (none)

| **Inherited public predicates:**
|    (none)

.. contents::
   :local:
   :backlinks: top

Public predicates
-----------------

.. index:: name/1
.. _registry_protocol/0::name/1:

``name/1``
^^^^^^^^^^

Registry name. Preferably a valid unquoted atom.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``name(Name)``
| **Mode and number of proofs:**
|    ``name(?atom)`` - ``zero_or_one``


------------

.. index:: description/1
.. _registry_protocol/0::description/1:

``description/1``
^^^^^^^^^^^^^^^^^

Registry one line description.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``description(Description)``
| **Mode and number of proofs:**
|    ``description(?atom)`` - ``zero_or_one``


------------

.. index:: home/1
.. _registry_protocol/0::home/1:

``home/1``
^^^^^^^^^^

Registry home HTTPS or file URL.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``home(Home)``
| **Mode and number of proofs:**
|    ``home(?atom)`` - ``zero_or_one``


------------

.. index:: clone/1
.. _registry_protocol/0::clone/1:

``clone/1``
^^^^^^^^^^^

Registry git clone HTTPS URL (must end with the ``.git`` extension). Git repos should have the same name as the registry.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``clone(URL)``
| **Mode and number of proofs:**
|    ``clone(?atom)`` - ``zero_or_one``


------------

.. index:: archive/1
.. _registry_protocol/0::archive/1:

``archive/1``
^^^^^^^^^^^^^

Registry archive download HTTPS URL.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``archive(URL)``
| **Mode and number of proofs:**
|    ``archive(?atom)`` - ``zero_or_one``


------------

.. index:: note/2
.. _registry_protocol/0::note/2:

``note/2``
^^^^^^^^^^

Table of notes per action.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``note(Action,Note)``
| **Mode and number of proofs:**
|    ``note(?atom,-atom)`` - ``zero_or_more``

| **Remarks:**

    - Action: Possible values are ``add``, ``update``, and ``delete``. When unbound, the note apply to all actions.
    - Note: Note to print when performing an action on a registry.


------------

Protected predicates
--------------------

(none)

Private predicates
------------------

(none)

Operators
---------

(none)

