Class OpenMetadataStoreClientBase

    • Constructor Summary

      Constructors 
      Constructor Description
      OpenMetadataStoreClientBase​(java.lang.String serviceURLMarker, java.lang.String serverName, java.lang.String serverPlatformURLRoot)
      Create a new client with no authentication embedded in the HTTP request.
      OpenMetadataStoreClientBase​(java.lang.String serviceURLMarker, java.lang.String serverName, java.lang.String serverPlatformURLRoot, java.lang.String serverUserId, java.lang.String serverPassword)
      Create a new client that passes userId and password in each HTTP request.
      OpenMetadataStoreClientBase​(java.lang.String serviceURLMarker, java.lang.String serverName, java.lang.String serverPlatformURLRoot, OpenMetadataStoreRESTClient restClient, int maxPageSize)
      Create a new client that passes userId and password in each HTTP request.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void classifyMetadataElementInStore​(java.lang.String userId, java.lang.String metadataElementGUID, java.lang.String classificationName, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveFrom, java.util.Date effectiveTo, ElementProperties properties, java.util.Date effectiveTime)
      Add a new classification to the metadata element.
      void classifyMetadataElementInStore​(java.lang.String userId, java.lang.String externalSourceGUID, java.lang.String externalSourceName, java.lang.String metadataElementGUID, java.lang.String classificationName, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveFrom, java.util.Date effectiveTo, ElementProperties properties, java.util.Date effectiveTime)
      Add a new classification to the metadata element.
      void clearTranslation​(java.lang.String userId, java.lang.String elementGUID, java.lang.String language, java.lang.String locale)
      Remove the translation for a particular language/locale for a metadata element.
      void clearValidMetadataValue​(java.lang.String userId, java.lang.String typeName, java.lang.String propertyName, java.lang.String preferredValue)
      Remove a valid value for a property.
      java.lang.String createIncidentReport​(java.lang.String userId, java.lang.String qualifiedName, int domainIdentifier, java.lang.String background, java.util.List<IncidentImpactedElement> impactedResources, java.util.List<IncidentDependency> previousIncidents, java.util.Map<java.lang.String,​java.lang.Integer> incidentClassifiers, java.util.Map<java.lang.String,​java.lang.String> additionalProperties, java.lang.String originatorGUID)
      Create an incident report to capture the situation detected by this governance action service.
      java.lang.String createMetadataElementInStore​(java.lang.String userId, java.lang.String externalSourceGUID, java.lang.String externalSourceName, java.lang.String metadataElementTypeName, ElementStatus initialStatus, java.util.Date effectiveFrom, java.util.Date effectiveTo, ElementProperties properties, java.lang.String templateGUID)
      Create a new metadata element in the metadata store.
      java.lang.String createMetadataElementInStore​(java.lang.String userId, java.lang.String metadataElementTypeName, ElementStatus initialStatus, java.util.Date effectiveFrom, java.util.Date effectiveTo, ElementProperties properties, java.lang.String templateGUID)
      Create a new metadata element in the metadata store.
      java.lang.String createRelatedElementsInStore​(java.lang.String userId, java.lang.String relationshipTypeName, java.lang.String metadataElement1GUID, java.lang.String metadataElement2GUID, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveFrom, java.util.Date effectiveTo, ElementProperties properties, java.util.Date effectiveTime)
      Create a relationship between two metadata elements.
      java.lang.String createRelatedElementsInStore​(java.lang.String userId, java.lang.String externalSourceGUID, java.lang.String externalSourceName, java.lang.String relationshipTypeName, java.lang.String metadataElement1GUID, java.lang.String metadataElement2GUID, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveFrom, java.util.Date effectiveTo, ElementProperties properties, java.util.Date effectiveTime)
      Create a relationship between two metadata elements.
      void deleteMetadataElementInStore​(java.lang.String userId, java.lang.String metadataElementGUID, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveTime)
      Delete a specific metadata element.
      void deleteMetadataElementInStore​(java.lang.String userId, java.lang.String externalSourceGUID, java.lang.String externalSourceName, java.lang.String metadataElementGUID, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveTime)
      Delete a specific metadata element.
      void deleteRelatedElementsInStore​(java.lang.String userId, java.lang.String relationshipGUID, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveTime)
      Delete a relationship between two metadata elements.
      void deleteRelatedElementsInStore​(java.lang.String userId, java.lang.String externalSourceGUID, java.lang.String externalSourceName, java.lang.String relationshipGUID, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveTime)
      Delete a relationship between two metadata elements.
      java.util.List<OpenMetadataElement> findMetadataElements​(java.lang.String userId, java.lang.String metadataElementTypeName, java.util.List<java.lang.String> metadataElementSubtypeName, SearchProperties searchProperties, java.util.List<ElementStatus> limitResultsByStatus, SearchClassifications matchClassifications, java.lang.String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveTime, int startFrom, int pageSize)
      Return a list of metadata elements that match the supplied criteria.
      java.util.List<OpenMetadataElement> findMetadataElementsWithString​(java.lang.String userId, java.lang.String searchString, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveTime, int startFrom, int pageSize)
      Retrieve the metadata elements that contain the requested string.
      java.util.List<RelatedMetadataElements> findRelationshipsBetweenMetadataElements​(java.lang.String userId, java.lang.String relationshipTypeName, SearchProperties searchProperties, java.lang.String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveTime, int startFrom, int pageSize)
      Return a list of relationships that match the requested conditions.
      OpenMetadataElement getMetadataElementByGUID​(java.lang.String userId, java.lang.String elementGUID, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveTime)
      Retrieve the metadata element using its unique identifier.
      OpenMetadataElement getMetadataElementByUniqueName​(java.lang.String userId, java.lang.String uniqueName, java.lang.String uniquePropertyName, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveTime)
      Retrieve the metadata element using its unique name (typically the qualified name).
      java.lang.String getMetadataElementGUIDByUniqueName​(java.lang.String userId, java.lang.String uniqueName, java.lang.String uniquePropertyName, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveTime)
      Retrieve the unique identifier of a metadata element using its unique name (typically the qualified name).
      java.util.List<RelatedMetadataElement> getRelatedMetadataElements​(java.lang.String userId, java.lang.String elementGUID, int startingAtEnd, java.lang.String relationshipTypeName, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveTime, int startFrom, int pageSize)
      Retrieve the metadata elements connected to the supplied element.
      TranslationDetail getTranslation​(java.lang.String userId, java.lang.String elementGUID, java.lang.String language, java.lang.String locale)
      Retrieve the translation for the matching language/locale.
      java.util.List<TranslationDetail> getTranslations​(java.lang.String userId, java.lang.String elementGUID, int startFrom, int pageSize)
      Retrieve all translations associated with a metadata element.
      ValidMetadataValue getValidMetadataValue​(java.lang.String userId, java.lang.String typeName, java.lang.String propertyName, java.lang.String preferredValue)
      Retrieve details of a specific valid value for a property.
      java.util.List<ValidMetadataValue> getValidMetadataValues​(java.lang.String userId, java.lang.String typeName, java.lang.String propertyName, int startFrom, int pageSize)
      Retrieve all the valid values for the requested property.
      java.lang.String openToDo​(java.lang.String userId, java.lang.String toDoQualifiedName, java.lang.String title, java.lang.String instructions, int priority, java.util.Date dueDate, java.lang.String assignTo)
      Create a To-Do request for someone to work on.
      void reclassifyMetadataElementInStore​(java.lang.String userId, java.lang.String metadataElementGUID, java.lang.String classificationName, boolean replaceProperties, boolean forLineage, boolean forDuplicateProcessing, ElementProperties properties, java.util.Date effectiveTime)
      Update the properties of a classification that is currently attached to a specific metadata element.
      void reclassifyMetadataElementInStore​(java.lang.String userId, java.lang.String externalSourceGUID, java.lang.String externalSourceName, java.lang.String metadataElementGUID, java.lang.String classificationName, boolean replaceProperties, boolean forLineage, boolean forDuplicateProcessing, ElementProperties properties, java.util.Date effectiveTime)
      Update the properties of a classification that is currently attached to a specific metadata element.
      void setTranslation​(java.lang.String userId, java.lang.String elementGUID, TranslationDetail translationDetail)
      Create or update the translation for a particular language/locale for a metadata element.
      void setUpValidMetadataValue​(java.lang.String userId, java.lang.String typeName, java.lang.String propertyName, ValidMetadataValue validMetadataValue)
      Create or update the valid value for a particular open metadata property name.
      void unclassifyMetadataElementInStore​(java.lang.String userId, java.lang.String metadataElementGUID, java.lang.String classificationName, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveTime)
      Remove the named classification from a specific metadata element.
      void unclassifyMetadataElementInStore​(java.lang.String userId, java.lang.String externalSourceGUID, java.lang.String externalSourceName, java.lang.String metadataElementGUID, java.lang.String classificationName, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveTime)
      Remove the named classification from a specific metadata element.
      void updateClassificationEffectivityInStore​(java.lang.String userId, java.lang.String metadataElementGUID, java.lang.String classificationName, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveFrom, java.util.Date effectiveTo, java.util.Date effectiveTime)
      Update the effectivity dates of a specific classification attached to a metadata element.
      void updateClassificationEffectivityInStore​(java.lang.String userId, java.lang.String externalSourceGUID, java.lang.String externalSourceName, java.lang.String metadataElementGUID, java.lang.String classificationName, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveFrom, java.util.Date effectiveTo, java.util.Date effectiveTime)
      Update the effectivity dates of a specific classification attached to a metadata element.
      void updateMetadataElementEffectivityInStore​(java.lang.String userId, java.lang.String metadataElementGUID, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveFrom, java.util.Date effectiveTo, java.util.Date effectiveTime)
      Update the status of specific metadata element.
      void updateMetadataElementEffectivityInStore​(java.lang.String userId, java.lang.String externalSourceGUID, java.lang.String externalSourceName, java.lang.String metadataElementGUID, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveFrom, java.util.Date effectiveTo, java.util.Date effectiveTime)
      Update the status of specific metadata element.
      void updateMetadataElementInStore​(java.lang.String userId, java.lang.String metadataElementGUID, boolean replaceProperties, boolean forLineage, boolean forDuplicateProcessing, ElementProperties properties, java.util.Date effectiveTime)
      Update the properties of a specific metadata element.
      void updateMetadataElementInStore​(java.lang.String userId, java.lang.String externalSourceGUID, java.lang.String externalSourceName, java.lang.String metadataElementGUID, boolean replaceProperties, boolean forLineage, boolean forDuplicateProcessing, ElementProperties properties, java.util.Date effectiveTime)
      Update the properties of a specific metadata element.
      void updateMetadataElementStatusInStore​(java.lang.String userId, java.lang.String metadataElementGUID, boolean forLineage, boolean forDuplicateProcessing, ElementStatus newElementStatus, java.util.Date effectiveTime)
      Update the status of specific metadata element.
      void updateMetadataElementStatusInStore​(java.lang.String userId, java.lang.String externalSourceGUID, java.lang.String externalSourceName, java.lang.String metadataElementGUID, boolean forLineage, boolean forDuplicateProcessing, ElementStatus newElementStatus, java.util.Date effectiveTime)
      Update the status of specific metadata element.
      void updateRelatedElementsEffectivityInStore​(java.lang.String userId, java.lang.String relationshipGUID, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveFrom, java.util.Date effectiveTo, java.util.Date effectiveTime)
      Update the effectivity dates of a specific relationship between metadata elements.
      void updateRelatedElementsEffectivityInStore​(java.lang.String userId, java.lang.String externalSourceGUID, java.lang.String externalSourceName, java.lang.String relationshipGUID, boolean forLineage, boolean forDuplicateProcessing, java.util.Date effectiveFrom, java.util.Date effectiveTo, java.util.Date effectiveTime)
      Update the effectivity dates of a specific relationship between metadata elements.
      void updateRelatedElementsInStore​(java.lang.String userId, java.lang.String relationshipGUID, boolean replaceProperties, boolean forLineage, boolean forDuplicateProcessing, ElementProperties properties, java.util.Date effectiveTime)
      Update the properties associated with a relationship.
      void updateRelatedElementsInStore​(java.lang.String userId, java.lang.String externalSourceGUID, java.lang.String externalSourceName, java.lang.String relationshipGUID, boolean replaceProperties, boolean forLineage, boolean forDuplicateProcessing, ElementProperties properties, java.util.Date effectiveTime)
      Update the properties associated with a relationship.
      boolean validateMetadataValue​(java.lang.String userId, java.lang.String typeName, java.lang.String propertyName, java.lang.String actualValue)
      Validate whether the value found in an open metadata property is valid.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • serverName

        protected final java.lang.String serverName
      • serviceURLMarker

        protected final java.lang.String serviceURLMarker
      • serverPlatformURLRoot

        protected final java.lang.String serverPlatformURLRoot
    • Constructor Detail

      • OpenMetadataStoreClientBase

        public OpenMetadataStoreClientBase​(java.lang.String serviceURLMarker,
                                           java.lang.String serverName,
                                           java.lang.String serverPlatformURLRoot)
                                    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 servers
        Throws:
        InvalidParameterException - there is a problem creating the client-side components to issue any REST API calls.
      • OpenMetadataStoreClientBase

        public OpenMetadataStoreClientBase​(java.lang.String serviceURLMarker,
                                           java.lang.String serverName,
                                           java.lang.String serverPlatformURLRoot,
                                           java.lang.String serverUserId,
                                           java.lang.String serverPassword)
                                    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 servers
        serverUserId - caller's userId embedded in all HTTP requests
        serverPassword - caller's password embedded in all HTTP requests
        Throws:
        InvalidParameterException - there is a problem creating the client-side components to issue any REST API calls.
      • OpenMetadataStoreClientBase

        public OpenMetadataStoreClientBase​(java.lang.String serviceURLMarker,
                                           java.lang.String serverName,
                                           java.lang.String serverPlatformURLRoot,
                                           OpenMetadataStoreRESTClient 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 servers
        restClient - pre-initialized REST client
        maxPageSize - pre-initialized parameter limit
        Throws:
        InvalidParameterException - there is a problem with the information about the remote OMAS
    • Method Detail

      • getMetadataElementByGUID

        public OpenMetadataElement getMetadataElementByGUID​(java.lang.String userId,
                                                            java.lang.String elementGUID,
                                                            boolean forLineage,
                                                            boolean forDuplicateProcessing,
                                                            java.util.Date effectiveTime)
                                                     throws InvalidParameterException,
                                                            UserNotAuthorizedException,
                                                            PropertyServerException
        Retrieve the metadata element using its unique identifier.
        Specified by:
        getMetadataElementByGUID in interface MetadataElementInterface
        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 governance action service is not able to access the element
        PropertyServerException - there is a problem accessing the metadata store
      • getMetadataElementByUniqueName

        public OpenMetadataElement getMetadataElementByUniqueName​(java.lang.String userId,
                                                                  java.lang.String uniqueName,
                                                                  java.lang.String uniquePropertyName,
                                                                  boolean forLineage,
                                                                  boolean forDuplicateProcessing,
                                                                  java.util.Date effectiveTime)
                                                           throws InvalidParameterException,
                                                                  UserNotAuthorizedException,
                                                                  PropertyServerException
        Retrieve the metadata element using its unique name (typically the qualified name).
        Specified by:
        getMetadataElementByUniqueName in interface MetadataElementInterface
        Parameters:
        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.
        userId - caller's userId
        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 java.lang.String getMetadataElementGUIDByUniqueName​(java.lang.String userId,
                                                                   java.lang.String uniqueName,
                                                                   java.lang.String uniquePropertyName,
                                                                   boolean forLineage,
                                                                   boolean forDuplicateProcessing,
                                                                   java.util.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
        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 identifier is null or not known.
        UserNotAuthorizedException - the governance action service is not able to access the element
        PropertyServerException - there is a problem accessing the metadata store
      • findMetadataElementsWithString

        public java.util.List<OpenMetadataElement> findMetadataElementsWithString​(java.lang.String userId,
                                                                                  java.lang.String searchString,
                                                                                  boolean forLineage,
                                                                                  boolean forDuplicateProcessing,
                                                                                  java.util.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
        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 governance action service is not able to access the element
        PropertyServerException - there is a problem accessing the metadata store
      • getRelatedMetadataElements

        public java.util.List<RelatedMetadataElement> getRelatedMetadataElements​(java.lang.String userId,
                                                                                 java.lang.String elementGUID,
                                                                                 int startingAtEnd,
                                                                                 java.lang.String relationshipTypeName,
                                                                                 boolean forLineage,
                                                                                 boolean forDuplicateProcessing,
                                                                                 java.util.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
        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 governance action service is not able to access the elements
        PropertyServerException - there is a problem accessing the metadata store
      • findMetadataElements

        public java.util.List<OpenMetadataElement> findMetadataElements​(java.lang.String userId,
                                                                        java.lang.String metadataElementTypeName,
                                                                        java.util.List<java.lang.String> metadataElementSubtypeName,
                                                                        SearchProperties searchProperties,
                                                                        java.util.List<ElementStatus> limitResultsByStatus,
                                                                        SearchClassifications matchClassifications,
                                                                        java.lang.String sequencingProperty,
                                                                        SequencingOrder sequencingOrder,
                                                                        boolean forLineage,
                                                                        boolean forDuplicateProcessing,
                                                                        java.util.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
        Parameters:
        userId - caller's userId
        metadataElementTypeName - type of interest (null means any element type)
        metadataElementSubtypeName - optional list of the subtypes of the metadataElementTypeName to include in the search results. Null means all subtypes.
        searchProperties - Optional list of entity property conditions to match.
        limitResultsByStatus - By default, entities in all statuses (other than DELETE) are returned. However, it is possible to specify a list of statuses (eg ACTIVE) to restrict the results to. Null means all status values.
        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 governance action service is not able to access the elements
        PropertyServerException - there is a problem accessing the metadata store
      • findRelationshipsBetweenMetadataElements

        public java.util.List<RelatedMetadataElements> findRelationshipsBetweenMetadataElements​(java.lang.String userId,
                                                                                                java.lang.String relationshipTypeName,
                                                                                                SearchProperties searchProperties,
                                                                                                java.lang.String sequencingProperty,
                                                                                                SequencingOrder sequencingOrder,
                                                                                                boolean forLineage,
                                                                                                boolean forDuplicateProcessing,
                                                                                                java.util.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
        Parameters:
        userId - caller's userId
        relationshipTypeName - relationship's type. Null means all types (but may be slow so not recommended).
        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 governance action service is not able to access the elements
        PropertyServerException - there is a problem accessing the metadata store
      • createMetadataElementInStore

        public java.lang.String createMetadataElementInStore​(java.lang.String userId,
                                                             java.lang.String metadataElementTypeName,
                                                             ElementStatus initialStatus,
                                                             java.util.Date effectiveFrom,
                                                             java.util.Date effectiveTo,
                                                             ElementProperties properties,
                                                             java.lang.String templateGUID)
                                                      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
        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
        templateGUID - the unique identifier of the existing asset to copy (this will copy all the attachments such as nested content, schema connection etc)
        Returns:
        unique identifier of the new metadata element
        Throws:
        InvalidParameterException - the type name, status or one of the properties is invalid
        UserNotAuthorizedException - the governance action service is not authorized to create this type of element
        PropertyServerException - there is a problem with the metadata store
      • createMetadataElementInStore

        public java.lang.String createMetadataElementInStore​(java.lang.String userId,
                                                             java.lang.String externalSourceGUID,
                                                             java.lang.String externalSourceName,
                                                             java.lang.String metadataElementTypeName,
                                                             ElementStatus initialStatus,
                                                             java.util.Date effectiveFrom,
                                                             java.util.Date effectiveTo,
                                                             ElementProperties properties,
                                                             java.lang.String templateGUID)
                                                      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
        templateGUID - the unique identifier of the existing asset to copy (this will copy all the attachments such as nested content, schema connection etc)
        Returns:
        unique identifier of the new metadata element
        Throws:
        InvalidParameterException - the type name, status or one of the properties is invalid
        UserNotAuthorizedException - the governance action service is not authorized to create this type of element
        PropertyServerException - there is a problem with the metadata store
      • updateMetadataElementInStore

        public void updateMetadataElementInStore​(java.lang.String userId,
                                                 java.lang.String metadataElementGUID,
                                                 boolean replaceProperties,
                                                 boolean forLineage,
                                                 boolean forDuplicateProcessing,
                                                 ElementProperties properties,
                                                 java.util.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
        Parameters:
        userId - caller's userId
        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 governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • updateMetadataElementInStore

        public void updateMetadataElementInStore​(java.lang.String userId,
                                                 java.lang.String externalSourceGUID,
                                                 java.lang.String externalSourceName,
                                                 java.lang.String metadataElementGUID,
                                                 boolean replaceProperties,
                                                 boolean forLineage,
                                                 boolean forDuplicateProcessing,
                                                 ElementProperties properties,
                                                 java.util.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 governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • updateMetadataElementStatusInStore

        public void updateMetadataElementStatusInStore​(java.lang.String userId,
                                                       java.lang.String metadataElementGUID,
                                                       boolean forLineage,
                                                       boolean forDuplicateProcessing,
                                                       ElementStatus newElementStatus,
                                                       java.util.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
        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 governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • updateMetadataElementStatusInStore

        public void updateMetadataElementStatusInStore​(java.lang.String userId,
                                                       java.lang.String externalSourceGUID,
                                                       java.lang.String externalSourceName,
                                                       java.lang.String metadataElementGUID,
                                                       boolean forLineage,
                                                       boolean forDuplicateProcessing,
                                                       ElementStatus newElementStatus,
                                                       java.util.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 governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • updateMetadataElementEffectivityInStore

        public void updateMetadataElementEffectivityInStore​(java.lang.String userId,
                                                            java.lang.String metadataElementGUID,
                                                            boolean forLineage,
                                                            boolean forDuplicateProcessing,
                                                            java.util.Date effectiveFrom,
                                                            java.util.Date effectiveTo,
                                                            java.util.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
        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 governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • updateMetadataElementEffectivityInStore

        public void updateMetadataElementEffectivityInStore​(java.lang.String userId,
                                                            java.lang.String externalSourceGUID,
                                                            java.lang.String externalSourceName,
                                                            java.lang.String metadataElementGUID,
                                                            boolean forLineage,
                                                            boolean forDuplicateProcessing,
                                                            java.util.Date effectiveFrom,
                                                            java.util.Date effectiveTo,
                                                            java.util.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 governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • deleteMetadataElementInStore

        public void deleteMetadataElementInStore​(java.lang.String userId,
                                                 java.lang.String metadataElementGUID,
                                                 boolean forLineage,
                                                 boolean forDuplicateProcessing,
                                                 java.util.Date effectiveTime)
                                          throws InvalidParameterException,
                                                 UserNotAuthorizedException,
                                                 PropertyServerException
        Delete a specific metadata element.
        Specified by:
        deleteMetadataElementInStore in interface MetadataElementInterface
        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 governance action service is not authorized to delete this element
        PropertyServerException - there is a problem with the metadata store
      • deleteMetadataElementInStore

        public void deleteMetadataElementInStore​(java.lang.String userId,
                                                 java.lang.String externalSourceGUID,
                                                 java.lang.String externalSourceName,
                                                 java.lang.String metadataElementGUID,
                                                 boolean forLineage,
                                                 boolean forDuplicateProcessing,
                                                 java.util.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 governance action service is not authorized to delete this element
        PropertyServerException - there is a problem with the metadata store
      • classifyMetadataElementInStore

        public void classifyMetadataElementInStore​(java.lang.String userId,
                                                   java.lang.String metadataElementGUID,
                                                   java.lang.String classificationName,
                                                   boolean forLineage,
                                                   boolean forDuplicateProcessing,
                                                   java.util.Date effectiveFrom,
                                                   java.util.Date effectiveTo,
                                                   ElementProperties properties,
                                                   java.util.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
        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 governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • classifyMetadataElementInStore

        public void classifyMetadataElementInStore​(java.lang.String userId,
                                                   java.lang.String externalSourceGUID,
                                                   java.lang.String externalSourceName,
                                                   java.lang.String metadataElementGUID,
                                                   java.lang.String classificationName,
                                                   boolean forLineage,
                                                   boolean forDuplicateProcessing,
                                                   java.util.Date effectiveFrom,
                                                   java.util.Date effectiveTo,
                                                   ElementProperties properties,
                                                   java.util.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 governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • reclassifyMetadataElementInStore

        public void reclassifyMetadataElementInStore​(java.lang.String userId,
                                                     java.lang.String metadataElementGUID,
                                                     java.lang.String classificationName,
                                                     boolean replaceProperties,
                                                     boolean forLineage,
                                                     boolean forDuplicateProcessing,
                                                     ElementProperties properties,
                                                     java.util.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
        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 governance action service is not authorized to update this element/classification
        PropertyServerException - there is a problem with the metadata store
      • reclassifyMetadataElementInStore

        public void reclassifyMetadataElementInStore​(java.lang.String userId,
                                                     java.lang.String externalSourceGUID,
                                                     java.lang.String externalSourceName,
                                                     java.lang.String metadataElementGUID,
                                                     java.lang.String classificationName,
                                                     boolean replaceProperties,
                                                     boolean forLineage,
                                                     boolean forDuplicateProcessing,
                                                     ElementProperties properties,
                                                     java.util.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 governance action service is not authorized to update this element/classification
        PropertyServerException - there is a problem with the metadata store
      • updateClassificationEffectivityInStore

        public void updateClassificationEffectivityInStore​(java.lang.String userId,
                                                           java.lang.String metadataElementGUID,
                                                           java.lang.String classificationName,
                                                           boolean forLineage,
                                                           boolean forDuplicateProcessing,
                                                           java.util.Date effectiveFrom,
                                                           java.util.Date effectiveTo,
                                                           java.util.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
        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 governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • updateClassificationEffectivityInStore

        public void updateClassificationEffectivityInStore​(java.lang.String userId,
                                                           java.lang.String externalSourceGUID,
                                                           java.lang.String externalSourceName,
                                                           java.lang.String metadataElementGUID,
                                                           java.lang.String classificationName,
                                                           boolean forLineage,
                                                           boolean forDuplicateProcessing,
                                                           java.util.Date effectiveFrom,
                                                           java.util.Date effectiveTo,
                                                           java.util.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 governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • unclassifyMetadataElementInStore

        public void unclassifyMetadataElementInStore​(java.lang.String userId,
                                                     java.lang.String metadataElementGUID,
                                                     java.lang.String classificationName,
                                                     boolean forLineage,
                                                     boolean forDuplicateProcessing,
                                                     java.util.Date effectiveTime)
                                              throws InvalidParameterException,
                                                     UserNotAuthorizedException,
                                                     PropertyServerException
        Remove the named classification from a specific metadata element.
        Specified by:
        unclassifyMetadataElementInStore in interface MetadataElementInterface
        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 governance action service is not authorized to remove this classification
        PropertyServerException - there is a problem with the metadata store
      • unclassifyMetadataElementInStore

        public void unclassifyMetadataElementInStore​(java.lang.String userId,
                                                     java.lang.String externalSourceGUID,
                                                     java.lang.String externalSourceName,
                                                     java.lang.String metadataElementGUID,
                                                     java.lang.String classificationName,
                                                     boolean forLineage,
                                                     boolean forDuplicateProcessing,
                                                     java.util.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 governance action service is not authorized to remove this classification
        PropertyServerException - there is a problem with the metadata store
      • createRelatedElementsInStore

        public java.lang.String createRelatedElementsInStore​(java.lang.String userId,
                                                             java.lang.String relationshipTypeName,
                                                             java.lang.String metadataElement1GUID,
                                                             java.lang.String metadataElement2GUID,
                                                             boolean forLineage,
                                                             boolean forDuplicateProcessing,
                                                             java.util.Date effectiveFrom,
                                                             java.util.Date effectiveTo,
                                                             ElementProperties properties,
                                                             java.util.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
        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 governance action service is not authorized to create this type of relationship
        PropertyServerException - there is a problem with the metadata store
      • createRelatedElementsInStore

        public java.lang.String createRelatedElementsInStore​(java.lang.String userId,
                                                             java.lang.String externalSourceGUID,
                                                             java.lang.String externalSourceName,
                                                             java.lang.String relationshipTypeName,
                                                             java.lang.String metadataElement1GUID,
                                                             java.lang.String metadataElement2GUID,
                                                             boolean forLineage,
                                                             boolean forDuplicateProcessing,
                                                             java.util.Date effectiveFrom,
                                                             java.util.Date effectiveTo,
                                                             ElementProperties properties,
                                                             java.util.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 governance action service is not authorized to create this type of relationship
        PropertyServerException - there is a problem with the metadata store
      • updateRelatedElementsInStore

        public void updateRelatedElementsInStore​(java.lang.String userId,
                                                 java.lang.String relationshipGUID,
                                                 boolean replaceProperties,
                                                 boolean forLineage,
                                                 boolean forDuplicateProcessing,
                                                 ElementProperties properties,
                                                 java.util.Date effectiveTime)
                                          throws InvalidParameterException,
                                                 UserNotAuthorizedException,
                                                 PropertyServerException
        Update the properties associated with a relationship.
        Specified by:
        updateRelatedElementsInStore in interface MetadataElementInterface
        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 governance action service is not authorized to update this relationship
        PropertyServerException - there is a problem with the metadata store
      • updateRelatedElementsInStore

        public void updateRelatedElementsInStore​(java.lang.String userId,
                                                 java.lang.String externalSourceGUID,
                                                 java.lang.String externalSourceName,
                                                 java.lang.String relationshipGUID,
                                                 boolean replaceProperties,
                                                 boolean forLineage,
                                                 boolean forDuplicateProcessing,
                                                 ElementProperties properties,
                                                 java.util.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 governance action service is not authorized to update this relationship
        PropertyServerException - there is a problem with the metadata store
      • updateRelatedElementsEffectivityInStore

        public void updateRelatedElementsEffectivityInStore​(java.lang.String userId,
                                                            java.lang.String relationshipGUID,
                                                            boolean forLineage,
                                                            boolean forDuplicateProcessing,
                                                            java.util.Date effectiveFrom,
                                                            java.util.Date effectiveTo,
                                                            java.util.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
        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 governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • updateRelatedElementsEffectivityInStore

        public void updateRelatedElementsEffectivityInStore​(java.lang.String userId,
                                                            java.lang.String externalSourceGUID,
                                                            java.lang.String externalSourceName,
                                                            java.lang.String relationshipGUID,
                                                            boolean forLineage,
                                                            boolean forDuplicateProcessing,
                                                            java.util.Date effectiveFrom,
                                                            java.util.Date effectiveTo,
                                                            java.util.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 governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • deleteRelatedElementsInStore

        public void deleteRelatedElementsInStore​(java.lang.String userId,
                                                 java.lang.String relationshipGUID,
                                                 boolean forLineage,
                                                 boolean forDuplicateProcessing,
                                                 java.util.Date effectiveTime)
                                          throws InvalidParameterException,
                                                 UserNotAuthorizedException,
                                                 PropertyServerException
        Delete a relationship between two metadata elements.
        Specified by:
        deleteRelatedElementsInStore in interface MetadataElementInterface
        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 governance action service is not authorized to delete this relationship
        PropertyServerException - there is a problem with the metadata store
      • deleteRelatedElementsInStore

        public void deleteRelatedElementsInStore​(java.lang.String userId,
                                                 java.lang.String externalSourceGUID,
                                                 java.lang.String externalSourceName,
                                                 java.lang.String relationshipGUID,
                                                 boolean forLineage,
                                                 boolean forDuplicateProcessing,
                                                 java.util.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 governance action service is not authorized to delete this relationship
        PropertyServerException - there is a problem with the metadata store
      • createIncidentReport

        public java.lang.String createIncidentReport​(java.lang.String userId,
                                                     java.lang.String qualifiedName,
                                                     int domainIdentifier,
                                                     java.lang.String background,
                                                     java.util.List<IncidentImpactedElement> impactedResources,
                                                     java.util.List<IncidentDependency> previousIncidents,
                                                     java.util.Map<java.lang.String,​java.lang.Integer> incidentClassifiers,
                                                     java.util.Map<java.lang.String,​java.lang.String> additionalProperties,
                                                     java.lang.String originatorGUID)
                                              throws InvalidParameterException,
                                                     UserNotAuthorizedException,
                                                     PropertyServerException
        Create an incident report to capture the situation detected by this governance action service. This incident report will be processed by other governance activities.
        Specified by:
        createIncidentReport in interface StewardshipActionInterface
        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 - this governance action service is not authorized to create an incident report
        PropertyServerException - there is a problem with the metadata store
      • openToDo

        public java.lang.String openToDo​(java.lang.String userId,
                                         java.lang.String toDoQualifiedName,
                                         java.lang.String title,
                                         java.lang.String instructions,
                                         int priority,
                                         java.util.Date dueDate,
                                         java.lang.String assignTo)
                                  throws InvalidParameterException,
                                         UserNotAuthorizedException,
                                         PropertyServerException
        Create a To-Do request for someone to work on.
        Specified by:
        openToDo in interface StewardshipActionInterface
        Parameters:
        userId - caller's userId
        toDoQualifiedName - 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
        priority - priority value (based on organization's scale)
        dueDate - date/time this needs to be completed
        assignTo - qualified name of the PersonRole element for the recipient
        Returns:
        unique identifier of new to do element
        Throws:
        InvalidParameterException - either todoQualifiedName or assignedTo are null or not recognized
        UserNotAuthorizedException - the governance action service is not authorized to create a to-do
        PropertyServerException - there is a problem connecting to (or inside) the metadata store
      • setUpValidMetadataValue

        public void setUpValidMetadataValue​(java.lang.String userId,
                                            java.lang.String typeName,
                                            java.lang.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.
        Specified by:
        setUpValidMetadataValue in interface ValidMetadataValuesInterface
        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
      • validateMetadataValue

        public boolean validateMetadataValue​(java.lang.String userId,
                                             java.lang.String typeName,
                                             java.lang.String propertyName,
                                             java.lang.String actualValue)
                                      throws InvalidParameterException,
                                             UserNotAuthorizedException,
                                             PropertyServerException
        Validate whether the value found in an open metadata property is valid.
        Specified by:
        validateMetadataValue in interface ValidMetadataValuesInterface
        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