Package org.apache.ignite.services

## Interface ServiceDescriptor

- All Superinterfaces:
    `Serializable`

      public interface ServiceDescriptor
      extends Serializable

  Service deployment descriptor. Contains all service deployment configuration, and also deployment topology snapshot as well as origin node ID.

  Service descriptors can be retrieved by calling `IgniteServices.serviceDescriptors()` method.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `<K> K` | `affinityKey()` | Gets affinity key used for key-to-node affinity calculation.
    `@Nullable String` | `cacheName()` | Gets cache name used for key-to-node affinity calculation.
    `int` | `maxPerNodeCount()` | Gets maximum allowed number of deployed services on each node, `0` for unlimited.
    `String` | `name()` | Gets service name.
    `UUID` | `originNodeId()` | Gets ID of grid node that initiated the service deployment.
    `Class<? extends Service>` | `serviceClass()` | Gets service class.
    `Map<UUID,​Integer>` | `topologySnapshot()` | Gets service deployment topology snapshot.
    `int` | `totalCount()` | Gets maximum allowed total number of deployed services in the grid, `0` for unlimited.

- - ### Method Detail

    - #### name

          String name()

      Gets service name.
      Returns:
        Service name.

    - #### serviceClass

          Class<? extends Service> serviceClass()

      Gets service class.
      Returns:
        Service class.

    - #### totalCount

          int totalCount()

      Gets maximum allowed total number of deployed services in the grid, `0` for unlimited.
      Returns:
        Maximum allowed total number of deployed services in the grid, `0` for unlimited.

    - #### maxPerNodeCount

          int maxPerNodeCount()

      Gets maximum allowed number of deployed services on each node, `0` for unlimited.
      Returns:
        Maximum allowed total number of deployed services on each node, `0` for unlimited.

    - #### cacheName

          @Nullable
          @Nullable String cacheName()

      Gets cache name used for key-to-node affinity calculation. This parameter is optional and is set only when key-affinity service was deployed.
      Returns:
        Cache name, possibly `null`.

    - #### affinityKey

          @Nullable
          <K> K affinityKey()

      Gets affinity key used for key-to-node affinity calculation. This parameter is optional and is set only when key-affinity service was deployed.
      Type Parameters:
        `K` - Affinity key type.
      Returns:
        Affinity key, possibly `null`.

    - #### originNodeId

          UUID originNodeId()

      Gets ID of grid node that initiated the service deployment.
      Returns:
        ID of grid node that initiated the service deployment.

    - #### topologySnapshot

          Map<UUID,​Integer> topologySnapshot()

      Gets service deployment topology snapshot. Service topology snapshot is represented by number of service instances deployed on a node mapped to node ID.
      Returns:
        Map of number of service instances per node ID.