Class GovernanceDefinitionManager

java.lang.Object
org.odpi.openmetadata.accessservices.governanceprogram.client.GovernanceProgramBaseClient
org.odpi.openmetadata.accessservices.governanceprogram.client.GovernanceDefinitionManager
All Implemented Interfaces:
org.odpi.openmetadata.accessservices.governanceprogram.api.GovernanceDefinitionsInterface, org.odpi.openmetadata.accessservices.governanceprogram.api.RelatedElementsManagementInterface

public class GovernanceDefinitionManager extends GovernanceProgramBaseClient implements org.odpi.openmetadata.accessservices.governanceprogram.api.GovernanceDefinitionsInterface
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

    • GovernanceDefinitionManager

      public GovernanceDefinitionManager(String serverName, String serverPlatformURLRoot) throws org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException
      Create a new client with no authentication embedded in the HTTP request.
      Parameters:
      serverName - name of the server to connect to
      serverPlatformURLRoot - the network address of the server running the OMAS REST services
      Throws:
      org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException - bad input parameters
    • GovernanceDefinitionManager

      public GovernanceDefinitionManager(String serverName, String serverPlatformURLRoot, String userId, String password) throws org.odpi.openmetadata.frameworks.connectors.ffdc.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:
      serverName - name of the server to connect to
      serverPlatformURLRoot - the network address of the server running the OMAS REST services
      userId - caller's userId embedded in all HTTP requests
      password - caller's userId embedded in all HTTP requests
      Throws:
      org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException - bad input parameters
    • GovernanceDefinitionManager

      public GovernanceDefinitionManager(String serverName, String serverPlatformURLRoot, int maxPageSize, org.odpi.openmetadata.frameworks.auditlog.AuditLog auditLog) throws org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException
      Create a new client with no authentication embedded in the HTTP request.
      Parameters:
      serverName - name of the server to connect to
      serverPlatformURLRoot - the network address of the server running the OMAS REST services
      maxPageSize - pre-initialized parameter limit
      auditLog - logging destination
      Throws:
      org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException - bad input parameters
    • GovernanceDefinitionManager

      public GovernanceDefinitionManager(String serverName, String serverPlatformURLRoot, String userId, String password, int maxPageSize, org.odpi.openmetadata.frameworks.auditlog.AuditLog auditLog) throws org.odpi.openmetadata.frameworks.connectors.ffdc.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:
      serverName - name of the server to connect to
      serverPlatformURLRoot - the network address of the server running the OMAS REST services
      userId - caller's userId embedded in all HTTP requests
      password - caller's userId embedded in all HTTP requests
      maxPageSize - pre-initialized parameter limit
      auditLog - logging destination
      Throws:
      org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException - bad input parameters
    • GovernanceDefinitionManager

      public GovernanceDefinitionManager(String serverName, String serverPlatformURLRoot, GovernanceProgramRESTClient restClient, int maxPageSize) throws org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException
      Create a new client that uses the supplied rest client. This is typically used when called from another OMAG Server.
      Parameters:
      serverName - name of the server to connect to
      serverPlatformURLRoot - the network address of the server running the OMAS REST services
      restClient - internal client for rest calls
      maxPageSize - pre-initialized parameter limit
      Throws:
      org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException - bad input parameters
  • Method Details

    • createGovernanceDefinition

      public String createGovernanceDefinition(String userId, org.odpi.openmetadata.frameworks.openmetadata.properties.governance.GovernanceDefinitionProperties properties, org.odpi.openmetadata.frameworks.openmetadata.enums.GovernanceDefinitionStatus initialStatus) throws org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException, org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException, org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException
      Create a new governance definition. The type of the definition is located in the properties.
      Specified by:
      createGovernanceDefinition in interface org.odpi.openmetadata.accessservices.governanceprogram.api.GovernanceDefinitionsInterface
      Parameters:
      userId - calling user
      properties - properties of the definition
      initialStatus - what is the initial status for the governance definition - default value is DRAFT
      Returns:
      unique identifier of the definition
      Throws:
      org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException - typeName, documentIdentifier or userId is null; documentIdentifier is not unique; typeName is not valid
      org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException - problem accessing the metadata service
      org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException - security access problem
    • updateGovernanceDefinition

      public void updateGovernanceDefinition(String userId, String definitionGUID, boolean isMergeUpdate, org.odpi.openmetadata.frameworks.openmetadata.properties.governance.GovernanceDefinitionProperties properties) throws org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException, org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException, org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException
      Update an existing governance definition.
      Specified by:
      updateGovernanceDefinition in interface org.odpi.openmetadata.accessservices.governanceprogram.api.GovernanceDefinitionsInterface
      Parameters:
      userId - calling user
      definitionGUID - unique identifier of the definition to update
      isMergeUpdate - are unspecified properties unchanged (true) or removed?
      properties - properties to update
      Throws:
      org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException - guid, documentIdentifier or userId is null; documentIdentifier is not unique; guid is not known
      org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException - problem accessing property server
      org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException - security access problem
    • setGovernanceDefinitionStatus

      public void setGovernanceDefinitionStatus(String userId, String definitionGUID, org.odpi.openmetadata.frameworks.openmetadata.enums.GovernanceDefinitionStatus newStatus) throws org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException, org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException, org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException
      Update the status of a governance definition
      Specified by:
      setGovernanceDefinitionStatus in interface org.odpi.openmetadata.accessservices.governanceprogram.api.GovernanceDefinitionsInterface
      Parameters:
      userId - calling user
      definitionGUID - unique identifier
      newStatus - new status
      Throws:
      org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException - guid, documentIdentifier or userId is null; documentIdentifier is not unique; guid is not known
      org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException - problem accessing property server
      org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException - security access problem
    • deleteGovernanceDefinition

      public void deleteGovernanceDefinition(String userId, String definitionGUID) throws org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException, org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException, org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException
      Delete a specific governance definition.
      Specified by:
      deleteGovernanceDefinition in interface org.odpi.openmetadata.accessservices.governanceprogram.api.GovernanceDefinitionsInterface
      Parameters:
      userId - calling user
      definitionGUID - unique identifier of the definition to remove
      Throws:
      org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException - guid is null or not known
      org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException - problem accessing property server
      org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException - security access problem
    • linkPeerDefinitions

      public void linkPeerDefinitions(String userId, String definitionOneGUID, String definitionTwoGUID, String relationshipTypeName, org.odpi.openmetadata.frameworks.openmetadata.properties.actors.PeerDefinitionProperties properties) throws org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException, org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException, org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException
      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.
      Specified by:
      linkPeerDefinitions in interface org.odpi.openmetadata.accessservices.governanceprogram.api.GovernanceDefinitionsInterface
      Parameters:
      userId - calling user
      definitionOneGUID - unique identifier of the first definition
      definitionTwoGUID - unique identifier of the second definition
      relationshipTypeName - the name of the relationship to create
      properties - description of their relationship
      Throws:
      org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException - one of the guids is null or not known
      org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException - problem accessing property server
      org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException - security access problem
    • unlinkPeerDefinitions

      public void unlinkPeerDefinitions(String userId, String definitionOneGUID, String definitionTwoGUID, String relationshipTypeName) throws org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException, org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException, org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException
      Remove the link between two definitions.
      Specified by:
      unlinkPeerDefinitions in interface org.odpi.openmetadata.accessservices.governanceprogram.api.GovernanceDefinitionsInterface
      Parameters:
      userId - calling user
      definitionOneGUID - unique identifier of the first definition
      definitionTwoGUID - unique identifier of the second definition
      relationshipTypeName - the name of the relationship to delete
      Throws:
      org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException - one of the guids is null or not known
      org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException - problem accessing property server
      org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException - security access problem
    • setupSupportingDefinition

      public void setupSupportingDefinition(String userId, String definitionGUID, String supportingDefinitionGUID, String relationshipTypeName, org.odpi.openmetadata.frameworks.openmetadata.properties.governance.SupportingDefinitionProperties properties) throws org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException, org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException, org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException
      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.
      Specified by:
      setupSupportingDefinition in interface org.odpi.openmetadata.accessservices.governanceprogram.api.GovernanceDefinitionsInterface
      Parameters:
      userId - calling user
      definitionGUID - unique identifier of the governance definition
      supportingDefinitionGUID - unique identifier of the supporting governance definition
      relationshipTypeName - the name of the relationship to create
      properties - description of how the supporting definition provides support
      Throws:
      org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException - one of the guids is null or not known
      org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException - problem accessing property server
      org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException - security access problem
    • clearSupportingDefinition

      public void clearSupportingDefinition(String userId, String definitionGUID, String supportingDefinitionGUID, String relationshipTypeName) throws org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException, org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException, org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException
      Remove the supporting link between two governance definitions.
      Specified by:
      clearSupportingDefinition in interface org.odpi.openmetadata.accessservices.governanceprogram.api.GovernanceDefinitionsInterface
      Parameters:
      userId - calling user
      definitionGUID - unique identifier of the governance definition
      supportingDefinitionGUID - unique identifier of the supporting governance definition
      relationshipTypeName - the name of the relationship to delete
      Throws:
      org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException - one of the guids is null or not known
      org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException - problem accessing property server
      org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException - security access problem