Package com.collibra.dgc.core.api.component.instance

# Interface ComplexRelationApi

public interface ComplexRelationApi
Provides functionality for the ComplexRelations

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ComplexRelation`
  `addComplexRelation(AddComplexRelationRequest addComplexRelationRequest)`
  Add a new complex relation.
  `ComplexRelation`
  `changeComplexRelation(ChangeComplexRelationRequest changeComplexRelationRequest)`
  Changes the complex relation as described by the request
  `boolean`
  `exists(UUID complexRelationId)`
  Returns true if complex relation with given ID exists and user has view permissions, false otherwise.
  `String`
  `exportCSV(ExportComplexRelationsToCSVRequest exportRequest)`
  Export all complex relations of the given type as a String.
  `Job`
  `exportCSVInJob(ExportComplexRelationsToCSVRequest exportRequest)`
  Export complex relations to CSV.
  `FileInfo`
  `exportCSVToFile(ExportComplexRelationsToCSVRequest exportRequest)`
  Export all complex relations of the given type to a CSV file.
  `Job`
  `exportExcelInJob(ExportComplexRelationsToExcelRequest exportRequest)`
  Export complex relations to Excel.
  `FileInfo`
  `exportExcelToFile(ExportComplexRelationsToExcelRequest exportRequest)`
  Export all complex relations of the given type to an Excel file.
  `Set<UUID>`
  `findComplexRelationIdsWithTargetAsset(UUID assetId, UUID legType, UUID complexRelationType)`
  Retrieve the ids of all the Complex Relations of a certain complex relation type having a relation of a given leg type with the given asset.
  `CursorPagedResponse<ComplexRelation>`
  `findComplexRelations(FindComplexRelationsRequest findComplexRelationsRequest)`
  Find `ComplexRelation` using filtering criteria.
  `Collection<ComplexRelation>`
  `findComplexRelationsByIds(Collection<UUID> complexRelationIds)`
  Get list of complex relations identified by given IDs, silently ignore non-existing IDs.
  `ComplexRelation`
  `getComplexRelation(UUID complexRelationId)`
  Returns the ComplexRelation identified by the given UUID
  `void`
  `removeComplexRelation(UUID complexRelationId)`
  Removes the ComplexRelation linked to the given UUID

- ## Method Details

  - ### getComplexRelation

    ComplexRelation getComplexRelation(UUID complexRelationId)
    Returns the ComplexRelation identified by the given UUID
    Parameters:
      `complexRelationId` - the UUID of the complex relation
    Returns:
      the complex relation

  - ### findComplexRelationsByIds

    @SecurityAuditMethod(resultFormatter=com.collibra.audit.formatter.CollectionFormatter.class) Collection<ComplexRelation> findComplexRelationsByIds(Collection<UUID> complexRelationIds)
    Get list of complex relations identified by given IDs, silently ignore non-existing IDs.
    Parameters:
      `complexRelationIds` - The list of complex relation ids.
    Returns:
      The list of `ComplexRelation`.

  - ### exists

    boolean exists(UUID complexRelationId)
    Returns true if complex relation with given ID exists and user has view permissions, false otherwise.
    Parameters:
      `complexRelationId` - the ID of the complex relation
    Returns:
      true if complex relation with given ID exists and viewable, `false` otherwise

  - ### removeComplexRelation

    void removeComplexRelation(UUID complexRelationId)
    Removes the ComplexRelation linked to the given UUID
    Parameters:
      `complexRelationId` - the UUID of the complexRelation

  - ### findComplexRelations

    @SecurityAuditMethod(resultFormatter=com.collibra.dgc.core.api.internal.security.audit.formatter.PagedResponseFormatter.class) CursorPagedResponse<ComplexRelation> findComplexRelations(FindComplexRelationsRequest findComplexRelationsRequest)
    Find `ComplexRelation` using filtering criteria.
    Parameters:
      `findComplexRelationsRequest` - `ComplexRelation` filtering criteria.
    Returns:
      `PagedResponse` containing `ComplexRelation`s.

  - ### findComplexRelationIdsWithTargetAsset

    @SecurityAuditMethod(resultFormatter=com.collibra.audit.formatter.CollectionFormatter.class) Set<UUID> findComplexRelationIdsWithTargetAsset(UUID assetId, UUID legType, UUID complexRelationType)
    Retrieve the ids of all the Complex Relations of a certain complex relation type having a relation of a given leg type with the given asset.
    Parameters:
      `assetId` - The id of the asset to retrieve the `ComplexRelation`s for
      `legType` - The id of the legType to retrieve the `ComplexRelation`s for
      `complexRelationType` - The id of the ComplexRelationType}
    Returns:
      The set of ids of the found Complex relations

  - ### addComplexRelation

    ComplexRelation addComplexRelation(AddComplexRelationRequest addComplexRelationRequest)
    Add a new complex relation.
    Parameters:
      `addComplexRelationRequest` - contains all the necessary data to add a complex relation.
    Returns:
      The newly created complex relation.

  - ### changeComplexRelation

    ComplexRelation changeComplexRelation(ChangeComplexRelationRequest changeComplexRelationRequest)
    Changes the complex relation as described by the request
    Parameters:
      `changeComplexRelationRequest` - the request
    Returns:
      the changed complex relation

  - ### exportExcelInJob

    Job exportExcelInJob(ExportComplexRelationsToExcelRequest exportRequest)
    Export complex relations to Excel.
    Parameters:
      `exportRequest` - The request containing the necessary parameters for the export.
    Returns:
      The export `Job`.

  - ### exportExcelToFile

    FileInfo exportExcelToFile(ExportComplexRelationsToExcelRequest exportRequest)
    Export all complex relations of the given type to an Excel file.
    Parameters:
      `exportRequest` - The request containing the necessary parameters for the export.
    Returns:
      The `FileInfo` corresponding to the exported Excel file

  - ### exportCSVInJob

    Job exportCSVInJob(ExportComplexRelationsToCSVRequest exportRequest)
    Export complex relations to CSV.
    Parameters:
      `exportRequest` - The request containing the necessary parameters for the export.
    Returns:
      The export `Job`.

  - ### exportCSVToFile

    FileInfo exportCSVToFile(ExportComplexRelationsToCSVRequest exportRequest)
    Export all complex relations of the given type to a CSV file.
    Parameters:
      `exportRequest` - The request containing the necessary parameters for the export.
    Returns:
      The `FileInfo` corresponding to the exported CSV file

  - ### exportCSV

    String exportCSV(ExportComplexRelationsToCSVRequest exportRequest)
    Export all complex relations of the given type as a String.
    Parameters:
      `exportRequest` - The request containing the necessary parameters for the export.
    Returns:
      The CSV raw data