com.geotab.model.search.DeviceStatusInfoSearch Maven / Gradle / Ivy
package com.geotab.model.search;
import com.geotab.model.coordinate.Coordinate;
import com.geotab.model.entity.device.Device;
import com.geotab.model.entity.devicestatusinfo.DeviceStatusInfo;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
* Used to specify the arguments when searching for {@link DeviceStatusInfo}(s).
*/
@Getter @Setter
@NoArgsConstructor
public class DeviceStatusInfoSearch extends Search {
/**
* The maximum number of {@link Device}s to search for when specifying a "Position".
*/
private Integer closestAssetLimit;
/**
* Search for {@link DeviceStatusInfo}(s) from a device that matches the {@link DeviceSearch} Id or in the Groups
* specified. This includes archived and deleted devices.
*
* Available {@link DeviceSearch} options are:.
*
* - id
* - groups
*
*/
private DeviceSearch deviceSearch;
/**
* Search for Status Info for {@link Device}s in the vicinity of the provided {@link Coordinate}. Starting from this
* position, an outward search for Devices will continue until the number of devices found matches the number defined
* in the "ClosestAssetLimit" property.
*/
private Coordinate position;
/**
* Search for Device Status Info associated with this {@link UserSearch} Id.
*
* Available {@link UserSearch} options are:.
*
* - id
*
*/
private UserSearch userSearch;
@Builder
public DeviceStatusInfoSearch(Integer closestAssetLimit,
DeviceSearch deviceSearch, Coordinate position, UserSearch userSearch) {
this.closestAssetLimit = closestAssetLimit;
this.deviceSearch = deviceSearch;
this.position = position;
this.userSearch = userSearch;
}
}