Class GovernanceDefinitionRESTServices

java.lang.Object
org.odpi.openmetadata.accessservices.governanceprogram.server.GovernanceDefinitionRESTServices

public class GovernanceDefinitionRESTServices extends Object
GovernanceDefinitionManager is the java client for managing the definitions for the governance drivers, policies and controls that define the motivation, goals and implementation approach for the governance program. Governance drivers document of the business strategy and regulations that provide the motivation behind the governance program. They feed into the governance program's policymaking phase ensuring the governance program is focused on activity that delivers value to the organization. A governance driver could be a governance strategy statement, a business imperative, a regulation or a regulation's article. Governance policies define the goals and best practices for the governance program. There are three types of governance policies:
  • Governance Principles define the invariants that the organization tries to maintain.
  • Governance Obligations define the requirements coming from regulations and policy makers of the organization.
  • Governance Approaches describe preferred approaches and methods to follow
Within the definition of each governance policy is a description of what the policy is trying to achieve along with the implications to the organization's operation when they adopt this. These implications help to estimate the cost of the policy's implementation and the activities that need to happen. The governance definitions that define how the governance program is to be implemented. There are two types of governance definitions:
  • Technical Controls define the use of technology to implement governance definitions. They consist of either:
    • GovernanceRule - a rule that need to be enforced to support a requirement of the governance program.
    • GovernanceProcess - a series of automated steps that need to run to support a requirement of the governance program.
  • Organizational controls define roles, teams and manual procedures that implement an aspect of governance. They consist of either:
    • GovernanceResponsibility - a set of responsibilities that can be associated with a governance role
    • GovernanceProcedure - an manual procedure
Within the definition of each governance definition is a description of what the control is trying to achieve along with the implications to the organization's operation when they adopt this. These implications help to estimate the cost of the control's implementation and the activities that need to happen.
  • Constructor Details

    • GovernanceDefinitionRESTServices

      public GovernanceDefinitionRESTServices()
      Default constructor
  • Method Details

    • createGovernanceDefinition

      public GUIDResponse createGovernanceDefinition(String serverName, String userId, GovernanceDefinitionRequestBody requestBody)
      Create a new governance definition. The type of the definition is located in the properties.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      requestBody - properties of the definition and initial status
      Returns:
      unique identifier of the definition or InvalidParameterException typeName, documentIdentifier or userId is null; documentIdentifier is not unique; typeName is not valid PropertyServerException problem accessing the metadata service UserNotAuthorizedException security access problem
    • updateGovernanceDefinition

      public VoidResponse updateGovernanceDefinition(String serverName, String userId, String definitionGUID, boolean isMergeUpdate, GovernanceDefinitionRequestBody requestBody)
      Update an existing governance definition.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      definitionGUID - unique identifier of the definition to update
      isMergeUpdate - are unspecified properties unchanged (true) or removed?
      requestBody - properties to update
      Returns:
      void or InvalidParameterException guid, documentIdentifier or userId is null; documentIdentifier is not unique; guid is not known PropertyServerException problem accessing property server UserNotAuthorizedException security access problem
    • setGovernanceDefinitionStatus

      public VoidResponse setGovernanceDefinitionStatus(String serverName, String userId, String definitionGUID, GovernanceStatusRequestBody requestBody)
      Update the status of a governance definition
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      definitionGUID - unique identifier
      requestBody - new status
      Returns:
      void or InvalidParameterException guid, documentIdentifier or userId is null; documentIdentifier is not unique; guid is not known PropertyServerException problem accessing property server UserNotAuthorizedException security access problem
    • deleteGovernanceDefinition

      public VoidResponse deleteGovernanceDefinition(String serverName, String userId, String definitionGUID, ExternalSourceRequestBody requestBody)
      Delete a specific governance definition.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      definitionGUID - unique identifier of the definition to remove
      requestBody - external source request body
      Returns:
      void or InvalidParameterException guid, documentIdentifier or userId is null; documentIdentifier is not unique; guid is not known PropertyServerException problem accessing property server UserNotAuthorizedException security access problem
    • linkPeerDefinitions

      public VoidResponse linkPeerDefinitions(String serverName, String userId, String definitionOneGUID, String definitionTwoGUID, RelationshipRequestBody requestBody)
      Link two related governance definitions together. The governance definitions are of the same type as follows:
      • A relationship of type GovernanceDriverLink is between two GovernanceDriver definitions
      • A relationship of type GovernancePolicyLink is between two GovernancePolicy definitions
      • A relationship of type GovernanceControl is between two GovernanceControl definitions
      If the link already exists the description is updated.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      definitionOneGUID - unique identifier of the first definition
      definitionTwoGUID - unique identifier of the second definition
      requestBody - description of their relationship
      Returns:
      void or InvalidParameterException guid, documentIdentifier or userId is null; documentIdentifier is not unique; guid is not known PropertyServerException problem accessing property server UserNotAuthorizedException security access problem
    • unlinkPeerDefinitions

      public VoidResponse unlinkPeerDefinitions(String serverName, String userId, String definitionOneGUID, String definitionTwoGUID, RelationshipRequestBody requestBody)
      Remove the link between two definitions.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      definitionOneGUID - unique identifier of the first definition
      definitionTwoGUID - unique identifier of the second definition
      requestBody - the name of the relationship to delete
      Returns:
      void or InvalidParameterException guid, documentIdentifier or userId is null; documentIdentifier is not unique; guid is not known PropertyServerException problem accessing property server UserNotAuthorizedException security access problem
    • setupSupportingDefinition

      public VoidResponse setupSupportingDefinition(String serverName, String userId, String definitionGUID, String supportingDefinitionGUID, RelationshipRequestBody requestBody)
      Create a link to show that a governance definition supports the requirements of another governance definition. This supporting relationship is between definitions of different types as follows:
      • A relationship of type GovernanceResponse is between a GovernanceDriver and a GovernancePolicy
      • A relationship of type GovernanceImplementation is between a GovernancePolicy and a GovernanceControl
      If the link already exists the rationale is updated.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      definitionGUID - unique identifier of the governance definition
      supportingDefinitionGUID - unique identifier of the supporting governance definition
      requestBody - description of how the supporting definition provides support
      Returns:
      void or InvalidParameterException guid, documentIdentifier or userId is null; documentIdentifier is not unique; guid is not known PropertyServerException problem accessing property server UserNotAuthorizedException security access problem
    • clearSupportingDefinition

      public VoidResponse clearSupportingDefinition(String serverName, String userId, String definitionGUID, String supportingDefinitionGUID, RelationshipRequestBody requestBody)
      Remove the supporting link between two governance definitions.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      definitionGUID - unique identifier of the governance definition
      supportingDefinitionGUID - unique identifier of the supporting governance definition
      requestBody - the name of the relationship to delete
      Returns:
      void or InvalidParameterException guid, documentIdentifier or userId is null; documentIdentifier is not unique; guid is not known PropertyServerException problem accessing property server UserNotAuthorizedException security access problem