com.twilio.rest.ipmessaging.v2.service.user.UserChannel Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of twilio Show documentation
Show all versions of twilio Show documentation
Twilio Java Helper Library
/**
* This code was generated by
* \ / _ _ _| _ _
* | (_)\/(_)(_|\/| |(/_ v1.0.0
* / /
*/
package com.twilio.rest.ipmessaging.v2.service.user;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.base.MoreObjects;
import com.twilio.base.Resource;
import com.twilio.converter.Promoter;
import com.twilio.exception.ApiConnectionException;
import com.twilio.exception.ApiException;
import com.twilio.exception.RestException;
import com.twilio.http.HttpMethod;
import com.twilio.http.Request;
import com.twilio.http.Response;
import com.twilio.http.TwilioRestClient;
import com.twilio.rest.Domains;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.util.Map;
import java.util.Objects;
@JsonIgnoreProperties(ignoreUnknown = true)
public class UserChannel extends Resource {
private static final long serialVersionUID = 97342858560464L;
public enum ChannelStatus {
JOINED("joined"),
INVITED("invited"),
NOT_PARTICIPATING("not_participating");
private final String value;
private ChannelStatus(final String value) {
this.value = value;
}
public String toString() {
return value;
}
/**
* Generate a ChannelStatus from a string.
* @param value string value
* @return generated ChannelStatus
*/
@JsonCreator
public static ChannelStatus forValue(final String value) {
return Promoter.enumFromString(value, ChannelStatus.values());
}
}
public enum NotificationLevel {
DEFAULT("default"),
MUTED("muted");
private final String value;
private NotificationLevel(final String value) {
this.value = value;
}
public String toString() {
return value;
}
/**
* Generate a NotificationLevel from a string.
* @param value string value
* @return generated NotificationLevel
*/
@JsonCreator
public static NotificationLevel forValue(final String value) {
return Promoter.enumFromString(value, NotificationLevel.values());
}
}
/**
* Create a UserChannelReader to execute read.
*
* @param pathServiceSid The unique id of the Service those channels belong to.
* @param pathUserSid The unique id of a User.
* @return UserChannelReader capable of executing the read
*/
public static UserChannelReader reader(final String pathServiceSid,
final String pathUserSid) {
return new UserChannelReader(pathServiceSid, pathUserSid);
}
/**
* Create a UserChannelFetcher to execute fetch.
*
* @param pathServiceSid The unique id of the Service those channels belong to.
* @param pathUserSid The unique id of a User.
* @param pathChannelSid The unique id of a Channel.
* @return UserChannelFetcher capable of executing the fetch
*/
public static UserChannelFetcher fetcher(final String pathServiceSid,
final String pathUserSid,
final String pathChannelSid) {
return new UserChannelFetcher(pathServiceSid, pathUserSid, pathChannelSid);
}
/**
* Create a UserChannelUpdater to execute update.
*
* @param pathServiceSid The unique id of the Service those channels belong to.
* @param pathUserSid The unique id of a User.
* @param pathChannelSid The unique id of a Channel.
* @param notificationLevel Push notification level to be assigned to Channel
* of the User.
* @return UserChannelUpdater capable of executing the update
*/
public static UserChannelUpdater updater(final String pathServiceSid,
final String pathUserSid,
final String pathChannelSid,
final UserChannel.NotificationLevel notificationLevel) {
return new UserChannelUpdater(pathServiceSid, pathUserSid, pathChannelSid, notificationLevel);
}
/**
* Converts a JSON String into a UserChannel object using the provided
* ObjectMapper.
*
* @param json Raw JSON String
* @param objectMapper Jackson ObjectMapper
* @return UserChannel object represented by the provided JSON
*/
public static UserChannel fromJson(final String json, final ObjectMapper objectMapper) {
// Convert all checked exceptions to Runtime
try {
return objectMapper.readValue(json, UserChannel.class);
} catch (final JsonMappingException | JsonParseException e) {
throw new ApiException(e.getMessage(), e);
} catch (final IOException e) {
throw new ApiConnectionException(e.getMessage(), e);
}
}
/**
* Converts a JSON InputStream into a UserChannel object using the provided
* ObjectMapper.
*
* @param json Raw JSON InputStream
* @param objectMapper Jackson ObjectMapper
* @return UserChannel object represented by the provided JSON
*/
public static UserChannel fromJson(final InputStream json, final ObjectMapper objectMapper) {
// Convert all checked exceptions to Runtime
try {
return objectMapper.readValue(json, UserChannel.class);
} catch (final JsonMappingException | JsonParseException e) {
throw new ApiException(e.getMessage(), e);
} catch (final IOException e) {
throw new ApiConnectionException(e.getMessage(), e);
}
}
private final String accountSid;
private final String serviceSid;
private final String channelSid;
private final String userSid;
private final String memberSid;
private final UserChannel.ChannelStatus status;
private final Integer lastConsumedMessageIndex;
private final Integer unreadMessagesCount;
private final Map links;
private final URI url;
private final UserChannel.NotificationLevel notificationLevel;
@JsonCreator
private UserChannel(@JsonProperty("account_sid")
final String accountSid,
@JsonProperty("service_sid")
final String serviceSid,
@JsonProperty("channel_sid")
final String channelSid,
@JsonProperty("user_sid")
final String userSid,
@JsonProperty("member_sid")
final String memberSid,
@JsonProperty("status")
final UserChannel.ChannelStatus status,
@JsonProperty("last_consumed_message_index")
final Integer lastConsumedMessageIndex,
@JsonProperty("unread_messages_count")
final Integer unreadMessagesCount,
@JsonProperty("links")
final Map links,
@JsonProperty("url")
final URI url,
@JsonProperty("notification_level")
final UserChannel.NotificationLevel notificationLevel) {
this.accountSid = accountSid;
this.serviceSid = serviceSid;
this.channelSid = channelSid;
this.userSid = userSid;
this.memberSid = memberSid;
this.status = status;
this.lastConsumedMessageIndex = lastConsumedMessageIndex;
this.unreadMessagesCount = unreadMessagesCount;
this.links = links;
this.url = url;
this.notificationLevel = notificationLevel;
}
/**
* Returns The The unique id of the Account responsible for this channel..
*
* @return The unique id of the Account responsible for this channel.
*/
public final String getAccountSid() {
return this.accountSid;
}
/**
* Returns The The unique id of the Service this channel belongs to..
*
* @return The unique id of the Service this channel belongs to.
*/
public final String getServiceSid() {
return this.serviceSid;
}
/**
* Returns The The unique id of a Channel..
*
* @return The unique id of a Channel.
*/
public final String getChannelSid() {
return this.channelSid;
}
/**
* Returns The The unique id of the User this Channel belongs to..
*
* @return The unique id of the User this Channel belongs to.
*/
public final String getUserSid() {
return this.userSid;
}
/**
* Returns The The unique id of this User as a Member in this Channel..
*
* @return The unique id of this User as a Member in this Channel.
*/
public final String getMemberSid() {
return this.memberSid;
}
/**
* Returns The The status of the User on this Channel..
*
* @return The status of the User on this Channel.
*/
public final UserChannel.ChannelStatus getStatus() {
return this.status;
}
/**
* Returns The The index of the last read Message in this Channel for this
* User..
*
* @return The index of the last read Message in this Channel for this User.
*/
public final Integer getLastConsumedMessageIndex() {
return this.lastConsumedMessageIndex;
}
/**
* Returns The The count of unread Messages in this Channel for this User..
*
* @return The count of unread Messages in this Channel for this User.
*/
public final Integer getUnreadMessagesCount() {
return this.unreadMessagesCount;
}
/**
* Returns The The links.
*
* @return The links
*/
public final Map getLinks() {
return this.links;
}
/**
* Returns The An absolute URL for this User Channel..
*
* @return An absolute URL for this User Channel.
*/
public final URI getUrl() {
return this.url;
}
/**
* Returns The The notification level of the User for this Channel..
*
* @return The notification level of the User for this Channel.
*/
public final UserChannel.NotificationLevel getNotificationLevel() {
return this.notificationLevel;
}
@Override
public boolean equals(final Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
UserChannel other = (UserChannel) o;
return Objects.equals(accountSid, other.accountSid) &&
Objects.equals(serviceSid, other.serviceSid) &&
Objects.equals(channelSid, other.channelSid) &&
Objects.equals(userSid, other.userSid) &&
Objects.equals(memberSid, other.memberSid) &&
Objects.equals(status, other.status) &&
Objects.equals(lastConsumedMessageIndex, other.lastConsumedMessageIndex) &&
Objects.equals(unreadMessagesCount, other.unreadMessagesCount) &&
Objects.equals(links, other.links) &&
Objects.equals(url, other.url) &&
Objects.equals(notificationLevel, other.notificationLevel);
}
@Override
public int hashCode() {
return Objects.hash(accountSid,
serviceSid,
channelSid,
userSid,
memberSid,
status,
lastConsumedMessageIndex,
unreadMessagesCount,
links,
url,
notificationLevel);
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("accountSid", accountSid)
.add("serviceSid", serviceSid)
.add("channelSid", channelSid)
.add("userSid", userSid)
.add("memberSid", memberSid)
.add("status", status)
.add("lastConsumedMessageIndex", lastConsumedMessageIndex)
.add("unreadMessagesCount", unreadMessagesCount)
.add("links", links)
.add("url", url)
.add("notificationLevel", notificationLevel)
.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy