diff --git a/pom.xml b/pom.xml
index 348f7f3..c39bd86 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
twitter-api-java-sdk
jar
twitter-api-java-sdk
- 2.0.3
+ 2.0.4
https://github.com/twitterdev/twitter-api-java-sdk
Twitter API v2 available endpoints
diff --git a/src/main/java/com/twitter/clientlib/api/DmApi.java b/src/main/java/com/twitter/clientlib/api/DmApi.java
new file mode 100644
index 0000000..68ad24a
--- /dev/null
+++ b/src/main/java/com/twitter/clientlib/api/DmApi.java
@@ -0,0 +1,304 @@
+package com.twitter.clientlib.api;
+
+import com.google.gson.reflect.TypeToken;
+import com.twitter.clientlib.*;
+import com.twitter.clientlib.model.DmEvent;
+import com.twitter.clientlib.model.Get2DmEventsResponse;
+import com.twitter.clientlib.model.ReplyToDmConversationResponse;
+import okhttp3.Call;
+
+import java.lang.reflect.Type;
+import java.util.*;
+
+public class DmApi extends ApiCommon {
+
+ public class APIfindDmEventsRequest {
+ private Set tweetFields;
+ private Set expansions;
+ private Set mediaFields;
+ private Set userFields;
+ private Set dmEventsFields;
+ private Set dmEventTypes;
+ private Integer maxResults;
+ private String paginationToken;
+ private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "edit_controls", "edit_history_tweet_ids", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld"));
+ private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width"));
+ private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld"));
+ private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "referenced_tweets.id", "sender_id", "participant_ids"));
+ private final Set dmEventsFieldsAll = new HashSet<>(Arrays.asList("id", "text", "event_type", "created_at", "dm_conversation_id", "sender_id", "participant_ids", "referenced_tweets", "attachments"));
+ private final Set dmEventTypesAll = new HashSet<>(Arrays.asList("MessageCreate", "ParticipantsJoin", "ParticipantsLeave"));
+
+ private boolean isExclude = false;
+
+ public APIfindDmEventsRequest excludeInputFields() {
+ isExclude = true;
+ return this;
+ }
+
+ public APIfindDmEventsRequest tweetFields(Set tweetFields) {
+ this.tweetFields = tweetFields;
+ return this;
+ }
+
+ public APIfindDmEventsRequest expansions(Set expansions) {
+ this.expansions = expansions;
+ return this;
+ }
+
+ public APIfindDmEventsRequest mediaFields(Set mediaFields) {
+ this.mediaFields = mediaFields;
+ return this;
+ }
+
+ public APIfindDmEventsRequest userFields(Set userFields) {
+ this.userFields = userFields;
+ return this;
+ }
+
+ public APIfindDmEventsRequest dmEventsFields(Set dmEventsFields) {
+ this.dmEventsFields = dmEventsFields;
+ return this;
+ }
+
+ public APIfindDmEventsRequest dmEventTypes(Set dmEventTypes) {
+ this.dmEventTypes = dmEventTypes;
+ return this;
+ }
+
+ public APIfindDmEventsRequest maxResults(Integer maxResults) {
+ this.maxResults = maxResults;
+ return this;
+ }
+
+ public APIfindDmEventsRequest paginationToken(String paginationToken) {
+ this.paginationToken = paginationToken;
+ return this;
+ }
+
+ public okhttp3.Call buildCall(final ApiCallback _callback) throws ApiException {
+ return findDmEventsCall(tweetFields, expansions, mediaFields, userFields, dmEventsFields, dmEventTypes, maxResults, paginationToken, _callback);
+ }
+
+ public Get2DmEventsResponse execute() throws ApiException {
+ tweetFields = getFields("tweetFields", isExclude, tweetFields, tweetFieldsAll);
+ expansions = getFields("expansions", isExclude, expansions, expansionsAll);
+ mediaFields = getFields("mediaFields", isExclude, mediaFields, mediaFieldsAll);
+ userFields = getFields("userFields", isExclude, userFields, userFieldsAll);
+ dmEventsFields = getFields("dm_event.fields", isExclude, dmEventsFields, dmEventsFieldsAll);
+ dmEventTypes = getFields("event_types", isExclude, dmEventTypes, dmEventTypesAll);
+
+ ApiResponse localVarResp = findDmEventsCallWithHttpInfo(tweetFields, expansions, mediaFields, userFields, dmEventsFields, dmEventTypes, maxResults, paginationToken);
+ return localVarResp.getData();
+ }
+
+ public Get2DmEventsResponse execute(Integer retries) throws ApiException {
+ Get2DmEventsResponse localVarResp;
+ try{
+ localVarResp = execute();
+ } catch (ApiException e) {
+ if(handleRateLimit(e, retries)) {
+ return execute(retries - 1);
+ } else {
+ throw e;
+ }
+ }
+ return localVarResp;
+ }
+
+ public ApiResponse executeWithHttpInfo() throws ApiException {
+ return findDmEventsCallWithHttpInfo(tweetFields, expansions, mediaFields, userFields, dmEventsFields, dmEventTypes, maxResults, paginationToken);
+ }
+
+ public okhttp3.Call executeAsync(final ApiCallback _callback) throws ApiException {
+ return findDmEventsCallAsync(tweetFields, expansions, mediaFields, userFields, dmEventsFields, dmEventTypes, maxResults, paginationToken, _callback);
+ }
+ }
+
+ private Call findDmEventsCall(Set tweetFields, Set expansions, Set mediaFields, Set userFields, Set dmEventsFields, Set dmEventsTypes, Integer maxResults, String paginationToken, ApiCallback callback) throws ApiException {
+ Object localVarPostBody = null;
+
+ String localVarPath = "/2/dm_events";
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+
+ if (tweetFields != null) {
+ localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("csv", "tweet.fields", tweetFields));
+ }
+
+ if (expansions != null) {
+ localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("csv", "expansions", expansions));
+ }
+
+ if (mediaFields != null) {
+ localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("csv", "media.fields", mediaFields));
+ }
+
+ if (userFields != null) {
+ localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("csv", "user.fields", userFields));
+ }
+
+ if (dmEventsFields != null) {
+ localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("csv", "dm_event.fields", dmEventsFields));
+ }
+
+ if (dmEventsTypes != null) {
+ localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("csv", "event_types", dmEventsTypes));
+ }
+
+ if (maxResults != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("max_results", maxResults));
+ }
+
+ if (paginationToken != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("pagination_token", paginationToken));
+ }
+
+ final String[] localVarAccepts = {
+ "application/json", "application/problem+json"
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ String[] localVarAuthNames = new String[] { "OAuth2UserToken", "UserToken" };
+ return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, reduceAuthNames(localVarAuthNames), callback);
+ }
+
+ private Call findDmEventsValidateBeforeCall(Set tweetFields, Set expansions, Set mediaFields, Set userFields, Set dmEventsFields, Set dmEventsTypes, Integer maxResults, String paginationToken, final ApiCallback _callback) throws ApiException {
+ okhttp3.Call localVarCall = findDmEventsCall(tweetFields, expansions, mediaFields, userFields, dmEventsFields, dmEventsTypes, maxResults, paginationToken, _callback);
+ return localVarCall;
+ }
+
+ private ApiResponse findDmEventsCallWithHttpInfo(Set tweetFields, Set expansions, Set mediaFields, Set userFields, Set dmEventsFields, Set dmEventsTypes, Integer maxResults, String paginationToken) throws ApiException {
+ okhttp3.Call localVarCall = findDmEventsValidateBeforeCall(tweetFields, expansions, mediaFields, userFields, dmEventsFields, dmEventsTypes, maxResults, paginationToken, null);
+ try {
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ } catch (ApiException e) {
+ e.setErrorObject(localVarApiClient.getJSON().getGson().fromJson(e.getResponseBody(), new TypeToken(){}.getType()));
+ throw e;
+ }
+ }
+
+ private okhttp3.Call findDmEventsCallAsync(Set tweetFields, Set expansions, Set mediaFields, Set userFields, Set dmEventsFields, Set dmEventsTypes, Integer maxResults, String paginationToken, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = findDmEventsValidateBeforeCall(tweetFields, expansions, mediaFields, userFields, dmEventsFields, dmEventsTypes, maxResults, paginationToken, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+
+ public APIfindDmEventsRequest findDmEvents() {
+ return new APIfindDmEventsRequest();
+ }
+
+ public APIreplyToDmConversationRequest replyToDmConversation(String conversationId, String text) {
+ return new APIreplyToDmConversationRequest(conversationId, text);
+ }
+
+ private Call replyToDmConversationValidateBeforeCall(String id, String text, ApiCallback _callback) throws ApiException {
+ if (id == null) {
+ throw new ApiException("Missing the required parameter 'id' when calling replyToDmConversation(Async)");
+ }
+
+ if (text == null) {
+ throw new ApiException("Missing the required parameter 'text' when calling replyToDmConversation(Async)");
+ }
+
+ okhttp3.Call localVarCall = replyToDmConversationCall(id, text, _callback);
+ return localVarCall;
+ }
+
+ private ApiResponse replyToDmConversationWithHttpInfo(String id, String text) throws ApiException {
+ okhttp3.Call localVarCall = replyToDmConversationValidateBeforeCall(id, text, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ private Call replyToDmConversationCallAsync(String id, String text, ApiCallback callback) throws ApiException {
+ okhttp3.Call localVarCall = replyToDmConversationValidateBeforeCall(id, text, callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, callback);
+ return localVarCall;
+ }
+
+ private Call replyToDmConversationCall(String id, String text, ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = new DmEvent(text);
+
+ String localVarPath = "/2/dm_conversations/{id}/messages"
+ .replaceAll("\\{" + "id" + "\\}", localVarApiClient.escapeString(id.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+
+ final String[] localVarAccepts = {
+ "application/json"
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+ "application/json"
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ if (localVarContentType != null) {
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+ }
+
+ String[] localVarAuthNames = new String[] { "OAuth2UserToken", "UserToken" };
+ return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, reduceAuthNames(localVarAuthNames), _callback);
+ }
+
+ public class APIreplyToDmConversationRequest {
+
+ private final String id;
+ private final String text;
+
+ public APIreplyToDmConversationRequest(String conversationId, String text) {
+ this.id = conversationId;
+ this.text = text;
+ }
+
+ public okhttp3.Call buildCall(final ApiCallback _callback) throws ApiException {
+ return replyToDmConversationCall(id, text, _callback);
+ }
+
+ public ReplyToDmConversationResponse execute() throws ApiException {
+ ApiResponse localVarResp = replyToDmConversationWithHttpInfo(id, text);
+ return localVarResp.getData();
+ }
+
+ public ReplyToDmConversationResponse execute(Integer retries) throws ApiException {
+ ReplyToDmConversationResponse localVarResp;
+ try{
+ localVarResp = execute();
+ } catch (ApiException e) {
+ if(handleRateLimit(e, retries)) {
+ return execute(retries - 1);
+ } else {
+ throw e;
+ }
+ }
+ return localVarResp;
+ }
+
+ public ApiResponse executeWithHttpInfo() throws ApiException {
+ return replyToDmConversationWithHttpInfo(id, text);
+ }
+
+ public okhttp3.Call executeAsync(final ApiCallback _callback) throws ApiException {
+ return replyToDmConversationCallAsync(id, text, _callback);
+ }
+ }
+
+}
diff --git a/src/main/java/com/twitter/clientlib/api/TweetsApi.java b/src/main/java/com/twitter/clientlib/api/TweetsApi.java
index f726eb7..4a8284b 100644
--- a/src/main/java/com/twitter/clientlib/api/TweetsApi.java
+++ b/src/main/java/com/twitter/clientlib/api/TweetsApi.java
@@ -22,69 +22,17 @@
package com.twitter.clientlib.api;
+import com.google.gson.reflect.TypeToken;
import com.twitter.clientlib.ApiCallback;
-import com.twitter.clientlib.ApiClient;
-import com.twitter.clientlib.auth.*;
import com.twitter.clientlib.ApiException;
import com.twitter.clientlib.ApiResponse;
-import com.twitter.clientlib.Configuration;
import com.twitter.clientlib.Pair;
-import com.twitter.clientlib.ProgressRequestBody;
-import com.twitter.clientlib.ProgressResponseBody;
-
-import com.github.scribejava.core.model.OAuth2AccessToken;
-import com.google.gson.reflect.TypeToken;
-
-import java.io.IOException;
-import java.util.HashSet;
-
-
-import com.twitter.clientlib.model.AddOrDeleteRulesRequest;
-import com.twitter.clientlib.model.AddOrDeleteRulesResponse;
-import com.twitter.clientlib.model.Error;
-import com.twitter.clientlib.model.FilteredStreamingTweetResponse;
-import com.twitter.clientlib.model.Get2ListsIdTweetsResponse;
-import com.twitter.clientlib.model.Get2SpacesIdBuyersResponse;
-import com.twitter.clientlib.model.Get2SpacesIdTweetsResponse;
-import com.twitter.clientlib.model.Get2TweetsCountsAllResponse;
-import com.twitter.clientlib.model.Get2TweetsCountsRecentResponse;
-import com.twitter.clientlib.model.Get2TweetsIdQuoteTweetsResponse;
-import com.twitter.clientlib.model.Get2TweetsIdResponse;
-import com.twitter.clientlib.model.Get2TweetsResponse;
-import com.twitter.clientlib.model.Get2TweetsSample10StreamResponse;
-import com.twitter.clientlib.model.Get2TweetsSearchAllResponse;
-import com.twitter.clientlib.model.Get2TweetsSearchRecentResponse;
-import com.twitter.clientlib.model.Get2UsersIdLikedTweetsResponse;
-import com.twitter.clientlib.model.Get2UsersIdMentionsResponse;
-import com.twitter.clientlib.model.Get2UsersIdTimelinesReverseChronologicalResponse;
-import com.twitter.clientlib.model.Get2UsersIdTweetsResponse;
-import java.time.OffsetDateTime;
-import com.twitter.clientlib.model.Problem;
-import com.twitter.clientlib.model.RulesLookupResponse;
-import java.util.Set;
-import com.twitter.clientlib.model.StreamingTweetResponse;
-import com.twitter.clientlib.model.TweetCreateRequest;
-import com.twitter.clientlib.model.TweetCreateResponse;
-import com.twitter.clientlib.model.TweetDeleteResponse;
-import com.twitter.clientlib.model.TweetHideRequest;
-import com.twitter.clientlib.model.TweetHideResponse;
-import com.twitter.clientlib.model.UsersLikesCreateRequest;
-import com.twitter.clientlib.model.UsersLikesCreateResponse;
-import com.twitter.clientlib.model.UsersLikesDeleteResponse;
-import com.twitter.clientlib.model.UsersRetweetsCreateRequest;
-import com.twitter.clientlib.model.UsersRetweetsCreateResponse;
-import com.twitter.clientlib.model.UsersRetweetsDeleteResponse;
+import com.twitter.clientlib.model.*;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Arrays;
import java.io.InputStream;
-import javax.ws.rs.core.GenericType;
-
-import org.apache.commons.lang3.StringUtils;
+import java.lang.reflect.Type;
+import java.time.OffsetDateTime;
+import java.util.*;
public class TweetsApi extends ApiCommon {
diff --git a/src/main/java/com/twitter/clientlib/api/TwitterApi.java b/src/main/java/com/twitter/clientlib/api/TwitterApi.java
index a20b38f..d672b7c 100644
--- a/src/main/java/com/twitter/clientlib/api/TwitterApi.java
+++ b/src/main/java/com/twitter/clientlib/api/TwitterApi.java
@@ -42,6 +42,7 @@ public class TwitterApi {
private final SpacesApi spaces = new SpacesApi();
private final TweetsApi tweets = new TweetsApi();
private final UsersApi users = new UsersApi();
+ private final DmApi dm = new DmApi();
private ApiClient localVarApiClient = new ApiClient();
public TwitterApi(TwitterCredentialsBearer credentials) {
@@ -84,6 +85,7 @@ private void initApis() {
spaces.setClient(localVarApiClient);
tweets.setClient(localVarApiClient);
users.setClient(localVarApiClient);
+ dm.setClient(localVarApiClient);
}
public BookmarksApi bookmarks() {
@@ -107,6 +109,9 @@ public TweetsApi tweets() {
public UsersApi users() {
return users;
}
+ public DmApi dm() {
+ return dm;
+ }
public OAuth2AccessToken refreshToken() throws ApiException {
return localVarApiClient.refreshToken();
diff --git a/src/main/java/com/twitter/clientlib/model/DmEvent.java b/src/main/java/com/twitter/clientlib/model/DmEvent.java
new file mode 100644
index 0000000..61205a5
--- /dev/null
+++ b/src/main/java/com/twitter/clientlib/model/DmEvent.java
@@ -0,0 +1,103 @@
+package com.twitter.clientlib.model;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.time.OffsetDateTime;
+
+public class DmEvent {
+
+ @SerializedName("id")
+ private String id;
+
+ @SerializedName("sender_id")
+ private String senderId;
+
+ @SerializedName("event_type")
+ private String eventType; // TODO enum
+
+ @SerializedName("text")
+ private String text;
+
+ @SerializedName("dm_conversation_id")
+ private String dmConversationId;
+
+ @SerializedName("created_at")
+ private OffsetDateTime createdAt;
+
+ public DmEvent() {
+
+ }
+
+ public DmEvent(String text) {
+ this.text = text;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getSenderId() {
+ return senderId;
+ }
+
+ public void setSenderId(String senderId) {
+ this.senderId = senderId;
+ }
+
+ public String getEventType() {
+ return eventType;
+ }
+
+ public void setEventType(String eventType) {
+ this.eventType = eventType;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ public String getDmConversationId() {
+ return dmConversationId;
+ }
+
+ public void setDmConversationId(String dmConversationId) {
+ this.dmConversationId = dmConversationId;
+ }
+
+ public OffsetDateTime getCreatedAt() {
+ return createdAt;
+ }
+
+ public void setCreatedAt(OffsetDateTime createdAt) {
+ this.createdAt = createdAt;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class DmEvent {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" senderId: ").append(toIndentedString(senderId)).append("\n");
+ sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n");
+ sb.append(" text: ").append(toIndentedString(text)).append("\n");
+ sb.append(" dmConversationId: ").append(toIndentedString(dmConversationId)).append("\n");
+ sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/twitter/clientlib/model/Get2DmEventsResponse.java b/src/main/java/com/twitter/clientlib/model/Get2DmEventsResponse.java
new file mode 100644
index 0000000..54f11d4
--- /dev/null
+++ b/src/main/java/com/twitter/clientlib/model/Get2DmEventsResponse.java
@@ -0,0 +1,132 @@
+package com.twitter.clientlib.model;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+public class Get2DmEventsResponse {
+
+ public static final String SERIALIZED_NAME_DATA = "data";
+ @SerializedName(SERIALIZED_NAME_DATA)
+ private List data = null;
+
+ public static final String SERIALIZED_NAME_ERRORS = "errors";
+ @SerializedName(SERIALIZED_NAME_ERRORS)
+ private List errors = null;
+
+ public static final String SERIALIZED_NAME_INCLUDES = "includes";
+ @SerializedName(SERIALIZED_NAME_INCLUDES)
+ private Expansions includes;
+
+ public static final String SERIALIZED_NAME_META = "meta";
+ @SerializedName(SERIALIZED_NAME_META)
+ private Get2TweetsSearchAllResponseMeta meta;
+
+ public Get2DmEventsResponse() {
+
+ }
+
+ public Get2DmEventsResponse data(List data) {
+ this.data = data;
+ return this;
+ }
+
+ public Get2DmEventsResponse addDataItem(DmEvent dataItem) {
+ if (this.data == null) {
+ this.data = new ArrayList<>();
+ }
+ this.data.add(dataItem);
+ return this;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public Get2DmEventsResponse errors(List errors) {
+ this.errors = errors;
+ return this;
+ }
+
+ public Get2DmEventsResponse addErrorsItem(Problem errorsItem) {
+ if (this.errors == null) {
+ this.errors = new ArrayList<>();
+ }
+ this.errors.add(errorsItem);
+ return this;
+ }
+
+ public List getErrors() {
+ return errors;
+ }
+
+ public void setErrors(List errors) {
+ this.errors = errors;
+ }
+
+ public Get2DmEventsResponse includes(Expansions includes) {
+ this.includes = includes;
+ return this;
+ }
+
+ public Expansions getIncludes() {
+ return includes;
+ }
+
+ public void setIncludes(Expansions includes) {
+ this.includes = includes;
+ }
+
+ public Get2DmEventsResponse meta(Get2TweetsSearchAllResponseMeta meta) {
+ this.meta = meta;
+ return this;
+ }
+
+ public Get2TweetsSearchAllResponseMeta getMeta() {
+ return meta;
+ }
+
+ public void setMeta(Get2TweetsSearchAllResponseMeta meta) {
+ this.meta = meta;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Get2DmEventsResponse get2DmEventsResponse = (Get2DmEventsResponse) o;
+ return Objects.equals(this.data, get2DmEventsResponse.data) &&
+ Objects.equals(this.errors, get2DmEventsResponse.errors) &&
+ Objects.equals(this.includes, get2DmEventsResponse.includes) &&
+ Objects.equals(this.meta, get2DmEventsResponse.meta);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Get2DmEventsResponse {\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" errors: ").append(toIndentedString(errors)).append("\n");
+ sb.append(" includes: ").append(toIndentedString(includes)).append("\n");
+ sb.append(" meta: ").append(toIndentedString(meta)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/twitter/clientlib/model/NewDmEvent.java b/src/main/java/com/twitter/clientlib/model/NewDmEvent.java
new file mode 100644
index 0000000..2506bb2
--- /dev/null
+++ b/src/main/java/com/twitter/clientlib/model/NewDmEvent.java
@@ -0,0 +1,28 @@
+package com.twitter.clientlib.model;
+
+import com.google.gson.annotations.SerializedName;
+
+public class NewDmEvent {
+
+ @SerializedName("dm_conversation_id")
+ private String dmConversationId;
+
+ @SerializedName("dm_event_id")
+ private String dmEventId;
+
+ public String getDmConversationId() {
+ return dmConversationId;
+ }
+
+ public void setDmConversationId(String dmConversationId) {
+ this.dmConversationId = dmConversationId;
+ }
+
+ public String getDmEventId() {
+ return dmEventId;
+ }
+
+ public void setDmEventId(String dmEventId) {
+ this.dmEventId = dmEventId;
+ }
+}
diff --git a/src/main/java/com/twitter/clientlib/model/ReplyToDmConversationResponse.java b/src/main/java/com/twitter/clientlib/model/ReplyToDmConversationResponse.java
new file mode 100644
index 0000000..de00d26
--- /dev/null
+++ b/src/main/java/com/twitter/clientlib/model/ReplyToDmConversationResponse.java
@@ -0,0 +1,17 @@
+package com.twitter.clientlib.model;
+
+import com.google.gson.annotations.SerializedName;
+
+public class ReplyToDmConversationResponse {
+
+ @SerializedName("data")
+ private NewDmEvent data;
+
+ public NewDmEvent getData() {
+ return data;
+ }
+
+ public void setData(NewDmEvent data) {
+ this.data = data;
+ }
+}