Class GovernanceEngineRESTServices


  • public class GovernanceEngineRESTServices
    extends Object
    The GovernanceEngineRESTServices provides the server-side implementation of the services used by the governance engine as it is managing requests to execute open governance services in the governance server. These services align with the interface definitions from the Governance Action Framework (GAF).
    • Constructor Detail

      • GovernanceEngineRESTServices

        public GovernanceEngineRESTServices()
        Default constructor
    • Method Detail

      • getOutTopicConnection

        public ConnectionResponse getOutTopicConnection​(String serverName,
                                                        String userId,
                                                        String callerId)
        Return the connection object for the Governance Engine OMAS's out topic.
        Parameters:
        serverName - name of the service to route the request to.
        userId - identifier of calling user.
        callerId - unique identifier of the caller
        Returns:
        connection object for the out topic or InvalidParameterException one of the parameters is null or invalid or UserNotAuthorizedException user not authorized to issue this request or PropertyServerException problem retrieving the governance engine definition.
      • logAssetAuditMessage

        public VoidResponse logAssetAuditMessage​(String serverName,
                                                 String userId,
                                                 String assetGUID,
                                                 String governanceService,
                                                 String message)
        Log an audit message about this asset.
        Parameters:
        serverName - name of server instance to route request to
        userId - userId of user making request.
        assetGUID - unique identifier for asset.
        governanceService - name of governance service
        message - message to log
        Returns:
        void or InvalidParameterException one of the parameters is null or invalid. UserNotAuthorizedException user not authorized to issue this request. PropertyServerException there was a problem that occurred within the property server.
      • getMetadataElementByGUID

        public OpenMetadataElementResponse getMetadataElementByGUID​(String serverName,
                                                                    String userId,
                                                                    String elementGUID,
                                                                    boolean forLineage,
                                                                    boolean forDuplicateProcessing,
                                                                    long effectiveTime)
        Retrieve the metadata element using its unique identifier.
        Parameters:
        serverName - name of server instance to route request to
        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 or 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 OpenMetadataElementResponse getMetadataElementByUniqueName​(String serverName,
                                                                          String userId,
                                                                          boolean forLineage,
                                                                          boolean forDuplicateProcessing,
                                                                          long effectiveTime,
                                                                          NameRequestBody requestBody)
        Retrieve the metadata element using its unique name (typically the qualified name).
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        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.
        requestBody - unique name for the metadata element
        Returns:
        metadata element properties or 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
      • getMetadataElementGUIDByUniqueName

        public GUIDResponse getMetadataElementGUIDByUniqueName​(String serverName,
                                                               String userId,
                                                               boolean forLineage,
                                                               boolean forDuplicateProcessing,
                                                               long effectiveTime,
                                                               NameRequestBody requestBody)
        Retrieve the unique identifier of a metadata element using its unique name (typically the qualified name).
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        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.
        requestBody - unique name for the metadata element
        Returns:
        metadata element unique identifier (guid) or InvalidParameterException the unique identifier is null or not known or UserNotAuthorizedException the governance action service is not able to access the element or PropertyServerException there is a problem accessing the metadata store
      • findMetadataElementsWithString

        public OpenMetadataElementsResponse findMetadataElementsWithString​(String serverName,
                                                                           String userId,
                                                                           boolean forLineage,
                                                                           boolean forDuplicateProcessing,
                                                                           long effectiveTime,
                                                                           int startFrom,
                                                                           int pageSize,
                                                                           SearchStringRequestBody requestBody)
        Retrieve the metadata elements that contain the requested string.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        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
        requestBody - searchString to retrieve
        Returns:
        list of matching metadata elements (or null if no elements match the name) or 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 RelatedMetadataElementListResponse getRelatedMetadataElements​(String serverName,
                                                                             String userId,
                                                                             String elementGUID,
                                                                             String relationshipTypeName,
                                                                             boolean forLineage,
                                                                             boolean forDuplicateProcessing,
                                                                             long effectiveTime,
                                                                             int startingAtEnd,
                                                                             int startFrom,
                                                                             int pageSize)
        Retrieve the metadata elements connected to the supplied element.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        elementGUID - unique identifier for the starting metadata element
        relationshipTypeName - type name of relationships to follow (or null for all)
        startingAtEnd - indicates which end to retrieve from (0 is "either end"; 1 is end1; 2 is end 2)
        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 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 OpenMetadataElementsResponse findMetadataElements​(String serverName,
                                                                 String userId,
                                                                 boolean forLineage,
                                                                 boolean forDuplicateProcessing,
                                                                 long effectiveTime,
                                                                 int startFrom,
                                                                 int pageSize,
                                                                 FindRequestBody requestBody)
        Return a list of metadata elements that match the supplied criteria. The results can be returned over many pages.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        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
        requestBody - properties defining the search criteria
        Returns:
        a list of elements matching the supplied criteria; null means no matching elements in the metadata store. 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 RelatedMetadataElementsListResponse findRelationshipsBetweenMetadataElements​(String serverName,
                                                                                            String userId,
                                                                                            boolean forLineage,
                                                                                            boolean forDuplicateProcessing,
                                                                                            long effectiveTime,
                                                                                            int startFrom,
                                                                                            int pageSize,
                                                                                            FindRequestBody requestBody)
        Return a list of relationships that match the requested conditions. The results can be received as a series of pages.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        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
        requestBody - properties defining the search criteria
        Returns:
        a list of relationships - null means no matching relationships - or 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 GUIDResponse createMetadataElementInStore​(String serverName,
                                                         String userId,
                                                         NewMetadataElementRequestBody requestBody)
        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:
        serverName - name of server instance to route request to
        userId - caller's userId
        requestBody - properties for the new element
        Returns:
        unique identifier of the new metadata element 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 VoidResponse updateMetadataElementInStore​(String serverName,
                                                         String userId,
                                                         String metadataElementGUID,
                                                         UpdatePropertiesRequestBody requestBody)
        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 of them by the value used in the replaceProperties flag.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        metadataElementGUID - unique identifier of the metadata element to update
        requestBody - new properties
        Returns:
        void or 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 VoidResponse updateMetadataElementStatusInStore​(String serverName,
                                                               String userId,
                                                               String metadataElementGUID,
                                                               UpdateStatusRequestBody requestBody)
        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:
        serverName - name of server instance to route request to
        userId - caller's userId
        metadataElementGUID - unique identifier of the metadata element to update
        requestBody - new status values - use null to leave as is
        Returns:
        void or 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 VoidResponse deleteMetadataElementInStore​(String serverName,
                                                         String userId,
                                                         String metadataElementGUID,
                                                         UpdateRequestBody requestBody)
        Delete a specific metadata element.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        metadataElementGUID - unique identifier of the metadata element to update
        requestBody - null request body
        Returns:
        void or 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 VoidResponse classifyMetadataElementInStore​(String serverName,
                                                           String userId,
                                                           String metadataElementGUID,
                                                           String classificationName,
                                                           NewClassificationRequestBody requestBody)
        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:
        serverName - name of server instance to route request to
        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)
        requestBody - properties to store in the new classification. These must conform to the valid properties associated with the classification name
        Returns:
        void or 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 VoidResponse reclassifyMetadataElementInStore​(String serverName,
                                                             String userId,
                                                             String metadataElementGUID,
                                                             String classificationName,
                                                             UpdatePropertiesRequestBody requestBody)
        Update the properties of a classification that is currently attached to a specific metadata element.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        metadataElementGUID - unique identifier of the metadata element to update
        classificationName - unique name of the classification to update
        requestBody - new properties for the classification
        Returns:
        void or 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
      • updateClassificationStatusInStore

        public VoidResponse updateClassificationStatusInStore​(String serverName,
                                                              String userId,
                                                              String metadataElementGUID,
                                                              String classificationName,
                                                              UpdateEffectivityDatesRequestBody requestBody)
        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:
        serverName - name of server instance to route request to
        userId - caller's userId
        metadataElementGUID - unique identifier of the metadata element to update
        classificationName - unique name of the classification to update
        requestBody - the dates when this element is active / inactive - null for no restriction
        Returns:
        void or 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 VoidResponse unclassifyMetadataElementInStore​(String serverName,
                                                             String userId,
                                                             String metadataElementGUID,
                                                             String classificationName,
                                                             UpdateRequestBody requestBody)
        Remove the named classification from a specific metadata element.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        metadataElementGUID - unique identifier of the metadata element to update
        classificationName - unique name of the classification to remove
        requestBody - null request body
        Returns:
        void or 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 GUIDResponse createRelatedElementsInStore​(String serverName,
                                                         String userId,
                                                         NewRelatedElementsRequestBody requestBody)
        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:
        serverName - name of server instance to route request to
        userId - caller's userId
        requestBody - the properties of the relationship
        Returns:
        unique identifier of the new relationship or 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 VoidResponse updateRelatedElementsInStore​(String serverName,
                                                         String userId,
                                                         String relationshipGUID,
                                                         UpdatePropertiesRequestBody requestBody)
        Update the properties associated with a relationship.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        relationshipGUID - unique identifier of the relationship to update
        requestBody - new properties for the relationship
        Returns:
        void or 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
      • updateRelatedElementsStatusInStore

        public VoidResponse updateRelatedElementsStatusInStore​(String serverName,
                                                               String userId,
                                                               String relationshipGUID,
                                                               UpdateEffectivityDatesRequestBody requestBody)
        Update the effectivity dates of a specific relationship between metadata elements. The effectivity dates control the visibility of the classification through specific APIs.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        relationshipGUID - unique identifier of the relationship to update
        requestBody - the dates when this element is active / inactive - null for no restriction
        Returns:
        void or 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 VoidResponse deleteRelatedElementsInStore​(String serverName,
                                                         String userId,
                                                         String relationshipGUID,
                                                         NullRequestBody requestBody)
        Delete a relationship between two metadata elements.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        relationshipGUID - unique identifier of the relationship to delete
        requestBody - null request body
        Returns:
        void or 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
      • updateActionTargetStatus

        public VoidResponse updateActionTargetStatus​(String serverName,
                                                     String userId,
                                                     ActionTargetStatusRequestBody requestBody)
        Update the status of a specific action target. By default, these values are derived from the values for the governance action service. However, if the governance action service has to process name target elements, then setting the status on each individual target will show the progress of the governance action service.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        requestBody - relationship properties
        Returns:
        void or InvalidParameterException the action target GUID is not recognized UserNotAuthorizedException the governance action service is not authorized to update the action target properties PropertyServerException there is a problem connecting to the metadata store
      • updateGovernanceActionStatus

        public VoidResponse updateGovernanceActionStatus​(String serverName,
                                                         String userId,
                                                         String governanceActionGUID,
                                                         StatusRequestBody requestBody)
        Update the status of the governance action - providing the caller is permitted.
        Parameters:
        serverName - name of server instance to route request to
        userId - identifier of calling user
        governanceActionGUID - identifier of the governance action request
        requestBody - new status ordinal
        Returns:
        void or InvalidParameterException one of the parameters is null or invalid. UserNotAuthorizedException user not authorized to issue this request. PropertyServerException there was a problem detected by the metadata store.
      • recordCompletionStatus

        public VoidResponse recordCompletionStatus​(String serverName,
                                                   String userId,
                                                   String governanceActionGUID,
                                                   CompletionStatusRequestBody requestBody)
        Declare that all of the processing for the governance action service is finished and the status of the work.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        governanceActionGUID - unique identifier of the governance action to update
        requestBody - completion status enum value, optional guard strings for triggering subsequent action(s) plus a list of additional elements to add to the action targets for the next phase
        Returns:
        void or InvalidParameterException the completion status is null UserNotAuthorizedException the governance action service is not authorized to update the governance action service status PropertyServerException there is a problem connecting to the metadata store
      • initiateGovernanceAction

        public GUIDResponse initiateGovernanceAction​(String serverName,
                                                     String userId,
                                                     String governanceEngineName,
                                                     GovernanceActionRequestBody requestBody)
        Create a governance action in the metadata store which will trigger the governance action service associated with the supplied request type. The governance action remains to act as a record of the actions taken for auditing.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        governanceEngineName - name of the governance engine that should execute the request
        requestBody - properties for the governance action and to pass to the governance action service
        Returns:
        unique identifier of the governance action or InvalidParameterException null qualified name UserNotAuthorizedException this governance action service is not authorized to create a governance action PropertyServerException there is a problem with the metadata store
      • initiateGovernanceActionProcess

        public GUIDResponse initiateGovernanceActionProcess​(String serverName,
                                                            String userId,
                                                            GovernanceActionProcessRequestBody requestBody)
        Using the named governance action process as a template, initiate a chain of governance actions.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        requestBody - properties to initiate the new instance of the process
        Returns:
        unique identifier of the first governance action of the process or InvalidParameterException null or unrecognized qualified name of the process UserNotAuthorizedException this governance action service is not authorized to create a governance action process PropertyServerException there is a problem with the metadata store
      • createIncidentReport

        public GUIDResponse createIncidentReport​(String serverName,
                                                 String userId,
                                                 IncidentReportRequestBody requestBody)
        Create an incident report to capture the situation detected by this governance action service. This incident report will be processed by other governance activities.
        Parameters:
        serverName - name of server instance to route request to
        userId - caller's userId
        requestBody - properties for the new incident report
        Returns:
        unique identifier of the resulting incident report or InvalidParameterException null or non-unique qualified name for the incident report UserNotAuthorizedException this governance action service is not authorized to create a incident report PropertyServerException there is a problem with the metadata store
      • getGovernanceAction

        public GovernanceActionElementResponse getGovernanceAction​(String serverName,
                                                                   String userId,
                                                                   String governanceActionGUID)
        Request the status and properties of an executing governance action request.
        Parameters:
        serverName - name of server instance to route request to
        userId - identifier of calling user
        governanceActionGUID - identifier of the governance action request.
        Returns:
        governance action properties and status or InvalidParameterException one of the parameters is null or invalid. UserNotAuthorizedException user not authorized to issue this request. PropertyServerException there was a problem detected by the metadata store.
      • claimGovernanceAction

        public VoidResponse claimGovernanceAction​(String serverName,
                                                  String userId,
                                                  String governanceActionGUID,
                                                  NullRequestBody requestBody)
        Request that execution of a governance action is allocated to the caller.
        Parameters:
        serverName - name of server instance to route request to
        userId - identifier of calling user
        governanceActionGUID - identifier of the governance action request.
        Returns:
        void or InvalidParameterException one of the parameters is null or invalid. UserNotAuthorizedException user not authorized to issue this request. PropertyServerException there was a problem detected by the metadata store.
      • getGovernanceActions

        public GovernanceActionElementsResponse getGovernanceActions​(String serverName,
                                                                     String userId,
                                                                     int startFrom,
                                                                     int pageSize)
        Retrieve the governance actions that are known to the server.
        Parameters:
        serverName - name of server instance to route request to
        userId - userId of caller
        startFrom - starting from element
        pageSize - maximum elements to return
        Returns:
        list of governance action elements or InvalidParameterException one of the parameters is null or invalid. UserNotAuthorizedException user not authorized to issue this request. PropertyServerException there was a problem detected by the metadata store.
      • getActiveGovernanceActions

        public GovernanceActionElementsResponse getActiveGovernanceActions​(String serverName,
                                                                           String userId,
                                                                           int startFrom,
                                                                           int pageSize)
        Retrieve the governance actions that are still in process.
        Parameters:
        serverName - name of server instance to route request to
        userId - userId of caller
        startFrom - starting from element
        pageSize - maximum elements to return
        Returns:
        list of governance action elements or InvalidParameterException one of the parameters is null or invalid. UserNotAuthorizedException user not authorized to issue this request. PropertyServerException there was a problem detected by the metadata store.
      • getActiveClaimedGovernanceActions

        public GovernanceActionElementsResponse getActiveClaimedGovernanceActions​(String serverName,
                                                                                  String userId,
                                                                                  String governanceEngineGUID,
                                                                                  int startFrom,
                                                                                  int pageSize)
        Retrieve the governance actions that are still in process and that have been claimed by this caller's userId. This call is used when the caller restarts.
        Parameters:
        serverName - name of server instance to route request to
        userId - userId of caller
        governanceEngineGUID - unique identifier of governance engine
        startFrom - starting from element
        pageSize - maximum elements to return
        Returns:
        list of governance action elements or InvalidParameterException one of the parameters is null or invalid. UserNotAuthorizedException user not authorized to issue this request. PropertyServerException there was a problem detected by the metadata store.