Class OpenMetadataClientBase

java.lang.Object
org.odpi.openmetadata.frameworks.governanceaction.client.OpenMetadataClient
org.odpi.openmetadata.frameworkservices.gaf.client.OpenMetadataClientBase
All Implemented Interfaces:
ExternalIdentifiersInterface, MetadataElementInterface, MultiLanguageInterface, OpenMetadataTypesInterface, StewardshipRequestInterface, ValidMetadataValuesInterface
Direct Known Subclasses:
OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreClient, OpenMetadataStoreHandler

public abstract class OpenMetadataClientBase extends OpenMetadataClient
OpenMetadataClientBase provides an interface to the open metadata store. This is part of the Governance Action Framework (GAF) and provides a comprehensive interface for working with all types of metadata, subject to the user's (and this OMAS's) security permissions. The interface supports search, maintenance of metadata elements, classifications and relationships plus the ability to raise incident reports and todos along with the ability to work with metadata valid values and translations.
  • Field Details

  • Constructor Details

    • OpenMetadataClientBase

      public OpenMetadataClientBase(String serviceURLMarker, String serverName, String serverPlatformURLRoot, int maxPageSize) throws InvalidParameterException
      Create a new client with no authentication embedded in the HTTP request.
      Parameters:
      serviceURLMarker - the identifier of the access service (for example asset-owner for the Asset Owner OMAS)
      serverName - name of the server to connect to
      serverPlatformURLRoot - the network address of the server running the OMAS REST services
      maxPageSize - maximum value allowed for page size
      Throws:
      InvalidParameterException - there is a problem creating the client-side components to issue any REST API calls.
    • OpenMetadataClientBase

      public OpenMetadataClientBase(String serviceURLMarker, String serverName, String serverPlatformURLRoot, String serverUserId, String serverPassword, int maxPageSize) throws InvalidParameterException
      Create a new client that passes userId and password in each HTTP request. This is the userId/password of the calling server. The end user's userId is sent on each request.
      Parameters:
      serviceURLMarker - the identifier of the access service (for example asset-owner for the Asset Owner OMAS)
      serverName - name of the server to connect to
      serverPlatformURLRoot - the network address of the server running the OMAS REST services
      serverUserId - caller's userId embedded in all HTTP requests
      serverPassword - caller's password embedded in all HTTP requests
      maxPageSize - maximum value allowed for page size
      Throws:
      InvalidParameterException - there is a problem creating the client-side components to issue any REST API calls.
    • OpenMetadataClientBase

      public OpenMetadataClientBase(String serviceURLMarker, String serverName, String serverPlatformURLRoot, GAFRESTClient restClient, int maxPageSize) throws InvalidParameterException
      Create a new client that passes userId and password in each HTTP request. This is the userId/password of the calling server. The end user's userId is sent on each request.
      Parameters:
      serviceURLMarker - the identifier of the access service (for example asset-owner for the Asset Owner OMAS)
      serverName - name of the server to connect to
      serverPlatformURLRoot - the network address of the server running the OMAS REST services
      restClient - pre-initialized REST client
      maxPageSize - pre-initialized parameter limit
      Throws:
      InvalidParameterException - there is a problem with the information about the remote OMAS
  • Method Details

    • setMaxPageSize

      public void setMaxPageSize(int maxPageSize)
      Set the max page size.
      Parameters:
      maxPageSize - pre-initialized parameter limit
    • getMaxPagingSize

      public int getMaxPagingSize()
      Get the maximum paging size.
      Specified by:
      getMaxPagingSize in class OpenMetadataClient
      Returns:
      maxPagingSize new value
    • getAllTypes

      Returns the list of different types of metadata organized into two groups. The first are the attribute type definitions (AttributeTypeDefs). These provide types for properties in full type definitions. Full type definitions (TypeDefs) describe types for entities, relationships and classifications.
      Specified by:
      getAllTypes in interface OpenMetadataTypesInterface
      Specified by:
      getAllTypes in class OpenMetadataClient
      Parameters:
      userId - unique identifier for requesting user.
      Returns:
      TypeDefGallery List of different categories of type definitions.
      Throws:
      InvalidParameterException - the userId is null
      PropertyServerException - there is a problem communicating with the metadata repository.
      UserNotAuthorizedException - the userId is not permitted to perform this operation.
    • findTypeDefsByCategory

      Returns all the TypeDefs for a specific category.
      Specified by:
      findTypeDefsByCategory in interface OpenMetadataTypesInterface
      Specified by:
      findTypeDefsByCategory in class OpenMetadataClient
      Parameters:
      userId - unique identifier for requesting user.
      category - enum value for the category of TypeDef to return.
      Returns:
      TypeDefs list.
      Throws:
      InvalidParameterException - the TypeDefCategory is null.
      PropertyServerException - there is a problem communicating with the metadata repository.
      UserNotAuthorizedException - the userId is not permitted to perform this operation.
    • findAttributeTypeDefsByCategory

      Returns all the AttributeTypeDefs for a specific category.
      Specified by:
      findAttributeTypeDefsByCategory in interface OpenMetadataTypesInterface
      Specified by:
      findAttributeTypeDefsByCategory in class OpenMetadataClient
      Parameters:
      userId - unique identifier for requesting user.
      category - enum value for the category of an AttributeTypeDef to return.
      Returns:
      AttributeTypeDefs list.
      Throws:
      InvalidParameterException - the TypeDefCategory is null.
      PropertyServerException - there is a problem communicating with the metadata repository.
      UserNotAuthorizedException - the userId is not permitted to perform this operation.
    • findTypesByExternalId

      public List<OpenMetadataTypeDef> findTypesByExternalId(String userId, String standard, String organization, String identifier) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the types that are linked to the elements from the specified standard.
      Specified by:
      findTypesByExternalId in interface OpenMetadataTypesInterface
      Specified by:
      findTypesByExternalId in class OpenMetadataClient
      Parameters:
      userId - unique identifier for requesting user.
      standard - name of the standard null means any.
      organization - name of the organization null means any.
      identifier - identifier of the element in the standard null means any.
      Returns:
      TypeDefs list each entry in the list contains a TypeDef. This is a structure describing the TypeDef's category and properties.
      Throws:
      InvalidParameterException - all attributes of the external id are null.
      PropertyServerException - there is a problem communicating with the metadata repository.
      UserNotAuthorizedException - the userId is not permitted to perform this operation.
    • getSubTypes

      Returns all the TypeDefs for a specific subtype. If a null result is returned it means the type has no subtypes. *
      Specified by:
      getSubTypes in interface OpenMetadataTypesInterface
      Specified by:
      getSubTypes in class OpenMetadataClient
      Parameters:
      userId - unique identifier for requesting user.
      typeName - name of the standard null means any.
      Returns:
      TypeDefs list each entry in the list contains a TypeDef. This is a structure describing the TypeDef's category and properties. If null is returned as the TypeDef list it means the type has no known subtypes
      Throws:
      InvalidParameterException - all attributes of the external id are null.
      PropertyServerException - there is a problem communicating with the metadata repository.
      UserNotAuthorizedException - the userId is not permitted to perform this operation.
    • getTypeDefByGUID

      Return the TypeDef identified by the GUID.
      Specified by:
      getTypeDefByGUID in interface OpenMetadataTypesInterface
      Specified by:
      getTypeDefByGUID in class OpenMetadataClient
      Parameters:
      userId - unique identifier for requesting user.
      guid - String unique id of the TypeDef
      Returns:
      TypeDef structure describing its category and properties.
      Throws:
      InvalidParameterException - the guid is null.
      PropertyServerException - there is a problem communicating with the metadata repository where the metadata collection is stored.
      UserNotAuthorizedException - the userId is not permitted to perform this operation.
    • getAttributeTypeDefByGUID

      Return the AttributeTypeDef identified by the GUID.
      Specified by:
      getAttributeTypeDefByGUID in interface OpenMetadataTypesInterface
      Specified by:
      getAttributeTypeDefByGUID in class OpenMetadataClient
      Parameters:
      userId - unique identifier for requesting user.
      guid - String unique id of the TypeDef
      Returns:
      TypeDef structure describing its category and properties.
      Throws:
      InvalidParameterException - the guid is null.
      PropertyServerException - there is a problem communicating with the metadata repository where the metadata collection is stored.
      UserNotAuthorizedException - the userId is not permitted to perform this operation.
    • getTypeDefByName

      Return the TypeDef identified by the unique name.
      Specified by:
      getTypeDefByName in interface OpenMetadataTypesInterface
      Specified by:
      getTypeDefByName in class OpenMetadataClient
      Parameters:
      userId - unique identifier for requesting user.
      name - String name of the TypeDef.
      Returns:
      TypeDef structure describing its category and properties.
      Throws:
      InvalidParameterException - the name is null.
      PropertyServerException - there is a problem communicating with the metadata repository where the metadata collection is stored.
      UserNotAuthorizedException - the userId is not permitted to perform this operation.
    • getAttributeTypeDefByName

      Return the AttributeTypeDef identified by the unique name.
      Specified by:
      getAttributeTypeDefByName in interface OpenMetadataTypesInterface
      Specified by:
      getAttributeTypeDefByName in class OpenMetadataClient
      Parameters:
      userId - unique identifier for requesting user.
      name - String name of the TypeDef.
      Returns:
      TypeDef structure describing its category and properties.
      Throws:
      InvalidParameterException - the name is null.
      PropertyServerException - there is a problem communicating with the metadata repository where the metadata collection is stored.
      UserNotAuthorizedException - the userId is not permitted to perform this operation.
    • getMetadataElementByGUID

      public OpenMetadataElement getMetadataElementByGUID(String userId, String elementGUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the metadata element using its unique identifier.
      Specified by:
      getMetadataElementByGUID in interface MetadataElementInterface
      Specified by:
      getMetadataElementByGUID in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      elementGUID - unique identifier for the metadata element
      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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      Returns:
      metadata element properties
      Throws:
      InvalidParameterException - the unique identifier is null or not known.
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • getMetadataElementByUniqueName

      public OpenMetadataElement getMetadataElementByUniqueName(String userId, String uniqueName, String uniquePropertyName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the metadata element using its unique name (typically the qualified name).
      Specified by:
      getMetadataElementByUniqueName in interface MetadataElementInterface
      Specified by:
      getMetadataElementByUniqueName in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      uniqueName - unique name for the metadata element
      uniquePropertyName - name of property name to test in the open metadata element - if null "qualifiedName" is used
      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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      Returns:
      metadata element properties or null if not found
      Throws:
      InvalidParameterException - the unique identifier is null.
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • getDeletedElementByUniqueName

      public OpenMetadataElement getDeletedElementByUniqueName(String userId, String uniqueName, String uniquePropertyName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the metadata element using its unique name (typically the qualified name) and the DELETED status. This method assumes all effective dates, and forLineage and forDuplicateProcessing are false, to cast the widest net.
      Specified by:
      getDeletedElementByUniqueName in interface MetadataElementInterface
      Specified by:
      getDeletedElementByUniqueName in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      uniqueName - unique name for the metadata element
      uniquePropertyName - name of property name to test in the open metadata element - if null "qualifiedName" is used
      Returns:
      metadata element properties or null if not found
      Throws:
      InvalidParameterException - the unique identifier is null.
      UserNotAuthorizedException - the governance action service is not able to access the element
      PropertyServerException - there is a problem accessing the metadata store
    • getMetadataElementGUIDByUniqueName

      public String getMetadataElementGUIDByUniqueName(String userId, String uniqueName, String uniquePropertyName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the unique identifier of a metadata element using its unique name (typically the qualified name).
      Specified by:
      getMetadataElementGUIDByUniqueName in interface MetadataElementInterface
      Specified by:
      getMetadataElementGUIDByUniqueName in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      uniqueName - unique name for the metadata element
      uniquePropertyName - name of property name to test in the open metadata element - if null "qualifiedName" is used
      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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      Returns:
      metadata element unique identifier (guid)
      Throws:
      InvalidParameterException - the unique name is null or not known.
      UserNotAuthorizedException - the caller's userId is not able to access the element
      PropertyServerException - there is a problem accessing the metadata store
    • findMetadataElementsWithString

      public List<OpenMetadataElement> findMetadataElementsWithString(String userId, String searchString, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the metadata elements that contain the requested string.
      Specified by:
      findMetadataElementsWithString in interface MetadataElementInterface
      Specified by:
      findMetadataElementsWithString in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      searchString - name to retrieve
      forLineage - the retrieved elements are for lineage processing so include archived elements
      forDuplicateProcessing - the retrieved elements are for duplicate processing so do not combine results from known duplicates.
      effectiveTime - only return an element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      Returns:
      list of matching metadata elements (or null if no elements match the name)
      Throws:
      InvalidParameterException - the qualified name is null
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • findMetadataElementsWithString

      public List<OpenMetadataElement> findMetadataElementsWithString(String userId, String searchString, String typeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the metadata elements of the requested type that contain the requested string.
      Specified by:
      findMetadataElementsWithString in interface MetadataElementInterface
      Specified by:
      findMetadataElementsWithString in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      searchString - name to retrieve
      typeName - name of the type to limit the results to (maybe null to mean all types)
      forLineage - the retrieved elements are for lineage processing so include archived elements
      forDuplicateProcessing - the retrieved elements are for duplicate processing so do not combine results from known duplicates.
      effectiveTime - only return an element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      Returns:
      list of matching metadata elements (or null if no elements match the name)
      Throws:
      InvalidParameterException - the qualified name is null
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • getRelatedMetadataElements

      public List<RelatedMetadataElement> getRelatedMetadataElements(String userId, String elementGUID, int startingAtEnd, String relationshipTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the metadata elements connected to the supplied element.
      Specified by:
      getRelatedMetadataElements in interface MetadataElementInterface
      Specified by:
      getRelatedMetadataElements in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      elementGUID - unique identifier for the starting metadata element
      startingAtEnd - indicates which end to retrieve from (0 is "either end"; 1 is end1; 2 is end 2)
      relationshipTypeName - type name of relationships to follow (or null for all)
      forLineage - the retrieved element is for lineage processing so include archived elements
      forDuplicateProcessing - the retrieved elements are for duplicate processing so do not combine results from known duplicates.
      effectiveTime - only return an element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      Returns:
      list of related elements
      Throws:
      InvalidParameterException - the unique identifier is null or not known; the relationship type is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • getRelatedMetadataElement

      public RelatedMetadataElement getRelatedMetadataElement(String userId, String elementGUID, int startingAtEnd, String relationshipTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the metadata element connected to the supplied element for a relationship type that only allows one relationship to be attached.
      Specified by:
      getRelatedMetadataElement in interface MetadataElementInterface
      Specified by:
      getRelatedMetadataElement in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      elementGUID - unique identifier for the starting metadata element
      startingAtEnd - indicates which end to retrieve from (0 is "either end"; 1 is end1; 2 is end 2)
      relationshipTypeName - type name of relationships to follow (or null for all)
      forLineage - the retrieved element is for lineage processing so include archived elements
      forDuplicateProcessing - the retrieved elements are for duplicate processing so do not combine results from known duplicates.
      effectiveTime - only return an element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      Returns:
      list of related elements
      Throws:
      InvalidParameterException - the unique identifier is null or not known; the relationship type is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store or multiple relationships have been returned
    • getMetadataElementHistory

      public List<OpenMetadataElement> getMetadataElementHistory(String userId, String elementGUID, Date fromTime, Date toTime, boolean oldestFirst, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return each of the versions of a metadata element.
      Specified by:
      getMetadataElementHistory in interface MetadataElementInterface
      Specified by:
      getMetadataElementHistory in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      elementGUID - unique identifier for the metadata element
      fromTime - the earliest point in time from which to retrieve historical versions of the entity (inclusive)
      toTime - the latest point in time from which to retrieve historical versions of the entity (exclusive)
      oldestFirst - 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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      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 are is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation.
      PropertyServerException - there is a problem accessing the metadata store
    • getMetadataElementRelationships

      public List<OpenMetadataRelationship> getMetadataElementRelationships(String userId, String metadataElementAtEnd1GUID, String metadataElementAtEnd2GUID, String relationshipTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the relationships linking to the supplied elements.
      Specified by:
      getMetadataElementRelationships in interface MetadataElementInterface
      Specified by:
      getMetadataElementRelationships in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      metadataElementAtEnd1GUID - unique identifier of the metadata element at end 1 of the relationship
      metadataElementAtEnd2GUID - unique identifier of the metadata element at end 2 of the relationship
      relationshipTypeName - type name of relationships to follow (or null for all)
      forLineage - the retrieved element is for lineage processing so include archived elements
      forDuplicateProcessing - the retrieved elements are for duplicate processing so do not combine results from known duplicates.
      effectiveTime - only return an element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      Returns:
      list of related elements
      Throws:
      InvalidParameterException - the unique identifier is null or not known; the relationship type is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • getMetadataElementsByClassificationPropertyValue

      public List<OpenMetadataElement> getMetadataElementsByClassificationPropertyValue(String userId, String metadataElementTypeName, List<String> metadataElementSubtypeNames, String classificationName, String classificationPropertyName, String classificationPropertyValue, List<ElementStatus> limitResultsByStatus, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve metadata elements with any of the supplied list of property names similar to the supplied value.
      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.
      classificationName - name of the classification
      classificationPropertyName - property name to match against
      classificationPropertyValue - value to match against
      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.
      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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      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 are is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • getMetadataElementsByClassificationPropertyValue

      public List<OpenMetadataElement> getMetadataElementsByClassificationPropertyValue(String userId, String metadataElementTypeName, List<String> metadataElementSubtypeNames, String classificationName, String classificationPropertyName, int classificationPropertyValue, List<ElementStatus> limitResultsByStatus, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve metadata elements with any of the supplied list of property names similar to the supplied value.
      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.
      classificationName - name of the classification
      classificationPropertyName - property name to match against
      classificationPropertyValue - value to match against
      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.
      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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      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 are is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • findMetadataElementsByClassificationPropertyValue

      public List<OpenMetadataElement> findMetadataElementsByClassificationPropertyValue(String userId, String metadataElementTypeName, List<String> metadataElementSubtypeNames, String classificationName, String classificationPropertyName, String classificationPropertyValue, List<ElementStatus> limitResultsByStatus, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve metadata elements with any of the supplied list of property names similar to the supplied value.
      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.
      classificationName - name of the classification
      classificationPropertyName - property name to match against
      classificationPropertyValue - value to match against
      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.
      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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      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 are is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • getMetadataElementsByClassificationPropertyValue

      public List<OpenMetadataElement> getMetadataElementsByClassificationPropertyValue(String userId, String metadataElementTypeName, List<String> metadataElementSubtypeNames, String classificationName, List<String> classificationPropertyNames, String classificationPropertyValue, List<ElementStatus> limitResultsByStatus, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve metadata elements with the requested classification containing any of the supplied list of property names exactly matching the supplied value.
      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.
      classificationName - name of the classification
      classificationPropertyNames - property name to match against
      classificationPropertyValue - value to match against
      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.
      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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      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 are is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • findMetadataElementsByClassificationPropertyValue

      public List<OpenMetadataElement> findMetadataElementsByClassificationPropertyValue(String userId, String metadataElementTypeName, List<String> metadataElementSubtypeNames, String classificationName, List<String> classificationPropertyNames, String classificationPropertyValue, List<ElementStatus> limitResultsByStatus, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve metadata elements with the requested classification containing any of the supplied list of property names exactly matching the supplied value.
      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.
      classificationName - name of the classification
      classificationPropertyNames - property name to match against
      classificationPropertyValue - value to match against
      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.
      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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      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 are is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • getMetadataElementsByClassification

      public List<OpenMetadataElement> getMetadataElementsByClassification(String userId, String metadataElementTypeName, List<String> metadataElementSubtypeNames, String classificationName, List<ElementStatus> limitResultsByStatus, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve metadata elements with any of the supplied list of property names similar to the supplied value.
      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.
      classificationName - name of the classification
      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.
      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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      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 are is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • getMetadataElementsByPropertyValue

      public List<OpenMetadataElement> getMetadataElementsByPropertyValue(String userId, String metadataElementTypeName, List<String> metadataElementSubtypeNames, String propertyName, String propertyValue, List<ElementStatus> limitResultsByStatus, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve metadata elements with any of the supplied list of property names similar to the supplied value.
      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.
      propertyName - property name to match against
      propertyValue - value to match against
      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.
      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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      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 are is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • findMetadataElementsByPropertyValue

      public List<OpenMetadataElement> findMetadataElementsByPropertyValue(String userId, String metadataElementTypeName, List<String> metadataElementSubtypeNames, String propertyName, String propertyValue, List<ElementStatus> limitResultsByStatus, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve metadata elements with any of the supplied list of property names similar to the supplied value.
      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.
      propertyName - property name to match against
      propertyValue - value to match against
      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.
      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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      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 are is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • getMetadataElementsByPropertyValue

      public List<OpenMetadataElement> getMetadataElementsByPropertyValue(String userId, String metadataElementTypeName, List<String> metadataElementSubtypeNames, List<String> propertyNames, String propertyValue, List<ElementStatus> limitResultsByStatus, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve metadata elements with any of the supplied list of property names similar to the supplied value.
      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.
      propertyNames - list of property names to match against
      propertyValue - value to match against
      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.
      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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      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 are is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • findMetadataElementsByPropertyValue

      public List<OpenMetadataElement> findMetadataElementsByPropertyValue(String userId, String metadataElementTypeName, List<String> metadataElementSubtypeNames, List<String> propertyNames, String propertyValue, List<ElementStatus> limitResultsByStatus, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve metadata elements with any of the supplied list of property names set (exactly) to the supplied value.
      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.
      propertyNames - list of property names to match against
      propertyValue - value to match against
      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.
      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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      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 are is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • findMetadataElements

      public List<OpenMetadataElement> findMetadataElements(String userId, String metadataElementTypeName, List<String> metadataElementSubtypeNames, SearchProperties searchProperties, List<ElementStatus> limitResultsByStatus, Date asOfTime, SearchClassifications matchClassifications, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return a list of metadata elements that match the supplied criteria. The results can be returned over many pages.
      Specified by:
      findMetadataElements in interface MetadataElementInterface
      Specified by:
      findMetadataElements in class OpenMetadataClient
      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.
      asOfTime - Requests a historical query of the entity. Null means return the present values.
      matchClassifications - Optional list of classifications to match.
      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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      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 are is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • findRelationshipsBetweenMetadataElements

      public List<OpenMetadataRelationship> findRelationshipsBetweenMetadataElements(String userId, String relationshipTypeName, SearchProperties searchProperties, List<ElementStatus> limitResultsByStatus, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return a list of relationships that match the requested conditions. The results can be received as a series of pages.
      Specified by:
      findRelationshipsBetweenMetadataElements in interface MetadataElementInterface
      Specified by:
      findRelationshipsBetweenMetadataElements in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      relationshipTypeName - relationship's type. Null means all types (but may be slow so not recommended).
      limitResultsByStatus - By default, relationships in all statuses (other than DELETE) are returned. However, it is possible to specify a list of statuses (for example ACTIVE) to restrict the results to. Null means all status values.
      asOfTime - Requests a historical query of the entity. Null means return the present values.
      searchProperties - Optional list of relationship property conditions to match.
      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 elements are for lineage processing so include archived elements
      forDuplicateProcessing - the retrieved element is for duplicate processing so do not combine results from known duplicates.
      effectiveTime - only return an element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      startFrom - paging start point
      pageSize - maximum results that can be returned
      Returns:
      a list of relationships. Null means no matching relationships.
      Throws:
      InvalidParameterException - one of the search parameters are is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • getRelationshipByGUID

      public OpenMetadataRelationship getRelationshipByGUID(String userId, String relationshipGUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the relationship using its unique identifier.
      Specified by:
      getRelationshipByGUID in interface MetadataElementInterface
      Specified by:
      getRelationshipByGUID in class OpenMetadataClient
      Parameters:
      relationshipGUID - unique identifier for the relationship
      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.
      effectiveTime - only return the element if it is effective at this time. Null means anytime. Use "new Date()" for now.
      userId - caller's userId
      Returns:
      relationship properties
      Throws:
      InvalidParameterException - the unique identifier is null or not known.
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem accessing the metadata store
    • createMetadataElementInStore

      public String createMetadataElementInStore(String userId, String metadataElementTypeName, ElementStatus initialStatus, Date effectiveFrom, Date effectiveTo, ElementProperties properties) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a new metadata element in the metadata store. The type name comes from the open metadata types. The selected type also controls the names and types of the properties that are allowed. This version of the method allows access to advanced features such as multiple states and effectivity dates.
      Specified by:
      createMetadataElementInStore in interface MetadataElementInterface
      Specified by:
      createMetadataElementInStore in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      metadataElementTypeName - type name of the new metadata element
      initialStatus - initial status of the metadata element
      effectiveFrom - the date when this element is active - null for active on creation
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      properties - properties of the new metadata element
      Returns:
      unique identifier of the new metadata element
      Throws:
      InvalidParameterException - the type name, status or one of the properties is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • createMetadataElementInStore

      public String createMetadataElementInStore(String userId, String externalSourceGUID, String externalSourceName, String metadataElementTypeName, ElementStatus initialStatus, Date effectiveFrom, Date effectiveTo, ElementProperties properties) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a new metadata element in the metadata store. The type name comes from the open metadata types. The selected type also controls the names and types of the properties that are allowed. This version of the method allows access to advanced features such as multiple states and effectivity dates.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      metadataElementTypeName - type name of the new metadata element
      initialStatus - initial status of the metadata element
      effectiveFrom - the date when this element is active - null for active on creation
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      properties - properties of the new metadata element
      Returns:
      unique identifier of the new metadata element
      Throws:
      InvalidParameterException - the type name, status or one of the properties is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • createMetadataElementInStore

      public String createMetadataElementInStore(String userId, String metadataElementTypeName, ElementStatus initialStatus, Map<String,ElementProperties> initialClassifications, String anchorGUID, boolean isOwnAnchor, Date effectiveFrom, Date effectiveTo, ElementProperties properties, String parentGUID, String parentRelationshipTypeName, ElementProperties parentRelationshipProperties, boolean parentAtEnd1) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a new metadata element in the metadata store. The type name comes from the open metadata types. The selected type also controls the names and types of the properties that are allowed. This version of the method allows access to advanced features such as multiple states and effectivity dates.
      Specified by:
      createMetadataElementInStore in interface MetadataElementInterface
      Specified by:
      createMetadataElementInStore in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      metadataElementTypeName - type name of the new metadata element
      initialStatus - initial status of the metadata element
      initialClassifications - map of classification names to classification properties to include in the entity creation request
      anchorGUID - unique identifier of the element that should be the anchor for the new element. Set to null if no anchor, or the Anchors classification is included in the initial classifications.
      isOwnAnchor - boolean flag to day that the element should be classified as its own anchor once its element is created in the repository.
      effectiveFrom - the date when this element is active - null for active on creation
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      properties - properties of the new metadata element
      parentGUID - unique identifier of optional parent entity
      parentRelationshipTypeName - type of relationship to connect the new element to the parent
      parentRelationshipProperties - properties to include in parent relationship
      parentAtEnd1 - which end should the parent GUID go in the relationship
      Returns:
      unique identifier of the new metadata element
      Throws:
      InvalidParameterException - the type name, status or one of the properties is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • createMetadataElementInStore

      public String createMetadataElementInStore(String userId, String externalSourceGUID, String externalSourceName, String metadataElementTypeName, ElementStatus initialStatus, Map<String,ElementProperties> initialClassifications, String anchorGUID, boolean isOwnAnchor, Date effectiveFrom, Date effectiveTo, ElementProperties properties, String parentGUID, String parentRelationshipTypeName, ElementProperties parentRelationshipProperties, boolean parentAtEnd1) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a new metadata element in the metadata store. The type name comes from the open metadata types. The selected type also controls the names and types of the properties that are allowed. This version of the method allows access to advanced features such as multiple states and effectivity dates.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      metadataElementTypeName - type name of the new metadata element
      initialStatus - initial status of the metadata element
      initialClassifications - map of classification names to classification properties to include in the entity creation request
      anchorGUID - unique identifier of the element that should be the anchor for the new element. Set to null if no anchor, or the Anchors classification is included in the initial classifications.
      isOwnAnchor - boolean flag to day that the element should be classified as its own anchor once its element is created in the repository.
      effectiveFrom - the date when this element is active - null for active on creation
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      properties - properties of the new metadata element
      parentGUID - unique identifier of optional parent entity
      parentRelationshipTypeName - type of relationship to connect the new element to the parent
      parentRelationshipProperties - properties to include in parent relationship
      parentAtEnd1 - which end should the parent GUID go in the relationship
      Returns:
      unique identifier of the new metadata element
      Throws:
      InvalidParameterException - the type name, status or one of the properties is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • createMetadataElementFromTemplate

      public String createMetadataElementFromTemplate(String userId, String metadataElementTypeName, String anchorGUID, boolean isOwnAnchor, Date effectiveFrom, Date effectiveTo, String templateGUID, ElementProperties replacementProperties, Map<String,String> placeholderProperties, String parentGUID, String parentRelationshipTypeName, ElementProperties parentRelationshipProperties, boolean parentAtEnd1) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a new metadata element in the metadata store. The type name comes from the open metadata types. The selected type also controls the names and types of the properties that are allowed. This version of the method allows access to advanced features such as multiple states and effectivity dates.
      Specified by:
      createMetadataElementFromTemplate in interface MetadataElementInterface
      Specified by:
      createMetadataElementFromTemplate in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      metadataElementTypeName - type name of the new metadata element
      anchorGUID - unique identifier of the element that should be the anchor for the new element. Set to null if no anchor, or the Anchors classification is included in the initial classifications.
      isOwnAnchor - boolean flag to day that the element should be classified as its own anchor once its element is created in the repository.
      effectiveFrom - the date when this element is active - null for active on creation
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      templateGUID - the unique identifier of the existing asset to copy (this will copy all the attachments such as nested content, schema connection etc)
      replacementProperties - properties of the new metadata element. These override the template values
      placeholderProperties - property name-to-property value map to replace any placeholder values in the template element - and their anchored elements, which are also copied as part of this operation.
      parentGUID - unique identifier of optional parent entity
      parentRelationshipTypeName - type of relationship to connect the new element to the parent
      parentRelationshipProperties - properties to include in parent relationship
      parentAtEnd1 - which end should the parent GUID go in the relationship
      Returns:
      unique identifier of the new metadata element
      Throws:
      InvalidParameterException - the type name, status or one of the properties is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • createMetadataElementFromTemplate

      public String createMetadataElementFromTemplate(String userId, String externalSourceGUID, String externalSourceName, String metadataElementTypeName, String anchorGUID, boolean isOwnAnchor, Date effectiveFrom, Date effectiveTo, String templateGUID, ElementProperties replacementProperties, Map<String,String> placeholderProperties, String parentGUID, String parentRelationshipTypeName, ElementProperties parentRelationshipProperties, boolean parentAtEnd1) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a new metadata element in the metadata store using the template identified by the templateGUID. The type name comes from the open metadata types. The selected type also controls the names and types of the properties that are allowed. The template and any similar anchored objects are copied in this process.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      metadataElementTypeName - type name of the new metadata element
      anchorGUID - unique identifier of the element that should be the anchor for the new element. Set to null if no anchor, or the Anchors classification is included in the initial classifications.
      isOwnAnchor - boolean flag to day that the element should be classified as its own anchor once its element is created in the repository.
      effectiveFrom - the date when this element is active - null for active on creation
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      templateGUID - the unique identifier of the existing asset to copy (this will copy all the attachments such as nested content, schema connection etc)
      replacementProperties - properties of the new metadata element. These override the template values
      placeholderProperties - property name-to-property value map to replace any placeholder values in the template element - and their anchored elements, which are also copied as part of this operation.
      parentGUID - unique identifier of optional parent entity
      parentRelationshipTypeName - type of relationship to connect the new element to the parent
      parentRelationshipProperties - properties to include in parent relationship
      parentAtEnd1 - which end should the parent GUID go in the relationship
      Returns:
      unique identifier of the new metadata element
      Throws:
      InvalidParameterException - the type name, status or one of the properties is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • getMetadataElementFromTemplate

      public String getMetadataElementFromTemplate(String userId, String externalSourceGUID, String externalSourceName, String metadataElementTypeName, String anchorGUID, boolean isOwnAnchor, Date effectiveFrom, Date effectiveTo, String templateGUID, ElementProperties replacementProperties, Map<String,String> placeholderProperties, String parentGUID, String parentRelationshipTypeName, ElementProperties parentRelationshipProperties, boolean parentAtEnd1) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a new metadata element in the metadata store using the template identified by the templateGUID. The type name comes from the open metadata types. The selected type also controls the names and types of the properties that are allowed. The template and any similar anchored objects are copied in this process.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      metadataElementTypeName - type name of the new metadata element
      anchorGUID - unique identifier of the element that should be the anchor for the new element. Set to null if no anchor, or the Anchors classification is included in the initial classifications.
      isOwnAnchor - boolean flag to day that the element should be classified as its own anchor once its element is created in the repository.
      effectiveFrom - the date when this element is active - null for active on creation
      effectiveTo - the date when this element becomes inactive - null for active until deleted
      templateGUID - the unique identifier of the existing asset to copy (this will copy all the attachments such as nested content, schema connection etc)
      replacementProperties - properties of the new metadata element. These override the template values
      placeholderProperties - property name-to-property value map to replace any placeholder values in the template element - and their anchored elements, which are also copied as part of this operation.
      parentGUID - unique identifier of optional parent entity
      parentRelationshipTypeName - type of relationship to connect the new element to the parent
      parentRelationshipProperties - properties to include in parent relationship
      parentAtEnd1 - which end should the parent GUID go in the relationship
      Returns:
      unique identifier of the new metadata element
      Throws:
      InvalidParameterException - the type name, status or one of the properties is invalid
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • updateMetadataElementInStore

      public void updateMetadataElementInStore(String userId, String metadataElementGUID, boolean replaceAllProperties, boolean forLineage, boolean forDuplicateProcessing, ElementProperties properties, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the properties of a specific metadata element. The properties must match the type definition associated with the metadata element when it was created. However, it is possible to update a few properties, or replace all them by the value used in the replaceProperties flag.
      Specified by:
      updateMetadataElementInStore in interface MetadataElementInterface
      Specified by:
      updateMetadataElementInStore in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      metadataElementGUID - unique identifier of the metadata element to update
      replaceAllProperties - flag to indicate whether to completely replace the existing properties with the new properties, or just update the individual properties specified on the request.
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      properties - new properties for the metadata element
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Throws:
      InvalidParameterException - either the unique identifier or the properties are invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • updateMetadataElementInStore

      public void updateMetadataElementInStore(String userId, String externalSourceGUID, String externalSourceName, String metadataElementGUID, boolean replaceProperties, boolean forLineage, boolean forDuplicateProcessing, ElementProperties properties, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the properties of a specific metadata element. The properties must match the type definition associated with the metadata element when it was created. However, it is possible to update a few properties, or replace all them by the value used in the replaceProperties flag.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      metadataElementGUID - unique identifier of the metadata element to update
      replaceProperties - flag to indicate whether to completely replace the existing properties with the new properties, or just update the individual properties specified on the request.
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      properties - new properties for the metadata element
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Throws:
      InvalidParameterException - either the unique identifier or the properties are invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • updateMetadataElementStatusInStore

      public void updateMetadataElementStatusInStore(String userId, String metadataElementGUID, boolean forLineage, boolean forDuplicateProcessing, ElementStatus newElementStatus, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the status of specific metadata element. The new status must match a status value that is defined for the element's type assigned when it was created. The effectivity dates control the visibility of the element through specific APIs.
      Specified by:
      updateMetadataElementStatusInStore in interface MetadataElementInterface
      Specified by:
      updateMetadataElementStatusInStore in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      metadataElementGUID - unique identifier of the metadata element to update
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      newElementStatus - new status value - or null to leave as is
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Throws:
      InvalidParameterException - either the unique identifier or the status are invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • updateMetadataElementStatusInStore

      public void updateMetadataElementStatusInStore(String userId, String externalSourceGUID, String externalSourceName, String metadataElementGUID, boolean forLineage, boolean forDuplicateProcessing, ElementStatus newElementStatus, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the status of specific metadata element. The new status must match a status value that is defined for the element's type assigned when it was created. The effectivity dates control the visibility of the element through specific APIs.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      metadataElementGUID - unique identifier of the metadata element to update
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      newElementStatus - new status value - or null to leave as is
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Throws:
      InvalidParameterException - either the unique identifier or the status are invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • updateMetadataElementEffectivityInStore

      public void updateMetadataElementEffectivityInStore(String userId, String metadataElementGUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveFrom, Date effectiveTo, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the status of specific metadata element. The new status must match a status value that is defined for the element's type assigned when it was created. The effectivity dates control the visibility of the element through specific APIs.
      Specified by:
      updateMetadataElementEffectivityInStore in interface MetadataElementInterface
      Specified by:
      updateMetadataElementEffectivityInStore in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      metadataElementGUID - unique identifier of the metadata element to update
      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
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Throws:
      InvalidParameterException - either the unique identifier or the status are invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • updateMetadataElementEffectivityInStore

      public void updateMetadataElementEffectivityInStore(String userId, String externalSourceGUID, String externalSourceName, String metadataElementGUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveFrom, Date effectiveTo, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the status of specific metadata element. The new status must match a status value that is defined for the element's type assigned when it was created. The effectivity dates control the visibility of the element through specific APIs.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      metadataElementGUID - unique identifier of the metadata element to update
      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
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Throws:
      InvalidParameterException - either the unique identifier or the status are invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • deleteMetadataElementInStore

      public void deleteMetadataElementInStore(String userId, String metadataElementGUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Delete a specific metadata element.
      Specified by:
      deleteMetadataElementInStore in interface MetadataElementInterface
      Specified by:
      deleteMetadataElementInStore in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      metadataElementGUID - unique identifier of the metadata element to update
      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)
      Throws:
      InvalidParameterException - the unique identifier is null or invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • deleteMetadataElementInStore

      public void deleteMetadataElementInStore(String userId, String externalSourceGUID, String externalSourceName, String metadataElementGUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Delete a specific metadata element.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      metadataElementGUID - unique identifier of the metadata element to update
      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)
      Throws:
      InvalidParameterException - the unique identifier is null or invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • archiveMetadataElementInStore

      public void archiveMetadataElementInStore(String userId, String metadataElementGUID, ArchiveProperties archiveProperties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Archive a specific metadata element.
      Parameters:
      userId - caller's userId
      metadataElementGUID - unique identifier of the metadata element to update
      archiveProperties - description of the archiving process
      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)
      Throws:
      InvalidParameterException - the unique identifier is null or invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • archiveMetadataElementInStore

      public void archiveMetadataElementInStore(String userId, String externalSourceGUID, String externalSourceName, String metadataElementGUID, ArchiveProperties archiveProperties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Archive a specific metadata element.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      metadataElementGUID - unique identifier of the metadata element to update
      archiveProperties - description of the archiving process
      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)
      Throws:
      InvalidParameterException - the unique identifier is null or invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • classifyMetadataElementInStore

      public void classifyMetadataElementInStore(String userId, String metadataElementGUID, String classificationName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveFrom, Date effectiveTo, ElementProperties properties, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Add a new classification to the metadata element. Note that only one classification with the same name can be attached to a metadata element.
      Specified by:
      classifyMetadataElementInStore in interface MetadataElementInterface
      Specified by:
      classifyMetadataElementInStore in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      metadataElementGUID - unique identifier of the metadata element to update
      classificationName - name of the classification to add (if the classification is already present then use reclassify)
      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 classification is active - null for active now
      effectiveTo - the date when this classification becomes inactive - null for active until deleted
      properties - properties to store in the new classification. These must conform to the valid properties associated with the classification name
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Throws:
      InvalidParameterException - the unique identifier or classification name is null or invalid in some way; properties do not match the valid properties associated with the classification's type definition
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • classifyMetadataElementInStore

      public void classifyMetadataElementInStore(String userId, String externalSourceGUID, String externalSourceName, String metadataElementGUID, String classificationName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveFrom, Date effectiveTo, ElementProperties properties, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Add a new classification to the metadata element. Note that only one classification with the same name can be attached to a metadata element.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      metadataElementGUID - unique identifier of the metadata element to update
      classificationName - name of the classification to add (if the classification is already present then use reclassify)
      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 classification is active - null for active now
      effectiveTo - the date when this classification becomes inactive - null for active until deleted
      properties - properties to store in the new classification. These must conform to the valid properties associated with the classification name
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Throws:
      InvalidParameterException - the unique identifier or classification name is null or invalid in some way; properties do not match the valid properties associated with the classification's type definition
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • reclassifyMetadataElementInStore

      public void reclassifyMetadataElementInStore(String userId, String metadataElementGUID, String classificationName, boolean replaceProperties, boolean forLineage, boolean forDuplicateProcessing, ElementProperties properties, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the properties of a classification that is currently attached to a specific metadata element.
      Specified by:
      reclassifyMetadataElementInStore in interface MetadataElementInterface
      Specified by:
      reclassifyMetadataElementInStore in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      metadataElementGUID - unique identifier of the metadata element to update
      classificationName - unique name of the classification to update
      replaceProperties - flag to indicate whether to completely replace the existing properties with the new properties, or just update the individual properties specified on the request.
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      properties - new properties for the classification
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Throws:
      InvalidParameterException - the unique identifier or classification name is null or invalid in some way; properties do not match the valid properties associated with the classification's type definition
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • reclassifyMetadataElementInStore

      public void reclassifyMetadataElementInStore(String userId, String externalSourceGUID, String externalSourceName, String metadataElementGUID, String classificationName, boolean replaceProperties, boolean forLineage, boolean forDuplicateProcessing, ElementProperties properties, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the properties of a classification that is currently attached to a specific metadata element.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      metadataElementGUID - unique identifier of the metadata element to update
      classificationName - unique name of the classification to update
      replaceProperties - flag to indicate whether to completely replace the existing properties with the new properties, or just update the individual properties specified on the request.
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      properties - new properties for the classification
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Throws:
      InvalidParameterException - the unique identifier or classification name is null or invalid in some way; properties do not match the valid properties associated with the classification's type definition
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • updateClassificationEffectivityInStore

      public void updateClassificationEffectivityInStore(String userId, String metadataElementGUID, String classificationName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveFrom, Date effectiveTo, Date effectiveTime) 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.
      Specified by:
      updateClassificationEffectivityInStore in interface MetadataElementInterface
      Specified by:
      updateClassificationEffectivityInStore in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      metadataElementGUID - unique identifier of the metadata element to update
      classificationName - unique name of the classification to update
      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
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Throws:
      InvalidParameterException - either the unique identifier or the status are invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • updateClassificationEffectivityInStore

      public void updateClassificationEffectivityInStore(String userId, String externalSourceGUID, String externalSourceName, String metadataElementGUID, String classificationName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveFrom, Date effectiveTo, Date effectiveTime) 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 - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      metadataElementGUID - unique identifier of the metadata element to update
      classificationName - unique name of the classification to update
      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
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Throws:
      InvalidParameterException - either the unique identifier or the status are invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • declassifyMetadataElementInStore

      public void declassifyMetadataElementInStore(String userId, String metadataElementGUID, String classificationName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove the named classification from a specific metadata element.
      Specified by:
      declassifyMetadataElementInStore in interface MetadataElementInterface
      Specified by:
      declassifyMetadataElementInStore in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      metadataElementGUID - unique identifier of the metadata element to update
      classificationName - unique name of the classification to remove
      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)
      Throws:
      InvalidParameterException - the unique identifier or classification name is null or invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • declassifyMetadataElementInStore

      public void declassifyMetadataElementInStore(String userId, String externalSourceGUID, String externalSourceName, String metadataElementGUID, String classificationName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove the named classification from a specific metadata element.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      metadataElementGUID - unique identifier of the metadata element to update
      classificationName - unique name of the classification to remove
      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)
      Throws:
      InvalidParameterException - the unique identifier or classification name is null or invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • createRelatedElementsInStore

      public String createRelatedElementsInStore(String userId, String relationshipTypeName, String metadataElement1GUID, String metadataElement2GUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveFrom, Date effectiveTo, ElementProperties properties, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a relationship between two metadata elements. It is important to put the right element at each end of the relationship according to the type definition since this will affect how the relationship is interpreted.
      Specified by:
      createRelatedElementsInStore in interface MetadataElementInterface
      Specified by:
      createRelatedElementsInStore in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      relationshipTypeName - name of the type of relationship to create. This will determine the types of metadata elements that can be related and the properties that can be associated with this relationship.
      metadataElement1GUID - unique identifier of the metadata element at end 1 of the relationship
      metadataElement2GUID - unique identifier of the metadata element at end 2 of the relationship
      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
      properties - the properties of the relationship
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Returns:
      unique identifier of the new relationship
      Throws:
      InvalidParameterException - the unique identifier's of the metadata elements are null or invalid in some way; the properties are not valid for this type of relationship
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • createRelatedElementsInStore

      public String createRelatedElementsInStore(String userId, String externalSourceGUID, String externalSourceName, String relationshipTypeName, String metadataElement1GUID, String metadataElement2GUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveFrom, Date effectiveTo, ElementProperties properties, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a relationship between two metadata elements. It is important to put the right element at each end of the relationship according to the type definition since this will affect how the relationship is interpreted.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      relationshipTypeName - name of the type of relationship to create. This will determine the types of metadata elements that can be related and the properties that can be associated with this relationship.
      metadataElement1GUID - unique identifier of the metadata element at end 1 of the relationship
      metadataElement2GUID - unique identifier of the metadata element at end 2 of the relationship
      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
      properties - the properties of the relationship
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Returns:
      unique identifier of the new relationship
      Throws:
      InvalidParameterException - the unique identifier's of the metadata elements are null or invalid in some way; the properties are not valid for this type of relationship
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • updateRelatedElementsInStore

      public void updateRelatedElementsInStore(String userId, String relationshipGUID, boolean replaceProperties, boolean forLineage, boolean forDuplicateProcessing, ElementProperties properties, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the properties associated with a relationship.
      Specified by:
      updateRelatedElementsInStore in interface MetadataElementInterface
      Specified by:
      updateRelatedElementsInStore in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      relationshipGUID - unique identifier of the relationship to update
      replaceProperties - flag to indicate whether to completely replace the existing properties with the new properties, or just update the individual properties specified on the request.
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      properties - new properties for the relationship
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      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 userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • updateRelatedElementsInStore

      public void updateRelatedElementsInStore(String userId, String externalSourceGUID, String externalSourceName, String relationshipGUID, boolean replaceProperties, boolean forLineage, boolean forDuplicateProcessing, ElementProperties properties, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the properties associated with a relationship.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      relationshipGUID - unique identifier of the relationship to update
      replaceProperties - flag to indicate whether to completely replace the existing properties with the new properties, or just update the individual properties specified on the request.
      forLineage - the query is to support lineage retrieval
      forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
      properties - new properties for the relationship
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      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 userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • updateRelatedElementsEffectivityInStore

      public void updateRelatedElementsEffectivityInStore(String userId, String relationshipGUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveFrom, Date effectiveTo, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the effectivity dates of a specific relationship between metadata elements. The effectivity dates control the visibility of the classification through specific APIs.
      Specified by:
      updateRelatedElementsEffectivityInStore in interface MetadataElementInterface
      Specified by:
      updateRelatedElementsEffectivityInStore in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      relationshipGUID - unique identifier of the relationship to update
      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
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Throws:
      InvalidParameterException - either the unique identifier or the status are invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • updateRelatedElementsEffectivityInStore

      public void updateRelatedElementsEffectivityInStore(String userId, String externalSourceGUID, String externalSourceName, String relationshipGUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveFrom, Date effectiveTo, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the effectivity dates of a specific relationship between metadata elements. The effectivity dates control the visibility of the classification through specific APIs.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      relationshipGUID - unique identifier of the relationship to update
      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
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      Throws:
      InvalidParameterException - either the unique identifier or the status are invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • deleteRelatedElementsInStore

      public void deleteRelatedElementsInStore(String userId, String relationshipGUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Delete a relationship between two metadata elements.
      Specified by:
      deleteRelatedElementsInStore in interface MetadataElementInterface
      Specified by:
      deleteRelatedElementsInStore in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      relationshipGUID - unique identifier of the relationship to delete
      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)
      Throws:
      InvalidParameterException - the unique identifier of the relationship is null or invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • deleteRelatedElementsInStore

      public void deleteRelatedElementsInStore(String userId, String externalSourceGUID, String externalSourceName, String relationshipGUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Delete a relationship between two metadata elements.
      Parameters:
      userId - caller's userId
      externalSourceGUID - unique identifier of the software capability that owns this collection
      externalSourceName - unique name of the software capability that owns this collection
      relationshipGUID - unique identifier of the relationship to delete
      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)
      Throws:
      InvalidParameterException - the unique identifier of the relationship is null or invalid in some way
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • initiateGovernanceActionProcess

      public String initiateGovernanceActionProcess(String userId, String processQualifiedName, List<String> requestSourceGUIDs, List<NewActionTarget> actionTargets, Date startTime, Map<String,String> requestParameters, String originatorServiceName, String originatorEngineName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Using the named governance action process as a template, initiate a chain of engine actions.
      Specified by:
      initiateGovernanceActionProcess in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      processQualifiedName - unique name of the governance action process to use
      requestSourceGUIDs - request source elements for the resulting governance service
      actionTargets - list of action target names to GUIDs for the resulting governance service
      startTime - future start time or null for "as soon as possible".
      requestParameters - request properties to be passed to the first governance service
      originatorServiceName - unique name of the requesting governance service (if initiated by a governance engine).
      originatorEngineName - optional unique name of the governance engine (if initiated by a governance engine).
      Returns:
      unique identifier of the governance action process instance
      Throws:
      InvalidParameterException - null or unrecognized qualified name of the process
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • createIncidentReport

      public String createIncidentReport(String userId, String qualifiedName, int domainIdentifier, String background, List<IncidentImpactedElement> impactedResources, List<IncidentDependency> previousIncidents, Map<String,Integer> incidentClassifiers, Map<String,String> additionalProperties, String originatorGUID) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create an incident report to capture the situation detected by the caller. This incident report will be processed by other governance activities.
      Specified by:
      createIncidentReport in interface StewardshipRequestInterface
      Specified by:
      createIncidentReport in class OpenMetadataClient
      Parameters:
      userId - caller's userId
      qualifiedName - unique identifier to give this new incident report
      domainIdentifier - governance domain associated with this action (0=ALL)
      background - description of the situation
      impactedResources - details of the resources impacted by this situation
      previousIncidents - links to previous incident reports covering this situation
      incidentClassifiers - initial classifiers for the incident report
      additionalProperties - additional arbitrary properties for the incident reports
      originatorGUID - the unique identifier of the person or process that created the incident
      Returns:
      unique identifier of the resulting incident report
      Throws:
      InvalidParameterException - null or non-unique qualified name for the incident report
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem with the metadata store
    • openToDo

      public String openToDo(String userId, String qualifiedName, String title, String instructions, String category, int priority, Date dueDate, Map<String,String> additionalProperties, String assignToGUID, String sponsorGUID, String originatorGUID, List<NewActionTarget> actionTargets) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a "To Do" request for someone to work on.
      Parameters:
      userId - caller's userId
      qualifiedName - unique name for the to do. (Could be the engine name and a guid?)
      title - short meaningful phrase for the person receiving the request
      instructions - further details on what to do
      category - a category of to dos (for example, "data error", "access request")
      priority - priority value (based on organization's scale)
      dueDate - date/time this needs to be completed
      additionalProperties - additional arbitrary properties for the incident reports
      assignToGUID - unique identifier of the Actor element for the recipient
      sponsorGUID - unique identifier of the element that describes the rule, project that this is on behalf of
      originatorGUID - unique identifier of the source of the to do
      actionTargets - the list of elements that should be acted upon
      Returns:
      unique identifier of new to do element
      Throws:
      InvalidParameterException - either todoQualifiedName or assignedTo are null or not recognized
      UserNotAuthorizedException - the userId is not permitted to perform this operation
      PropertyServerException - there is a problem connecting to (or inside) the metadata store
    • setTranslation

      public void setTranslation(String userId, String elementGUID, TranslationDetail translationDetail) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create or update the translation for a particular language/locale for a metadata element.
      Parameters:
      userId - caller's userId
      elementGUID - unique identifier of the element that this translation is related to
      translationDetail - properties of the translation
      Throws:
      InvalidParameterException - the unique identifier is null or not known.
      UserNotAuthorizedException - the service is not able to access the element
      PropertyServerException - there is a problem accessing the metadata store
    • clearTranslation

      public void clearTranslation(String userId, String elementGUID, String language, String locale) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove the translation for a particular language/locale for a metadata element.
      Parameters:
      userId - caller's userId
      elementGUID - unique identifier of the element that this translation is related to
      language - language requested
      locale - optional locale to qualify which translation if there are multiple translations for the language.
      Throws:
      InvalidParameterException - the language is null or not known or not unique (add locale)
      UserNotAuthorizedException - the service is not able to access the element
      PropertyServerException - there is a problem accessing the metadata store
    • getTranslation

      public TranslationDetail getTranslation(String userId, String elementGUID, String language, String locale) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the translation for the matching language/locale.
      Parameters:
      userId - caller's userId
      elementGUID - unique identifier of the element that this translation is related to
      language - language requested
      locale - optional locale to qualify which translation if there are multiple translations for the language.
      Returns:
      the properties of the translation or null if there is none
      Throws:
      InvalidParameterException - the unique identifier is null or not known.
      UserNotAuthorizedException - the service is not able to access the element
      PropertyServerException - there is a problem accessing the metadata store
    • getTranslations

      public List<TranslationDetail> getTranslations(String userId, String elementGUID, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve all translations associated with a metadata element.
      Parameters:
      userId - caller's userId
      elementGUID - unique identifier of the element that this translation is related to
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return
      Returns:
      list of translation properties or null if there are none
      Throws:
      InvalidParameterException - the unique identifier is null or not known.
      UserNotAuthorizedException - the service is not able to access the element
      PropertyServerException - there is a problem accessing the metadata store
    • setUpValidMetadataValue

      public void setUpValidMetadataValue(String userId, String typeName, String propertyName, ValidMetadataValue validMetadataValue) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create or update the valid value for a particular open metadata property name. If the typeName is null, this valid value applies to properties of this name from all types. The valid value is stored in the preferredValue property. If a valid value is already set up for this property (with overlapping effective dates) then the valid value is updated.
      Parameters:
      userId - caller's userId
      typeName - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName - name of property that this valid value applies
      validMetadataValue - preferred value to use in the open metadata types plus additional descriptive values.
      Throws:
      InvalidParameterException - the property name is null or not known.
      UserNotAuthorizedException - the service is not able to create/access the element
      PropertyServerException - there is a problem accessing the metadata store
    • setUpValidMetadataMapName

      public void setUpValidMetadataMapName(String userId, String typeName, String propertyName, ValidMetadataValue validMetadataValue) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create or update the valid value for a name that can be stored in a particular open metadata property name. This property is of type map from name to string. The valid value is stored in the preferredValue property of validMetadataValue. If the typeName is null, this valid value applies to properties of this name from any open metadata type. If a valid value is already set up for this property (with overlapping effective dates) then the valid value is updated.
      Parameters:
      userId - caller's userId
      typeName - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName - name of property that this valid value applies
      validMetadataValue - preferred value to use in the open metadata types plus additional descriptive values.
      Throws:
      InvalidParameterException - the property name is null or not known.
      UserNotAuthorizedException - the service is not able to create/access the element
      PropertyServerException - there is a problem accessing the metadata store
    • setUpValidMetadataMapValue

      public void setUpValidMetadataMapValue(String userId, String typeName, String propertyName, String mapName, ValidMetadataValue validMetadataValue) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create or update the valid value for a name that can be stored in a particular open metadata property name. This property is of type map from name to string. The valid value is stored in the preferredValue property of validMetadataValue. If the typeName is null, this valid value applies to properties of this name from any open metadata type. If a valid value is already set up for this property (with overlapping effective dates) then the valid value is updated.
      Parameters:
      userId - caller's userId
      typeName - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName - name of property that this valid value applies
      mapName - name in the map that this valid value applies. If null then the value can be used for any name in the map.
      validMetadataValue - preferred value to use in the open metadata types plus additional descriptive values.
      Throws:
      InvalidParameterException - the property name is null or not known.
      UserNotAuthorizedException - the service is not able to create/access the element
      PropertyServerException - there is a problem accessing the metadata store
    • clearValidMetadataValue

      public void clearValidMetadataValue(String userId, String typeName, String propertyName, String preferredValue) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove a valid value for a property.
      Parameters:
      userId - caller's userId
      typeName - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName - name of property that this valid value applies
      preferredValue - specific valid value to remove
      Throws:
      InvalidParameterException - the property name is null or not known.
      UserNotAuthorizedException - the service is not able to create/access the element
      PropertyServerException - there is a problem accessing the metadata store
    • clearValidMetadataMapName

      public void clearValidMetadataMapName(String userId, String typeName, String propertyName, String preferredValue) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove a valid map name value for a property. The match is done on preferred name.
      Parameters:
      userId - caller's userId
      typeName - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName - name of property that this valid value applies
      preferredValue - specific valid value to remove
      Throws:
      InvalidParameterException - the property name is null or not known.
      UserNotAuthorizedException - the service is not able to create/access the element
      PropertyServerException - there is a problem accessing the metadata store
    • clearValidMetadataMapValue

      public void clearValidMetadataMapValue(String userId, String typeName, String propertyName, String mapName, String preferredValue) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove a valid map name value for a property. The match is done on preferred name.
      Parameters:
      userId - caller's userId
      typeName - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName - name of property that this valid value applies
      mapName - name in the map that this valid value applies. If null then the value can be used for any name in the map.
      preferredValue - specific valid value to remove
      Throws:
      InvalidParameterException - the property name is null or not known.
      UserNotAuthorizedException - the service is not able to create/access the element
      PropertyServerException - there is a problem accessing the metadata store
    • validateMetadataValue

      public boolean validateMetadataValue(String userId, String typeName, String propertyName, String actualValue) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Validate whether the value found in an open metadata property is valid.
      Parameters:
      userId - caller's userId
      typeName - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName - name of property that this valid value applies
      actualValue - value stored in the property - if this is null, true is only returned if null is set up as a valid value.
      Returns:
      boolean flag - true if the value is one of the defined valid values or there are no valid values set up for the property (and so any value is value).
      Throws:
      InvalidParameterException - the property name is null or not known.
      UserNotAuthorizedException - the service is not able to create/access the element
      PropertyServerException - there is a problem accessing the metadata store
    • validateMetadataMapName

      public boolean validateMetadataMapName(String userId, String typeName, String propertyName, String actualValue) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Validate whether the name found in an open metadata map property is valid.
      Parameters:
      userId - caller's userId
      typeName - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName - name of property that this valid value applies
      actualValue - value stored in the property - if this is null, true is only returned if null is set up as a valid value.
      Returns:
      boolean flag - true if the value is one of the defined valid values or there are no valid values set up for the property (and so any value is value).
      Throws:
      InvalidParameterException - the property name is null or not known.
      UserNotAuthorizedException - the service is not able to create/access the element
      PropertyServerException - there is a problem accessing the metadata store
    • validateMetadataMapValue

      public boolean validateMetadataMapValue(String userId, String typeName, String propertyName, String mapName, String actualValue) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Validate whether the name found in an open metadata map property is valid.
      Parameters:
      userId - caller's userId
      typeName - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName - name of property that this valid value applies
      mapName - name in the map that this valid value applies. If null then the value can be used for any name in the map.
      actualValue - value stored in the property - if this is null, true is only returned if null is set up as a valid value.
      Returns:
      boolean flag - true if the value is one of the defined valid values or there are no valid values set up for the property (and so any value is value).
      Throws:
      InvalidParameterException - the property name is null or not known.
      UserNotAuthorizedException - the service is not able to create/access the element
      PropertyServerException - there is a problem accessing the metadata store
    • getValidMetadataValue

      public ValidMetadataValue getValidMetadataValue(String userId, String typeName, String propertyName, String preferredValue) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve details of a specific valid value for a property.
      Parameters:
      userId - caller's userId
      typeName - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName - name of property that this valid value applies
      preferredValue - valid value to match
      Returns:
      specific valid value definition or none if there is no definition stored
      Throws:
      InvalidParameterException - the property name is null or not known.
      UserNotAuthorizedException - the service is not able to create/access the element
      PropertyServerException - there is a problem accessing the metadata store
    • getValidMetadataMapName

      public ValidMetadataValue getValidMetadataMapName(String userId, String typeName, String propertyName, String preferredValue) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve details of a specific valid name for a map property.
      Parameters:
      userId - caller's userId
      typeName - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName - name of property that this valid value applies
      preferredValue - valid value to match
      Returns:
      specific valid value definition or none if there is no definition stored
      Throws:
      InvalidParameterException - the property name is null or not known.
      UserNotAuthorizedException - the service is not able to create/access the element
      PropertyServerException - there is a problem accessing the metadata store
    • getValidMetadataMapValue

      public ValidMetadataValue getValidMetadataMapValue(String userId, String typeName, String propertyName, String mapName, String preferredValue) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve details of a specific valid value for a map name.
      Parameters:
      userId - caller's userId
      typeName - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName - name of property that this valid value applies
      mapName - name in the map that this valid value applies. If null then the value can be used for any name in the map.
      preferredValue - valid value to match
      Returns:
      specific valid value definition or none if there is no definition stored
      Throws:
      InvalidParameterException - the property name is null or not known.
      UserNotAuthorizedException - the service is not able to create/access the element
      PropertyServerException - there is a problem accessing the metadata store
    • getValidMetadataValues

      public List<ValidMetadataValueDetail> getValidMetadataValues(String userId, String typeName, String propertyName, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve all the valid values for the requested property.
      Parameters:
      userId - caller's userId
      typeName - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName - name of property that this valid value applies
      startFrom - paging start point
      pageSize - maximum results that can be returned
      Returns:
      list of valid values defined for the property
      Throws:
      InvalidParameterException - the property name is null or not known.
      UserNotAuthorizedException - the service is not able to create/access the element
      PropertyServerException - there is a problem accessing the metadata store
    • getConsistentMetadataValues

      public List<ValidMetadataValue> getConsistentMetadataValues(String userId, String typeName, String propertyName, String mapName, String preferredValue, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve all the consistent valid values for the requested property.
      Parameters:
      userId - caller's userId
      typeName - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName - name of property that this valid value applies
      mapName - optional name of map key that this valid value applies
      preferredValue - the value to match against
      startFrom - paging start point
      pageSize - maximum results that can be returned
      Returns:
      list of valid values defined for the property
      Throws:
      InvalidParameterException - the property name is null or not known.
      UserNotAuthorizedException - the service is not able to create/access the element
      PropertyServerException - there is a problem accessing the metadata store
    • setConsistentMetadataValues

      public void setConsistentMetadataValues(String userId, String typeName1, String propertyName1, String mapName1, String preferredValue1, String typeName2, String propertyName2, String mapName2, String preferredValue2) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Set up consistent metadata values relationship between the two property values.
      Parameters:
      userId - caller's userId
      typeName1 - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName1 - name of property that this valid value applies
      mapName1 - optional name of map key that this valid value applies
      preferredValue1 - the value to match against
      typeName2 - type name if this is valid value is specific for a type, or null if this valid value if for the property name for all types
      propertyName2 - name of property that this valid value applies
      mapName2 - optional name of map key that this valid value applies
      preferredValue2 - the value to match against
      Throws:
      InvalidParameterException - the property name is null or not known.
      UserNotAuthorizedException - the service is not able to create/access the element
      PropertyServerException - there is a problem accessing the metadata store
    • getSpecification

      Retrieve the reference data for this element.
      Parameters:
      userId - calling user
      elementGUID - element to query
      Returns:
      map of reference data
      Throws:
      InvalidParameterException - bad parameter
      PropertyServerException - repository error
      UserNotAuthorizedException - authorization issue
    • addExternalIdentifier

      public void addExternalIdentifier(String userId, String externalScopeGUID, String externalScopeName, String openMetadataElementGUID, String openMetadataElementTypeName, ExternalIdentifierProperties externalIdentifierProperties) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Add a new external identifier to an existing open metadata element.
      Specified by:
      addExternalIdentifier in interface ExternalIdentifiersInterface
      Specified by:
      addExternalIdentifier in class OpenMetadataClient
      Parameters:
      userId - calling user
      externalScopeGUID - unique identifier of software server capability representing the caller
      externalScopeName - unique name of software server capability representing the caller
      openMetadataElementGUID - unique identifier (GUID) of the element in the open metadata ecosystem
      openMetadataElementTypeName - type name for the open metadata element
      externalIdentifierProperties - optional properties used to define an external identifier
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • updateExternalIdentifier

      public void updateExternalIdentifier(String userId, String externalScopeGUID, String externalScopeName, String openMetadataElementGUID, String openMetadataElementTypeName, ExternalIdentifierProperties externalIdentifierProperties) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the description of a specific external identifier.
      Specified by:
      updateExternalIdentifier in interface ExternalIdentifiersInterface
      Specified by:
      updateExternalIdentifier in class OpenMetadataClient
      Parameters:
      userId - calling user
      externalScopeGUID - unique identifier of software server capability representing the caller
      externalScopeName - unique name of software server capability representing the caller
      openMetadataElementGUID - unique identifier (GUID) of the element in the open metadata ecosystem
      openMetadataElementTypeName - type name for the open metadata element
      externalIdentifierProperties - optional properties used to define an external identifier
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • removeExternalIdentifier

      public void removeExternalIdentifier(String userId, String externalScopeGUID, String externalScopeName, String openMetadataElementGUID, String openMetadataElementTypeName, String externalIdentifier) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove an external identifier from an existing open metadata element. The open metadata element is not affected.
      Specified by:
      removeExternalIdentifier in interface ExternalIdentifiersInterface
      Specified by:
      removeExternalIdentifier in class OpenMetadataClient
      Parameters:
      userId - calling user
      externalScopeGUID - unique identifier of software server capability representing the caller
      externalScopeName - unique name of software server capability representing the caller
      openMetadataElementGUID - unique identifier (GUID) of the element in the open metadata ecosystem
      openMetadataElementTypeName - type name for the open metadata element
      externalIdentifier - unique identifier of this element in the third party asset manager
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • confirmSynchronization

      public void confirmSynchronization(String userId, String externalScopeGUID, String externalScopeName, String openMetadataElementGUID, String openMetadataElementTypeName, String externalIdentifier) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Confirm that the values of a particular metadata element have been synchronized. This is important from an audit point of view, and to allow bidirectional updates of metadata using optimistic locking.
      Specified by:
      confirmSynchronization in interface ExternalIdentifiersInterface
      Specified by:
      confirmSynchronization in class OpenMetadataClient
      Parameters:
      userId - calling user
      externalScopeGUID - unique identifier of software server capability representing the caller
      externalScopeName - unique name of software server capability representing the caller
      openMetadataElementGUID - unique identifier (GUID) of this element in open metadata
      openMetadataElementTypeName - type name for the open metadata element
      externalIdentifier - unique identifier of this element in the external asset manager
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • getElementsForExternalIdentifier

      public List<ElementHeader> getElementsForExternalIdentifier(String userId, String externalScopeGUID, String externalScopeName, String externalIdentifier, int startFrom, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return the list of headers for open metadata elements that are associated with a particular external identifier.
      Specified by:
      getElementsForExternalIdentifier in interface ExternalIdentifiersInterface
      Specified by:
      getElementsForExternalIdentifier in class OpenMetadataClient
      Parameters:
      userId - calling user
      externalScopeGUID - unique identifier of software server capability representing the caller
      externalScopeName - unique name of software server capability representing the caller
      externalIdentifier - unique identifier of this element in the external asset manager
      startFrom - paging start point
      pageSize - maximum results that can be returned
      Returns:
      list of element headers
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • validateExternalIdentifier

      public void validateExternalIdentifier(String userId, String externalScopeGUID, String externalScopeName, String openMetadataElementGUID, String openMetadataElementTypeName, String elementExternalIdentifier) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Check that the supplied external identifier matches the element GUID.
      Specified by:
      validateExternalIdentifier in interface ExternalIdentifiersInterface
      Specified by:
      validateExternalIdentifier in class OpenMetadataClient
      Parameters:
      userId - calling user
      externalScopeGUID - unique identifier of software server capability representing the caller
      externalScopeName - unique name of software server capability representing the caller
      openMetadataElementGUID - element guid used for the lookup
      openMetadataElementTypeName - type name for the open metadata element
      elementExternalIdentifier - external identifier value
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • getMetadataCorrelationHeaders

      public List<MetadataCorrelationHeader> getMetadataCorrelationHeaders(String userId, String externalScopeGUID, String externalScopeName, String openMetadataElementGUID, String openMetadataElementTypeName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Assemble the correlation headers attached to the supplied element guid. This includes the external identifiers plus information on the scope and usage.
      Specified by:
      getMetadataCorrelationHeaders in interface ExternalIdentifiersInterface
      Specified by:
      getMetadataCorrelationHeaders in class OpenMetadataClient
      Parameters:
      userId - calling user
      externalScopeGUID - unique identifier of software server capability representing the caller
      externalScopeName - unique name of software server capability representing the caller
      openMetadataElementGUID - unique identifier (GUID) of this element in open metadata
      openMetadataElementTypeName - type name for the open metadata element
      Returns:
      list of correlation headers (note if asset manager identifiers are present, only the matching correlation header is returned)
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • getVendorProperties

      public Map<String,Map<String,String>> getVendorProperties(String userId, String openMetadataElementGUID, String openMetadataElementTypeName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return the vendor properties associated with an element. The inner map holds the specific properties for each vendor. The outer maps the vendor identifier to the properties.
      Specified by:
      getVendorProperties in interface ExternalIdentifiersInterface
      Specified by:
      getVendorProperties in class OpenMetadataClient
      Parameters:
      userId - calling user
      openMetadataElementGUID - unique identifier (GUID) of this element in open metadata
      openMetadataElementTypeName - type name for the open metadata element
      Returns:
      map of vendor properties
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • getEffectiveTimeQueryRequestBody

      protected EffectiveTimeQueryRequestBody getEffectiveTimeQueryRequestBody(String externalScopeGUID, String externalScopeName, Date effectiveTime)
      Return the asset manager identifiers packaged in an appropriate request body.
      Parameters:
      externalScopeGUID - unique identifier for the asset manager
      externalScopeName - unique name for the asset manager
      effectiveTime - the time that the retrieved elements must be effective for
      Returns:
      request body