@sisyphus.js/google
Version:
Precompiled google common protos by sisyphus protobuf compiler
106 lines (99 loc) • 4.05 kB
text/typescript
/**
* An object representing a phone number, suitable as an API wire format.
*
* This representation:
*
* - should not be used for locale-specific formatting of a phone number, such
* as "+1 (650) 253-0000 ext. 123"
*
* - is not designed for efficient storage
* - may not be suitable for dialing - specialized libraries (see references)
* should be used to parse the number for that purpose
*
* To do something meaningful with this number, such as format it for various
* use-cases, convert it to an `i18n.phonenumbers.PhoneNumber` object first.
*
* For instance, in Java this would be:
*
* com.google.type.PhoneNumber wireProto =
* com.google.type.PhoneNumber.newBuilder().build();
* com.google.i18n.phonenumbers.Phonenumber.PhoneNumber phoneNumber =
* PhoneNumberUtil.getInstance().parse(wireProto.getE164Number(), "ZZ");
* if (!wireProto.getExtension().isEmpty()) {
* phoneNumber.setExtension(wireProto.getExtension());
* }
*
* Reference(s):
* - https://github.com/google/libphonenumber
*/
export interface PhoneNumber {
/**
* The phone number, represented as a leading plus sign ('+'), followed by a
* phone number that uses a relaxed ITU E.164 format consisting of the
* country calling code (1 to 3 digits) and the subscriber number, with no
* additional spaces or formatting, e.g.:
* - correct: "+15552220123"
* - incorrect: "+1 (555) 222-01234 x123".
*
* The ITU E.164 format limits the latter to 12 digits, but in practice not
* all countries respect that, so we relax that restriction here.
* National-only numbers are not allowed.
*
* References:
* - https://www.itu.int/rec/T-REC-E.164-201011-I
* - https://en.wikipedia.org/wiki/E.164.
* - https://en.wikipedia.org/wiki/List_of_country_calling_codes
*/
e164Number?: string
/**
* A short code.
*
* Reference(s):
* - https://en.wikipedia.org/wiki/Short_code
*/
shortCode?: PhoneNumber.ShortCode
/**
* The phone number's extension. The extension is not standardized in ITU
* recommendations, except for being defined as a series of numbers with a
* maximum length of 40 digits. Other than digits, some other dialing
* characters such as ',' (indicating a wait) or '#' may be stored here.
*
* Note that no regions currently use extensions with short codes, so this
* field is normally only set in conjunction with an E.164 number. It is held
* separately from the E.164 number to allow for short code extensions in the
* future.
*/
extension?: string
}
export namespace PhoneNumber {
export const name = 'google.type.PhoneNumber'
/**
* An object representing a short code, which is a phone number that is
* typically much shorter than regular phone numbers and can be used to
* address messages in MMS and SMS systems, as well as for abbreviated dialing
* (e.g. "Text 611 to see how many minutes you have remaining on your plan.").
*
* Short codes are restricted to a region and are not internationally
* dialable, which means the same short code can exist in different regions,
* with different usage and pricing, even if those regions share the same
* country calling code (e.g. US and CA).
*/
export interface ShortCode {
/**
* Required. The BCP-47 region code of the location where calls to this
* short code can be made, such as "US" and "BB".
*
* Reference(s):
* - http://www.unicode.org/reports/tr35/#unicode_region_subtag
*/
regionCode?: string
/**
* Required. The short code digits, without a leading plus ('+') or country
* calling code, e.g. "611".
*/
number?: string
}
export namespace ShortCode {
export const name = 'google.type.PhoneNumber.ShortCode'
}
}