Class ContentPackBaseArchiveWriter

Direct Known Subclasses:
ApacheAtlasPackArchiveWriter, ApacheKafkaPackArchiveWriter, APIPackArchiveWriter, CorePackArchiveWriter, NannyPackArchiveWriter, PostgresPackArchiveWriter, UnityCatalogPackArchiveWriter

public abstract class ContentPackBaseArchiveWriter extends EgeriaBaseArchiveWriter
CorePackArchiveWriter creates an open metadata archive that includes the connector type information for all open connectors supplied by the egeria project.
  • Field Details

    • deployedImplementationTypeQNAMEs

      protected final Map<String,String> deployedImplementationTypeQNAMEs
  • Constructor Details

    • ContentPackBaseArchiveWriter

      public ContentPackBaseArchiveWriter(String archiveGUID, String archiveName, String archiveDescription, String archiveFileName, OpenMetadataArchive[] additionalDependencies)
      Constructor for an archive.
      Parameters:
      archiveGUID - unique identifier of the archive
      archiveName - name of the archive
      archiveDescription - description of archive
      archiveFileName - name of file to write archive to
      additionalDependencies - archive that this archive is dependent on
  • Method Details

    • createDataFileCatalogTemplate

      protected void createDataFileCatalogTemplate(DeployedImplementationType deployedImplementationType, String connectorTypeGUID, Map<String,Object> configurationProperties)
      Create a template for a data file and link it to the associated open metadata type. The template consists of a DataFile asset plus an optional connection, linked to the supplied connector type and an endpoint,
      Parameters:
      connectorTypeGUID - connector type to link to the connection
      deployedImplementationType - deployed implementation type to link the template to
      configurationProperties - configuration properties
    • createFolderCatalogTemplate

      protected void createFolderCatalogTemplate(DeployedImplementationType deployedImplementationType, String connectorTypeGUID)
      Create a template for a file directory and link it to the associated open metadata type. The template consists of a DataFile asset plus an optional connection, linked to the supplied connector type and an endpoint,
      Parameters:
      deployedImplementationType - info for the template
      connectorTypeGUID - connector type to link to the connection
    • createDataSetCatalogTemplate

      protected void createDataSetCatalogTemplate(DeployedImplementationType deployedImplementationType, String qualifiedName, String connectorTypeGUID)
      Create a template for a dataset and link it to the associated open metadata type. The template consists of a DataFile asset plus an optional connection, linked to the supplied connector type and an endpoint,
      Parameters:
      deployedImplementationType - values for the template
      connectorTypeGUID - connector type to link to the connection
    • createSoftwareFileCatalogTemplate

      protected void createSoftwareFileCatalogTemplate(DeployedImplementationType deployedImplementationType, String connectorTypeGUID)
      Create a template for a software file and link it to the associated open metadata type. The template consists of a DataFile asset plus an optional connection, linked to the supplied connector type and an endpoint,
      Parameters:
      deployedImplementationType - description for the template
      connectorTypeGUID - connector type to link to the connection
    • addSoftwareServerCatalogTemplates

      protected void addSoftwareServerCatalogTemplates(ContentPackDefinition contentPackDefinition)
      Loop through the server template definitions creating the specified templates.
      Parameters:
      contentPackDefinition - which content pack are these templates for?
    • addDataAssetCatalogTemplates

      protected void addDataAssetCatalogTemplates(ContentPackDefinition contentPackDefinition)
      Loop through the server template definitions creating the specified templates.
      Parameters:
      contentPackDefinition - which content pack are these templates for?
    • createSoftwareServerCatalogTemplate

      protected void createSoftwareServerCatalogTemplate(String guid, String qualifiedName, String templateName, String templateDescription, String templateVersion, DeployedImplementationTypeDefinition deployedImplementationType, DeployedImplementationTypeDefinition softwareCapabilityType, String softwareCapabilityName, String serverName, String serverVersionIdentifier, String description, String userId, String connectorTypeGUID, String networkAddress, Map<String,Object> configurationProperties, String secretsStorePurpose, String secretsStoreConnectorTypeGUID, String secretsStoreFileName, List<ReplacementAttributeType> replacementAttributeTypes, List<PlaceholderPropertyType> placeholderPropertyTypes)
      Create a template for a software server and link it to the associated deployed implementation type. The template consists of a SoftwareServer asset linked to a software capability, plus a connection, linked to the supplied connector type and an endpoint,
      Parameters:
      guid - fixed unique identifier
      qualifiedName - unique name for the template
      templateName - name of template in Template classification
      templateDescription - description of the template in the Template classification
      templateVersion - version of the template in the Template classification
      deployedImplementationType - deployed implementation type for the technology
      softwareCapabilityType - type of the associated capability
      softwareCapabilityName - name for the associated capability
      serverName - name for the server
      serverVersionIdentifier - server version identifier
      description - description for the server
      userId - userId for the connection
      connectorTypeGUID - connector type to link to the connection
      networkAddress - network address for the endpoint
      configurationProperties - additional properties for the connection
      secretsStorePurpose - purpose for the secrets store
      secretsStoreConnectorTypeGUID - optional name for the secrets store connector provider to include in the template
      secretsStoreFileName - location of the secrets store
      replacementAttributeTypes - attributes that should have a replacement value to successfully use the template
      placeholderPropertyTypes - placeholder variables used in the supplied parameters
    • createEndpointCatalogTemplate

      protected void createEndpointCatalogTemplate(String guid, String templateName, String templateDescription, String templateVersion, DeployedImplementationTypeDefinition deployedImplementationType, String serverName, String description, String networkAddress, String protocol, List<PlaceholderPropertyType> placeholderPropertyTypes)
      Create a template for a software server and link it to the associated deployed implementation type. The template consists of a SoftwareServer asset linked to a software capability, plus a connection, linked to the supplied connector type and an endpoint,
      Parameters:
      guid - fixed unique identifier
      templateName - name of template in Template classification
      templateDescription - description of the template in the Template classification
      templateVersion - version of the template in the Template classification
      serverName - name for the server
      description - description for the server
      networkAddress - network address for the endpoint
      protocol - communication protocol for the endpoint
      placeholderPropertyTypes - placeholder variables used in the supplied parameters
    • createHostCatalogTemplate

      protected void createHostCatalogTemplate(String guid, DeployedImplementationType deployedImplementationType, DeployedImplementationType softwareCapabilityType, String softwareCapabilityName, Classification softwareCapabilityClassification)
      Create a template for a host and link it to the associated deployed implementation type. The template consists of a SoftwareServer asset linked to a software capability, plus a connection, linked to the supplied connector type and an endpoint,
      Parameters:
      guid - fixed unique identifier
      deployedImplementationType - deployed implementation type for the technology
      softwareCapabilityType - type of the associated capability
      softwareCapabilityName - name for the associated capability
      softwareCapabilityClassification - classification for the software capability (or null)
    • createSoftwareCapabilityCatalogTemplate

      protected void createSoftwareCapabilityCatalogTemplate(String guid, DeployedImplementationType deployedImplementationType, String serverQualifiedName, String softwareCapabilityName, String softwareCapabilityDescription, Classification softwareCapabilityClassification, List<ReplacementAttributeType> replacementAttributeTypes, List<PlaceholderPropertyType> placeholderPropertyTypes)
      Create a template for a software server and link it to the associated deployed implementation type. The template consists of a SoftwareServer asset linked to a software capability, plus a connection, linked to the supplied connector type and an endpoint,
      Parameters:
      guid - fixed guid for this template
      deployedImplementationType - deployed implementation type for the technology
      serverQualifiedName - qualified name of the owning server
      softwareCapabilityName - name for the associated capability
      softwareCapabilityDescription - description for the software capability
      softwareCapabilityClassification - optional classification for the associated capability
      replacementAttributeTypes - attributes that should have a replacement value to successfully use the template
      placeholderPropertyTypes - placeholder variables used in the supplied parameters
    • createDataAssetCatalogTemplate

      protected void createDataAssetCatalogTemplate(String templateGUID, String templateVersion, DeployedImplementationTypeDefinition deployedImplementationType, String assetName, String assetDescription, String serverName, String versionIdentifier, String connectorTypeGUID, String networkAddress, Map<String,Object> configurationProperties, String secretsStorePurpose, String secretsStoreConnectorTypeGUID, String secretsStoreFileName, List<ReplacementAttributeType> replacementAttributeTypes, List<PlaceholderPropertyType> placeholderPropertyTypes)
      Create a template for a type of asset and link it to the associated deployed implementation type. The template consists of an asset linked to a connection, that is in turn linked to the supplied connector type and an endpoint, along with a nested secrets store
      Parameters:
      templateGUID - fixed unique identifier
      templateVersion - version of the template
      deployedImplementationType - deployed implementation type for the technology
      assetName - name for the asset
      assetDescription - description
      serverName - optional server name
      versionIdentifier - version identifier
      connectorTypeGUID - connector type to link to the connection
      networkAddress - network address for the endpoint
      configurationProperties - additional properties for the connection
      secretsStorePurpose - purpose for the secrets store
      secretsStoreConnectorTypeGUID - optional name for the secrets store connector provider to include in the template
      secretsStoreFileName - location of the secrets store
      replacementAttributeTypes - attributes that should have a replacement value to successfully use the template
      placeholderPropertyTypes - placeholder variables used in the supplied parameters
    • addDeployedImplementationType

      protected String addDeployedImplementationType(String deployedImplementationType, String associatedTypeName, String qualifiedName, String category, String description, String wikiLink, DeployedImplementationTypeDefinition isATypeOf)
      Add a new valid values record for a deployed implementation type.
      Parameters:
      deployedImplementationType - preferred value
      associatedTypeName - specific type name to tie it to (maybe null)
      qualifiedName - qualifiedName for this value
      category - category for this value
      description - description of this value
      wikiLink - optional URL link to more information
      isATypeOf - superType
      Returns:
      unique identifier of the deployedImplementationType
    • getParentSet

      protected String getParentSet(String requestedGUID, String typeName, String propertyName, String mapName)
      Find or create the parent set for a valid value.
      Parameters:
      requestedGUID - optional guid for the valid value
      typeName - name of the type (can be null)
      propertyName - name of the property (can be null)
      mapName - name of the mapName (can be null)
      Returns:
      unique identifier (guid) of the parent set
    • addIntegrationGroups

      protected void addIntegrationGroups(ContentPackDefinition contentPackDefinition)
      Loop through the integration group definitions creating the specified definitions for the names content pack.
      Parameters:
      contentPackDefinition - which content pack are these templates for?
    • addIntegrationConnectors

      protected void addIntegrationConnectors(ContentPackDefinition contentPackDefinition, IntegrationGroupDefinition integrationGroupDefinition)
      Add the integration connectors for the content pack.
      Parameters:
      contentPackDefinition - content pack being processed
      integrationGroupDefinition - integration group
    • createGovernanceEngines

      protected void createGovernanceEngines(ContentPackDefinition contentPackDefinition)
      Create the default governance engines
      Parameters:
      contentPackDefinition - content pack being processed
    • createGovernanceServices

      protected void createGovernanceServices(ContentPackDefinition contentPackDefinition)
      Register the governance services that are going to be in the default governance engines.
      Parameters:
      contentPackDefinition - content pack being processed
    • createRequestTypes

      protected void createRequestTypes(ContentPackDefinition contentPackDefinition)
      Add the request types.
      Parameters:
      contentPackDefinition - content pack to fill
    • addRequestType

      protected void addRequestType(String governanceEngineGUID, String governanceEngineName, String governanceEngineTypeName, String governanceRequestType, String serviceRequestType, Map<String,String> requestParameters, List<NewActionTarget> actionTargets, GovernanceActionDescription governanceActionDescription, String governanceActionTypeGUID, String supportedElementQualifiedName)
      Add details of a request type to the engine.
      Parameters:
      governanceEngineGUID - unique identifier of the engine
      governanceEngineName - name of the governance engine
      governanceEngineTypeName - type of engine
      governanceRequestType - name of request type
      serviceRequestType - internal name of the request type
      requestParameters - any request parameters
      actionTargets - action targets
      governanceActionDescription - description of the governance action if and
      governanceActionTypeGUID - unique identifier of the associated governance action type
      supportedElementQualifiedName - element to link the governance action type to
    • addGovernanceActionType

      protected void addGovernanceActionType(String governanceEngineGUID, String governanceEngineName, String governanceEngineTypeName, String governanceRequestType, Map<String,String> requestParameters, List<NewActionTarget> actionTargets, GovernanceActionDescription governanceActionDescription, String governanceActionTypeGUID, String supportedElementQualifiedName)
      Add details of a request type to the engine.
      Parameters:
      governanceEngineGUID - unique identifier of the engine
      governanceEngineName - name of the governance engine
      governanceEngineTypeName - type of engine
      governanceRequestType - name of request type
      requestParameters - any request parameters
      actionTargets - action targets
      governanceActionDescription - description of the governance action if any
      governanceActionTypeGUID - unique identifier of the associated governance action type
      supportedElementQualifiedName - element to link the governance action type to
    • createAndSurveyServerGovernanceActionProcess

      protected void createAndSurveyServerGovernanceActionProcess(String assetType, String technologyType, RequestTypeDefinition createRequestType, TemplateDefinition createTemplate, GovernanceEngineDefinition createEngineDefinition, RequestTypeDefinition surveyRequestType, GovernanceEngineDefinition surveyEngineDefinition, String supportedElementQualifiedName)
      Create a three-step governance action process that creates a metadata element for a particular type of asset and then runs a survey against the asset's resource and creates a report.
      Parameters:
      assetType - name for the asset type (no spaces)
      technologyType - value for deployed implementation type
      createRequestType - request type used to create the server's metadata element
      createTemplate - details of the template to use
      createEngineDefinition - engine to call for the create operation
      surveyRequestType - request type to run the survey
      surveyEngineDefinition - survey engine
      supportedElementQualifiedName - qualified name of the element that this should be listed as a resource
    • getRequestTypeDefinition

      protected List<RequestParameterType> getRequestTypeDefinition(List<PlaceholderPropertyType> placeholderPropertyTypes)
      Convert a list of placeholder variables into a list request parameters - to create the specification for a governance action process or governance action type.
      Parameters:
      placeholderPropertyTypes - placeholder properties used by the template
      Returns:
      list of request parameter definitions
    • createAndCatalogServerGovernanceActionProcess

      protected void createAndCatalogServerGovernanceActionProcess(String serverType, String technologyType, RequestTypeDefinition createRequestType, TemplateDefinition createTemplate, GovernanceEngineDefinition createEngineDefinition, RequestTypeDefinition catalogRequestType, GovernanceEngineDefinition catalogEngineDefinition, String supportedElementQualifiedName)
      Create a two-step governance action process that creates a metadata element for a particular type of server and then adds it as a catalog target for an appropriate integration connector.
      Parameters:
      serverType - name for the server type (no spaces)
      technologyType - value for deployed implementation type
      createRequestType - request type used to create the server's metadata element
      createTemplate - details of the template to use
      createEngineDefinition - governance action engine
      catalogRequestType - request type to run the survey
      catalogEngineDefinition - governance action engine
      supportedElementQualifiedName - qualified name of the element that this should be listed as a resource
    • createAndCatalogAssetGovernanceActionProcess

      protected void createAndCatalogAssetGovernanceActionProcess(String assetType, String openMetadataType, String technologyType, RequestTypeDefinition createRequestType, TemplateDefinition createTemplate, GovernanceEngineDefinition createEngineDefinition, RequestTypeDefinition catalogRequestType, GovernanceEngineDefinition catalogEngineDefinition, String supportedElementQualifiedName)
      Create a two-step governance action process that creates a metadata element for a particular type of asset and then adds it as a catalog target for an appropriate integration connector.
      Parameters:
      assetType - name for the asset type (no spaces)
      openMetadataType - open metadata type name for the created asset
      technologyType - value for deployed implementation type
      createRequestType - request type used to create the server's metadata element
      createTemplate - details of the template to use
      createEngineDefinition - governance action engine
      catalogRequestType - request type to run the survey
      catalogEngineDefinition - governance action engine
      supportedElementQualifiedName - qualified name of the element that this should be listed as a resource
    • createAndHarvestToAssetGovernanceActionProcess

      protected void createAndHarvestToAssetGovernanceActionProcess(String assetType, String openMetadataType, String technologyType, RequestTypeDefinition createRequestType, TemplateDefinition createTemplate, GovernanceEngineDefinition createEngineDefinition, RequestTypeDefinition catalogRequestType, GovernanceEngineDefinition catalogEngineDefinition, String supportedElementQualifiedName)
      Create a two-step governance action process that creates a metadata element for a particular type of asset and then adds it as a catalog target for an appropriate integration connector.
      Parameters:
      assetType - name for the asset type (no spaces)
      openMetadataType - open metadata type name for the created asset
      technologyType - value for deployed implementation type
      createRequestType - request type used to create the server's metadata element
      createTemplate - details of the template to use
      createEngineDefinition - governance action engine
      catalogRequestType - request type to run the survey
      catalogEngineDefinition - governance action engine
      supportedElementQualifiedName - qualified name of the element that this should be listed as a resource
    • createAsCatalogTargetGovernanceActionProcess

      protected void createAsCatalogTargetGovernanceActionProcess(String assetType, String openMetadataType, String technologyType, String actionName, RequestTypeDefinition createRequestType, TemplateDefinition createTemplate, GovernanceEngineDefinition createEngineDefinition, RequestTypeDefinition catalogRequestType, GovernanceEngineDefinition catalogEngineDefinition, String supportedElementQualifiedName)
      Create a two-step governance action process that creates a metadata element for a particular type of asset and then adds it as a catalog target for an appropriate integration connector.
      Parameters:
      assetType - name for the server type (no spaces)
      openMetadataType - type of the element to create
      technologyType - value for deployed implementation type
      actionName - nme to use for the action
      createRequestType - request type used to create the server's metadata element
      createTemplate - details of the template to use
      createEngineDefinition - governance action engine
      catalogRequestType - request type to run the survey
      catalogEngineDefinition - governance action engine
      supportedElementQualifiedName - qualified name of the element that this should be listed as a resource
    • deleteAsCatalogTargetGovernanceActionProcess

      protected void deleteAsCatalogTargetGovernanceActionProcess(String assetType, String openMetadataType, String technologyType, RequestTypeDefinition deleteRequestType, GovernanceEngineDefinition deleteEngineDefinition, String supportedElementQualifiedName)
      Create a one-step governance action process that deletes a metadata element for a particular type of asset which then removes it, any anchored content and relationships - like the catalog target for an appropriate integration connector.
      Parameters:
      assetType - name for the server type (no spaces)
      technologyType - value for deployed implementation type
      deleteRequestType - request type used to delete the server's metadata element
      deleteEngineDefinition - governance action engine
      supportedElementQualifiedName - qualified name of the element that this should be listed as a resource
    • addStepExecutor

      protected void addStepExecutor(String stepGUID, RequestTypeDefinition requestTypeDefinition, GovernanceEngineDefinition governanceEngineDefinition)
      Create the executor relationships and attach the action targets to the step.
      Parameters:
      stepGUID - unique identifier of the governance action process step
      requestTypeDefinition - the request type being configured
      governanceEngineDefinition - the engine to connect it to
    • writeOpenMetadataArchive

      public void writeOpenMetadataArchive()
      Generates and writes out an open metadata archive containing all the connector types describing the Egeria project open connectors.
      Overrides:
      writeOpenMetadataArchive in class EgeriaBaseArchiveWriter