def SetUpdateMask(ref, arguments, req):
  """Constructs updateMask for endpoint patch requests."""
  del ref

  service_accounts_mask = 'serviceAccounts'
  labels_mask = 'labels'
  update_mask = set()

  if (arguments.clear_service_accounts or
      arguments.IsSpecified('remove_service_accounts') or
      arguments.IsSpecified('add_service_accounts')):
    update_mask.add(service_accounts_mask)

  if arguments.clear_labels:
    update_mask.add(labels_mask)

  labels_update_mask_prefix = labels_mask + '.'
  if labels_mask not in update_mask:
    if arguments.update_labels:
      for key in arguments.update_labels:
        update_mask.add(labels_update_mask_prefix + key)
    if arguments.remove_labels:
      for key in arguments.remove_labels:
        update_mask.add(labels_update_mask_prefix + key)

  req.updateMask = ','.join(sorted(update_mask))
  return req