Class OpenMetadataAPIGenericHandler<B>

java.lang.Object
org.odpi.openmetadata.commonservices.generichandlers.OpenMetadataAPIRootHandler<B>
org.odpi.openmetadata.commonservices.generichandlers.OpenMetadataAPIGenericHandler<B>
Type Parameters:
B - bean class
Direct Known Subclasses:
ContactDetailsHandler, ContributionRecordHandler, DataFieldHandler, EngineActionHandler, GovernanceActionProcessStepHandler, GovernanceActionTypeHandler, GovernanceZoneHandler, InformalTagHandler, LikeHandler, OpenMetadataAPITemplateHandler, OperatingPlatformHandler, PortHandler, RatingHandler, RelatedAssetHandler, SearchKeywordHandler, SubjectAreaHandler, SurveyReportHandler

public class OpenMetadataAPIGenericHandler<B> extends OpenMetadataAPIRootHandler<B>
OpenMetadataAPIGenericHandler manages the exchange of Open Metadata API Bean content with the repository services (via the repository handler).
  • Constructor Details

    • OpenMetadataAPIGenericHandler

      public OpenMetadataAPIGenericHandler(OpenMetadataAPIGenericConverter<B> converter, Class<B> beanClass, String serviceName, String serverName, InvalidParameterHandler invalidParameterHandler, RepositoryHandler repositoryHandler, OMRSRepositoryHelper repositoryHelper, String localServerUserId, OpenMetadataServerSecurityVerifier securityVerifier, List<String> supportedZones, List<String> defaultZones, List<String> publishZones, AuditLog auditLog)
      Construct the handler information needed to interact with the repository services
      Parameters:
      converter - specific converter for this bean class
      beanClass - name of bean class that is represented by the generic class B
      serviceName - name of this service
      serverName - name of the local server
      invalidParameterHandler - handler for managing parameter errors
      repositoryHandler - manages calls to the repository services
      repositoryHelper - provides utilities for manipulating the repository services objects
      localServerUserId - userId for this server
      securityVerifier - open metadata security services verifier
      supportedZones - list of zones that the access service is allowed to serve Asset instances from.
      defaultZones - list of zones that the access service should set in all new Asset instances.
      publishZones - list of zones that the access service sets up in published Asset instances.
      auditLog - destination for audit log events.
  • Method Details

    • setClassificationInRepository

      public void setClassificationInRepository(String userId, String externalSourceGUID, String externalSourceName, String beanGUID, String beanGUIDParameterName, String beanGUIDTypeName, String classificationTypeGUID, String classificationTypeName, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, boolean isMergeUpdate, Map<String,Object> classificationProperties, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Add the requested classification to the matching entity in the repository.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      beanGUID - unique identifier of the entity in the repositories
      beanGUIDParameterName - parameter name that passed the beanGUID
      beanGUIDTypeName - type of bean
      classificationTypeGUID - unique identifier of classification type
      classificationTypeName - unique name of classification type
      effectiveFrom - when should relationship be effective - null means immediately
      effectiveTo - when should relationship no longer be effective - null means never
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      isMergeUpdate - should the properties be merged with the existing properties or completely over-write them
      classificationProperties - properties to save in the classification
      effectiveTime - the time that the retrieved elements must be effective for
      methodName - calling method
      Throws:
      InvalidParameterException - the classification name is null
      PropertyServerException - there is a problem with the repositories
      UserNotAuthorizedException - the user is not allowed to perform this action
    • setClassificationInRepository

      public void setClassificationInRepository(String userId, String externalSourceGUID, String externalSourceName, String beanGUID, String beanGUIDParameterName, String beanGUIDTypeName, String classificationTypeGUID, String classificationTypeName, InstanceProperties classificationProperties, boolean isMergeUpdate, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Add the requested classification to the matching entity in the repository.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      beanGUID - unique identifier of the entity in the repositories
      beanGUIDParameterName - parameter name that passed the beanGUID
      beanGUIDTypeName - type of bean
      classificationTypeGUID - unique identifier of classification type
      classificationTypeName - unique name of classification type
      classificationProperties - properties to save in the classification
      isMergeUpdate - should the properties be merged with the existing properties or completely over-write them
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - the classification name is null
      PropertyServerException - there is a problem with the repositories
      UserNotAuthorizedException - the user is not allowed to perform this action
    • setClassificationInRepository

      public void setClassificationInRepository(String userId, String externalSourceGUID, String externalSourceName, String beanGUID, String beanGUIDParameterName, String beanGUIDTypeName, String classificationTypeGUID, String classificationTypeName, InstanceProperties classificationProperties, boolean isMergeUpdate, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Add the requested classification to the matching entity in the repository.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      beanGUID - unique identifier of the entity in the repositories
      beanGUIDParameterName - parameter name that passed the beanGUID
      beanGUIDTypeName - type of bean
      classificationTypeGUID - unique identifier of classification type
      classificationTypeName - unique name of classification type
      classificationProperties - properties to save in the classification
      isMergeUpdate - should the properties be merged with the existing properties or completely over-write them
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - list of supported zones for this service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - the classification name is null
      PropertyServerException - there is a problem with the repositories
      UserNotAuthorizedException - the user is not allowed to perform this action
    • setClassificationInRepository

      public void setClassificationInRepository(String userId, String externalSourceGUID, String externalSourceName, EntityDetail beanEntity, String beanGUIDParameterName, String beanGUIDTypeName, String classificationTypeGUID, String classificationTypeName, InstanceProperties classificationProperties, boolean isMergeUpdate, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Add the requested classification to the matching entity in the repository.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      beanEntity - entity that the classification is for
      beanGUIDParameterName - parameter name that passed the beanGUID
      beanGUIDTypeName - type of bean
      classificationTypeGUID - unique identifier of classification type
      classificationTypeName - unique name of classification type
      classificationProperties - properties to save in the classification
      isMergeUpdate - should the properties be merged with the existing properties or completely over-write them
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      forLineage - the query is for lineage so ignore Memento classifications
      serviceSupportedZones - list of supported zones for this service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - the classification name is null
      PropertyServerException - there is a problem with the repositories
      UserNotAuthorizedException - the user is not allowed to perform this action
    • updateClassificationEffectivityDates

      public void updateClassificationEffectivityDates(String userId, String externalSourceGUID, String externalSourceName, String beanGUID, String beanGUIDParameterName, String beanGUIDTypeName, String classificationTypeGUID, String classificationTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveFrom, Date effectiveTo, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the effectivity dates of a specific classification attached to a metadata element. The effectivity dates control the visibility of the classification through specific APIs.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      beanGUID - unique identifier of the entity in the repositories
      beanGUIDParameterName - parameter name that passed the beanGUID
      beanGUIDTypeName - type of bean
      classificationTypeGUID - unique identifier of classification type
      classificationTypeName - unique name of classification type
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      effectiveFrom - the date when this element is active - null for active now
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      serviceSupportedZones - list of supported zones for this service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - either the unique identifier or the status are invalid in some way
      UserNotAuthorizedException - the user is not allowed to perform this action
      PropertyServerException - there is a problem with the metadata store
    • updateBeanEffectivityDates

      public void updateBeanEffectivityDates(String userId, String externalSourceGUID, String externalSourceName, String beanGUID, String beanGUIDParameterName, String beanGUIDTypeGUID, String beanGUIDTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveFrom, Date effectiveTo, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the effectivity dates of a specific entity . The effectivity dates control the visibility of the entity through specific APIs.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      beanGUID - unique identifier of the entity in the repositories
      beanGUIDParameterName - parameter name that passed the beanGUID
      beanGUIDTypeGUID - type of bean
      beanGUIDTypeName - type of bean
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveFrom - the date when this element is active - null for active now
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - either the unique identifier or the status are invalid in some way
      UserNotAuthorizedException - the user is not allowed to perform this action
      PropertyServerException - there is a problem with the metadata store
    • updateBeanEffectivityDates

      public void updateBeanEffectivityDates(String userId, String externalSourceGUID, String externalSourceName, String beanGUID, String beanGUIDParameterName, String beanGUIDTypeGUID, String beanGUIDTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveFrom, Date effectiveTo, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the effectivity dates of a specific entity . The effectivity dates control the visibility of the entity through specific APIs.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      beanGUID - unique identifier of the entity in the repositories
      beanGUIDParameterName - parameter name that passed the beanGUID
      beanGUIDTypeGUID - type of bean
      beanGUIDTypeName - type of bean
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveFrom - the date when this element is active - null for active now
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      serviceSupportedZones - list of supported zones for this service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - either the unique identifier or the status are invalid in some way
      UserNotAuthorizedException - the user is not allowed to perform this action
      PropertyServerException - there is a problem with the metadata store
    • updateRelationshipEffectivityDates

      public void updateRelationshipEffectivityDates(String userId, String externalSourceGUID, String externalSourceName, String relationshipGUID, String relationshipGUIDParameterName, String relationshipGUIDTypeName, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the effectivity dates of a specific relationship. The effectivity dates control the visibility of the relationship through specific APIs.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      relationshipGUID - unique identifier of the entity in the repositories
      relationshipGUIDParameterName - parameter name that passed the relationshipGUID
      relationshipGUIDTypeName - type of relationship
      effectiveFrom - the date when this element is active - null for active now
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - either the unique identifier or the status are invalid in some way
      UserNotAuthorizedException - the user is not allowed to perform this action
      PropertyServerException - there is a problem with the metadata store
    • updateRelationshipEffectivityDates

      public void updateRelationshipEffectivityDates(String userId, String externalSourceGUID, String externalSourceName, String relationshipGUID, String relationshipGUIDParameterName, String relationshipGUIDTypeName, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the effectivity dates of a specific relationship. The effectivity dates control the visibility of the relationship through specific APIs.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      relationshipGUID - unique identifier of the entity in the repositories
      relationshipGUIDParameterName - parameter name that passed the relationshipGUID
      relationshipGUIDTypeName - type of relationship
      effectiveFrom - the date when this element is active - null for active now
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      serviceSupportedZones - list of supported zones for this service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - either the unique identifier or the status are invalid in some way
      UserNotAuthorizedException - the user is not allowed to perform this action
      PropertyServerException - there is a problem with the metadata store
    • updateRelationshipProperties

      public void updateRelationshipProperties(String userId, String externalSourceGUID, String externalSourceName, String relationshipGUID, String relationshipGUIDParameterName, String relationshipTypeName, boolean isMergeUpdate, InstanceProperties relationshipProperties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the properties associated with a relationship. Effectivity dates are unchanged.
      Parameters:
      userId - caller's userId
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      relationshipGUID - unique identifier of the relationship to update
      relationshipGUIDParameterName - name of the parameter supplying the relationshipGUID
      relationshipTypeName - type name of relationship if known (null is ok)
      isMergeUpdate - should the supplied updateProperties be merged with existing properties (true) by replacing just the properties with matching names, or should the entire properties of the instance be replaced?
      relationshipProperties - new properties for the relationship
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - the unique identifier of the relationship is null or invalid in some way; the properties are not valid for this type of relationship
      UserNotAuthorizedException - the user is not allowed to perform this action
      PropertyServerException - there is a problem with the metadata store
    • updateRelationshipProperties

      public void updateRelationshipProperties(String userId, String externalSourceGUID, String externalSourceName, String relationshipGUID, String relationshipGUIDParameterName, String relationshipTypeName, boolean isMergeUpdate, InstanceProperties relationshipProperties, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the properties associated with a relationship. Effectivity dates are unchanged.
      Parameters:
      userId - caller's userId
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      relationshipGUID - unique identifier of the relationship to update
      relationshipGUIDParameterName - name of the parameter supplying the relationshipGUID
      relationshipTypeName - type name of relationship if known (null is ok)
      isMergeUpdate - should the supplied updateProperties be merged with existing properties (true) by replacing just the properties with matching names, or should the entire properties of the instance be replaced?
      relationshipProperties - new properties for the relationship
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      serviceSupportedZones - list of supported zones for this service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - the unique identifier of the relationship is null or invalid in some way; the properties are not valid for this type of relationship
      UserNotAuthorizedException - the user is not allowed to perform this action
      PropertyServerException - there is a problem with the metadata store
    • deleteRelationship

      public void deleteRelationship(String userId, String externalSourceGUID, String externalSourceName, String relationshipGUID, String relationshipGUIDParameterName, String relationshipTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the properties associated with a relationship. Effectivity dates are unchanged.
      Parameters:
      userId - caller's userId
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      relationshipGUID - unique identifier of the relationship to update
      relationshipGUIDParameterName - name of the parameter supplying the relationshipGUID
      relationshipTypeName - type name of relationship if known (null is ok)
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - time when the relationship is effective
      methodName - calling method
      Throws:
      InvalidParameterException - the unique identifier of the relationship is null or invalid in some way; the properties are not valid for this type of relationship
      UserNotAuthorizedException - the user is not allowed to perform this action
      PropertyServerException - there is a problem with the metadata store
    • removeClassificationFromRepository

      public void removeClassificationFromRepository(String userId, String externalSourceGUID, String externalSourceName, String beanGUID, String beanGUIDParameterName, String beanGUIDTypeName, String classificationTypeGUID, String classificationTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Remove the requested classification from the matching entity in the repository.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      beanGUID - unique identifier of the entity in the repositories
      beanGUIDParameterName - parameter name that passed the beanGUID
      beanGUIDTypeName - type of bean
      classificationTypeGUID - unique identifier of classification type
      classificationTypeName - unique name of classification type
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - the classification name is null
      PropertyServerException - there is a problem with the repositories
      UserNotAuthorizedException - the user is not allowed to perform this action
    • removeClassificationFromRepository

      public void removeClassificationFromRepository(String userId, String externalSourceGUID, String externalSourceName, String beanGUID, String beanGUIDParameterName, String beanGUIDTypeName, String classificationTypeGUID, String classificationTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Remove the requested classification from the matching entity in the repository.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      beanGUID - unique identifier of the entity in the repositories
      beanGUIDParameterName - parameter name that passed the beanGUID
      beanGUIDTypeName - type of bean
      classificationTypeGUID - unique identifier of classification type
      classificationTypeName - unique name of classification type
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - list of supported zones for this service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - the classification name is null
      PropertyServerException - there is a problem with the repositories
      UserNotAuthorizedException - the user is not allowed to update the security tags
    • getAnchorGUIDFromAnchorsClassification

      public OpenMetadataAPIGenericHandler.AnchorIdentifiers getAnchorGUIDFromAnchorsClassification(EntitySummary connectToEntity, String methodName)
      Retrieve the anchorGUID property from the Anchors classification if present. A null is returned if the Anchors classification is missing, or the property is missing from the classification or is null.
      Parameters:
      connectToEntity - entity containing the classifications
      methodName - calling method
      Returns:
      anchorGUID or null
    • validateAnchorEntity

      public EntityDetail validateAnchorEntity(String userId, String connectToGUID, String connectToGUIDParameterName, String connectToType, boolean isExplicitGetRequest, boolean isUpdate, boolean forLineage, boolean forDuplicateProcessing, List<String> suppliedSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Validates whether an operation is valid based on the type of entity it is connecting to, who the user is and whether it is a read or an update.
      Parameters:
      userId - userId of user making request.
      connectToGUID - unique id for the object to connect the attachment to.
      connectToGUIDParameterName - name of the parameter that passed the connectTo guid
      connectToType - type of the connectToElement.
      isExplicitGetRequest - Is this request an explicit get request for the asset or a find request.
      isUpdate - is this an update request?
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      suppliedSupportedZones - supported zone list from calling service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      anchor entity or null. The anchor entity is used by the caller to set the LatestChange classification
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the asset properties to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • validateAnchorEntity

      public EntityDetail validateAnchorEntity(String userId, String connectToGUID, String connectToType, EntityDetail connectToEntity, String connectToGUIDParameterName, boolean isExplicitGetRequest, boolean isUpdate, boolean forLineage, boolean forDuplicateProcessing, List<String> suppliedSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Validates whether an operation is valid based on the type of entity it is connecting to, who the user is and whether it is a read or an update.

      The first part of this method is looking to see if the connectToEntity is an anchor entity. In which case it calls any specific validation for that entity and returns the connectToEntity, assuming all is ok - exceptions are thrown if the entity is not valid or the user does not have access to it.

      If the connectToEntity is of a type that has a lifecycle that is linked to the lifecycle of another entity - typically a referenceable - then that other entity is its anchor (examples are schema elements, comments, connections). The anchor entity needs to be retrieved and validated.

      Some anchor entities have specific validation to perform.
      Parameters:
      userId - userId of user making request.
      connectToGUID - unique id for the object to connect the attachment to
      connectToType - name of type of connectToEntity
      connectToEntity - entity retrieved from the repository
      connectToGUIDParameterName - name of the parameter that passed the connectTo guid
      isExplicitGetRequest - Is this request an explicit get request for the asset or a find request.
      isUpdate - is this an update request?
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      suppliedSupportedZones - list of supported zones from the caller.
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      anchor entity or null if this entity is an anchor or does not have an anchor. The anchor entity is used by the caller to set the LatestChange classification
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem accessing the properties in the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • validateUniqueProperty

      public void validateUniqueProperty(String entityGUID, String entityTypeName, String uniqueParameterValue, String uniqueParameterName, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Validates that the unique property is not already in use across all types that contain the unique property.
      Parameters:
      entityGUID - existing entity (or null if this is a create)
      entityTypeName - the unique name of the type of the entity
      uniqueParameterValue - the value of the unique parameter
      uniqueParameterName - the name of the unique parameter
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method for exceptions and error messages
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem accessing the properties in the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • addAnchorGUIDToBuilder

      public void addAnchorGUIDToBuilder(String userId, String anchorGUID, String anchorGUIDParameterName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, List<String> serviceSuppliedSupportedZones, OpenMetadataAPIGenericBuilder builder, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Validate the anchor guid and add its type and identifier to the builder.
      Parameters:
      userId - calling user
      anchorGUID - unique identifier of the anchor
      anchorGUIDParameterName - parameter used to pass anchorGUID
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      serviceSuppliedSupportedZones - suported zones for this call
      builder - builder to receive the anchor (if appropriate).
      methodName - calling method
      Throws:
      InvalidParameterException - asset or element not known, null userId or guid
      PropertyServerException - problem accessing property server
      UserNotAuthorizedException - security access problem
    • addAnchorsClassification

      public void addAnchorsClassification(String userId, String beanGUID, String beanGUIDParameterName, String beanGUIDTypeName, String anchorGUID, String anchorTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Classify an element with the Anchors classification.
      Parameters:
      userId - calling user
      beanGUID - unique identifier of bean
      beanGUIDParameterName - anchorGUID of parameter supplying the beanGUID
      beanGUIDTypeName - type of bean
      anchorGUID - unique identifier of the anchor
      anchorTypeName - unique name of the type of the anchor
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - asset or element not known, null userId or guid
      PropertyServerException - problem accessing property server
      UserNotAuthorizedException - security access problem
    • maintainSupplementaryProperties

      public void maintainSupplementaryProperties(String userId, String elementGUID, String elementGUIDParameterName, String elementTypeName, String elementQualifiedName, String displayName, String summary, String description, String abbreviation, String usage, boolean isMergeUpdate, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Maintain the supplementary properties of a technical metadata element in a glossary term linked to the supplied element. The glossary term needs to be connected to a glossary which may need to be created. There is no use of effective time on these elements because they are effective all the time that the asset is effective
      Parameters:
      userId - calling user
      elementGUID - element for the
      elementGUIDParameterName - name of guid parameter
      elementTypeName - type of element
      elementQualifiedName - qualified name of the linked element
      displayName - display name for the term
      summary - short description
      description - description of the term
      abbreviation - abbreviation used for the term
      usage - illustrations of how the term is used
      isMergeUpdate - should the new properties be merged with the existing properties or completely replace them?
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - the time that the retrieved elements must be effective for
      methodName - calling method
      Throws:
      InvalidParameterException - the parameters are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem detected in the repository services
    • getSupplementaryProperties

      public EntityDetail getSupplementaryProperties(String elementGUID, String elementGUIDParameterName, String elementTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the supplementary properties of a technical metadata element in a glossary term linked to the supplied element. The glossary term needs to be connected to a glossary which may need to be created. There is no use of effective time on these elements because they are effective all the time that the asset is effective
      Parameters:
      elementGUID - unique identifier of the linked element
      elementGUIDParameterName - name of guid parameter
      elementTypeName - type of element
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - the time that the retrieved elements must be effective for
      methodName - calling method
      Returns:
      entity containing the supplementary properties
      Throws:
      InvalidParameterException - the parameters are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem detected in the repository services
    • countAttachments

      public int countAttachments(String userId, String elementGUID, String elementTypeName, String attachmentTypeGUID, String attachmentTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Count up the number of elements of a certain type that are attached to a specific entity.
      Parameters:
      userId - calling user
      elementGUID - unique identifier for the entity that the object is attached to (anchor entity)
      elementTypeName - type of the anchor entity
      attachmentTypeGUID - unique identifier of the attachment relationship's type
      attachmentTypeName - unique name of the attachment's type
      attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      count of attached objects that are effective now
      Throws:
      InvalidParameterException - the parameters are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachedEntity

      public EntityDetail getAttachedEntity(String userId, String startingElementGUID, String startingElementGUIDParameterName, String startingElementTypeName, String relationshipTypeGUID, String relationshipTypeName, String resultingElementTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the entity for the required relationship attached to a specific entity. This method assumes the starting entity has a validated anchor
      Parameters:
      userId - calling user
      startingElementGUID - identifier for the entity that the identifier is attached to
      startingElementGUIDParameterName - name of the parameter used to pass the guid
      startingElementTypeName - type name for anchor
      relationshipTypeGUID - unique identifier of the attachment's relationship type
      relationshipTypeName - unique name of the attachment's relationship type
      resultingElementTypeName - unique name of the attached entity's type
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of retrieved objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachedEntity

      public EntityDetail getAttachedEntity(String userId, String startingElementGUID, String startingElementGUIDParameterName, String startingElementTypeName, String relationshipTypeGUID, String relationshipTypeName, String resultingElementTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the entity for the required relationship attached to a specific entity. This method assumes the starting entity has a validated anchor
      Parameters:
      userId - calling user
      startingElementGUID - identifier for the entity that the identifier is attached to
      startingElementGUIDParameterName - name of the parameter used to pass the guid
      startingElementTypeName - type name for anchor
      relationshipTypeGUID - unique identifier of the attachment's relationship type
      relationshipTypeName - unique name of the attachment's relationship type
      resultingElementTypeName - unique name of the attached entity's type
      attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
      forLineage - is this part of a lineage request?
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of retrieved objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachedEntityFromUser

      public EntityDetail getAttachedEntityFromUser(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, String attachedEntityTypeGUID, String attachedEntityTypeName, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return the list of entities at the other end of the requested relationship type that were created or edited by the requesting user.
      Parameters:
      userId - user making the request
      startingEntityGUID - starting entity's GUID
      startingEntityTypeName - starting entity's type name
      relationshipTypeGUID - identifier for the relationship to follow
      relationshipTypeName - type name for the relationship to follow
      attachedEntityTypeGUID - identifier for the relationship to follow
      attachedEntityTypeName - type name for the relationship to follow
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - name of calling method
      Returns:
      retrieved entities or null
      Throws:
      InvalidParameterException - the entity at the other end is not of the expected type
      PropertyServerException - problem accessing the property server
      UserNotAuthorizedException - security access problem
    • getAttachedEntitiesFromUser

      public List<EntityDetail> getAttachedEntitiesFromUser(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, String attachedEntityTypeGUID, String attachedEntityTypeName, String sequencingPropertyName, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return the list of entities at the other end of the requested relationship type that were created or edited by the requesting user.
      Parameters:
      userId - user making the request
      startingEntityGUID - starting entity's GUID
      startingEntityTypeName - starting entity's type name
      relationshipTypeGUID - identifier for the relationship to follow
      relationshipTypeName - type name for the relationship to follow
      attachedEntityTypeGUID - identifier for the relationship to follow
      attachedEntityTypeName - type name for the relationship to follow
      sequencingPropertyName - name of property used to sequence the results - needed for paging
      startingFrom - initial position in the stored list
      pageSize - maximum number of definitions to return on this call.
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - name of calling method
      Returns:
      retrieved entities or null
      Throws:
      PropertyServerException - problem accessing the property server
      UserNotAuthorizedException - security access problem
      InvalidParameterException - one of the parameters is in error
    • getAttachedEntities

      public List<EntityDetail> getAttachedEntities(String userId, String startingGUID, String startingGUIDParameterName, String startingTypeName, String relationshipTypeGUID, String relationshipTypeName, String resultingElementTypeName, String requiredClassificationName, String omittedClassificationName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the entities for the required relationships attached to a specific entity.
      Parameters:
      userId - calling user
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of the parameter used to pass the guid
      startingTypeName - type name for anchor
      relationshipTypeGUID - unique identifier of the attachment's relationship type
      relationshipTypeName - unique name of the attachment's relationship type
      resultingElementTypeName - unique name of the attached entity's type
      requiredClassificationName - name of a classification that must be on the entity for a match
      omittedClassificationName - name of a classification that must NOT be on the entity for a match
      attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
      forLineage - is this part of a lineage request?
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      startingFrom - start position for results
      pageSize - maximum number of results
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of retrieved objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachedEntities

      public List<EntityDetail> getAttachedEntities(String userId, EntityDetail startingElement, String startingElementGUIDParameterName, String startingElementTypeName, String relationshipTypeGUID, String relationshipTypeName, String resultingElementTypeName, String requiredClassificationName, String omittedClassificationName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the entities for the required relationships attached to a specific entity.
      Parameters:
      userId - calling user
      startingElement - the entity that the required element is attached to
      startingElementGUIDParameterName - name of the parameter used to pass the guid
      startingElementTypeName - type name for anchor
      relationshipTypeGUID - unique identifier of the attachment's relationship type
      relationshipTypeName - unique name of the attachment's relationship type
      resultingElementTypeName - unique name of the attached entity's type
      requiredClassificationName - name of a classification that must be on the entity for a match
      omittedClassificationName - name of a classification that must NOT be on the entity for a match
      attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
      forLineage - is this part of a lineage request?
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      startingFrom - start position for results
      pageSize - maximum number of results
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of retrieved objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachedEntities

      public List<EntityDetail> getAttachedEntities(String userId, String startingElementGUID, String startingElementGUIDParameterName, String startingElementTypeName, String relationshipTypeGUID, String relationshipTypeName, String resultingElementTypeName, String requiredClassificationName, String omittedClassificationName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the entities for the required relationships attached to a specific entity.
      Parameters:
      userId - calling user
      startingElementGUID - identifier for the entity that the identifier is attached to
      startingElementGUIDParameterName - name of the parameter used to pass the guid
      startingElementTypeName - type name for anchor
      relationshipTypeGUID - unique identifier of the attachment's relationship type
      relationshipTypeName - unique name of the attachment's relationship type
      resultingElementTypeName - unique name of the attached entity's type
      requiredClassificationName - name of a classification that must be on the entity for a match
      omittedClassificationName - name of a classification that must NOT be on the entity for a match
      attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
      forLineage - is this part of a lineage request?
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      startingFrom - start position for results
      pageSize - maximum number of results
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of retrieved objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachmentLink

      public Relationship getAttachmentLink(String userId, String relationshipGUID, String relationshipGUIDParameterName, String relationshipTypeName, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return a visible relationship retrieved by its GUID.
      Parameters:
      userId - calling user
      relationshipGUID - unique identifier
      relationshipGUIDParameterName - parameter passing the unique identifier
      relationshipTypeName - type of relationship to be retrieved
      effectiveTime - effective time for the retrieval
      methodName - calling method
      Returns:
      list of retrieved objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getUniqueAttachmentLink

      public Relationship getUniqueAttachmentLink(String userId, String startingGUID, String startingGUIDParameterName, String startingTypeName, String attachmentRelationshipTypeGUID, String attachmentRelationshipTypeName, String attachmentEntityGUID, String attachmentEntityTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the relationship between the requested elements - there should be only one. Note that the entities are not checked.
      Parameters:
      userId - calling user
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of the parameter used to pass the guid
      startingTypeName - type name for anchor
      attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
      attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
      attachmentEntityGUID - unique identifier of the entity on the other end or null if unknown
      attachmentEntityTypeName - unique name of the attached entity's type
      attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
      forLineage - is this a lineage request
      forDuplicateProcessing - is this processing part of duplicate processing?
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of retrieved relationships or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getUniqueAttachmentLink

      public Relationship getUniqueAttachmentLink(String userId, String startingGUID, String startingGUIDParameterName, String startingTypeName, String attachmentRelationshipTypeGUID, String attachmentRelationshipTypeName, String attachmentEntityGUID, String attachmentEntityTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the relationship between the requested elements - there should be only one. Note that the entities are not checked.
      Parameters:
      userId - calling user
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of the parameter used to pass the guid
      startingTypeName - type name for anchor
      attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
      attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
      attachmentEntityGUID - unique identifier of the entity on the other end or null if unknown
      attachmentEntityTypeName - unique name of the attached entity's type
      attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
      forLineage - is this a lineage request
      forDuplicateProcessing - is this processing part of duplicate processing?
      serviceSupportedZones - list of supported zones for this service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of retrieved relationships or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAllAttachmentLinks

      public List<Relationship> getAllAttachmentLinks(String userId, String startingGUID, String startingGUIDParameterName, String startingTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return all relationships attached to a specific entity.
      Parameters:
      userId - calling user
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of the parameter used to pass the guid
      startingTypeName - type name for anchor
      forLineage - is this a lineage request
      forDuplicateProcessing - is this processing part of duplicate processing?
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of retrieved relationships or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachmentLinks

      public List<Relationship> getAttachmentLinks(String userId, String startingGUID, String startingGUIDParameterName, String startingTypeName, String attachmentRelationshipTypeGUID, String attachmentRelationshipTypeName, String attachmentEntityGUID, String attachmentEntityTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the relationships to required elements attached to a specific entity. Note that the entities are not checked.
      Parameters:
      userId - calling user
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of the parameter used to pass the guid
      startingTypeName - type name for anchor
      attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
      attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
      attachmentEntityGUID - unique identifier of the entity on the other end or null if unknown
      attachmentEntityTypeName - unique name of the attached entity's type
      attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
      forLineage - is this a lineage request
      forDuplicateProcessing - is this processing part of duplicate processing?
      startingFrom - start position for results
      pageSize - maximum number of results
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of retrieved relationships or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachmentLinks

      public List<Relationship> getAttachmentLinks(String userId, String startingGUID, String startingGUIDParameterName, String startingTypeName, String attachmentRelationshipTypeGUID, String attachmentRelationshipTypeName, String attachmentEntityGUID, String attachmentEntityTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the relationships to required elements attached to a specific entity. Note that the entities are not checked.
      Parameters:
      userId - calling user
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of the parameter used to pass the guid
      startingTypeName - type name for anchor
      attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
      attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
      attachmentEntityGUID - unique identifier of the entity on the other end or null if unknown
      attachmentEntityTypeName - unique name of the attached entity's type
      attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
      forLineage - is this a lineage request
      forDuplicateProcessing - is this processing part of duplicate processing?
      serviceSupportedZones - supported zones for calling service
      startingFrom - start position for results
      pageSize - maximum number of results
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of retrieved relationships or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachmentLinks

      public List<Relationship> getAttachmentLinks(String userId, EntityDetail startingEntity, String startingGUIDParameterName, String startingTypeName, String attachmentRelationshipTypeGUID, String attachmentRelationshipTypeName, String attachmentEntityGUID, String attachmentEntityTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the relationships to required elements attached to a specific entity. Note that the entities are not checked.
      Parameters:
      userId - calling user
      startingEntity - the entity that the identifier is attached to
      startingGUIDParameterName - name of the parameter used to pass the guid
      startingTypeName - type name for anchor
      attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
      attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
      attachmentEntityGUID - unique identifier of the entity on the other end or null if unknown
      attachmentEntityTypeName - unique name of the attached entity's type
      attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
      forLineage - is this a lineage request
      forDuplicateProcessing - is this processing part of duplicate processing?
      serviceSupportedZones - supported zones for calling service
      startingFrom - start position for results
      pageSize - maximum number of results
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of retrieved relationships or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • findAttachmentLinks

      public List<Relationship> findAttachmentLinks(String userId, String relationshipTypeName, SearchProperties searchProperties, List<InstanceStatus> limitResultsByStatus, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return a list of relationships that match the supplied criteria. The results can be returned over many pages. Note: the visibility of the relationship and both entities is checked before returning a relationship to the caller.
      Parameters:
      userId - caller's userId
      relationshipTypeName - type of interest (null means any element type)
      searchProperties - Optional list of entity property conditions to match.
      limitResultsByStatus - By default, relationships in all statuses (other than DELETE) are returned. However, it is possible to specify a list of statuses (eg ACTIVE) to restrict the results. Null means all status values.
      asOfTime - Requests a historical query of the entity. Null means return the present values.
      sequencingProperty - String name of the property that is to be used to sequence the results. Null means do not sequence on a property name (see SequencingOrder).
      sequencingOrder - Enum defining how the results should be ordered.
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      startingFrom - paging start point
      pageSize - maximum results that can be returned
      serviceSupportedZones - list of supported zones for this service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      a list of elements matching the supplied criteria; null means no matching elements in the metadata store.
      Throws:
      InvalidParameterException - one of the search parameters is invalid
      UserNotAuthorizedException - the governance action service is not able to access the elements
      PropertyServerException - there is a problem accessing the metadata store
    • createBeanInRepository

      public String createBeanInRepository(String userId, String externalSourceGUID, String externalSourceName, String entityTypeGUID, String entityTypeName, OpenMetadataAPIGenericBuilder propertyBuilder, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Create a new entity in the repository assuming all parameters are ok.
      Parameters:
      userId - userId of user making request.
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      entityTypeGUID - unique identifier of the type of entity to create
      entityTypeName - unique name of the type of entity to create
      propertyBuilder - builder pre-populated with the properties and classifications of the new entity
      effectiveTime - the time that the retrieved elements must be effective for
      methodName - calling method
      Returns:
      unique identifier of new entity
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the properties to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • createBeanInRepository

      public String createBeanInRepository(String userId, String externalSourceGUID, String externalSourceName, String entityTypeGUID, String entityTypeName, OpenMetadataAPIGenericBuilder propertyBuilder, boolean isOwnAnchor, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Create a new entity in the repository assuming all parameters are ok.
      Parameters:
      userId - userId of user making request.
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      entityTypeGUID - unique identifier of the type of entity to create
      entityTypeName - unique name of the type of entity to create
      propertyBuilder - builder pre-populated with the properties and classifications of the new entity
      isOwnAnchor - flag to indicate if the new entity should be anchored to itself
      effectiveTime - the time that the retrieved elements must be effective for
      methodName - calling method
      Returns:
      unique identifier of new entity
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the properties to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • updateBeanPropertyInRepository

      public void updateBeanPropertyInRepository(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeGUID, String entityTypeName, String propertyName, String propertyValue, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Update one or more properties in the requested entity.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      entityGUID - unique identifier of object to update
      entityGUIDParameterName - name of parameter supplying the GUID
      entityTypeGUID - unique identifier of the entity's type
      entityTypeName - unique name of the entity's type
      propertyName - name of bean property to update
      propertyValue - new value for bean property
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem updating the properties tin the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • updateBeanInRepository

      public void updateBeanInRepository(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeGUID, String entityTypeName, InstanceProperties properties, boolean isMergeUpdate, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Update one or more properties in the requested entity.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      entityGUID - unique identifier of object to update
      entityGUIDParameterName - name of parameter supplying the GUID
      entityTypeGUID - unique identifier of the entity's type
      entityTypeName - unique name of the entity's type
      properties - object containing the properties for the repository instances based on the properties of the bean
      isMergeUpdate - should the supplied properties be merged with existing properties (true) only replacing the properties with matching names, or should the entire properties of the instance be replaced?
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem updating the properties in the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • updateBeanInRepository

      public void updateBeanInRepository(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeGUID, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, InstanceProperties updateProperties, boolean isMergeUpdate, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Update one or more updateProperties in the requested entity.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      entityGUID - unique identifier of object to update
      entityGUIDParameterName - name of parameter supplying the GUID
      entityTypeGUID - unique identifier of the entity's type
      entityTypeName - unique name of the entity's type
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      updateProperties - object containing the properties
      isMergeUpdate - should the supplied properties be merged with existing properties (true) by replacing just the properties with matching names, or should the entire properties of the instance be replaced?
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the new properties to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • updateBeanInRepository

      public void updateBeanInRepository(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeGUID, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, InstanceProperties updateProperties, boolean isMergeUpdate, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Update one or more updateProperties in the requested entity.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      entityGUID - unique identifier of object to update
      entityGUIDParameterName - name of parameter supplying the GUID
      entityTypeGUID - unique identifier of the entity's type
      entityTypeName - unique name of the entity's type
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      updateProperties - object containing the properties
      isMergeUpdate - should the supplied properties be merged with existing properties (true) by replacing just the properties with matching names, or should the entire properties of the instance be replaced?
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the new properties to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • updateBeanInRepository

      public void updateBeanInRepository(String userId, String externalSourceGUID, String externalSourceName, EntityDetail originalEntity, String entityGUIDParameterName, String entityTypeGUID, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, InstanceProperties updateProperties, boolean isMergeUpdate, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Update one or more updateProperties in the requested entity.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      originalEntity - unique identifier of object to update
      entityGUIDParameterName - name of parameter supplying the GUID
      entityTypeGUID - unique identifier of the entity's type
      entityTypeName - unique name of the entity's type
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      updateProperties - object containing the properties
      isMergeUpdate - should the supplied properties be merged with existing properties (true) by replacing just the properties with matching names, or should the entire properties of the instance be replaced?
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the new properties to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • updateBeanStatusInRepository

      public void updateBeanStatusInRepository(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeGUID, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, InstanceStatus newStatus, String newStatusParameterName, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Update the instance status in the requested entity.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      entityGUID - unique identifier of object to update
      entityGUIDParameterName - name of parameter supplying the GUID
      entityTypeGUID - unique identifier of the entity's type
      entityTypeName - unique name of the entity's type
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      newStatus - new status value
      newStatusParameterName - parameter providing the new status value
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the new properties to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • updateBeanStatusInRepository

      public void updateBeanStatusInRepository(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeGUID, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, InstanceStatus newStatus, String newStatusParameterName, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Update the instance status in the requested entity.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      entityGUID - unique identifier of object to update
      entityGUIDParameterName - name of parameter supplying the GUID
      entityTypeGUID - unique identifier of the entity's type
      entityTypeName - unique name of the entity's type
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      newStatus - new status value
      newStatusParameterName - parameter providing the new status value
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the new properties to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • undoBeanUpdateInRepository

      public B undoBeanUpdateInRepository(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Undo the last update to the entity.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      entityGUID - unique identifier of object to update
      entityGUIDParameterName - name of parameter supplying the GUID
      entityTypeName - unique name of the entity's type
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      recovered bean
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the new properties to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • undoBeanUpdateInRepository

      public B undoBeanUpdateInRepository(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Undo the last update to the entity.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      entityGUID - unique identifier of object to update
      entityGUIDParameterName - name of parameter supplying the GUID
      entityTypeName - unique name of the entity's type
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      recovered bean
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the new properties to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • undoBeanUpdateInRepository

      public B undoBeanUpdateInRepository(String userId, String externalSourceGUID, String externalSourceName, EntityDetail originalEntity, String entityGUIDParameterName, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Undo the last update to the entity.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      originalEntity - unique identifier of object to update
      entityGUIDParameterName - name of parameter supplying the GUID
      entityTypeName - unique name of the entity's type
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      recovered bean
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the new properties to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • archiveBeanInRepository

      public void archiveBeanInRepository(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeName, InstanceProperties classificationProperties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Classify an entity in the repository to show that its asset/artifact counterpart in the real world has either been deleted or archived. The entity is preserved because it is needed for lineage.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      entityGUID - unique identifier of object to update
      entityGUIDParameterName - name of parameter supplying the GUID
      entityTypeName - unique name of the entity's type
      classificationProperties - properties for the classification
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem removing the properties from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • archiveBeanInRepository

      public void archiveBeanInRepository(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeName, InstanceProperties classificationProperties, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Classify an entity in the repository to show that its asset/artifact counterpart in the real world has either been deleted or archived. Note, this method is designed to work only on anchor entities or entities with no anchor.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      entityGUID - unique identifier of object to update
      entityGUIDParameterName - name of parameter supplying the GUID
      entityTypeName - unique name of the entity's type
      classificationProperties - properties for the classification
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem removing the properties from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • deleteAnchoredEntity

      public void deleteAnchoredEntity(List<String> anchoredEntityGUIDs, String externalSourceGUID, String externalSourceName, EntityProxy potentialAnchoredEntity, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Remove an entity if it is anchored to the anchor entity
      Parameters:
      anchoredEntityGUIDs - entity anchors to match against
      externalSourceGUID - unique identifier (guid) for the external source, or null for local.
      externalSourceName - unique name for the external source.
      potentialAnchoredEntity - entity to validate
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - problem with the parameters
      PropertyServerException - problem in the repository services
      UserNotAuthorizedException - calling user is not authorize to issue this request
    • deleteBeanInRepository

      public void deleteBeanInRepository(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeGUID, String entityTypeName, String validatingPropertyName, String validatingPropertyValue, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Delete an entity from the repository.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      entityGUID - unique identifier of object to update
      entityGUIDParameterName - name of parameter supplying the GUID
      entityTypeGUID - unique identifier of the entity's type
      entityTypeName - unique name of the entity's type
      validatingPropertyName - name of property to verify - or null if no verification is required
      validatingPropertyValue - value of property to verify
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem removing the properties from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • deleteBeanInRepository

      public void deleteBeanInRepository(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeGUID, String entityTypeName, String validatingPropertyName, String validatingPropertyValue, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Delete an entity from the repository.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      entityGUID - unique identifier of object to update
      entityGUIDParameterName - name of parameter supplying the GUID
      entityTypeGUID - unique identifier of the entity's type
      entityTypeName - unique name of the entity's type
      validatingPropertyName - name of property to verify - or null if no verification is required
      validatingPropertyValue - value of property to verify
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem removing the properties from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • deleteBeanInRepository

      public void deleteBeanInRepository(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeGUID, String entityTypeName, String validatingPropertyName, String validatingPropertyValue, List<String> anchorEntityGUIDs, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Delete an entity from the repository.
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      entityGUID - unique identifier of object to update
      entityGUIDParameterName - name of parameter supplying the GUID
      entityTypeGUID - unique identifier of the entity's type
      entityTypeName - unique name of the entity's type
      validatingPropertyName - name of property to verify - null if no verification is required
      validatingPropertyValue - value of property to verify
      anchorEntityGUIDs - list of anchor entities for the bean (can be null)
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem removing the properties from the repository.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • isBeanIsolated

      public boolean isBeanIsolated(String userId, String entityGUID, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Is the bean isolated - i.e. has no relationships.
      Parameters:
      userId - calling user
      entityGUID - unique identifier of object to update
      entityTypeName - unique name of the entity's type
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - the time that the retrieved elements must be effective for
      methodName - calling method
      Returns:
      test results
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem removing the properties from the repository.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getAttachedElementGUIDs

      public List<String> getAttachedElementGUIDs(String userId, String startingGUID, String startingGUIDParameterName, String startingTypeName, String attachmentRelationshipTypeGUID, String attachmentRelationshipTypeName, String attachmentEntityTypeName, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the elements of the requested type attached to an entity identified by the starting GUID.
      Parameters:
      userId - calling user
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of parameter supplying the GUID
      startingTypeName - name of the type of object being attached to
      attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
      attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
      attachmentEntityTypeName - unique name of the attached entity's type
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      startingFrom - start position for results
      pageSize - maximum number of results
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of unique identifiers for retrieved objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachedElementGUIDs

      public List<String> getAttachedElementGUIDs(String userId, String startingGUID, String startingGUIDParameterName, String startingTypeName, String attachmentRelationshipTypeGUID, String attachmentRelationshipTypeName, String attachmentEntityTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the elements of the requested type attached to an entity identified by the starting GUID.
      Parameters:
      userId - calling user
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of parameter supplying the GUID
      startingTypeName - name of the type of object being attached to
      attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
      attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
      attachmentEntityTypeName - unique name of the attached entity's type
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      startingFrom - start position for results
      pageSize - maximum number of results
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of unique identifiers for retrieved objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachedElementGUID

      public String getAttachedElementGUID(String userId, String startingGUID, String startingGUIDParameterName, String startingTypeName, String attachmentRelationshipTypeGUID, String attachmentRelationshipTypeName, String attachmentEntityTypeName, int selectionEnd, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the elements of the requested type attached to an entity identified by the starting GUID.
      Parameters:
      userId - calling user
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of parameter supplying the GUID
      startingTypeName - name of the type of object being attached to
      attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
      attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
      attachmentEntityTypeName - unique name of the attached entity's type
      selectionEnd - 0 means either end, 1 means only take from end 1, 2 means only take from end 2
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of unique identifiers for retrieved objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachedElementGUID

      public String getAttachedElementGUID(String userId, String startingGUID, String startingGUIDParameterName, String startingTypeName, String attachmentRelationshipTypeGUID, String attachmentRelationshipTypeName, String attachmentEntityTypeName, int selectionEnd, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the elements of the requested type attached to an entity identified by the starting GUID.
      Parameters:
      userId - calling user
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of parameter supplying the GUID
      startingTypeName - name of the type of object being attached to
      attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
      attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
      attachmentEntityTypeName - unique name of the attached entity's type
      selectionEnd - 0 means either end, 1 means only take from end 1, 2 means only take from end 2
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of unique identifiers for retrieved objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachedElement

      public B getAttachedElement(String userId, String startingElementGUID, String startingElementGUIDParameterName, String startingElementTypeName, String relationshipTypeGUID, String relationshipTypeName, String resultingElementTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the Bean for the required relationship attached to a specific element. This method assumes the starting element has a validated anchor.
      Parameters:
      userId - calling user
      startingElementGUID - identifier for the entity that the identifier is attached to
      startingElementGUIDParameterName - name of the parameter used to pass the guid
      startingElementTypeName - type name for anchor
      relationshipTypeGUID - unique identifier of the attachment's relationship type
      relationshipTypeName - unique name of the attachment's relationship type
      resultingElementTypeName - unique name of the attached entity's type
      attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of retrieved objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachedElements

      public List<B> getAttachedElements(String userId, String startingGUID, String startingGUIDParameterName, String startingTypeName, String attachmentRelationshipTypeGUID, String attachmentRelationshipTypeName, String attachmentEntityTypeName, String requiredClassificationName, String omittedClassificationName, List<Integer> limitResultsByEnumValues, String enumPropertyName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the elements of the requested type attached to an entity identified by the starting GUID.
      Parameters:
      userId - calling user
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of parameter supplying the GUID
      startingTypeName - name of the type of object being attached to
      attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
      attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
      attachmentEntityTypeName - unique name of the attached entity's type
      requiredClassificationName - String the name of the classification that must be on the attached entity.
      omittedClassificationName - String the name of a classification that must not be on the attached entity.
      limitResultsByEnumValues - The list of ordinals for the enum value.
      enumPropertyName - String the name of a property in the relationship that is an enum.
      attachmentEntityEnd - 0 means either end, 1 means only take from end 1, 2 means only take from end 2
      forDuplicateProcessing - this request os for duplicate processing so do not deduplicate
      forLineage - this request is for lineage so ignore Memento classifications
      startingFrom - start position for results
      pageSize - maximum number of results
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of retrieved objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachedElements

      public List<B> getAttachedElements(String userId, String startingGUID, String startingGUIDParameterName, String startingTypeName, String attachmentRelationshipTypeGUID, String attachmentRelationshipTypeName, String attachmentEntityTypeName, String requiredClassificationName, String omittedClassificationName, int selectionEnd, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the elements of the requested type attached to an entity identified by the starting GUID.
      Parameters:
      userId - calling user
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of parameter supplying the GUID
      startingTypeName - name of the type of object being attached to
      attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
      attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
      attachmentEntityTypeName - unique name of the attached entity's type
      requiredClassificationName - String the name of the classification that must be on the attached entity.
      omittedClassificationName - String the name of a classification that must not be on the attached entity.
      selectionEnd - 0 means either end, 1 means only take from end 1, 2 means only take from end 2
      forDuplicateProcessing - this request os for duplicate processing so do not deduplicate
      forLineage - this request is for lineage so ignore Memento classifications
      startingFrom - start position for results
      pageSize - maximum number of results
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of retrieved objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachedElements

      public List<B> getAttachedElements(String userId, String anchorGUID, String anchorGUIDParameterName, String startingGUID, String startingGUIDParameterName, String startingTypeName, String attachmentRelationshipTypeGUID, String attachmentRelationshipTypeName, String attachmentEntityTypeName, String requiredClassificationName, String omittedClassificationName, int selectionEnd, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the elements of the requested type attached to an entity identified by the starting GUID.
      Parameters:
      userId - calling user
      anchorGUID - expected anchorGUID for this element
      anchorGUIDParameterName - parameter supplying anchorGUID
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of parameter supplying the GUID
      startingTypeName - name of the type of object being attached to
      attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
      attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
      attachmentEntityTypeName - unique name of the attached entity's type
      requiredClassificationName - String the name of the classification that must be on the attached entity.
      omittedClassificationName - String the name of a classification that must not be on the attached entity.
      selectionEnd - 0 means either end, 1 means only take from end 1, 2 means only take from end 2
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      startingFrom - start position for results
      pageSize - maximum number of results
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of retrieved objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachedFilteredEntities

      public List<EntityDetail> getAttachedFilteredEntities(String userId, String startingGUID, String startingGUIDParameterName, String startingTypeName, String relationshipTypeName, String relationshipTypeGUID, int selectionEnd, Set<String> specificMatchPropertyNames, String searchCriteria, int startFrom, boolean startsWith, boolean ignoreCase, int queryPageSize, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Retrieve the entities that are attached to the entity with startingGUID. The entities are only returned if they match the supplied filtering. To be returned the attached entity needs to be directly attached to the entity with startingGUID:
      • with the relationship relationshipTypeName
      • the relationship relationshipTypeGUID
      • be at this end of the relationship.
      • it is visible to the calling user

      Optionally if specified, the attached entity needs to

      • match the searchCriteria taking into account the ignoreCase and startsWith flags against the text property fields named in specificMatchPropertyNames.
      Optionally if specified, the attached entity needs to
      • be in the requested page as specified by startFrom and queryPageSize
      Parameters:
      userId - calling user
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of parameter supplying the GUID
      startingTypeName - name of the type of object being attached to
      relationshipTypeName - name of the type of relationship attaching the attached entity
      relationshipTypeGUID - guid of the type of relationship attaching the attached entity
      selectionEnd - 0 means either end, 1 means only take from end 1, 2 means only take from end 2
      specificMatchPropertyNames - list of property names to
      searchCriteria - text to search on
      startFrom - index of the list to start from (0 for start)
      startsWith - if flag set search looking for matches starting with the supplied searchCriteria, otherwise an exact match
      ignoreCase - if set ignore case on the match, if not set then case must match
      queryPageSize - requested page size
      methodName - calling method
      Returns:
      List of attached entities
      Throws:
      InvalidParameterException - the parameters are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachedFilteredEntities

      public List<EntityDetail> getAttachedFilteredEntities(String userId, String startingGUID, String startingGUIDParameterName, String startingTypeName, String relationshipTypeName, String relationshipTypeGUID, int selectionEnd, Set<String> specificMatchPropertyNames, String searchCriteria, int startFrom, boolean startsWith, boolean ignoreCase, int queryPageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Retrieve the entities that are attached to the entity with startingGUID. The entities are only returned if they match the supplied filtering. To be returned the attached entity needs to be directly attached to the entity with startingGUID:
      • with the relationship relationshipTypeName
      • the relationship relationshipTypeGUID
      • be at this end of the relationship.
      • it is visible to the calling user

      Optionally if specified, the attached entity needs to

      • match the searchCriteria taking into account the ignoreCase and startsWith flags against the text property fields named in specificMatchPropertyNames.
      Optionally if specified, the attached entity needs to
      • be in the requested page as specified by startFrom and queryPageSize
      Parameters:
      userId - calling user
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of parameter supplying the GUID
      startingTypeName - name of the type of object being attached to
      relationshipTypeName - name of the type of relationship attaching the attached entity
      relationshipTypeGUID - guid of the type of relationship attaching the attached entity
      selectionEnd - 0 means either end, 1 means only take from end 1, 2 means only take from end 2
      specificMatchPropertyNames - list of property names to
      searchCriteria - text to search on
      startFrom - index of the list to start from (0 for start)
      startsWith - if flag set search looking for matches starting with the supplied searchCriteria, otherwise an exact match
      ignoreCase - if set ignore case on the match, if not set then case must match
      queryPageSize - requested page size
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      List of attached entities
      Throws:
      InvalidParameterException - the parameters are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • getAttachedFilteredEntities

      public List<EntityDetail> getAttachedFilteredEntities(String userId, String startingGUID, String startingGUIDParameterName, String startingTypeName, String relationshipTypeName, String relationshipTypeGUID, int selectionEnd, String attachedEntityFilterRelationshipTypeName, String attachedEntityFilterRelationshipTypeGUID, boolean attachedEntityParentAtEnd1, Set<String> specificMatchPropertyNames, String searchCriteria, int startFrom, boolean startsWith, boolean ignoreCase, int queryPageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Retrieve the entities that are attached to the entity with startingGUID. The entities are only returned if they match the supplied filtering. To be returned the attached entity needs to be directly attached to the entity with startingGUID:
      • with the relationship relationshipTypeName
      • the relationship relationshipTypeGUID
      • be at this end of the relationship.
      • it is visible to the calling user

      Optionally if specified, the attached entity needs to

      • match the searchCriteria taking into account the ignoreCase and startsWith flags against the text property fields named in specificMatchPropertyNames.
      Optionally if specified, the attached entity needs to
      • be in the requested page as specified by startFrom and queryPageSize
      Optionally if specified, the attached entity needs to
      • not have a relationship to a unique parent entity via the attachedEntityFilterRelationshipTypeName
      • not have a relationship to a unique parent entity via the attachedEntityFilterRelationshipTypeGUID
      • not have a relationship to a unique parent entity where the parent is at the other end, the parent end is identified using attachedEntityParentAtEnd1
      Parameters:
      userId - calling user
      startingGUID - identifier for the entity that the identifier is attached to
      startingGUIDParameterName - name of parameter supplying the GUID
      startingTypeName - name of the type of object being attached to
      relationshipTypeName - name of the type of relationship attaching the attached entity
      relationshipTypeGUID - guid of the type of relationship attaching the attached entity
      selectionEnd - 0 means either end, 1 means only take from end 1, 2 means only take from end 2
      attachedEntityFilterRelationshipTypeName - do not return attached entities that have this parent relationship at attachedEntityParentAtEnd1. If null this has no effect on the match.
      attachedEntityFilterRelationshipTypeGUID - do not return attached entities that have this parent relationship at attachedEntityParentAtEnd1. If null this has no effect on the match.
      attachedEntityParentAtEnd1 - if the attached entity has a parent the entity will not be returned.
      specificMatchPropertyNames - list of property names to
      searchCriteria - text to search on
      startFrom - index of the list to start from (0 for start)
      startsWith - if flag set search looking for matches starting with the supplied searchCriteria, otherwise an exact match
      ignoreCase - if set ignore case on the match, if not set then case must match
      queryPageSize - requested page size
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      List of attached entities
      Throws:
      InvalidParameterException - the parameters are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the repositories
    • entityMatchSearchCriteria

      protected boolean entityMatchSearchCriteria(EntityDetail entity, Set<String> attributeNames, String searchCriteria, boolean exactValue, boolean ignoreCase)
      Check whether the attribute values, associated with the supplied attribute names, in the supplied entity match the search criteria. This text match is influenced by the exactValue and ignoreCase flags.
      Parameters:
      entity - entity to check
      attributeNames - attribute names to check the value of - these are expected to be attributes that hold text values; if they will be ignored
      searchCriteria - literal text search criteria
      exactValue - when set match exactly otherwise look for matches starting with this text
      ignoreCase - when set ignore the case, otherwise do a case-sensitive match.
      Returns:
      true for match otherwise false
    • regexSearchCriteria

      protected String regexSearchCriteria(String searchCriteria, boolean exactValue, boolean ignoreCase)
      Take a literal string supplied in searchCriteria and augment it with extra content for the regex engine to process. 2 flags exactValue and ignoreCase are supplied that determine the nature of the regex expression that is created.
      Parameters:
      searchCriteria - text literal use as the basis of the match, if this empty then match everything ignoring the flags.
      exactValue - the exactValue flag when set means to exactly match the string, otherwise it looks for strings starting with the searchCriteria.
      ignoreCase - if set ignore the case on the match, if not set then the case must match.
      Returns:
      a regex expression created to match implement the supplied searchCriteria and flags.
    • getEntityFromRepository

      public EntityDetail getEntityFromRepository(String userId, String requestedEntityGUID, String requestedEntityGUIDParameterName, String requestedEntityTypeName, String requiredClassificationName, String omittedClassificationName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the keyword for the supplied unique identifier (guid). The keyword is only returned if
      Parameters:
      userId - userId of the user making the request
      requestedEntityGUID - unique identifier of the entity to retrieve from the repository
      requestedEntityGUIDParameterName - name of the parameter supplying the GUID
      requestedEntityTypeName - name of type of entity to retrieve
      requiredClassificationName - String the name of the classification that must be on the attached entity.
      omittedClassificationName - String the name of a classification that must not be on the attached entity.
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      retrieved entity
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getEntityFromRepository

      public EntityDetail getEntityFromRepository(String userId, String requestedEntityGUID, String requestedEntityGUIDParameterName, String requestedEntityTypeName, String requiredClassificationName, String omittedClassificationName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the entity for the supplied unique identifier (guid). An exception is thrown if the entity does not exist.
      Parameters:
      userId - userId of the user making the request
      requestedEntityGUID - unique identifier of the entity to retrieve from the repository
      requestedEntityGUIDParameterName - name of the parameter supplying the GUID
      requestedEntityTypeName - name of type of entity to retrieve
      requiredClassificationName - String the name of the classification that must be on the attached entity
      omittedClassificationName - String the name of a classification that must not be on the attached entity
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      retrieved entity
      Throws:
      InvalidParameterException - the userId is null or invalid, the entity does not exist.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeanFromRepository

      public B getBeanFromRepository(String userId, String guid, String guidParameterName, String resultTypeName, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Use the supplied unique identifier (guid) of an entity in the repository to retrieve its contents as a bean. The entity is checked to ensure it is of the required return type.
      Parameters:
      userId - calling user
      guid - unique identifier of the entity to retrieve
      guidParameterName - parameter supplying the unique identifier
      resultTypeName - type of the retrieve entity
      methodName - calling method
      Returns:
      B bean
      Throws:
      InvalidParameterException - one of the properties (probably the GUID) is invalid
      PropertyServerException - the repository services hit an unexpected problem
      UserNotAuthorizedException - the user is not permitted to access this entity
    • getBeanFromRepository

      public B getBeanFromRepository(String userId, String guid, String guidParameterName, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the bean for the supplied unique identifier (guid). An exception occurs if the bean GUID is not known.
      Parameters:
      userId - userId of the user making the request
      guid - unique identifier of the entity to retrieve from the repository
      guidParameterName - name of the parameter supplying the GUID
      entityTypeName - name of type of entity to retrieve
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      new bean
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeanFromRepository

      public B getBeanFromRepository(String userId, String guid, String guidParameterName, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the bean for the supplied unique identifier (guid). An exception occurs if the bean GUID is not known.
      Parameters:
      userId - userId of the user making the request
      guid - unique identifier of the entity to retrieve from the repository
      guidParameterName - name of the parameter supplying the GUID
      entityTypeName - name of type of entity to retrieve
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      new bean
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeanFromEntity

      public B getBeanFromEntity(String userId, EntityDetail entity, String entityParameterName, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the bean for the supplied unique identifier (guid). An exception occurs if the bean GUID is not known.
      Parameters:
      userId - userId of the user making the request
      entity - entity retrieved from the repository
      entityParameterName - name of the parameter supplying the entity
      methodName - calling method
      Returns:
      new bean
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeanGUIDByUniqueName

      public String getBeanGUIDByUniqueName(String userId, String name, String nameParameterName, String namePropertyName, String resultTypeGUID, String resultTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the unique identifier of the entity that has the supplied unique name. An exception is thrown if multiple entities are found with this name.
      Parameters:
      userId - the calling user
      name - value to search
      nameParameterName - parameter providing value
      namePropertyName - open metadata property name to match on
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      unique identifier of the requested entity/bean
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeanGUIDByUniqueName

      public String getBeanGUIDByUniqueName(String userId, String name, String nameParameterName, String namePropertyName, String resultTypeGUID, String resultTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the unique identifier of the entity that has the supplied unique name. An exception is thrown if multiple entities are found with this name.
      Parameters:
      userId - the calling user
      name - value to search
      nameParameterName - parameter providing value
      namePropertyName - open metadata property name to match on
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - list of supported zones for this service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      unique identifier of the requested entity/bean
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeanByUniqueName

      public B getBeanByUniqueName(String userId, String name, String nameParameterName, String namePropertyName, String resultTypeGUID, String resultTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of beans of the requested type that match the supplied value.
      Parameters:
      userId - the calling user
      name - value to search
      nameParameterName - parameter providing value
      namePropertyName - open metadata property name to match on
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeanByUniqueName

      public B getBeanByUniqueName(String userId, String name, String nameParameterName, String namePropertyName, String resultTypeGUID, String resultTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of beans of the requested type that match the supplied value.
      Parameters:
      userId - the calling user
      name - value to search
      nameParameterName - parameter providing value
      namePropertyName - open metadata property name to match on
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - list of supported zones for this service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeanHistory

      public List<B> getBeanHistory(String userId, String guid, String guidParameterName, String entityTypeName, Date fromTime, Date toTime, int startingFrom, int pageSize, HistorySequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Classify an entity in the repository to show that its asset/artifact counterpart in the real world has either been deleted or archived. Note, this method is designed to work only on anchor entities or entities with no anchor.
      Parameters:
      userId - calling user
      guid - unique identifier of object to update
      guidParameterName - name of parameter supplying the GUID
      fromTime - starting time
      toTime - ending time
      entityTypeName - unique name of the entity's type
      startingFrom - paging start point
      pageSize - maximum results that can be returned
      sequencingOrder - order of the results
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem removing the properties from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeanByValue

      public B getBeanByValue(String userId, String value, String valueParameterName, String resultTypeGUID, String resultTypeName, List<String> specificMatchPropertyNames, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return the bean that matches the requested value.
      Parameters:
      userId - identifier of calling user
      value - value to search
      valueParameterName - parameter providing value
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      matching bean.
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      UserNotAuthorizedException - user not authorized to issue this request.
      PropertyServerException - problem retrieving the bean definition.
    • findBeans

      public List<B> findBeans(String userId, String searchString, String searchStringParameterName, String resultTypeGUID, String resultTypeName, String sequencingPropertyName, int startFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of beans matching the supplied searchString.
      Parameters:
      userId - the searchString of the calling user.
      searchString - searchString of endpoint. This may include wild card characters.
      searchStringParameterName - name of parameter providing search string
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return.
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • findBeans

      public List<B> findBeans(String userId, String searchString, String searchStringParameterName, String resultTypeGUID, String resultTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, String sequencingPropertyName, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of beans matching the supplied searchString.
      Parameters:
      userId - the searchString of the calling user.
      searchString - searchString of endpoint. This may include wild card characters.
      searchStringParameterName - name of parameter providing search string
      serviceSupportedZones - list of supported zones for this service.
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      forDuplicateProcessing - this request os for duplicate processing so do not deduplicate
      forLineage - this request is for lineage so ignore Memento classifications
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return.
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • findBeans

      public List<B> findBeans(String userId, String metadataElementTypeName, List<String> metadataElementSubtypeName, SearchProperties searchProperties, List<InstanceStatus> limitResultsByStatus, SearchClassifications searchClassifications, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return a list of metadata elements that match the supplied criteria. The results can be returned over many pages.
      Parameters:
      userId - caller's userId
      metadataElementTypeName - type of interest (null means any element type)
      metadataElementSubtypeName - optional list of the subtypes of the metadataElementTypeName to include in the search results. Null means all subtypes.
      searchProperties - Optional list of entity property conditions to match.
      limitResultsByStatus - By default, entities in all statuses (other than DELETE) are returned. However, it is possible to specify a list of statuses (eg ACTIVE) to restrict the results to. Null means all status values.
      searchClassifications - Optional list of classifications to match.
      asOfTime - Requests a historical query of the entity. Null means return the present values.
      sequencingProperty - String name of the property that is to be used to sequence the results. Null means do not sequence on a property name (see SequencingOrder).
      sequencingOrder - Enum defining how the results should be ordered.
      forLineage - the retrieved element is for lineage processing so include archived elements
      forDuplicateProcessing - the retrieved element is for duplicate processing so do not combine results from known duplicates.
      startingFrom - paging start point
      pageSize - maximum results that can be returned
      serviceSupportedZones - list of supported zones for this service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      a list of elements matching the supplied criteria; null means no matching elements in the metadata store.
      Throws:
      InvalidParameterException - one of the search parameters is invalid
      UserNotAuthorizedException - the governance action service is not able to access the elements
      PropertyServerException - there is a problem accessing the metadata store
    • findEntities

      public List<EntityDetail> findEntities(String userId, String metadataElementTypeName, List<String> metadataElementSubtypeName, SearchProperties searchProperties, List<InstanceStatus> limitResultsByStatus, SearchClassifications searchClassifications, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return a list of metadata elements that match the supplied criteria. The results can be returned over many pages.
      Parameters:
      userId - caller's userId
      metadataElementTypeName - type of interest (null means any element type)
      metadataElementSubtypeName - optional list of the subtypes of the metadataElementTypeName to include in the search results. Null means all subtypes.
      searchProperties - Optional list of entity property conditions to match.
      limitResultsByStatus - By default, entities in all statuses (other than DELETE) are returned. However, it is possible to specify a list of statuses (eg ACTIVE) to restrict the results to. Null means all status values.
      searchClassifications - Optional list of classifications to match.
      asOfTime - Requests a historical query of the entity. Null means return the present values.
      sequencingProperty - String name of the property that is to be used to sequence the results. Null means do not sequence on a property name (see SequencingOrder).
      sequencingOrder - Enum defining how the results should be ordered.
      forLineage - the retrieved element is for lineage processing so include archived elements
      forDuplicateProcessing - the retrieved element is for duplicate processing so do not combine results from known duplicates.
      startingFrom - paging start point
      pageSize - maximum results that can be returned
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      a list of elements matching the supplied criteria; null means no matching elements in the metadata store.
      Throws:
      InvalidParameterException - one of the search parameters is invalid
      UserNotAuthorizedException - the governance action service is not able to access the elements
      PropertyServerException - there is a problem accessing the metadata store
    • findEntities

      public List<EntityDetail> findEntities(String userId, String metadataElementTypeName, List<String> metadataElementSubtypeNames, SearchProperties searchProperties, List<InstanceStatus> limitResultsByStatus, SearchClassifications searchClassifications, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return a list of metadata elements that match the supplied criteria. The results can be returned over many pages.
      Parameters:
      userId - caller's userId
      metadataElementTypeName - type of interest (null means any element type)
      metadataElementSubtypeNames - optional list of the subtypes of the metadataElementTypeName to include in the search results. Null means all subtypes.
      searchProperties - Optional list of entity property conditions to match.
      limitResultsByStatus - By default, entities in all statuses (other than DELETE) are returned. However, it is possible to specify a list of statuses (eg ACTIVE) to restrict the results to. Null means all status values.
      searchClassifications - Optional list of classifications to match.
      asOfTime - Requests a historical query of the entity. Null means return the present values.
      sequencingProperty - String name of the property that is to be used to sequence the results. Null means do not sequence on a property name (see SequencingOrder).
      sequencingOrder - Enum defining how the results should be ordered.
      forLineage - the retrieved element is for lineage processing so include archived elements
      forDuplicateProcessing - the retrieved element is for duplicate processing so do not combine results from known duplicates.
      startingFrom - paging start point
      pageSize - maximum results that can be returned
      serviceSupportedZones - list of supported zones for this service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      a list of elements matching the supplied criteria; null means no matching elements in the metadata store.
      Throws:
      InvalidParameterException - one of the search parameters is invalid
      UserNotAuthorizedException - the governance action service is not able to access the elements
      PropertyServerException - there is a problem accessing the metadata store
    • getBeansByValue

      public List<B> getBeansByValue(String userId, String value, String valueParameterName, String resultTypeGUID, String resultTypeName, List<String> specificMatchPropertyNames, boolean exactValueMatch, String requiredClassificationName, String omittedClassificationName, boolean forLineage, boolean forDuplicateProcessing, String sequencingPropertyName, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of beans of the requested type that match the supplied value.
      Parameters:
      userId - the calling user
      value - value to search
      valueParameterName - parameter providing value
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
      exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
      requiredClassificationName - String the name of the classification that must be on the entity.
      omittedClassificationName - String the name of a classification that must not be on the entity.
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeansByIntValue

      public List<B> getBeansByIntValue(String userId, int value, String resultTypeGUID, String resultTypeName, String propertyName, String requiredClassificationName, String omittedClassificationName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, String sequencingPropertyName, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of beans of the requested type that match the supplied integer value.
      Parameters:
      userId - the calling user
      value - value to search
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      propertyName - property to look in - if null or empty list then all string properties are checked.
      requiredClassificationName - String the name of the classification that must be on the entity.
      omittedClassificationName - String the name of a classification that must not be on the entity.
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      serviceSupportedZones - list of supported zones for this service
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeansByValue

      public List<B> getBeansByValue(String userId, String value, String valueParameterName, String resultTypeGUID, String resultTypeName, List<String> specificMatchPropertyNames, boolean exactValueMatch, String requiredClassificationName, String omittedClassificationName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, String sequencingPropertyName, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of beans of the requested type that match the supplied value.
      Parameters:
      userId - the calling user
      value - value to search
      valueParameterName - parameter providing value
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
      exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
      requiredClassificationName - String the name of the classification that must be on the entity.
      omittedClassificationName - String the name of a classification that must not be on the entity.
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      serviceSupportedZones - list of supported zones for this service
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getEntitiesByType

      public List<EntityDetail> getEntitiesByType(String userId, String resultTypeGUID, String resultTypeName, String sequencingPropertyName, boolean forLineage, boolean forDuplicateProcessing, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of entities of the requested type.
      Parameters:
      userId - the name of the calling user
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique name of the type that the results should match with
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of entities
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getEntitiesByType

      public List<EntityDetail> getEntitiesByType(String userId, String resultTypeGUID, String resultTypeName, String sequencingPropertyName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of entities of the requested type.
      Parameters:
      userId - the name of the calling user
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique name of the type that the results should match with
      serviceSupportedZones - list of supported zones for this service
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of entities
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • findEntities

      public List<EntityDetail> findEntities(String userId, String searchString, String searchStringParameterName, String resultTypeGUID, String resultTypeName, String requiredClassificationName, String omittedClassificationName, String sequencingPropertyName, int startFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of entities matching the supplied searchString.
      Parameters:
      userId - the searchString of the calling user.
      searchString - searchString of endpoint. This may include wild card characters.
      searchStringParameterName - name of parameter providing search string
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      requiredClassificationName - String the name of the classification that must be on the entity.
      omittedClassificationName - String the name of a classification that must not be on the entity.
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return.
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of entities
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • findEntities

      public List<EntityDetail> findEntities(String userId, String searchString, String searchStringParameterName, String resultTypeGUID, String resultTypeName, String requiredClassificationName, String omittedClassificationName, String sequencingPropertyName, int startFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of entities matching the supplied searchString.
      Parameters:
      userId - the searchString of the calling user.
      searchString - searchString of endpoint. This may include wild card characters.
      searchStringParameterName - name of parameter providing search string
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      requiredClassificationName - String the name of the classification that must be on the entity.
      omittedClassificationName - String the name of a classification that must not be on the entity.
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return.
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      serviceSupportedZones - list of supported zones for this service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of entities
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getEntitiesByValue

      public List<EntityDetail> getEntitiesByValue(String userId, String value, String valueParameterName, String resultTypeGUID, String resultTypeName, List<String> specificMatchPropertyNames, boolean exactValueMatch, String requiredClassificationName, String omittedClassificationName, boolean forLineage, boolean forDuplicateProcessing, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of entities of the requested type that match the supplied value.
      Parameters:
      userId - the calling user
      value - value to search
      valueParameterName - parameter providing value
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
      exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
      requiredClassificationName - String the name of the classification that must be on the attached entity.
      omittedClassificationName - String the name of a classification that must not be on the attached entity.
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getEntitiesByIntValue

      public List<EntityDetail> getEntitiesByIntValue(String userId, int value, String resultTypeGUID, String resultTypeName, String propertyName, String requiredClassificationName, String omittedClassificationName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, String sequencingPropertyName, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of entities of the requested type that match the supplied value.
      Parameters:
      userId - the calling user
      value - value to search
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      propertyName - property name to look in.
      requiredClassificationName - String the name of the classification that must be on the attached entity
      omittedClassificationName - String the name of a classification that must not be on the attached entity
      forLineage - boolean indicating whether the entity is being retrieved for a lineage request or not
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      serviceSupportedZones - list of supported zones for this service
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getEntitiesByValue

      public List<EntityDetail> getEntitiesByValue(String userId, String value, String valueParameterName, String resultTypeGUID, String resultTypeName, List<String> specificMatchPropertyNames, boolean exactValueMatch, String requiredClassificationName, String omittedClassificationName, boolean forLineage, boolean forDuplicateProcessing, String sequencingPropertyName, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of entities of the requested type that match the supplied value.
      Parameters:
      userId - the calling user
      value - value to search
      valueParameterName - parameter providing value
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
      exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
      requiredClassificationName - String the name of the classification that must be on the attached entity
      omittedClassificationName - String the name of a classification that must not be on the attached entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getEntitiesByValue

      public List<EntityDetail> getEntitiesByValue(String userId, String value, String valueParameterName, String resultTypeGUID, String resultTypeName, List<String> specificMatchPropertyNames, boolean exactValueMatch, boolean caseInsensitive, String requiredClassificationName, String omittedClassificationName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, String sequencingPropertyName, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of entities of the requested type that match the supplied value.
      Parameters:
      userId - the calling user
      value - value to search
      valueParameterName - parameter providing value
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
      exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
      caseInsensitive - set to true to have a case-insensitive exact match regular expression
      requiredClassificationName - String the name of the classification that must be on the attached entity
      omittedClassificationName - String the name of a classification that must not be on the attached entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - list of supported zones for this service
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of entities
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getEntitiesByValue

      public List<EntityDetail> getEntitiesByValue(String userId, RepositoryIteratorForEntities iterator, String entityParameterName, String resultTypeName, String omittedClassificationName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, int startFrom, int queryPageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of entities of the requested type that match the supplied value.
      Parameters:
      userId - the calling user
      iterator - mechanism for search
      entityParameterName - parameter description
      resultTypeName - unique value of the type that the results should match with
      omittedClassificationName - String the name of a classification that must not be on the attached entity
      forLineage - boolean indicating whether the entity is being retrieved for a lineage request or not
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      serviceSupportedZones - list of supported zones for this service
      startFrom - index of the list to start from (0 for start)
      queryPageSize - maximum number of elements to return
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - bad starting entity
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getEntityGUIDsByValue

      public List<String> getEntityGUIDsByValue(String userId, String value, String valueParameterName, String resultTypeGUID, String resultTypeName, List<String> specificMatchPropertyNames, boolean exactValueMatch, String requiredClassificationName, String omittedClassificationName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, String sequencingPropertyName, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of entities of the requested type that match the supplied value.
      Parameters:
      userId - the calling user
      value - value to search
      valueParameterName - parameter providing value
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
      exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
      requiredClassificationName - String the name of the classification that must be on the attached entity.
      omittedClassificationName - String the name of a classification that must not be on the attached entity.
      forLineage - boolean indicating whether the entity is being retrieved for a lineage request or not.
      serviceSupportedZones - list of supported zones for this service
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getEntityByValue

      public EntityDetail getEntityByValue(String userId, String value, String valueParameterName, String resultTypeGUID, String resultTypeName, List<String> specificMatchPropertyNames, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return the entity that matches the requested value.
      Parameters:
      userId - identifier of calling user
      value - value to search
      valueParameterName - parameter providing value
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      requested entity
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      UserNotAuthorizedException - user not authorized to issue this request.
      PropertyServerException - problem retrieving the entity.
    • getEntityByValue

      public EntityDetail getEntityByValue(String userId, String value, String valueParameterName, String resultTypeGUID, String resultTypeName, List<String> specificMatchPropertyNames, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return the entity that matches the requested value.
      Parameters:
      userId - identifier of calling user
      value - value to search
      valueParameterName - parameter providing value
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      serviceSupportedZones - supported zones for calling service
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      requested entity
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      UserNotAuthorizedException - user not authorized to issue this request.
      PropertyServerException - problem retrieving the entity.
    • getEntityGUIDByValue

      public String getEntityGUIDByValue(String userId, String value, String valueParameterName, String resultTypeGUID, String resultTypeName, List<String> specificMatchPropertyNames, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return the unique identifier of the entity matching the value.
      Parameters:
      userId - identifier of calling user
      value - value to search
      valueParameterName - parameter providing value
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      unique identifier of the requested entity.
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      UserNotAuthorizedException - user not authorized to issue this request.
      PropertyServerException - problem retrieving the entity.
    • findBeanGUIDs

      public List<String> findBeanGUIDs(String userId, String searchString, String searchStringParameterName, String resultTypeGUID, String resultTypeName, String sequencingPropertyName, int startFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of beans of the requested type that match the supplied value.
      Parameters:
      userId - the searchString of the calling user.
      searchString - searchString of endpoint. This may include wild card characters.
      searchStringParameterName - name of parameter providing search string
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique value of the type that the results should match with
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return.
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeansByCreator

      public List<B> getBeansByCreator(String userId, String searchString, String searchStringParameterName, String resultTypeGUID, String resultTypeName, List<String> specificMatchPropertyNames, boolean exactValueMatch, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, String sequencingPropertyName, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of beans of the requested type that were created by the requesting user.
      Parameters:
      userId - the name of the calling user
      searchString - value that describes what to search for
      searchStringParameterName - parameter providing search string
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique name of the type that the results should match with
      specificMatchPropertyNames - name of properties to visit
      exactValueMatch - does the value need to match exactly?
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - list of supported zones for this service
      sequencingPropertyName - should the results be sequenced?
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeansByType

      public List<B> getBeansByType(String userId, String resultTypeGUID, String resultTypeName, String sequencingPropertyName, int startFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of beans of the requested type.
      Parameters:
      userId - the name of the calling user
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique name of the type that the results should match with
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeansByType

      public List<B> getBeansByType(String userId, String resultTypeGUID, String resultTypeName, String sequencingPropertyName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of beans of the requested type that match the supplied name.
      Parameters:
      userId - the name of the calling user
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique name of the type that the results should match with
      serviceSupportedZones - list of supported zones for this service
      forDuplicateProcessing - this request os for duplicate processing so do not deduplicate
      forLineage - this request is for lineage so ignore Memento classifications
      sequencingPropertyName - name of property used to sequence the results - null means no sequencing
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeanGUIDsByType

      public List<String> getBeanGUIDsByType(String userId, String resultTypeGUID, String resultTypeName, String sequencingPropertyName, boolean forLineage, boolean forDuplicateProcessing, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of beans of the requested type.
      Parameters:
      userId - the name of the calling user
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique name of the type that the results should match with
      sequencingPropertyName - should the results be sequenced?
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of unique identifiers for matching beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeanGUIDsByType

      public List<String> getBeanGUIDsByType(String userId, String resultTypeGUID, String resultTypeName, String sequencingPropertyName, boolean forLineage, boolean forDuplicateProcessing, List<String> serviceSupportedZones, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of beans of the requested type.
      Parameters:
      userId - the name of the calling user
      resultTypeGUID - unique identifier of the type that the results should match with
      resultTypeName - unique name of the type that the results should match with
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      serviceSupportedZones - list of supported zones for this service
      sequencingPropertyName - should the results be sequenced?
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of unique identifiers for matching beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeansByClassification

      public List<B> getBeansByClassification(String userId, String resultTypeGUID, String resultClassificationName, boolean forLineage, boolean forDuplicateProcessing, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of beans of the requested type that match the supplied classification.
      Parameters:
      userId - the name of the calling user
      resultTypeGUID - unique identifier of the type that the results should match with
      resultClassificationName - unique name of the classification that the results should match with
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      effectiveTime - the time that the retrieved elements must be effective for
      methodName - calling method
      Returns:
      list of beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • getBeanGUIDsByClassification

      public List<String> getBeanGUIDsByClassification(String userId, String resultTypeGUID, String resultClassificationName, boolean forLineage, boolean forDuplicateProcessing, int startFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of beans of the requested type that match the supplied classification.
      Parameters:
      userId - the name of the calling user
      resultTypeGUID - unique identifier of the type that the results should match with
      resultClassificationName - unique name of the classification that the results should match with
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of guids representing beans
      Throws:
      InvalidParameterException - the userId is null or invalid.
      PropertyServerException - there is a problem retrieving information from the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • linkElementToElement

      public String linkElementToElement(String userId, String externalSourceGUID, String externalSourceName, String startingGUID, String startingGUIDParameterName, String startingElementTypeName, String attachingGUID, String attachingGUIDParameterName, String attachingElementTypeName, boolean forLineage, boolean forDuplicateProcessing, String relationshipTypeGUID, String relationshipTypeName, InstanceProperties relationshipProperties, Date effectiveFrom, Date effectiveTo, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Creates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the link.
      Parameters:
      userId - userId of user making request
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      startingGUID - unique id for the starting element's entity
      startingGUIDParameterName - name of the parameter supplying the startingGUID
      startingElementTypeName - type name of the starting element's entity
      attachingGUID - unique id of the entity for the element that is being attached
      attachingGUIDParameterName - name of the parameter supplying the attachingGUID
      attachingElementTypeName - type name of the attaching element's entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      relationshipTypeGUID - unique identifier of type of the relationship to create
      relationshipTypeName - unique name of type of the relationship to create
      relationshipProperties - properties to add to the relationship or null if no properties to add
      effectiveFrom - the date when this element is active - null for active now
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      unique identifier of the new relationship
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem updating the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • linkElementToElement

      public String linkElementToElement(String userId, String externalSourceGUID, String externalSourceName, String startingGUID, String startingGUIDParameterName, String startingElementTypeName, String attachingGUID, String attachingGUIDParameterName, String attachingElementTypeName, boolean forLineage, boolean forDuplicateProcessing, String relationshipTypeGUID, String relationshipTypeName, Date effectiveFrom, Date effectiveTo, Map<String,Object> relationshipProperties, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Creates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the link.
      Parameters:
      userId - userId of user making request
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      startingGUID - unique id for the starting element's entity
      startingGUIDParameterName - name of the parameter supplying the startingGUID
      startingElementTypeName - type name of the starting element's entity
      attachingGUID - unique id of the entity for the element that is being attached
      attachingGUIDParameterName - name of the parameter supplying the attachingGUID
      attachingElementTypeName - type name of the attaching element's entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      relationshipTypeGUID - unique identifier of type of the relationship to create
      relationshipTypeName - unique name of type of the relationship to create
      effectiveFrom - the date when this element is active - null for active now
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      relationshipProperties - properties to add to the relationship or null if no properties to add
      effectiveTime - the time that the retrieved elements must be effective for
      methodName - calling method
      Returns:
      unique identifier of the new relationship
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem updating the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • linkElementToElement

      public String linkElementToElement(String userId, String externalSourceGUID, String externalSourceName, String startingElementGUID, String startingGUIDParameterName, String startingElementTypeName, String attachingElementGUID, String attachingGUIDParameterName, String attachingElementTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> suppliedSupportedZones, String attachmentTypeGUID, String attachmentTypeName, InstanceProperties relationshipProperties, Date effectiveFrom, Date effectiveTo, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Creates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the link. If the relationship already exists with matching effectivity dates, the properties are updated.
      Parameters:
      userId - userId of user making request
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      startingElementGUID - unique id for the starting element's entity
      startingGUIDParameterName - name of the parameter supplying the startingGUID
      startingElementTypeName - type name of the starting element's entity
      attachingElementGUID - unique id of the entity for the element that is being attached
      attachingGUIDParameterName - name of the parameter supplying the attachingGUID
      attachingElementTypeName - type name of the attaching element's entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
      attachmentTypeGUID - unique identifier of type of the relationship to create
      attachmentTypeName - unique name of type of the relationship to create
      relationshipProperties - properties to add to the relationship or null if no properties to add
      effectiveFrom - the date when this element is active - null for active now
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      unique identifier of the new relationship
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the relationship to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • uncheckedLinkElementToElement

      public String uncheckedLinkElementToElement(String userId, String externalSourceGUID, String externalSourceName, String startingElementGUID, String startingGUIDParameterName, String startingElementTypeName, String attachingElementGUID, String attachingGUIDParameterName, String attachingElementTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> suppliedSupportedZones, String attachmentTypeGUID, String attachmentTypeName, InstanceProperties relationshipProperties, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Creates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the link. No check is done for the relationship existence before creating it.
      Parameters:
      userId - userId of user making request
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      startingElementGUID - unique id for the starting element's entity
      startingGUIDParameterName - name of the parameter supplying the startingGUID
      startingElementTypeName - type name of the starting element's entity
      attachingElementGUID - unique id of the entity for the element that is being attached
      attachingGUIDParameterName - name of the parameter supplying the attachingGUID
      attachingElementTypeName - type name of the attaching element's entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
      attachmentTypeGUID - unique identifier of type of the relationship to create
      attachmentTypeName - unique name of type of the relationship to create
      relationshipProperties - properties to add to the relationship or null if no properties to add
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      unique identifier of the new relationship
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the relationship to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • multiLinkElementToElement

      public String multiLinkElementToElement(String userId, String externalSourceGUID, String externalSourceName, String startingElementGUID, String startingGUIDParameterName, String startingElementTypeName, String attachingElementGUID, String attachingGUIDParameterName, String attachingElementTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> suppliedSupportedZones, String attachmentTypeGUID, String attachmentTypeName, InstanceProperties relationshipProperties, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Creates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the link.
      Parameters:
      userId - userId of user making request
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      startingElementGUID - unique id for the starting element's entity
      startingGUIDParameterName - name of the parameter supplying the startingGUID
      startingElementTypeName - type name of the starting element's entity
      attachingElementGUID - unique id of the entity for the element that is being attached
      attachingGUIDParameterName - name of the parameter supplying the attachingGUID
      attachingElementTypeName - type name of the attaching element's entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
      attachmentTypeGUID - unique identifier of type of the relationship to create
      attachmentTypeName - unique name of type of the relationship to create
      relationshipProperties - properties to add to the relationship or null if no properties to add
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      unique identifier of the new relationship
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the relationship to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • updateElementToElementLink

      public void updateElementToElementLink(String userId, String externalSourceGUID, String externalSourceName, String startingGUID, String startingGUIDParameterName, String startingElementTypeName, String attachingGUID, String attachingGUIDParameterName, String attachingElementTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> suppliedSupportedZones, String attachmentTypeGUID, String attachmentTypeName, boolean isMergeUpdate, InstanceProperties relationshipProperties, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Updates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the update.
      Parameters:
      userId - userId of user making request
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      startingGUID - unique id for the starting element's entity
      startingGUIDParameterName - name of the parameter supplying the startingGUID
      startingElementTypeName - type name of the starting element's entity
      attachingGUID - unique id of the entity for the element that is being attached
      attachingGUIDParameterName - name of the parameter supplying the attachingGUID
      attachingElementTypeName - type name of the attaching element's entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
      attachmentTypeGUID - unique identifier of type of the relationship to create
      attachmentTypeName - unique name of type of the relationship to create
      isMergeUpdate - should the supplied properties be merged with existing properties (true) by replacing just the properties with matching names, or should the entire properties of the instance be replaced?
      relationshipProperties - properties to add to the relationship or null if no properties to add
      effectiveTime - the time that the retrieved elements must be effective for
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the relationship to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • updateElementToElementLink

      public void updateElementToElementLink(String userId, String externalSourceGUID, String externalSourceName, String relationshipGUID, String relationshipGUIDParameterName, String relationshipTypeName, boolean forLineage, boolean forDuplicateProcessing, boolean isMergeUpdate, Date effectiveFrom, Date effectiveTo, Map<String,Object> relationshipProperties, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Updates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the update.
      Parameters:
      userId - userId of user making request
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      relationshipGUID - unique identifier of the relationship
      relationshipGUIDParameterName - name of the parameter supplying the relationshipGUID
      relationshipTypeName - name of the relationship type
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      isMergeUpdate - should the supplied properties be merged with existing properties (true) by replacing just the properties with matching names, or should the entire properties of the instance be replaced?
      effectiveFrom - the date when this element is active - null for active now
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      relationshipProperties - properties to add to the relationship or null if no properties to add
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the relationship to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • updateElementToElementLink

      public void updateElementToElementLink(String userId, String externalSourceGUID, String externalSourceName, String relationshipGUID, String relationshipGUIDParameterName, String relationshipTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> suppliedSupportedZones, boolean isMergeUpdate, InstanceProperties relationshipProperties, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Updates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the update.
      Parameters:
      userId - userId of user making request
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      relationshipGUID - unique identifier of the relationship
      relationshipGUIDParameterName - name of the parameter supplying the relationshipGUID
      relationshipTypeName - name of the relationship type
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
      isMergeUpdate - should the supplied properties be merged with existing properties (true) by replacing just the properties with matching names, or should the entire properties of the instance be replaced?
      relationshipProperties - properties to add to the relationship or null if no properties to add
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem adding the relationship to the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • relinkElementToNewElement

      public void relinkElementToNewElement(String userId, String externalSourceGUID, String externalSourceName, String startingGUID, String startingGUIDParameterName, String startingElementTypeName, boolean startAtEnd1, String newAttachingGUID, String newAttachingGUIDParameterName, String newAttachingElementTypeName, boolean forLineage, boolean forDuplicateProcessing, String attachmentTypeGUID, String attachmentTypeName, InstanceProperties relationshipProperties, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Deleted the existing relationship between the starting element and another element then create a new relationship between the starting element and the new attaching element. If successful this updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the relinking.
      Parameters:
      userId - userId of user making request
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      startingGUID - unique id for the starting element's entity
      startingGUIDParameterName - name of the parameter supplying the startingGUID
      startingElementTypeName - type name of the starting element's entity
      startAtEnd1 - is the starting element at end 1 of the relationship
      newAttachingGUID - unique id of the entity for the element that is being attached
      newAttachingGUIDParameterName - name of the parameter supplying the newAttachingGUID
      newAttachingElementTypeName - type name of the attaching element's entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      attachmentTypeGUID - unique identifier of type of the relationship to create
      attachmentTypeName - unique name of type of the relationship to create
      relationshipProperties - properties to add to the relationship or null if no properties to add
      effectiveTime - the time that the retrieved elements must be effective for
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid; or the relationship to change is not obvious
      PropertyServerException - there is a problem adding the relationship to the repositories
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • relinkElementToNewElement

      public void relinkElementToNewElement(String userId, String externalSourceGUID, String externalSourceName, String startingGUID, String startingGUIDParameterName, String startingElementTypeName, boolean startAtEnd1, String newAttachingGUID, String newAttachingGUIDParameterName, String newAttachingElementTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> suppliedSupportedZones, String attachmentTypeGUID, String attachmentTypeName, InstanceProperties relationshipProperties, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Deleted the existing relationship between the starting element and another element then create a new relationship between the starting element and the new attaching element. If successful this updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the relinking.
      Parameters:
      userId - userId of user making request
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      startingGUID - unique id for the starting element's entity
      startingGUIDParameterName - name of the parameter supplying the startingGUID
      startingElementTypeName - type name of the starting element's entity
      startAtEnd1 - is the starting element at end 1 of the relationship
      newAttachingGUID - unique id of the entity for the element that is being attached
      newAttachingGUIDParameterName - name of the parameter supplying the newAttachingGUID
      newAttachingElementTypeName - type name of the attaching element's entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
      attachmentTypeGUID - unique identifier of type of the relationship to create
      attachmentTypeName - unique name of type of the relationship to create
      relationshipProperties - properties to add to the relationship or null if no properties to add
      effectiveTime - the time that the retrieved elements must be effective for
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid; or the relationship to change is not obvious
      PropertyServerException - there is a problem adding the relationship to the repositories
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • unlinkElementFromElement

      public void unlinkElementFromElement(String userId, boolean onlyCreatorPermitted, String externalSourceGUID, String externalSourceName, String startingGUID, String startingGUIDParameterName, String startingElementTypeName, String attachingGUID, String attachingGUIDParameterName, String attachingElementTypeGUID, String attachingElementTypeName, boolean forLineage, boolean forDuplicateProcessing, String attachmentTypeGUID, String attachmentTypeName, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Removes a relationship between two specified elements. If after the relationship is deleted, one of the ends has now lost its anchor, then that entity is deleted. Anchored entities should not be left unanchored. This can cause a cascading effect if the anchored elements are organized in a hierarchy, such as a schema or a comment conversation.
      Parameters:
      userId - userId of user making request
      onlyCreatorPermitted - operation only permitted if the userId was the same one that created the relationship
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      startingGUID - unique id for the starting element's entity
      startingGUIDParameterName - name of the parameter supplying the startingGUID
      startingElementTypeName - type name of the starting element's entity
      attachingGUID - unique id of the entity for the element that is being attached
      attachingGUIDParameterName - name of the parameter supplying the attachingGUID
      attachingElementTypeGUID - type identifier of the attaching element's entity
      attachingElementTypeName - type name of the attaching element's entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      attachmentTypeGUID - unique identifier of type of the relationship to create
      attachmentTypeName - unique name of type of the relationship to create
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem updating relationship in the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • unlinkElementFromElement

      public void unlinkElementFromElement(String userId, boolean onlyCreatorPermitted, String externalSourceGUID, String externalSourceName, String startingGUID, String startingGUIDParameterName, String startingElementTypeName, String attachedGUID, String attachedGUIDParameterName, String attachedElementTypeGUID, String attachedElementTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> suppliedSupportedZones, String attachmentTypeGUID, String attachmentTypeName, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Removes a relationship between two specified elements. If after the relationship is deleted, one of the ends has now lost its anchor, then that entity is deleted. Anchored entities should not be left unanchored. This can cause a cascading effect if the anchored elements are organized in a hierarchy, such as a schema or a comment conversation.
      Parameters:
      userId - userId of user making request
      onlyCreatorPermitted - operation only permitted if the userId was the same one that created the relationship
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      startingGUID - unique id for the starting element's entity
      startingGUIDParameterName - name of the parameter supplying the startingGUID
      startingElementTypeName - type name of the starting element's entity
      attachedGUID - unique id of the entity for the element that is being detached
      attachedGUIDParameterName - name of the parameter supplying the attachedGUID
      attachedElementTypeGUID - type GUID of the attaching element's entity
      attachedElementTypeName - type name of the attaching element's entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
      attachmentTypeGUID - unique identifier of type of the relationship to remove
      attachmentTypeName - unique name of type of the relationship to remove
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem updating relationship in the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • unlinkElementFromElement

      public void unlinkElementFromElement(String userId, boolean onlyCreatorPermitted, String externalSourceGUID, String externalSourceName, String startingGUID, String startingGUIDParameterName, String startingElementTypeName, String attachedGUID, String attachedGUIDParameterName, String attachedElementTypeGUID, String attachedElementTypeName, boolean forLineage, boolean forDuplicateProcessing, String attachmentTypeName, Relationship relationship, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Removes a relationship between two specified elements. If after the relationship is deleted, one of the ends has now lost its anchor, then that entity is deleted. Anchored entities should not be left unanchored. This can cause a cascading effect if the anchored elements are organized in a hierarchy, such as a schema or a comment conversation.
      Parameters:
      userId - userId of user making request
      onlyCreatorPermitted - operation only permitted if the userId was the same one that created the relationship
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      startingGUID - unique id for the starting element's entity
      startingGUIDParameterName - name of the parameter supplying the startingGUID
      startingElementTypeName - type name of the starting element's entity
      attachedGUID - unique id of the entity for the element that is being detached
      attachedGUIDParameterName - name of the parameter supplying the attachedGUID
      attachedElementTypeGUID - type GUID of the attaching element's entity
      attachedElementTypeName - type name of the attaching element's entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      attachmentTypeName - unique name of type of the relationship to remove
      relationship - specific relationship to remove
      effectiveTime - the time that the retrieved elements must be effective for
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem updating relationship in the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • unlinkElementFromElement

      public void unlinkElementFromElement(String userId, boolean onlyCreatorPermitted, String externalSourceGUID, String externalSourceName, String startingGUID, String startingGUIDParameterName, String startingElementTypeName, String attachedGUID, String attachedGUIDParameterName, String attachedElementTypeGUID, String attachedElementTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> suppliedSupportedZones, String attachmentTypeName, Relationship relationship, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Removes a relationship between two specified elements. If after the relationship is deleted, one of the ends has now lost its anchor, then that entity is deleted. Anchored entities should not be left unanchored. This can cause a cascading effect if the anchored elements are organized in a hierarchy, such as a schema or a comment conversation.
      Parameters:
      userId - userId of user making request
      onlyCreatorPermitted - operation only permitted if the userId was the same one that created the relationship
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      startingGUID - unique id for the starting element's entity
      startingGUIDParameterName - name of the parameter supplying the startingGUID
      startingElementTypeName - type name of the starting element's entity
      attachedGUID - unique id of the entity for the element that is being detached
      attachedGUIDParameterName - name of the parameter supplying the attachedGUID
      attachedElementTypeGUID - type GUID of the attaching element's entity
      attachedElementTypeName - type name of the attaching element's entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
      attachmentTypeName - unique name of type of the relationship to remove
      relationship - specific relationship to remove
      effectiveTime - the time that the retrieved elements must be effective for
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem updating relationship in the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • unlinkAllElements

      public void unlinkAllElements(String userId, boolean onlyCreatorPermitted, String externalSourceGUID, String externalSourceName, String startingGUID, String startingGUIDParameterName, String startingElementTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> suppliedSupportedZones, String attachmentTypeGUID, String attachmentTypeName, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Calls unlinkElementFromElement for all relationships of a certain type emanating from the requested element.
      Parameters:
      userId - userId of user making request
      onlyCreatorPermitted - operation only permitted if the userId was the same one that created the relationship
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      startingGUID - unique id for the starting element's entity
      startingGUIDParameterName - name of the parameter supplying the startingGUID
      startingElementTypeName - type name of the starting element's entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
      attachmentTypeGUID - unique identifier of type of the relationship to create
      attachmentTypeName - unique name of type of the relationship to create
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem updating the relationships in the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • unlinkConnectedElement

      public String unlinkConnectedElement(String userId, boolean onlyCreatorPermitted, String externalSourceGUID, String externalSourceName, String startingGUID, String startingGUIDParameterName, String startingElementTypeName, boolean forLineage, boolean forDuplicateProcessing, List<String> suppliedSupportedZones, String attachmentTypeGUID, String attachmentTypeName, String detachedElementTypeName, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Removes the relationship of a specific type attached to an entity. If the connected entity is anchored to the starting entity it is deleted (and linked dependent elements). There should be only one relationship. If there are more, an error is thrown.
      Parameters:
      userId - userId of user making request
      onlyCreatorPermitted - operation only permitted if the userId was the same one that created the relationship
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      startingGUID - unique id for the starting element's entity
      startingGUIDParameterName - name of the parameter supplying the startingGUID
      startingElementTypeName - type name of the starting element's entity
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
      attachmentTypeGUID - unique identifier of type of the relationship to create
      attachmentTypeName - unique name of type of the relationship to create
      detachedElementTypeName - name of type of element that will be detached
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      unique identifier of the entity that has been detached
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      PropertyServerException - there is a problem updating the relationship in the repositories.
      UserNotAuthorizedException - the requesting user is not authorized to issue this request.
    • verifyExternalSourceIdentity

      public void verifyExternalSourceIdentity(String userId, String externalSourceGUID, String externalSourceName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Verify that the integrator identities are either null or refer to a valid software capability. These values will be used to set up the
      Parameters:
      userId - calling user
      externalSourceGUID - guid of the software capability entity that represented the external source - null for local
      externalSourceName - name of the software capability entity that represented the external source
      forLineage - is this request part of a lineage service
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Throws:
      InvalidParameterException - the integrator GUID or name does not match what is in the metadata repository
      PropertyServerException - problem accessing repositories
      UserNotAuthorizedException - security access problem
    • isEntityATypeOf

      public boolean isEntityATypeOf(String userId, String guid, String guidParameterName, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Parameters:
      userId - calling user
      guid - unique identifier of the entity.
      guidParameterName - name of the parameter containing the guid.
      entityTypeName - name of the type to test for
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - the time that the retrieved elements must be effective for
      methodName - calling method
      Returns:
      boolean flag
      Throws:
      InvalidParameterException - one of the parameters is null or invalid.
      UserNotAuthorizedException - user not authorized to issue this request.
      PropertyServerException - problem retrieving the entity.