All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.lob.model.USVerification Maven / Gradle / Ivy

package com.lob.model;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.lob.exception.APIException;
import com.lob.exception.AuthenticationException;
import com.lob.exception.InvalidRequestException;
import com.lob.exception.RateLimitException;
import com.lob.net.APIResource;
import com.lob.net.LobResponse;
import com.lob.net.RequestOptions;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class USVerification extends APIResource {

    public static final String ENDPOINT = "us_verifications";

    public static class Components {
        @JsonProperty private String primaryNumber;
        @JsonProperty private String streetPredirection;
        @JsonProperty private String streetName;
        @JsonProperty private String streetSuffix;
        @JsonProperty private String streetPostdirection;
        @JsonProperty private String secondaryDesignator;
        @JsonProperty private String secondaryNumber;
        @JsonProperty private String pmbDesignator;
        @JsonProperty private String pmbNumber;
        @JsonProperty private String extraSecondaryDesignator;
        @JsonProperty private String extraSecondaryNumber;
        @JsonProperty private String city;
        @JsonProperty private String state;
        @JsonProperty private String zipCode;
        @JsonProperty private String zipCodePlus4;
        @JsonProperty private String zipCodeType;
        @JsonProperty private String deliveryPointBarcode;
        @JsonProperty private String addressType;
        @JsonProperty private String recordType;
        @JsonProperty private String defaultBuildingAddress;
        @JsonProperty private String county;
        @JsonProperty private String countyFips;
        @JsonProperty private String carrierRoute;
        @JsonProperty private String carrierRouteType;
        @JsonProperty private String latitude;
        @JsonProperty private String longitude;

        @JsonCreator
        public Components(
                @JsonProperty("primary_number") final  String primaryNumber,
                @JsonProperty("street_predirection") final  String streetPredirection,
                @JsonProperty("street_name") final  String streetName,
                @JsonProperty("street_suffix") final String streetSuffix,
                @JsonProperty("street_postdirection") final String streetPostdirection,
                @JsonProperty("secondary_designator") final String secondaryDesignator,
                @JsonProperty("secondary_number") final String secondaryNumber,
                @JsonProperty("pmb_designator") final String pmbDesignator,
                @JsonProperty("pmb_number") final String pmbNumber,
                @JsonProperty("extra_secondary_designator") final String extraSecondaryDesignator,
                @JsonProperty("extra_secondary_number") final String extraSecondaryNumber,
                @JsonProperty("city") final String city,
                @JsonProperty("state") final String state,
                @JsonProperty("zip_code") final String zipCode,
                @JsonProperty("zip_code_plus_4") final String zipCodePlus4,
                @JsonProperty("zip_code_type") final String zipCodeType,
                @JsonProperty("delivery_point_barcode") final String deliveryPointBarcode,
                @JsonProperty("address_type") final String addressType,
                @JsonProperty("record_type") final String recordType,
                @JsonProperty("default_building_address") final String defaultBuildingAddress,
                @JsonProperty("county") final String county,
                @JsonProperty("county_fips") final String countyFips,
                @JsonProperty("carrier_route") final String carrierRoute,
                @JsonProperty("carrier_route_type") final String carrierRouteType,
                @JsonProperty("latitude") final String latitude,
                @JsonProperty("longitude") final String longitude) {
            this.primaryNumber = primaryNumber;
            this.streetPredirection = streetPredirection;
            this.streetName = streetName;
            this.streetSuffix = streetSuffix;
            this.streetPostdirection = streetPostdirection;
            this.secondaryDesignator = secondaryDesignator;
            this.secondaryNumber = secondaryNumber;
            this.pmbDesignator = pmbDesignator;
            this.pmbNumber = pmbNumber;
            this.extraSecondaryDesignator = extraSecondaryDesignator;
            this.extraSecondaryNumber = extraSecondaryNumber;
            this.city = city;
            this.state = state;
            this.zipCode = zipCode;
            this.zipCodePlus4 = zipCodePlus4;
            this.zipCodeType = zipCodeType;
            this.deliveryPointBarcode = deliveryPointBarcode;
            this.addressType = addressType;
            this.recordType = recordType;
            this.defaultBuildingAddress = defaultBuildingAddress;
            this.county = county;
            this.countyFips = countyFips;
            this.carrierRoute = carrierRoute;
            this.carrierRouteType = carrierRouteType;
            this.latitude = latitude;
            this.longitude = longitude;
        }

        public String getPrimaryNumber() {
            return primaryNumber;
        }

        public String getStreetPredirection() {
            return streetPredirection;
        }

        public String getStreetName() {
            return streetName;
        }

        public String getStreetSuffix() {
            return streetSuffix;
        }

        public String getStreetPostdirection() {
            return streetPostdirection;
        }

        public String getSecondaryDesignator() {
            return secondaryDesignator;
        }

        public String getSecondaryNumber() {
            return secondaryNumber;
        }

        public String getPmbDesignator() {
            return pmbDesignator;
        }

        public String getPmbNumber() {
            return pmbNumber;
        }

        public String getExtraSecondaryDesignator() {
            return extraSecondaryDesignator;
        }

        public String getExtraSecondaryNumber() {
            return extraSecondaryNumber;
        }

        public String getCity() {
            return city;
        }

        public String getState() {
            return state;
        }

        public String getZipCode() {
            return zipCode;
        }

        public String getZipCodePlus4() {
            return zipCodePlus4;
        }

        public String getZipCodeType() {
            return zipCodeType;
        }

        public String getDeliveryPointBarcode() {
            return deliveryPointBarcode;
        }

        public String getAddressType() {
            return addressType;
        }

        public String getRecordType() {
            return recordType;
        }

        public String getDefaultBuildingAddress() {
            return defaultBuildingAddress;
        }

        public String getCounty() {
            return county;
        }

        public String getCountyFips() {
            return countyFips;
        }

        public String getCarrierRoute() {
            return carrierRoute;
        }

        public String getCarrierRouteType() {
            return carrierRouteType;
        }

        public String getLatitude() {
            return latitude;
        }

        public String getLongitude() {
            return longitude;
        }

        @Override
        public String toString() {
            return "{" +
                    "primaryNumber='" + primaryNumber + '\'' +
                    ", streetPredirection='" + streetPredirection + '\'' +
                    ", streetName='" + streetName + '\'' +
                    ", streetSuffix='" + streetSuffix + '\'' +
                    ", streetPostdirection='" + streetPostdirection + '\'' +
                    ", secondaryDesignator='" + secondaryDesignator + '\'' +
                    ", secondaryNumber='" + secondaryNumber + '\'' +
                    ", pmbDesignator='" + pmbDesignator + '\'' +
                    ", pmbNumber='" + pmbNumber + '\'' +
                    ", extraSecondaryDesignator='" + extraSecondaryDesignator + '\'' +
                    ", extraSecondaryNumber='" + extraSecondaryNumber + '\'' +
                    ", city='" + city + '\'' +
                    ", state='" + state + '\'' +
                    ", zipCode='" + zipCode + '\'' +
                    ", zipCodePlus4='" + zipCodePlus4 + '\'' +
                    ", zipCodeType='" + zipCodeType + '\'' +
                    ", deliveryPointBarcode='" + deliveryPointBarcode + '\'' +
                    ", addressType='" + addressType + '\'' +
                    ", recordType='" + recordType + '\'' +
                    ", defaultBuildingAddress='" + defaultBuildingAddress + '\'' +
                    ", county='" + county + '\'' +
                    ", countyFips='" + countyFips + '\'' +
                    ", carrierRoute='" + carrierRoute + '\'' +
                    ", carrierRouteType='" + carrierRouteType + '\'' +
                    ", latitude='" + latitude + '\'' +
                    ", longitude='" + longitude + '\'' +
                    '}';
        }

    }

    public static class Deliverability {
        @JsonProperty private String dpvConfirmation;
        @JsonProperty private String dpvCmra;
        @JsonProperty private String dpvVacant;
        @JsonProperty private List dpvFootnotes;
        @JsonProperty private String ewsMatch;
        @JsonProperty private String lacsIndicator;
        @JsonProperty private String lacsReturnCode;
        @JsonProperty private String suiteReturnCode;

        @JsonCreator
        public Deliverability(
                @JsonProperty("dpv_confirmation") final  String dpvConfirmation,
                @JsonProperty("dpv_cmra") final  String dpvCmra,
                @JsonProperty("dpv_vacant") final String dpvVacant,
                @JsonProperty("dpv_footnotes") final List dpvFootnotes,
                @JsonProperty("ews_match") final String ewsMatch,
                @JsonProperty("lacs_indicator") final String lacsIndicator,
                @JsonProperty("lacs_return_code") final String lacsReturnCode,
                @JsonProperty("suite_return_code") final String suiteReturnCode) {
            this.dpvConfirmation = dpvConfirmation;
            this.dpvCmra = dpvCmra;
            this.dpvVacant = dpvVacant;
            this.dpvFootnotes = dpvFootnotes;
            this.ewsMatch = ewsMatch;
            this.lacsIndicator = lacsIndicator;
            this.lacsReturnCode = lacsReturnCode;
            this.suiteReturnCode = suiteReturnCode;
        }

        public String getDpvConfirmation() {
            return dpvConfirmation;
        }

        public String getDpvCmra() {
            return dpvCmra;
        }

        public String getDpvVacant() {
            return dpvVacant;
        }

        public List getDpvFootnotes() {
            return dpvFootnotes;
        }

        public String getEwsMatch() {
            return ewsMatch;
        }

        public String getLacsIndicator() {
            return lacsIndicator;
        }

        public String getLacsReturnCode() {
            return lacsReturnCode;
        }

        public String getSuiteReturnCode() {
            return suiteReturnCode;
        }

        @Override
        public String toString() {
            return "{" +
                    "dpvConfirmation='" + dpvConfirmation + '\'' +
                    ", dpvCmra='" + dpvCmra + '\'' +
                    ", dpvVacant='" + dpvVacant + '\'' +
                    ", dpvFootnotes='" + dpvFootnotes + '\'' +
                    ", ewsMatch='" + ewsMatch + '\'' +
                    ", lacsIndicator='" + lacsIndicator + '\'' +
                    ", lacsReturnCode='" + lacsReturnCode + '\'' +
                    ", suiteReturnCode='" + suiteReturnCode + '\'' +
                    '}';
        }

    }

    @JsonProperty private final String id;
    @JsonProperty private final String recipient;
    @JsonProperty private final String primaryLine;
    @JsonProperty private final String secondaryLine;
    @JsonProperty private final String urbanization;
    @JsonProperty private final String lastLine;
    @JsonProperty private final String deliverability;
    @JsonProperty private final Components components;
    @JsonProperty private final Deliverability deliverabilityAnalysis;
    @JsonProperty private final String object;

    @JsonCreator
    public USVerification(
            @JsonProperty("id") final String id,
            @JsonProperty("recipient") final String recipient,
            @JsonProperty("primary_line") final String primaryLine,
            @JsonProperty("secondary_line") final String secondaryLine,
            @JsonProperty("urbanization") final String urbanization,
            @JsonProperty("last_line") final String lastLine,
            @JsonProperty("deliverability") final String deliverability,
            @JsonProperty("components") final Components components,
            @JsonProperty("deliverability_analysis") final Deliverability deliverabilityAnalysis,
            @JsonProperty("object") final String object
    ) {
        this.id = id;
        this.recipient = recipient;
        this.primaryLine = primaryLine;
        this.secondaryLine = secondaryLine;
        this.urbanization = urbanization;
        this.lastLine = lastLine;
        this.deliverability = deliverability;
        this.components = components;
        this.deliverabilityAnalysis = deliverabilityAnalysis;
        this.object = object;
    }

    public String getId() {
        return id;
    }

    public String getRecipient() {
        return recipient;
    }

    public String getPrimaryLine() {
        return primaryLine;
    }

    public String getSecondaryLine() {
        return secondaryLine;
    }

    public String getUrbanization() {
        return urbanization;
    }

    public String getLastLine() {
        return lastLine;
    }

    public String getDeliverability() {
        return deliverability;
    }

    public Components getComponents() {
        return components;
    }

    public Deliverability getDeliverabilityAnalysis() {
        return deliverabilityAnalysis;
    }

    public String getObject() {
        return object;
    }

    @Override
    public String toString() {
        return "USVerification{" +
                "id='" + id + '\'' +
                ", recipient='" + recipient + '\'' +
                ", primaryLine='" + primaryLine + '\'' +
                ", secondaryLine='" + secondaryLine + '\'' +
                ", urbanization='" + urbanization + '\'' +
                ", lastLine='" + lastLine + '\'' +
                ", deliverability='" + deliverability + '\'' +
                ", components=" + components +
                ", deliverabilityAnalysis=" + deliverabilityAnalysis +
                '}';
    }

    public static final class RequestBuilder {
        private Map params = new HashMap();

        public RequestBuilder() {
        }

        public RequestBuilder setRecipient(String recipient) {
            params.put("recipient", recipient);
            return this;
        }

        public RequestBuilder setPrimaryLine(String primaryLine) {
            params.put("primary_line", primaryLine);
            return this;
        }

        public RequestBuilder setSecondaryLine(String secondaryLine) {
            params.put("secondary_line", secondaryLine);
            return this;
        }

        public RequestBuilder setUrbanization(String urbanization) {
            params.put("urbanization", urbanization);
            return this;
        }

        public RequestBuilder setCity(String city) {
            params.put("city", city);
            return this;
        }

        public RequestBuilder setState(String state) {
            params.put("state", state);
            return this;
        }

        public RequestBuilder setZipCode(String zipCode) {
            params.put("zip_code", zipCode);
            return this;
        }

        public LobResponse verify() throws APIException, IOException, AuthenticationException, InvalidRequestException, RateLimitException {
            return verify(null);
        }

        public LobResponse verify(RequestOptions options) throws APIException, IOException, AuthenticationException, InvalidRequestException, RateLimitException  {
            return request(RequestMethod.POST, RequestType.NORMAL, ENDPOINT, params, USVerification.class, options);
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy