code: func (*Service) ListFreeIPs(c context.Context, req *crimson.ListFreeIPsRequest) (*crimson.ListIPsResponse, error) {
  	switch {
  	case req.Vlan < 1:
  		return nil, status.Error(codes.InvalidArgument, "VLAN is required and must be positive")
  	case req.PageSize < 0:
  		return nil, status.Error(codes.InvalidArgument, "page size must be non-negative")
  	case req.PageSize == 0:
  		req.PageSize = defaultIPsPageSize
  	}
  	ips, err := listFreeIPs(c, req.Vlan, req.PageSize)
  	if err != nil {
  		return nil, err
  	}
  	return &crimson.ListIPsResponse{
  		Ips: ips,
  	}, nil
  }
docs: // ListFreeIPs handles a request to list free IP addresses.