Add a subscription with a given short_name for a given uri

This command can be used to create subscriptions to receive new pieces
of vehicle data on the stream channel on a periodic basis.  By default,
subscriptions are buffered and have a 5 second interval:

\b
    $ wva subscriptions add speed vehicle/data/VehicleSpeed
    $ wva subscriptions show speed
    {'buffer': 'queue', 'interval': 5, 'uri': 'vehicle/data/VehicleSpeed'}

These parameters can be modified by the use of optional arguments:

    $ wva subscriptions add rpm vehicle/data/EngineSpeed --interval 1 --buffer discard
    $ wva subscriptions show rpm
    {'buffer': 'discard', 'interval': 1, 'uri': 'vehicle/data/EngineSpeed'}

To view the data coming in as a result of these subscriptions, one can use
either 'wva subscriptions listen' or 'wva subscriptions graph <name>'.

def add(ctx, short_name, uri, interval, buffer):
    """Add a subscription with a given short_name for a given uri

This command can be used to create subscriptions to receive new pieces
of vehicle data on the stream channel on a periodic basis.  By default,
subscriptions are buffered and have a 5 second interval:

\b
    $ wva subscriptions add speed vehicle/data/VehicleSpeed
    $ wva subscriptions show speed
    {'buffer': 'queue', 'interval': 5, 'uri': 'vehicle/data/VehicleSpeed'}

These parameters can be modified by the use of optional arguments:

    $ wva subscriptions add rpm vehicle/data/EngineSpeed --interval 1 --buffer discard
    $ wva subscriptions show rpm
    {'buffer': 'discard', 'interval': 1, 'uri': 'vehicle/data/EngineSpeed'}

To view the data coming in as a result of these subscriptions, one can use
either 'wva subscriptions listen' or 'wva subscriptions graph <name>'.
"""
    wva = get_wva(ctx)
    subscription = wva.get_subscription(short_name)
    subscription.create(uri, buffer, interval)