com.geotab.http.request.param.GetFeedParameters Maven / Gradle / Ivy
package com.geotab.http.request.param;
import com.geotab.model.login.Credentials;
import com.geotab.model.search.Search;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* This is the primary method used to sync data from the MyGeotab system for example all the GPS
* positions.
*
* Is designed to allow incremental updates by returning a FeedResult which contains the last
* version from the set of data returned. This return version is then used as the fromVersion
* argument for the next call. This guarantees that no changes in the data can be missed and that
* all data is consistently returned. It is important to understand that this feed call only returns
* changes in the data; so that at least one change must be received, otherwise the state is
* considered unknown. This call would typically be made every minute or more, to keep the data near
* real-time and up to date. Provide search parameters to limit the scope of the data being
* returned. In some rare circumstances old data in the system can be modified. If this happens,
* that old data is resent (with the changes) as it will have a newer version. In your design you
* must consider this.
*
*
It may be required to provide an entity search using from date to "back-fill" or "seed" data
* from a date in the past. Providing a from date guarantees that the feed will start at a version
* with all entities that have a date greater than or equal to the date provided. However, it is
* possible that the feed will return entities before the provided date. Searching using from date
* should be used independent of fromVersion and only on the first request.
*/
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class GetFeedParameters extends SearchParameters {
private String fromVersion;
@Builder(builderMethodName = "getFeedParamsBuilder")
public GetFeedParameters(String typeName, Integer resultsLimit,
Credentials credentials, T search, String fromVersion) {
super(typeName, resultsLimit, credentials, search);
this.fromVersion = fromVersion;
}
}