/** * 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 ThisMonth 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 ThisMonthReader to execute read. * * @param pathAccountSid The account_sid * @return ThisMonthReader capable of executing the read */ public static ThisMonthReader reader(final String pathAccountSid) { return new ThisMonthReader(pathAccountSid); } /** * Create a ThisMonthReader to execute read. * * @return ThisMonthReader capable of executing the read */ public static ThisMonthReader reader() { return new ThisMonthReader(); } /** * Converts a JSON String into a ThisMonth object using the provided * ObjectMapper. * * @param json Raw JSON String * @param objectMapper Jackson ObjectMapper * @return ThisMonth object represented by the provided JSON */ public static ThisMonth fromJson(final String json, final ObjectMapper objectMapper) { // Convert all checked exceptions to Runtime try { return objectMapper.readValue(json, ThisMonth.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 ThisMonth object using the provided * ObjectMapper. * * @param json Raw JSON InputStream * @param objectMapper Jackson ObjectMapper * @return ThisMonth object represented by the provided JSON */ public static ThisMonth fromJson(final InputStream json, final ObjectMapper objectMapper) { // Convert all checked exceptions to Runtime try { return objectMapper.readValue(json, ThisMonth.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 ThisMonth.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 ThisMonth(@JsonProperty("account_sid") final String accountSid, @JsonProperty("api_version") final String apiVersion, @JsonProperty("category") final ThisMonth.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 ThisMonth.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; } ThisMonth other = (ThisMonth) 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(); } }