Interface MultiProductLicenseDetails

All Superinterfaces:
BaseLicenseDetails

@PublicApi public interface MultiProductLicenseDetails extends BaseLicenseDetails
Provides access to the one or more individual products that may appear in a single license. At the most basic level, licenses are collections of products. Licenses and products across Atlassian vary considerably with respect to the number of licenses that any given product may accept (1-many), but also in terms of the number of products that may be granted within license (also 1-many). Heterogeneous mixes of single-product licenses together with multi-product licenses (e.g. Enterprise Licensing Agreements, ELAs) are also possible within a single product.

This interface partitions the products granted by a license into 2 sets:

  • products that are considered by the host product as sub-products, and/or products that are intrinsic or specific to this host product. For example, in JIRA 7.0, JIRA Service Desk, JIRA Software, and JIRA Core are sub-products.
  • everything else. This typically includes host product and other product add-ons, but also licenses for other top-level Atlassian products, e.g. HipChat, FeCru, etc.
The former are returned by getProductLicenses(), the latter by getEmbeddedLicenses(). These collections are expected to be mutually exclusive (getEmbeddedLicenses().retainAll(getEmbeddedLicenses()) equals the empty set), and the union of these Sets (getEmbeddedLicenses().addAll(getEmbeddedLicenses())) is expected to represent all products found in the source license.
  • Method Details

    • getProductLicenses

      @Nonnull Set<ProductLicense> getProductLicenses()
      Returns ProductLicenses for the host product license (if relevant) as well as all products in this license that are direct sub-products of the current host product/platform.

      By convention, starting with JIRA 7.0, these properties are expected to conform to the naming convention "[host-product-namespace].product.[sub-product-namespace].[property-name]", eg: jira.product.jira-software.NumberOfUsers.

      Host products that do not have sub-products would return only their host product license.

      Returns:
      all products in this license that are specific to the current host product/platform
      See Also:
    • getEmbeddedLicenses

      @Nonnull Set<ProductLicense> getEmbeddedLicenses()
      Returns:
      ProductLicenses for all products in this license that are not for this host product, and/or are not considered to be sub-products by the host product/platform.
      See Also:
    • getProductLicense

      @Nullable ProductLicense getProductLicense(@Nonnull String productKey)
      Returns the individual product or embedded license with the given product key.
      Parameters:
      productKey - the product key.
      Returns:
      the individual product or embedded license with the given product key, or null if that product does not exist in this license.