java.lang.Object
org.odpi.openmetadata.frameworks.openmetadata.connectorcontext.ConnectorContextClientBase
org.odpi.openmetadata.frameworks.openmetadata.connectorcontext.ProductManagerClient

public class ProductManagerClient extends ConnectorContextClientBase
ProductManagerClient provides the compound operations of a product manager: creating a digital product together with the elements that surround it, and adding subscription types to a product. A subscription type is the notification type that drives the subscribers' notifications, registered with the subscription manager, plus the governance action process that a subscriber runs to take out a subscription of that type. The individual relationships of a digital product are maintained through the CollectionClient.
  • Constructor Details

    • ProductManagerClient

      public ProductManagerClient(ConnectorContextBase parentContext, String localServerName, String localServiceName, String connectorUserId, String connectorGUID, String externalSourceGUID, String externalSourceName, OpenMetadataClient openMetadataClient, AuditLog auditLog, int maxPageSize)
      Constructor for connector context client.
      Parameters:
      parentContext - connector's context
      localServerName - local server where this client is running - called the local server
      localServiceName - name of this service
      connectorUserId - userId to use when issuing open metadata requests
      connectorGUID - unique identifier of the connector element that describes this connector in the open metadata store(s)
      externalSourceGUID - unique identifier of the software server capability for the source of metadata
      externalSourceName - unique name of the software server capability for the source of metadata
      openMetadataClient - client to access the open metadata store
      auditLog - logging destination
      maxPageSize - max number of elements that can be returned on a query
  • Method Details

    • createDigitalProduct

      public String createDigitalProduct(NewElementOptions newElementOptions, Map<String,ClassificationProperties> initialClassifications, DigitalProductProperties properties, RelationshipProperties parentRelationshipProperties, String productManagerGUID, String productCommunityGUID, List<String> collectionGUIDs, List<String> questionGUIDs, String productAssetGUID, List<String> governanceDefinitionGUIDs, String dataSpecGUID) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Create a new digital product and link it to the elements that surround it. The product itself is created as a collection, in the same way as createCollection; the remaining parameters name existing elements that are then linked to the new product. Each of them is optional.
      Parameters:
      newElementOptions - details of the element to create
      initialClassifications - map of classification names to classification properties to include in the entity creation request
      properties - properties for the new product.
      parentRelationshipProperties - properties to include in parent relationship
      productManagerGUID - unique identifier of the actor role that manages the product; linked as the product's owner (AssignmentScope) and, if a community is supplied, as that community's discussion leader
      productCommunityGUID - unique identifier of the community that discusses the product; the community is scoped by the product (ScopedBy) and its note log receives the product's subscription notifications
      collectionGUIDs - unique identifiers of the collections that the product is a member of - typically the product catalog folders and digital product families it belongs to
      questionGUIDs - unique identifiers of the glossary terms that describe the questions the product answers (SupplementaryProperties)
      productAssetGUID - unique identifier of the asset that holds the product's data; it becomes a member of the product collection and is the source for its subscriptions
      governanceDefinitionGUIDs - unique identifiers of the governance definitions that the product is governed by, such as the license type granted to subscribers
      dataSpecGUID - unique identifier of the data specification collection that describes the product's data (DataDescription)
      Returns:
      unique identifier of the newly created product
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      PropertyServerException - there is a problem retrieving information from the property server(s).
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • createOneTimeSubscription

      public String createOneTimeSubscription(String digitalProductGUID, MetadataSourceOptions metadataSourceOptions, String subscriptionManagerGUID, String identifier, String displayName, String description, String licenseTypeGUID, String serviceLevelObjectiveGUID) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Add a one-time subscription type to a product. A subscriber to this type receives a single notification, and so a single delivery of the product's data. It is typically used to evaluate a product.
      Parameters:
      digitalProductGUID - unique identifier of the product
      metadataSourceOptions - options to control access to open metadata
      subscriptionManagerGUID - unique identifier of the integration connector that notifies the subscribers; null means the Baudot Digital Product Subscription Manager from the digital products content pack
      identifier - identifier of the subscription type; null means ONE-TIME-SUBSCRIPTION
      displayName - display name of the subscription type; null means a default name
      description - description of the subscription type; null means a default description
      licenseTypeGUID - unique identifier of the license type granted to the subscriber's asset; null means the first license type that the product is governed by
      serviceLevelObjectiveGUID - unique identifier of the service level objective offered by the subscription; null means the first service level objective that the product is governed by
      Returns:
      unique identifier of the governance action process that creates a subscription of this type
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      PropertyServerException - there is a problem retrieving information from the property server(s).
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • createPeriodicSubscription

      public String createPeriodicSubscription(String digitalProductGUID, MetadataSourceOptions metadataSourceOptions, String subscriptionManagerGUID, String identifier, String displayName, String description, String licenseTypeGUID, String serviceLevelObjectiveGUID, long notificationInterval) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Add a periodic subscription type to a product. A subscriber to this type receives a notification, and so a delivery of the product's data, at regular intervals.
      Parameters:
      digitalProductGUID - unique identifier of the product
      metadataSourceOptions - options to control access to open metadata
      subscriptionManagerGUID - unique identifier of the integration connector that notifies the subscribers; null means the Baudot Digital Product Subscription Manager from the digital products content pack
      identifier - identifier of the subscription type; null means PERIODIC-SUBSCRIPTION. A product that offers more than one periodic subscription type needs a distinct identifier for each
      displayName - display name of the subscription type; null means a default name
      description - description of the subscription type; null means a default description
      licenseTypeGUID - unique identifier of the license type granted to the subscriber's asset; null means the first license type that the product is governed by
      serviceLevelObjectiveGUID - unique identifier of the service level objective offered by the subscription; null means the first service level objective that the product is governed by
      notificationInterval - time between notifications in minutes
      Returns:
      unique identifier of the governance action process that creates a subscription of this type
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      PropertyServerException - there is a problem retrieving information from the property server(s).
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • createOngoingUpdateSubscription

      public String createOngoingUpdateSubscription(String digitalProductGUID, MetadataSourceOptions metadataSourceOptions, String subscriptionManagerGUID, String identifier, String displayName, String description, String licenseTypeGUID, String serviceLevelObjectiveGUID, List<String> monitoredResourceGUIDs, long minimumNotificationInterval) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Add an ongoing update subscription type to a product. A subscriber to this type receives a notification, and so a delivery of the product's data, whenever one of the monitored resources changes - but no more often than the minimum notification interval.
      Parameters:
      digitalProductGUID - unique identifier of the product
      metadataSourceOptions - options to control access to open metadata
      subscriptionManagerGUID - unique identifier of the integration connector that notifies the subscribers; null means the Baudot Digital Product Subscription Manager from the digital products content pack
      identifier - identifier of the subscription type; null means ONGOING-UPDATE-SUBSCRIPTION
      displayName - display name of the subscription type; null means a default name
      description - description of the subscription type; null means a default description
      licenseTypeGUID - unique identifier of the license type granted to the subscriber's asset; null means the first license type that the product is governed by
      serviceLevelObjectiveGUID - unique identifier of the service level objective offered by the subscription; null means the first service level objective that the product is governed by
      monitoredResourceGUIDs - unique identifiers of the metadata elements whose changes trigger a notification - typically the product's asset
      minimumNotificationInterval - minimum time between notifications in minutes; 0 means a notification for every change
      Returns:
      unique identifier of the governance action process that creates a subscription of this type
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      PropertyServerException - there is a problem retrieving information from the property server(s).
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.