/** * This code was generated by * \ / _ _ _| _ _ * | (_)\/(_)(_|\/| |(/_ v1.0.0 * / / */ package com.twilio.rest.api.v2010.account.usage.record; 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.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.google.common.base.MoreObjects; import com.twilio.base.Resource; import com.twilio.converter.DateConverter; 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 org.joda.time.LocalDate; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; import java.util.Currency; import java.util.Map; import java.util.Objects; @JsonIgnoreProperties(ignoreUnknown = true) public class LastMonth extends Resource { private static final long serialVersionUID = 174526935435776L; public enum Category { ANSWERING_MACHINE_DETECTION("answering-machine-detection"), AUTHY_AUTHENTICATIONS("authy-authentications"), AUTHY_CALLS_OUTBOUND("authy-calls-outbound"), AUTHY_MONTHLY_FEES("authy-monthly-fees"), AUTHY_PHONE_INTELLIGENCE("authy-phone-intelligence"), AUTHY_PHONE_VERIFICATIONS("authy-phone-verifications"), AUTHY_SMS_OUTBOUND("authy-sms-outbound"), CALL_PROGESS_EVENTS("call-progess-events"), CALLERIDLOOKUPS("calleridlookups"), CALLS("calls"), CALLS_CLIENT("calls-client"), CALLS_GLOBALCONFERENCE("calls-globalconference"), CALLS_INBOUND("calls-inbound"), CALLS_INBOUND_LOCAL("calls-inbound-local"), CALLS_INBOUND_MOBILE("calls-inbound-mobile"), CALLS_INBOUND_TOLLFREE("calls-inbound-tollfree"), CALLS_OUTBOUND("calls-outbound"), CALLS_RECORDINGS("calls-recordings"), CALLS_SIP("calls-sip"), CALLS_SIP_INBOUND("calls-sip-inbound"), CALLS_SIP_OUTBOUND("calls-sip-outbound"), CARRIER_LOOKUPS("carrier-lookups"), CONVERSATIONS("conversations"), CONVERSATIONS_API_REQUESTS("conversations-api-requests"), CONVERSATIONS_CONVERSATION_EVENTS("conversations-conversation-events"), CONVERSATIONS_ENDPOINT_CONNECTIVITY("conversations-endpoint-connectivity"), CONVERSATIONS_EVENTS("conversations-events"), CONVERSATIONS_PARTICIPANT_EVENTS("conversations-participant-events"), CONVERSATIONS_PARTICIPANTS("conversations-participants"), CPS("cps"), IP_MESSAGING("ip-messaging"), IP_MESSAGING_COMMANDS("ip-messaging-commands"), IP_MESSAGING_DATA_STORAGE("ip-messaging-data-storage"), IP_MESSAGING_DATA_TRANSFER("ip-messaging-data-transfer"), IP_MESSAGING_ENDPOINT_CONNECTIVITY("ip-messaging-endpoint-connectivity"), LOOKUPS("lookups"), MARKETPLACE("marketplace"), MARKETPLACE_ALGORITHMIA_NAMED_ENTITY_RECOGNITION("marketplace-algorithmia-named-entity-recognition"), MARKETPLACE_DIGITAL_SEGMENT_BUSINESS_INFO("marketplace-digital-segment-business-info"), MARKETPLACE_GOOGLE_SPEECH_TO_TEXT("marketplace-google-speech-to-text"), MARKETPLACE_IBM_WATSON_MESSAGE_INSIGHTS("marketplace-ibm-watson-message-insights"), MARKETPLACE_IBM_WATSON_MESSAGE_SENTIMENT("marketplace-ibm-watson-message-sentiment"), MARKETPLACE_IBM_WATSON_RECORDING_ANALYSIS("marketplace-ibm-watson-recording-analysis"), MARKETPLACE_ICEHOOK_SYSTEMS_SCOUT("marketplace-icehook-systems-scout"), MARKETPLACE_INFOGROUP_DATAAXLE_BIZINFO("marketplace-infogroup-dataaxle-bizinfo"), MARKETPLACE_MARCHEX_CLEANCALL("marketplace-marchex-cleancall"), MARKETPLACE_MARCHEX_SENTIMENT_ANALYSIS_FOR_SMS("marketplace-marchex-sentiment-analysis-for-sms"), MARKETPLACE_MARKETPLACE_NEXTCALLER_SOCIAL_ID("marketplace-marketplace-nextcaller-social-id"), MARKETPLACE_MOBILE_COMMONS_OPT_OUT_CLASSIFIER("marketplace-mobile-commons-opt-out-classifier"), MARKETPLACE_NEXIWAVE_VOICEMAIL_TO_TEXT("marketplace-nexiwave-voicemail-to-text"), MARKETPLACE_NEXTCALLER_ADVANCED_CALLER_IDENTIFICATION("marketplace-nextcaller-advanced-caller-identification"), MARKETPLACE_NOMOROBO_SPAM_SCORE("marketplace-nomorobo-spam-score"), MARKETPLACE_PAYFONE_TCPA_COMPLIANCE("marketplace-payfone-tcpa-compliance"), MARKETPLACE_TELO_OPENCNAM("marketplace-telo-opencnam"), MARKETPLACE_TRUECNAM_TRUE_SPAM("marketplace-truecnam-true-spam"), MARKETPLACE_TWILIO_CALLER_NAME_LOOKUP_US("marketplace-twilio-caller-name-lookup-us"), MARKETPLACE_TWILIO_CARRIER_INFORMATION_LOOKUP("marketplace-twilio-carrier-information-lookup"), MARKETPLACE_VOICEBASE_PCI("marketplace-voicebase-pci"), MARKETPLACE_VOICEBASE_TRANSCRIPTION("marketplace-voicebase-transcription"), MARKETPLACE_WHITEPAGES_PRO_CALLER_IDENTIFICATION("marketplace-whitepages-pro-caller-identification"), MARKETPLACE_WHITEPAGES_PRO_PHONE_INTELLIGENCE("marketplace-whitepages-pro-phone-intelligence"), MARKETPLACE_WHITEPAGES_PRO_PHONE_REPUTATION("marketplace-whitepages-pro-phone-reputation"), MARKETPLACE_WOLFRAM_SHORT_ANSWER("marketplace-wolfram-short-answer"), MEDIASTORAGE("mediastorage"), MMS("mms"), MMS_INBOUND("mms-inbound"), MMS_INBOUND_LONGCODE("mms-inbound-longcode"), MMS_INBOUND_SHORTCODE("mms-inbound-shortcode"), MMS_OUTBOUND("mms-outbound"), MMS_OUTBOUND_LONGCODE("mms-outbound-longcode"), MMS_OUTBOUND_SHORTCODE("mms-outbound-shortcode"), MONITOR_READS("monitor-reads"), MONITOR_STORAGE("monitor-storage"), MONITOR_WRITES("monitor-writes"), NUMBER_FORMAT_LOOKUPS("number-format-lookups"), PCHAT("pchat"), PCHAT_ACTIONS("pchat-actions"), PCHAT_APS("pchat-aps"), PCHAT_NOTIFICATIONS("pchat-notifications"), PCHAT_READS("pchat-reads"), PFAX("pfax"), PFAX_MINUTES("pfax-minutes"), PFAX_MINUTES_INBOUND("pfax-minutes-inbound"), PFAX_MINUTES_OUTBOUND("pfax-minutes-outbound"), PFAX_PAGES("pfax-pages"), PHONENUMBERS("phonenumbers"), PHONENUMBERS_CPS("phonenumbers-cps"), PHONENUMBERS_EMERGENCY("phonenumbers-emergency"), PHONENUMBERS_LOCAL("phonenumbers-local"), PHONENUMBERS_MOBILE("phonenumbers-mobile"), PHONENUMBERS_SETUPS("phonenumbers-setups"), PHONENUMBERS_TOLLFREE("phonenumbers-tollfree"), PREMIUMSUPPORT("premiumsupport"), PV("pv"), PV_ROOM_PARTICIPANTS("pv-room-participants"), PV_ROOM_PARTICIPANTS_AU1("pv-room-participants-au1"), PV_ROOM_PARTICIPANTS_BR1("pv-room-participants-br1"), PV_ROOM_PARTICIPANTS_IE1("pv-room-participants-ie1"), PV_ROOM_PARTICIPANTS_JP1("pv-room-participants-jp1"), PV_ROOM_PARTICIPANTS_SG1("pv-room-participants-sg1"), PV_ROOM_PARTICIPANTS_US1("pv-room-participants-us1"), PV_ROOM_PARTICIPANTS_US2("pv-room-participants-us2"), PV_ROOMS("pv-rooms"), PV_SIP_ENDPOINT_REGISTRATIONS("pv-sip-endpoint-registrations"), RECORDINGS("recordings"), RECORDINGSTORAGE("recordingstorage"), SHORTCODES("shortcodes"), SHORTCODES_CUSTOMEROWNED("shortcodes-customerowned"), SHORTCODES_MMS_ENABLEMENT("shortcodes-mms-enablement"), SHORTCODES_MPS("shortcodes-mps"), SHORTCODES_RANDOM("shortcodes-random"), SHORTCODES_UK("shortcodes-uk"), SHORTCODES_VANITY("shortcodes-vanity"), SMS("sms"), SMS_INBOUND("sms-inbound"), SMS_INBOUND_LONGCODE("sms-inbound-longcode"), SMS_INBOUND_SHORTCODE("sms-inbound-shortcode"), SMS_OUTBOUND("sms-outbound"), SMS_OUTBOUND_CONTENT_INSPECTION("sms-outbound-content-inspection"), SMS_OUTBOUND_LONGCODE("sms-outbound-longcode"), SMS_OUTBOUND_SHORTCODE("sms-outbound-shortcode"), TASKROUTER_TASKS("taskrouter-tasks"), TOTALPRICE("totalprice"), TRANSCRIPTIONS("transcriptions"), TRUNKING_CPS("trunking-cps"), TRUNKING_EMERGENCY_CALLS("trunking-emergency-calls"), TRUNKING_ORIGINATION("trunking-origination"), TRUNKING_ORIGINATION_LOCAL("trunking-origination-local"), TRUNKING_ORIGINATION_MOBILE("trunking-origination-mobile"), TRUNKING_ORIGINATION_TOLLFREE("trunking-origination-tollfree"), TRUNKING_RECORDINGS("trunking-recordings"), TRUNKING_SECURE("trunking-secure"), TRUNKING_TERMINATION("trunking-termination"), TURNMEGABYTES("turnmegabytes"), TURNMEGABYTES_AUSTRALIA("turnmegabytes-australia"), TURNMEGABYTES_BRASIL("turnmegabytes-brasil"), TURNMEGABYTES_IRELAND("turnmegabytes-ireland"), TURNMEGABYTES_JAPAN("turnmegabytes-japan"), TURNMEGABYTES_SINGAPORE("turnmegabytes-singapore"), TURNMEGABYTES_USEAST("turnmegabytes-useast"), TURNMEGABYTES_USWEST("turnmegabytes-uswest"), TWILIO_INTERCONNECT("twilio-interconnect"), VOICE_INSIGHTS("voice-insights"), WIRELESS("wireless"), WIRELESS_ORDERS("wireless-orders"), WIRELESS_ORDERS_BULK("wireless-orders-bulk"), WIRELESS_ORDERS_ESIM("wireless-orders-esim"), WIRELESS_ORDERS_STARTER("wireless-orders-starter"), WIRELESS_USAGE("wireless-usage"), WIRELESS_USAGE_COMMANDS("wireless-usage-commands"), WIRELESS_USAGE_COMMANDS_HOME("wireless-usage-commands-home"), WIRELESS_USAGE_COMMANDS_ROAMING("wireless-usage-commands-roaming"), WIRELESS_USAGE_DATA("wireless-usage-data"), WIRELESS_USAGE_DATA_CUSTOM_ADDITIONALMB("wireless-usage-data-custom-additionalmb"), WIRELESS_USAGE_DATA_CUSTOM_FIRST5MB("wireless-usage-data-custom-first5mb"), WIRELESS_USAGE_DATA_DOMESTIC_ROAMING("wireless-usage-data-domestic-roaming"), WIRELESS_USAGE_DATA_INDIVIDUAL_ADDITIONALGB("wireless-usage-data-individual-additionalgb"), WIRELESS_USAGE_DATA_INDIVIDUAL_FIRSTGB("wireless-usage-data-individual-firstgb"), WIRELESS_USAGE_DATA_INTERNATIONAL_ROAMING_CANADA("wireless-usage-data-international-roaming-canada"), WIRELESS_USAGE_DATA_INTERNATIONAL_ROAMING_INDIA("wireless-usage-data-international-roaming-india"), WIRELESS_USAGE_DATA_INTERNATIONAL_ROAMING_MEXICO("wireless-usage-data-international-roaming-mexico"), WIRELESS_USAGE_DATA_POOLED("wireless-usage-data-pooled"), WIRELESS_USAGE_DATA_POOLED_DOWNLINK("wireless-usage-data-pooled-downlink"), WIRELESS_USAGE_DATA_POOLED_UPLINK("wireless-usage-data-pooled-uplink"), WIRELESS_USAGE_MRC("wireless-usage-mrc"), WIRELESS_USAGE_MRC_CUSTOM("wireless-usage-mrc-custom"), WIRELESS_USAGE_MRC_INDIVIDUAL("wireless-usage-mrc-individual"), WIRELESS_USAGE_MRC_POOLED("wireless-usage-mrc-pooled"); private final String value; private Category(final String value) { this.value = value; } public String toString() { return value; } /** * Generate a Category from a string. * @param value string value * @return generated Category */ @JsonCreator public static Category forValue(final String value) { return Promoter.enumFromString(value, Category.values()); } } /** * Create a LastMonthReader to execute read. * * @param pathAccountSid The account_sid * @return LastMonthReader capable of executing the read */ public static LastMonthReader reader(final String pathAccountSid) { return new LastMonthReader(pathAccountSid); } /** * Create a LastMonthReader to execute read. * * @return LastMonthReader capable of executing the read */ public static LastMonthReader reader() { return new LastMonthReader(); } /** * Converts a JSON String into a LastMonth object using the provided * ObjectMapper. * * @param json Raw JSON String * @param objectMapper Jackson ObjectMapper * @return LastMonth object represented by the provided JSON */ public static LastMonth fromJson(final String json, final ObjectMapper objectMapper) { // Convert all checked exceptions to Runtime try { return objectMapper.readValue(json, LastMonth.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 LastMonth object using the provided * ObjectMapper. * * @param json Raw JSON InputStream * @param objectMapper Jackson ObjectMapper * @return LastMonth object represented by the provided JSON */ public static LastMonth fromJson(final InputStream json, final ObjectMapper objectMapper) { // Convert all checked exceptions to Runtime try { return objectMapper.readValue(json, LastMonth.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 apiVersion; private final LastMonth.Category category; private final String count; private final String countUnit; private final String description; private final LocalDate endDate; private final BigDecimal price; private final Currency priceUnit; private final LocalDate startDate; private final Map<String, String> subresourceUris; private final String uri; private final String usage; private final String usageUnit; @JsonCreator private LastMonth(@JsonProperty("account_sid") final String accountSid, @JsonProperty("api_version") final String apiVersion, @JsonProperty("category") final LastMonth.Category category, @JsonProperty("count") final String count, @JsonProperty("count_unit") final String countUnit, @JsonProperty("description") final String description, @JsonProperty("end_date") final String endDate, @JsonProperty("price") final BigDecimal price, @JsonProperty("price_unit") @JsonDeserialize(using = com.twilio.converter.CurrencyDeserializer.class) final Currency priceUnit, @JsonProperty("start_date") final String startDate, @JsonProperty("subresource_uris") final Map<String, String> subresourceUris, @JsonProperty("uri") final String uri, @JsonProperty("usage") final String usage, @JsonProperty("usage_unit") final String usageUnit) { this.accountSid = accountSid; this.apiVersion = apiVersion; this.category = category; this.count = count; this.countUnit = countUnit; this.description = description; this.endDate = DateConverter.localDateFromString(endDate); this.price = price; this.priceUnit = priceUnit; this.startDate = DateConverter.localDateFromString(startDate); this.subresourceUris = subresourceUris; this.uri = uri; this.usage = usage; this.usageUnit = usageUnit; } /** * Returns The The account_sid. * * @return The account_sid */ public final String getAccountSid() { return this.accountSid; } /** * Returns The The api_version. * * @return The api_version */ public final String getApiVersion() { return this.apiVersion; } /** * Returns The The category. * * @return The category */ public final LastMonth.Category getCategory() { return this.category; } /** * Returns The The count. * * @return The count */ public final String getCount() { return this.count; } /** * Returns The The count_unit. * * @return The count_unit */ public final String getCountUnit() { return this.countUnit; } /** * Returns The The description. * * @return The description */ public final String getDescription() { return this.description; } /** * Returns The The end_date. * * @return The end_date */ public final LocalDate getEndDate() { return this.endDate; } /** * Returns The The price. * * @return The price */ public final BigDecimal getPrice() { return this.price; } /** * Returns The The price_unit. * * @return The price_unit */ public final Currency getPriceUnit() { return this.priceUnit; } /** * Returns The The start_date. * * @return The start_date */ public final LocalDate getStartDate() { return this.startDate; } /** * Returns The The subresource_uris. * * @return The subresource_uris */ public final Map<String, String> getSubresourceUris() { return this.subresourceUris; } /** * Returns The The uri. * * @return The uri */ public final String getUri() { return this.uri; } /** * Returns The The usage. * * @return The usage */ public final String getUsage() { return this.usage; } /** * Returns The The usage_unit. * * @return The usage_unit */ public final String getUsageUnit() { return this.usageUnit; } @Override public boolean equals(final Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } LastMonth other = (LastMonth) o; return Objects.equals(accountSid, other.accountSid) && Objects.equals(apiVersion, other.apiVersion) && Objects.equals(category, other.category) && Objects.equals(count, other.count) && Objects.equals(countUnit, other.countUnit) && Objects.equals(description, other.description) && Objects.equals(endDate, other.endDate) && Objects.equals(price, other.price) && Objects.equals(priceUnit, other.priceUnit) && Objects.equals(startDate, other.startDate) && Objects.equals(subresourceUris, other.subresourceUris) && Objects.equals(uri, other.uri) && Objects.equals(usage, other.usage) && Objects.equals(usageUnit, other.usageUnit); } @Override public int hashCode() { return Objects.hash(accountSid, apiVersion, category, count, countUnit, description, endDate, price, priceUnit, startDate, subresourceUris, uri, usage, usageUnit); } @Override public String toString() { return MoreObjects.toStringHelper(this) .add("accountSid", accountSid) .add("apiVersion", apiVersion) .add("category", category) .add("count", count) .add("countUnit", countUnit) .add("description", description) .add("endDate", endDate) .add("price", price) .add("priceUnit", priceUnit) .add("startDate", startDate) .add("subresourceUris", subresourceUris) .add("uri", uri) .add("usage", usage) .add("usageUnit", usageUnit) .toString(); } }