Node Vendor Passthru Methods
============================

.. csv-table::
    :header: "Method", "Description"
    :widths: 25, 120

    "``create_subscription``", "Create a new subscription on the Node"
    "``delete_subscription``", "Delete a subscription of a Node"
    "``get_all_subscriptions``", "List all subscriptions of a Node"
    "``get_subscription``", "Show a single subscription of a Node"
    "``eject_vmedia``", "Eject attached virtual media from a Node"


Create Subscription
~~~~~~~~~~~~~~~~~~~

.. csv-table:: Request
    :header: "Name", "In", "Type", "Description"
    :widths: 25, 15, 15, 90

    "Destination", "body", "string", "The URI of the destination Event Service"
    "EventTypes (optional)", "body", "array",  "List of types of events that shall be sent to the destination"
    "Context (optional)", "body", "string", "A client-supplied string that is stored with the event destination
    subscription"
    "Protocol (optional)", "body", "string", "The protocol type that the event will use for sending
    the event to the destination"

Example JSON to use in ``create_subscription``::

    {
        "Destination": "https://someurl",
        "EventTypes": ["Alert"],
        "Context": "MyProtocol",
        "args": "Redfish"
    }


Delete Subscription
~~~~~~~~~~~~~~~~~~~

.. csv-table:: Request
    :header: "Name", "In", "Type", "Description"
    :widths: 21, 21, 21, 37

    "id", "body", "string", "The Id of the subscription generated by the BMC "


Example JSON to use in ``delete_subscription``::

    {
        "id": "<id of the subscription generated by the BMC>"
    }


Get Subscription
~~~~~~~~~~~~~~~~

.. csv-table:: Request
    :header: "Name", "In", "Type", "Description"
    :widths: 21, 21, 21, 37

    "id", "body", "string", "The Id of the subscription generated by the BMC "


Example JSON to use in ``get_subscription``::

    {
        "id": "<id of the subscription generated by the BMC>"
    }


Get All Subscriptions
~~~~~~~~~~~~~~~~~~~~~

The ``get_all_subscriptions`` doesn't require any parameters.


Eject Virtual Media
~~~~~~~~~~~~~~~~~~~

.. csv-table:: Request
    :header: "Name", "In", "Type", "Description"
    :widths: 25, 15, 15, 90

    "boot_device (optional)", "body", "string", "Type of the device to eject (all devices by default)"

