Package io.vertx.ext.consul

## Interface Watch<T>

-     public interface Watch<T>

  Watches are a way of specifying a view of data (e.g. list of nodes, KV pairs, health checks) which is monitored for updates. When an update is detected, an `Handler` with `WatchResult` is invoked. All errors, except `java.util.concurrent.TimeoutException`, will be handled, with resubscribing with a progressive delay. All timeout errors will be ignored, with resubscribing without any delay. As an example, you could watch the status of health checks and notify when a check is critical.
  Author:
    Ruslan Sennov

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Watch<EventList>` | `events​(String event, Vertx vertx)` | Creates `Watch` to monitoring the custom user events.
    `static Watch<EventList>` | `events​(String event, Vertx vertx, ConsulClientOptions options)` | Creates `Watch` to monitoring the custom user events.
    `static Watch<KeyValue>` | `key​(String key, Vertx vertx)` | Creates `Watch` to monitoring a specific key in the KV store.
    `static Watch<KeyValue>` | `key​(String key, Vertx vertx, ConsulClientOptions options)` | Creates `Watch` to monitoring a specific key in the KV store.
    `static Watch<KeyValueList>` | `keyPrefix​(String keyPrefix, Vertx vertx)` | Creates `Watch` to monitoring a prefix of keys in the KV store.
    `static Watch<KeyValueList>` | `keyPrefix​(String keyPrefix, Vertx vertx, ConsulClientOptions options)` | Creates `Watch` to monitoring a prefix of keys in the KV store.
    `static Watch<CheckList>` | `nodeHealthChecks​(String node, CheckQueryOptions opt, Vertx vertx, ConsulClientOptions options)` | Creates `Watch` to monitoring the health checks of the nodes.
    `static Watch<NodeList>` | `nodes​(Vertx vertx)` | Creates `Watch` to monitoring the list of available nodes.
    `static Watch<NodeList>` | `nodes​(Vertx vertx, ConsulClientOptions options)` | Creates `Watch` to monitoring the list of available nodes.
    `static Watch<ServiceEntryList>` | `service​(String service, Vertx vertx)` | Creates `Watch` to monitoring the nodes providing the service.
    `static Watch<ServiceEntryList>` | `service​(String service, Vertx vertx, ConsulClientOptions options)` | Creates `Watch` to monitoring the nodes providing the service.
    `static Watch<CheckList>` | `serviceHealthChecks​(String service, CheckQueryOptions checkQueryOptions, Vertx vertx, ConsulClientOptions options)` | Creates `Watch` to monitoring the health checks of the nodes.
    `static Watch<ServiceList>` | `services​(Vertx vertx)` | Creates `Watch` to monitoring the list of available services.
    `static Watch<ServiceList>` | `services​(Vertx vertx, ConsulClientOptions options)` | Creates `Watch` to monitoring the list of available services.
    `Watch<T>` | `setHandler​(Handler<WatchResult<T>> handler)` | Set the result handler.
    `Watch<T>` | `start()` | Start this `Watch`
    `void` | `stop()` | Stop the watch and release its resources

- - ### Method Detail

    - #### key

          static Watch<KeyValue> key​(String key,
                                     Vertx vertx)

      Creates `Watch` to monitoring a specific key in the KV store. The underlying Consul client will be created with default options. This maps to the /v1/kv/ API internally.
      Parameters:
        `key` - the key
        `vertx` - the `Vertx` instance
      Returns:
        the `Watch` instance

    - #### key

          static Watch<KeyValue> key​(String key,
                                     Vertx vertx,
                                     ConsulClientOptions options)

      Creates `Watch` to monitoring a specific key in the KV store. This maps to the /v1/kv/ API internally.
      Parameters:
        `key` - the key
        `vertx` - the `Vertx` instance
        `options` - the options to create underlying Consul client
      Returns:
        the `Watch` instance

    - #### keyPrefix

          static Watch<KeyValueList> keyPrefix​(String keyPrefix,
                                               Vertx vertx)

      Creates `Watch` to monitoring a prefix of keys in the KV store. The underlying Consul client will be created with default options. This maps to the /v1/kv/ API internally.
      Parameters:
        `keyPrefix` - the key
        `vertx` - the `Vertx` instance
      Returns:
        the `Watch` instance

    - #### keyPrefix

          static Watch<KeyValueList> keyPrefix​(String keyPrefix,
                                               Vertx vertx,
                                               ConsulClientOptions options)

      Creates `Watch` to monitoring a prefix of keys in the KV store. This maps to the /v1/kv/ API internally.
      Parameters:
        `keyPrefix` - the key
        `vertx` - the `Vertx` instance
        `options` - the options to create underlying Consul client
      Returns:
        the `Watch` instance

    - #### services

          static Watch<ServiceList> services​(Vertx vertx)

      Creates `Watch` to monitoring the list of available services. The underlying Consul client will be created with default options. This maps to the /v1/catalog/services API internally.
      Parameters:
        `vertx` - the `Vertx` instance
      Returns:
        the `Watch` instance

    - #### services

          static Watch<ServiceList> services​(Vertx vertx,
                                             ConsulClientOptions options)

      Creates `Watch` to monitoring the list of available services. This maps to the /v1/catalog/services API internally.
      Parameters:
        `vertx` - the `Vertx` instance
        `options` - the options to create underlying Consul client
      Returns:
        the `Watch` instance

    - #### service

          static Watch<ServiceEntryList> service​(String service,
                                                 Vertx vertx)

      Creates `Watch` to monitoring the nodes providing the service. Nodes will be sorted by distance from the consul agent. The underlying Consul client will be created with default options. This maps to the /v1/health/service/<service> API internally.
      Parameters:
        `service` - the service name
        `vertx` - the `Vertx` instance
      Returns:
        the `Watch` instance

    - #### service

          static Watch<ServiceEntryList> service​(String service,
                                                 Vertx vertx,
                                                 ConsulClientOptions options)

      Creates `Watch` to monitoring the nodes providing the service. Nodes will be sorted by distance from the consul agent. This maps to the /v1/health/service/<service> API internally.
      Parameters:
        `service` - the service name
        `vertx` - the `Vertx` instance
        `options` - the options to create underlying Consul client
      Returns:
        the `Watch` instance

    - #### events

          static Watch<EventList> events​(String event,
                                         Vertx vertx)

      Creates `Watch` to monitoring the custom user events. The underlying Consul client will be created with default options. This maps to the /v1/event/list API internally.
      Parameters:
        `event` - the event name
        `vertx` - the `Vertx` instance
      Returns:
        the `Watch` instance

    - #### events

          static Watch<EventList> events​(String event,
                                         Vertx vertx,
                                         ConsulClientOptions options)

      Creates `Watch` to monitoring the custom user events. This maps to the /v1/event/list API internally.
      Parameters:
        `event` - the event name
        `vertx` - the `Vertx` instance
        `options` - the options to create underlying Consul client
      Returns:
        the `Watch` instance

    - #### nodes

          static Watch<NodeList> nodes​(Vertx vertx)

      Creates `Watch` to monitoring the list of available nodes. The underlying Consul client will be created with default options. This maps to the /v1/catalog/nodes API internally.
      Parameters:
        `vertx` - the `Vertx` instance
      Returns:
        the `Watch` instance

    - #### nodes

          static Watch<NodeList> nodes​(Vertx vertx,
                                       ConsulClientOptions options)

      Creates `Watch` to monitoring the list of available nodes. This maps to the /v1/catalog/nodes API internally.
      Parameters:
        `vertx` - the `Vertx` instance
        `options` - the options to create underlying Consul client
      Returns:
        the `Watch` instance

    - #### nodeHealthChecks

          static Watch<CheckList> nodeHealthChecks​(String node,
                                                   CheckQueryOptions opt,
                                                   Vertx vertx,
                                                   ConsulClientOptions options)

      Creates `Watch` to monitoring the health checks of the nodes.
      Parameters:
        `node` - node name or ID
        `opt` - options like namespace, datacenter and filter
        `vertx` - the `Vertx` instance
        `options` - the options to create underlying Consul client
      Returns:
        the `Watch` instance

    - #### serviceHealthChecks

          static Watch<CheckList> serviceHealthChecks​(String service,
                                                      CheckQueryOptions checkQueryOptions,
                                                      Vertx vertx,
                                                      ConsulClientOptions options)

      Creates `Watch` to monitoring the health checks of the nodes.
      Parameters:
        `service` - the service name
        `checkQueryOptions` - options used to request checks
        `vertx` - the `Vertx` instance
        `options` - the options to create underlying Consul client
      Returns:
        the `Watch` instance

    - #### setHandler

          Watch<T> setHandler​(Handler<WatchResult<T>> handler)

      Set the result handler. As data is changed, the handler will be called with the result.
      Parameters:
        `handler` - the result handler
      Returns:
        reference to this, for fluency

    - #### start

          Watch<T> start()

      Start this `Watch`
      Returns:
        reference to this, for fluency

    - #### stop

          void stop()

      Stop the watch and release its resources