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

# Interface ResponsibilityApi

public interface ResponsibilityApi
Contains all api operations for handling responsibilities.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<Responsibility>`
  `addResponsibilities(List<AddResponsibilityRequest> addResponsibilityRequests)`
  Adds multiple Responsibilities in one go.
  `Responsibility`
  `addResponsibility(AddResponsibilityRequest addResponsibilityRequest)`
  Adds a responsibility.
  `boolean`
  `exists(UUID responsibilityId)`
  Returns true if a responsibility with given ID exists.
  `PagedResponse<Responsibility>`
  `findResponsibilities(FindResponsibilitiesRequest findResponsibilitiesRequest)`
  Finds the responsibilities that match the given input.
  `String`
  `getApproverRoleName(UUID assetId)`
  Finds the first approving role for the given asset with active users, based on the approver role configuration.
  `Responsibility`
  `getResponsibility(UUID responsibilityId)`
  Returns the responsibility with the given ID.
  `void`
  `removeResponsibilities(List<UUID> responsibilityIds)`
  Remove the responsibilities with the given ids.
  `void`
  `removeResponsibility(UUID responsibilityId)`
  Remove the responsibility identified by given ID.

- ## Method Details

  - ### addResponsibility

    Responsibility addResponsibility(AddResponsibilityRequest addResponsibilityRequest)
    Adds a responsibility.
    Parameters:
      `addResponsibilityRequest` - the information required to add a responsibility.
    Returns:
      the created responsibility

  - ### addResponsibilities

    @SecurityAuditMethod(resultFormatter=com.collibra.audit.formatter.CollectionFormatter.class) List<Responsibility> addResponsibilities(List<AddResponsibilityRequest> addResponsibilityRequests)
    Adds multiple Responsibilities in one go.
    Parameters:
      `addResponsibilityRequests` - the list of requests for adding responsibilities
    Returns:
      the list of created responsibilities

  - ### getResponsibility

    Responsibility getResponsibility(UUID responsibilityId)
    Returns the responsibility with the given ID.
    Parameters:
      `responsibilityId` - the ID of the responsibility
    Returns:
      the found responsibility

  - ### findResponsibilities

    @SecurityAuditMethod(resultFormatter=com.collibra.dgc.core.api.internal.security.audit.formatter.PagedResponseFormatter.class) PagedResponse<Responsibility> findResponsibilities(FindResponsibilitiesRequest findResponsibilitiesRequest)
    Finds the responsibilities that match the given input.
    Parameters:
      `findResponsibilitiesRequest` - The filter options for finding the responsibilities.
    Returns:
      the found responsibilities.

  - ### exists

    boolean exists(UUID responsibilityId)
    Returns true if a responsibility with given ID exists.
    Parameters:
      `responsibilityId` - the ID of the issue
    Returns:
      true if a responsibility with given ID exists, `false` otherwise

  - ### removeResponsibility

    void removeResponsibility(UUID responsibilityId)
    Remove the responsibility identified by given ID.
    Parameters:
      `responsibilityId` - the UUID of the responsibility to remove

  - ### removeResponsibilities

    void removeResponsibilities(List<UUID> responsibilityIds)
    Remove the responsibilities with the given ids.
    Parameters:
      `responsibilityIds` - the list of IDs of the responsibilities to remove

  - ### getApproverRoleName

    String getApproverRoleName(UUID assetId)
    Finds the first approving role for the given asset with active users, based on the approver role configuration. If no such role is found, it returns a global fallback role, if available.

    Use case: Identify the role responsible for approving requests related to an asset.

    Parameters:
      `assetId` - the ID of the asset
    Returns:
      the first role name with active users responsible for the asset, or `null` if:
      - No approvers are found (including a global fallback)
      - The fallback role has no members (users, groups)
      - The expected approver role is misconfigured or missing in the system