/* * Copyright (C) 2023 Expedia, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { TelephonePlatformType } from './TelephonePlatformType' import { TelephoneType } from './TelephoneType' import { JsonObject, JsonProperty } from 'typescript-json-serializer' /** * Group of attributes intended to hold information about phone number associated with the transaction. A user can have one to many phone numbers (home, work, mobile, etc.). */ @JsonObject({ constructorParams: [{}] }) export class Telephone { @JsonProperty({ name: 'type' }) type?: TelephoneType @JsonProperty({ name: 'platform_type' }) platformType?: TelephonePlatformType /** * Numeric digit between 1 to 3 characters used to represent the country code for international dialing. Does not include symbols, spaces, or leading zeros. */ @JsonProperty({ name: 'country_access_code' }) countryAccessCode: string /** * A number prefixed to an individual telephone number: used in making long-distance calls. Does not include symbols, spaces, or leading zeros. */ @JsonProperty({ name: 'area_code' }) areaCode: string /** * A number that is dialed on a telephone, without the country or area codes, to reach a particular person, business, etc. Does not include symbols, spaces, or leading zeros. */ @JsonProperty({ name: 'phone_number' }) phoneNumber: string /** * The number used to reach an individual once a phone connection is established. Does not include symbols, spaces, or leading zeros. */ @JsonProperty({ name: 'extension_number' }) extensionNumber?: string /** * Ranking of order of user preference for contact via text (if type is Mobile) or voice. `0` means no preference. `1` is the primary phone, `2` is the secondary phone, etc. */ @JsonProperty({ name: 'preference_rank' }) preferenceRank?: number /** * Local date and time user validated possession of their phone number via a text or voice multi factor authentication challenge, in ISO-8601 date and time format `yyyy-MM-ddTHH:mm:ss.SSSZ`. */ @JsonProperty({ name: 'last_verified_date_time' }) lastVerifiedDateTime?: Date /** * Flag indicating whether user passed validation of possession of their phone number via a text or voice multi factor authentication challenge. */ @JsonProperty({ name: 'verified_flag' }) verifiedFlag?: boolean public constructor(telephone: TelephoneProperties) { this.type = telephone.type this.platformType = telephone.platformType this.countryAccessCode = telephone.countryAccessCode this.areaCode = telephone.areaCode this.phoneNumber = telephone.phoneNumber this.extensionNumber = telephone.extensionNumber this.preferenceRank = telephone.preferenceRank this.lastVerifiedDateTime = telephone.lastVerifiedDateTime this.verifiedFlag = telephone.verifiedFlag } } export interface TelephoneProperties { type?: TelephoneType platformType?: TelephonePlatformType countryAccessCode: string areaCode: string phoneNumber: string extensionNumber?: string preferenceRank?: number lastVerifiedDateTime?: Date verifiedFlag?: boolean }