java/src/main/java/com/konfigthis/dojah/client/model/VerifySelfieNinResponseEntity.java
/*
 * DOJAH APIs
 * Use Dojah to verify, onboard and manage user identity across Africa!
 *
 * The version of the OpenAPI document: 1.0.0
 * 
 *
 * NOTE: This class is auto generated by Konfig (https://konfigthis.com).
 * Do not edit the class manually.
 */


package com.konfigthis.dojah.client.model;

import java.util.Objects;
import java.util.Arrays;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import com.konfigthis.dojah.client.model.VerifySelfieNinResponseEntitySelfieVerification;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.IOException;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import com.google.gson.TypeAdapterFactory;
import com.google.gson.reflect.TypeToken;
import org.apache.commons.lang3.StringUtils;

import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import com.konfigthis.dojah.client.JSON;

/**
 * VerifySelfieNinResponseEntity
 */
@javax.annotation.Generated(value = "Generated by https://konfigthis.com")
public class VerifySelfieNinResponseEntity {
  public static final String SERIALIZED_NAME_TITLE = "title";
  @SerializedName(SERIALIZED_NAME_TITLE)
  private String title;

  public static final String SERIALIZED_NAME_NIN = "nin";
  @SerializedName(SERIALIZED_NAME_NIN)
  private String nin;

  public static final String SERIALIZED_NAME_FIRSTNAME = "firstname";
  @SerializedName(SERIALIZED_NAME_FIRSTNAME)
  private String firstname;

  public static final String SERIALIZED_NAME_MIDDLENAME = "middlename";
  @SerializedName(SERIALIZED_NAME_MIDDLENAME)
  private String middlename;

  public static final String SERIALIZED_NAME_SURNAME = "surname";
  @SerializedName(SERIALIZED_NAME_SURNAME)
  private String surname;

  public static final String SERIALIZED_NAME_MAIDENNAME = "maidenname";
  @SerializedName(SERIALIZED_NAME_MAIDENNAME)
  private String maidenname;

  public static final String SERIALIZED_NAME_TELEPHONENO = "telephoneno";
  @SerializedName(SERIALIZED_NAME_TELEPHONENO)
  private String telephoneno;

  public static final String SERIALIZED_NAME_STATE = "state";
  @SerializedName(SERIALIZED_NAME_STATE)
  private String state;

  public static final String SERIALIZED_NAME_PLACE = "place";
  @SerializedName(SERIALIZED_NAME_PLACE)
  private String place;

  public static final String SERIALIZED_NAME_PROFESSION = "profession";
  @SerializedName(SERIALIZED_NAME_PROFESSION)
  private String profession;

  public static final String SERIALIZED_NAME_HEIGHT = "height";
  @SerializedName(SERIALIZED_NAME_HEIGHT)
  private String height;

  public static final String SERIALIZED_NAME_EMAIL = "email";
  @SerializedName(SERIALIZED_NAME_EMAIL)
  private String email;

  public static final String SERIALIZED_NAME_BIRTHDATE = "birthdate";
  @SerializedName(SERIALIZED_NAME_BIRTHDATE)
  private String birthdate;

  public static final String SERIALIZED_NAME_BIRTHSTATE = "birthstate";
  @SerializedName(SERIALIZED_NAME_BIRTHSTATE)
  private String birthstate;

  public static final String SERIALIZED_NAME_BIRTHCOUNTRY = "birthcountry";
  @SerializedName(SERIALIZED_NAME_BIRTHCOUNTRY)
  private String birthcountry;

  public static final String SERIALIZED_NAME_CENTRAL_I_D = "centralID";
  @SerializedName(SERIALIZED_NAME_CENTRAL_I_D)
  private String centralID;

  public static final String SERIALIZED_NAME_DOCUMENTNO = "documentno";
  @SerializedName(SERIALIZED_NAME_DOCUMENTNO)
  private String documentno;

  public static final String SERIALIZED_NAME_EDUCATIONALLEVEL = "educationallevel";
  @SerializedName(SERIALIZED_NAME_EDUCATIONALLEVEL)
  private String educationallevel;

  public static final String SERIALIZED_NAME_EMPLOYMENTSTATUS = "employmentstatus";
  @SerializedName(SERIALIZED_NAME_EMPLOYMENTSTATUS)
  private String employmentstatus;

  public static final String SERIALIZED_NAME_NOK_FIRSTNAME = "nok_firstname";
  @SerializedName(SERIALIZED_NAME_NOK_FIRSTNAME)
  private String nokFirstname;

  public static final String SERIALIZED_NAME_NOK_LASTNAME = "nok_lastname";
  @SerializedName(SERIALIZED_NAME_NOK_LASTNAME)
  private String nokLastname;

  public static final String SERIALIZED_NAME_NOK_MIDDLENAME = "nok_middlename";
  @SerializedName(SERIALIZED_NAME_NOK_MIDDLENAME)
  private String nokMiddlename;

  public static final String SERIALIZED_NAME_NOK_ADDRESS1 = "nok_address1";
  @SerializedName(SERIALIZED_NAME_NOK_ADDRESS1)
  private String nokAddress1;

  public static final String SERIALIZED_NAME_NOK_ADDRESS2 = "nok_address2";
  @SerializedName(SERIALIZED_NAME_NOK_ADDRESS2)
  private String nokAddress2;

  public static final String SERIALIZED_NAME_NOK_LGA = "nok_lga";
  @SerializedName(SERIALIZED_NAME_NOK_LGA)
  private String nokLga;

  public static final String SERIALIZED_NAME_NOK_STATE = "nok_state";
  @SerializedName(SERIALIZED_NAME_NOK_STATE)
  private String nokState;

  public static final String SERIALIZED_NAME_NOK_TOWN = "nok_town";
  @SerializedName(SERIALIZED_NAME_NOK_TOWN)
  private String nokTown;

  public static final String SERIALIZED_NAME_NOK_POSTALCODE = "nok_postalcode";
  @SerializedName(SERIALIZED_NAME_NOK_POSTALCODE)
  private String nokPostalcode;

  public static final String SERIALIZED_NAME_OTHERNAME = "othername";
  @SerializedName(SERIALIZED_NAME_OTHERNAME)
  private String othername;

  public static final String SERIALIZED_NAME_PFIRSTNAME = "pfirstname";
  @SerializedName(SERIALIZED_NAME_PFIRSTNAME)
  private String pfirstname;

  public static final String SERIALIZED_NAME_PHOTO = "photo";
  @SerializedName(SERIALIZED_NAME_PHOTO)
  private String photo;

  public static final String SERIALIZED_NAME_PMIDDLENAME = "pmiddlename";
  @SerializedName(SERIALIZED_NAME_PMIDDLENAME)
  private String pmiddlename;

  public static final String SERIALIZED_NAME_PSURNAME = "psurname";
  @SerializedName(SERIALIZED_NAME_PSURNAME)
  private String psurname;

  public static final String SERIALIZED_NAME_NSPOKENLANG = "nspokenlang";
  @SerializedName(SERIALIZED_NAME_NSPOKENLANG)
  private String nspokenlang;

  public static final String SERIALIZED_NAME_OSPOKENLANG = "ospokenlang";
  @SerializedName(SERIALIZED_NAME_OSPOKENLANG)
  private String ospokenlang;

  public static final String SERIALIZED_NAME_RELIGION = "religion";
  @SerializedName(SERIALIZED_NAME_RELIGION)
  private String religion;

  public static final String SERIALIZED_NAME_RESIDENCE_TOWN = "residence_Town";
  @SerializedName(SERIALIZED_NAME_RESIDENCE_TOWN)
  private String residenceTown;

  public static final String SERIALIZED_NAME_RESIDENCE_LGA = "residence_lga";
  @SerializedName(SERIALIZED_NAME_RESIDENCE_LGA)
  private String residenceLga;

  public static final String SERIALIZED_NAME_RESIDENCE_STATE = "residence_state";
  @SerializedName(SERIALIZED_NAME_RESIDENCE_STATE)
  private String residenceState;

  public static final String SERIALIZED_NAME_RESIDENCESTATUS = "residencestatus";
  @SerializedName(SERIALIZED_NAME_RESIDENCESTATUS)
  private String residencestatus;

  public static final String SERIALIZED_NAME_RESIDENCE_ADDRESS_LINE1 = "residence_AddressLine1";
  @SerializedName(SERIALIZED_NAME_RESIDENCE_ADDRESS_LINE1)
  private String residenceAddressLine1;

  public static final String SERIALIZED_NAME_RESIDENCE_ADDRESS_LINE2 = "residence_AddressLine2";
  @SerializedName(SERIALIZED_NAME_RESIDENCE_ADDRESS_LINE2)
  private String residenceAddressLine2;

  public static final String SERIALIZED_NAME_SELF_ORIGIN_LGA = "self_origin_lga";
  @SerializedName(SERIALIZED_NAME_SELF_ORIGIN_LGA)
  private String selfOriginLga;

  public static final String SERIALIZED_NAME_SELF_ORIGIN_PLACE = "self_origin_place";
  @SerializedName(SERIALIZED_NAME_SELF_ORIGIN_PLACE)
  private String selfOriginPlace;

  public static final String SERIALIZED_NAME_SELF_ORIGIN_STATE = "self_origin_state";
  @SerializedName(SERIALIZED_NAME_SELF_ORIGIN_STATE)
  private String selfOriginState;

  public static final String SERIALIZED_NAME_SIGNATURE = "signature";
  @SerializedName(SERIALIZED_NAME_SIGNATURE)
  private String signature;

  public static final String SERIALIZED_NAME_NATIONALITY = "nationality";
  @SerializedName(SERIALIZED_NAME_NATIONALITY)
  private String nationality;

  public static final String SERIALIZED_NAME_GENDER = "gender";
  @SerializedName(SERIALIZED_NAME_GENDER)
  private String gender;

  public static final String SERIALIZED_NAME_TRACKING_ID = "trackingId";
  @SerializedName(SERIALIZED_NAME_TRACKING_ID)
  private String trackingId;

  public static final String SERIALIZED_NAME_SELFIE_VERIFICATION = "selfie_verification";
  @SerializedName(SERIALIZED_NAME_SELFIE_VERIFICATION)
  private VerifySelfieNinResponseEntitySelfieVerification selfieVerification;

  public VerifySelfieNinResponseEntity() {
  }

  public VerifySelfieNinResponseEntity title(String title) {

    
    
    
    
    this.title = title;
    return this;
  }

   /**
   * Get title
   * @return title
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "mr", value = "")

  public String getTitle() {
    return title;
  }


  public void setTitle(String title) {

    
    
    
    this.title = title;
  }


  public VerifySelfieNinResponseEntity nin(String nin) {

    
    
    
    
    this.nin = nin;
    return this;
  }

   /**
   * Get nin
   * @return nin
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "75638483753", value = "")

  public String getNin() {
    return nin;
  }


  public void setNin(String nin) {

    
    
    
    this.nin = nin;
  }


  public VerifySelfieNinResponseEntity firstname(String firstname) {

    
    
    
    
    this.firstname = firstname;
    return this;
  }

   /**
   * Get firstname
   * @return firstname
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "ADELEKE", value = "")

  public String getFirstname() {
    return firstname;
  }


  public void setFirstname(String firstname) {

    
    
    
    this.firstname = firstname;
  }


  public VerifySelfieNinResponseEntity middlename(String middlename) {

    
    
    
    
    this.middlename = middlename;
    return this;
  }

   /**
   * Get middlename
   * @return middlename
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "ABIODUN", value = "")

  public String getMiddlename() {
    return middlename;
  }


  public void setMiddlename(String middlename) {

    
    
    
    this.middlename = middlename;
  }


  public VerifySelfieNinResponseEntity surname(String surname) {

    
    
    
    
    this.surname = surname;
    return this;
  }

   /**
   * Get surname
   * @return surname
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "WALE", value = "")

  public String getSurname() {
    return surname;
  }


  public void setSurname(String surname) {

    
    
    
    this.surname = surname;
  }


  public VerifySelfieNinResponseEntity maidenname(String maidenname) {

    
    
    
    
    this.maidenname = maidenname;
    return this;
  }

   /**
   * Get maidenname
   * @return maidenname
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "", value = "")

  public String getMaidenname() {
    return maidenname;
  }


  public void setMaidenname(String maidenname) {

    
    
    
    this.maidenname = maidenname;
  }


  public VerifySelfieNinResponseEntity telephoneno(String telephoneno) {

    
    
    
    
    this.telephoneno = telephoneno;
    return this;
  }

   /**
   * Get telephoneno
   * @return telephoneno
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "08137872843", value = "")

  public String getTelephoneno() {
    return telephoneno;
  }


  public void setTelephoneno(String telephoneno) {

    
    
    
    this.telephoneno = telephoneno;
  }


  public VerifySelfieNinResponseEntity state(String state) {

    
    
    
    
    this.state = state;
    return this;
  }

   /**
   * Get state
   * @return state
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "Ondo", value = "")

  public String getState() {
    return state;
  }


  public void setState(String state) {

    
    
    
    this.state = state;
  }


  public VerifySelfieNinResponseEntity place(String place) {

    
    
    
    
    this.place = place;
    return this;
  }

   /**
   * Get place
   * @return place
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "IDANRE", value = "")

  public String getPlace() {
    return place;
  }


  public void setPlace(String place) {

    
    
    
    this.place = place;
  }


  public VerifySelfieNinResponseEntity profession(String profession) {

    
    
    
    
    this.profession = profession;
    return this;
  }

   /**
   * Get profession
   * @return profession
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "STUDENT", value = "")

  public String getProfession() {
    return profession;
  }


  public void setProfession(String profession) {

    
    
    
    this.profession = profession;
  }


  public VerifySelfieNinResponseEntity height(String height) {

    
    
    
    
    this.height = height;
    return this;
  }

   /**
   * Get height
   * @return height
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "****", value = "")

  public String getHeight() {
    return height;
  }


  public void setHeight(String height) {

    
    
    
    this.height = height;
  }


  public VerifySelfieNinResponseEntity email(String email) {

    
    
    
    
    this.email = email;
    return this;
  }

   /**
   * Get email
   * @return email
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "", value = "")

  public String getEmail() {
    return email;
  }


  public void setEmail(String email) {

    
    
    
    this.email = email;
  }


  public VerifySelfieNinResponseEntity birthdate(String birthdate) {

    
    
    
    
    this.birthdate = birthdate;
    return this;
  }

   /**
   * Get birthdate
   * @return birthdate
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "10-06-1983", value = "")

  public String getBirthdate() {
    return birthdate;
  }


  public void setBirthdate(String birthdate) {

    
    
    
    this.birthdate = birthdate;
  }


  public VerifySelfieNinResponseEntity birthstate(String birthstate) {

    
    
    
    
    this.birthstate = birthstate;
    return this;
  }

   /**
   * Get birthstate
   * @return birthstate
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "Ondo", value = "")

  public String getBirthstate() {
    return birthstate;
  }


  public void setBirthstate(String birthstate) {

    
    
    
    this.birthstate = birthstate;
  }


  public VerifySelfieNinResponseEntity birthcountry(String birthcountry) {

    
    
    
    
    this.birthcountry = birthcountry;
    return this;
  }

   /**
   * Get birthcountry
   * @return birthcountry
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "nigeria", value = "")

  public String getBirthcountry() {
    return birthcountry;
  }


  public void setBirthcountry(String birthcountry) {

    
    
    
    this.birthcountry = birthcountry;
  }


  public VerifySelfieNinResponseEntity centralID(String centralID) {

    
    
    
    
    this.centralID = centralID;
    return this;
  }

   /**
   * Get centralID
   * @return centralID
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "6331371", value = "")

  public String getCentralID() {
    return centralID;
  }


  public void setCentralID(String centralID) {

    
    
    
    this.centralID = centralID;
  }


  public VerifySelfieNinResponseEntity documentno(String documentno) {

    
    
    
    
    this.documentno = documentno;
    return this;
  }

   /**
   * Get documentno
   * @return documentno
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "", value = "")

  public String getDocumentno() {
    return documentno;
  }


  public void setDocumentno(String documentno) {

    
    
    
    this.documentno = documentno;
  }


  public VerifySelfieNinResponseEntity educationallevel(String educationallevel) {

    
    
    
    
    this.educationallevel = educationallevel;
    return this;
  }

   /**
   * Get educationallevel
   * @return educationallevel
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "", value = "")

  public String getEducationallevel() {
    return educationallevel;
  }


  public void setEducationallevel(String educationallevel) {

    
    
    
    this.educationallevel = educationallevel;
  }


  public VerifySelfieNinResponseEntity employmentstatus(String employmentstatus) {

    
    
    
    
    this.employmentstatus = employmentstatus;
    return this;
  }

   /**
   * Get employmentstatus
   * @return employmentstatus
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "", value = "")

  public String getEmploymentstatus() {
    return employmentstatus;
  }


  public void setEmploymentstatus(String employmentstatus) {

    
    
    
    this.employmentstatus = employmentstatus;
  }


  public VerifySelfieNinResponseEntity nokFirstname(String nokFirstname) {

    
    
    
    
    this.nokFirstname = nokFirstname;
    return this;
  }

   /**
   * Get nokFirstname
   * @return nokFirstname
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "KEMI", value = "")

  public String getNokFirstname() {
    return nokFirstname;
  }


  public void setNokFirstname(String nokFirstname) {

    
    
    
    this.nokFirstname = nokFirstname;
  }


  public VerifySelfieNinResponseEntity nokLastname(String nokLastname) {

    
    
    
    
    this.nokLastname = nokLastname;
    return this;
  }

   /**
   * Get nokLastname
   * @return nokLastname
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "WALE", value = "")

  public String getNokLastname() {
    return nokLastname;
  }


  public void setNokLastname(String nokLastname) {

    
    
    
    this.nokLastname = nokLastname;
  }


  public VerifySelfieNinResponseEntity nokMiddlename(String nokMiddlename) {

    
    
    
    
    this.nokMiddlename = nokMiddlename;
    return this;
  }

   /**
   * Get nokMiddlename
   * @return nokMiddlename
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "", value = "")

  public String getNokMiddlename() {
    return nokMiddlename;
  }


  public void setNokMiddlename(String nokMiddlename) {

    
    
    
    this.nokMiddlename = nokMiddlename;
  }


  public VerifySelfieNinResponseEntity nokAddress1(String nokAddress1) {

    
    
    
    
    this.nokAddress1 = nokAddress1;
    return this;
  }

   /**
   * Get nokAddress1
   * @return nokAddress1
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "NO 32 BROAD STREET ISALU QUARTERS II ODODE IDANRE", value = "")

  public String getNokAddress1() {
    return nokAddress1;
  }


  public void setNokAddress1(String nokAddress1) {

    
    
    
    this.nokAddress1 = nokAddress1;
  }


  public VerifySelfieNinResponseEntity nokAddress2(String nokAddress2) {

    
    
    
    
    this.nokAddress2 = nokAddress2;
    return this;
  }

   /**
   * Get nokAddress2
   * @return nokAddress2
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "", value = "")

  public String getNokAddress2() {
    return nokAddress2;
  }


  public void setNokAddress2(String nokAddress2) {

    
    
    
    this.nokAddress2 = nokAddress2;
  }


  public VerifySelfieNinResponseEntity nokLga(String nokLga) {

    
    
    
    
    this.nokLga = nokLga;
    return this;
  }

   /**
   * Get nokLga
   * @return nokLga
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "Idanre", value = "")

  public String getNokLga() {
    return nokLga;
  }


  public void setNokLga(String nokLga) {

    
    
    
    this.nokLga = nokLga;
  }


  public VerifySelfieNinResponseEntity nokState(String nokState) {

    
    
    
    
    this.nokState = nokState;
    return this;
  }

   /**
   * Get nokState
   * @return nokState
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "Ondo", value = "")

  public String getNokState() {
    return nokState;
  }


  public void setNokState(String nokState) {

    
    
    
    this.nokState = nokState;
  }


  public VerifySelfieNinResponseEntity nokTown(String nokTown) {

    
    
    
    
    this.nokTown = nokTown;
    return this;
  }

   /**
   * Get nokTown
   * @return nokTown
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "IDANRE", value = "")

  public String getNokTown() {
    return nokTown;
  }


  public void setNokTown(String nokTown) {

    
    
    
    this.nokTown = nokTown;
  }


  public VerifySelfieNinResponseEntity nokPostalcode(String nokPostalcode) {

    
    
    
    
    this.nokPostalcode = nokPostalcode;
    return this;
  }

   /**
   * Get nokPostalcode
   * @return nokPostalcode
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "", value = "")

  public String getNokPostalcode() {
    return nokPostalcode;
  }


  public void setNokPostalcode(String nokPostalcode) {

    
    
    
    this.nokPostalcode = nokPostalcode;
  }


  public VerifySelfieNinResponseEntity othername(String othername) {

    
    
    
    
    this.othername = othername;
    return this;
  }

   /**
   * Get othername
   * @return othername
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "", value = "")

  public String getOthername() {
    return othername;
  }


  public void setOthername(String othername) {

    
    
    
    this.othername = othername;
  }


  public VerifySelfieNinResponseEntity pfirstname(String pfirstname) {

    
    
    
    
    this.pfirstname = pfirstname;
    return this;
  }

   /**
   * Get pfirstname
   * @return pfirstname
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "", value = "")

  public String getPfirstname() {
    return pfirstname;
  }


  public void setPfirstname(String pfirstname) {

    
    
    
    this.pfirstname = pfirstname;
  }


  public VerifySelfieNinResponseEntity photo(String photo) {

    
    
    
    
    this.photo = photo;
    return this;
  }

   /**
   * Get photo
   * @return photo
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "base64 image", value = "")

  public String getPhoto() {
    return photo;
  }


  public void setPhoto(String photo) {

    
    
    
    this.photo = photo;
  }


  public VerifySelfieNinResponseEntity pmiddlename(String pmiddlename) {

    
    
    
    
    this.pmiddlename = pmiddlename;
    return this;
  }

   /**
   * Get pmiddlename
   * @return pmiddlename
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "", value = "")

  public String getPmiddlename() {
    return pmiddlename;
  }


  public void setPmiddlename(String pmiddlename) {

    
    
    
    this.pmiddlename = pmiddlename;
  }


  public VerifySelfieNinResponseEntity psurname(String psurname) {

    
    
    
    
    this.psurname = psurname;
    return this;
  }

   /**
   * Get psurname
   * @return psurname
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "", value = "")

  public String getPsurname() {
    return psurname;
  }


  public void setPsurname(String psurname) {

    
    
    
    this.psurname = psurname;
  }


  public VerifySelfieNinResponseEntity nspokenlang(String nspokenlang) {

    
    
    
    
    this.nspokenlang = nspokenlang;
    return this;
  }

   /**
   * Get nspokenlang
   * @return nspokenlang
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "YORUBA", value = "")

  public String getNspokenlang() {
    return nspokenlang;
  }


  public void setNspokenlang(String nspokenlang) {

    
    
    
    this.nspokenlang = nspokenlang;
  }


  public VerifySelfieNinResponseEntity ospokenlang(String ospokenlang) {

    
    
    
    
    this.ospokenlang = ospokenlang;
    return this;
  }

   /**
   * Get ospokenlang
   * @return ospokenlang
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "", value = "")

  public String getOspokenlang() {
    return ospokenlang;
  }


  public void setOspokenlang(String ospokenlang) {

    
    
    
    this.ospokenlang = ospokenlang;
  }


  public VerifySelfieNinResponseEntity religion(String religion) {

    
    
    
    
    this.religion = religion;
    return this;
  }

   /**
   * Get religion
   * @return religion
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "islam", value = "")

  public String getReligion() {
    return religion;
  }


  public void setReligion(String religion) {

    
    
    
    this.religion = religion;
  }


  public VerifySelfieNinResponseEntity residenceTown(String residenceTown) {

    
    
    
    
    this.residenceTown = residenceTown;
    return this;
  }

   /**
   * Get residenceTown
   * @return residenceTown
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "IDANRE", value = "")

  public String getResidenceTown() {
    return residenceTown;
  }


  public void setResidenceTown(String residenceTown) {

    
    
    
    this.residenceTown = residenceTown;
  }


  public VerifySelfieNinResponseEntity residenceLga(String residenceLga) {

    
    
    
    
    this.residenceLga = residenceLga;
    return this;
  }

   /**
   * Get residenceLga
   * @return residenceLga
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "Idanre", value = "")

  public String getResidenceLga() {
    return residenceLga;
  }


  public void setResidenceLga(String residenceLga) {

    
    
    
    this.residenceLga = residenceLga;
  }


  public VerifySelfieNinResponseEntity residenceState(String residenceState) {

    
    
    
    
    this.residenceState = residenceState;
    return this;
  }

   /**
   * Get residenceState
   * @return residenceState
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "Ondo", value = "")

  public String getResidenceState() {
    return residenceState;
  }


  public void setResidenceState(String residenceState) {

    
    
    
    this.residenceState = residenceState;
  }


  public VerifySelfieNinResponseEntity residencestatus(String residencestatus) {

    
    
    
    
    this.residencestatus = residencestatus;
    return this;
  }

   /**
   * Get residencestatus
   * @return residencestatus
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "birth", value = "")

  public String getResidencestatus() {
    return residencestatus;
  }


  public void setResidencestatus(String residencestatus) {

    
    
    
    this.residencestatus = residencestatus;
  }


  public VerifySelfieNinResponseEntity residenceAddressLine1(String residenceAddressLine1) {

    
    
    
    
    this.residenceAddressLine1 = residenceAddressLine1;
    return this;
  }

   /**
   * Get residenceAddressLine1
   * @return residenceAddressLine1
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "NO 32 BROAD STREET ISALU QUARTERS II ODODE IDANRE", value = "")

  public String getResidenceAddressLine1() {
    return residenceAddressLine1;
  }


  public void setResidenceAddressLine1(String residenceAddressLine1) {

    
    
    
    this.residenceAddressLine1 = residenceAddressLine1;
  }


  public VerifySelfieNinResponseEntity residenceAddressLine2(String residenceAddressLine2) {

    
    
    
    
    this.residenceAddressLine2 = residenceAddressLine2;
    return this;
  }

   /**
   * Get residenceAddressLine2
   * @return residenceAddressLine2
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "NO 32 BROAD STREET ISALU QUARTERS II ODODE IDANRE", value = "")

  public String getResidenceAddressLine2() {
    return residenceAddressLine2;
  }


  public void setResidenceAddressLine2(String residenceAddressLine2) {

    
    
    
    this.residenceAddressLine2 = residenceAddressLine2;
  }


  public VerifySelfieNinResponseEntity selfOriginLga(String selfOriginLga) {

    
    
    
    
    this.selfOriginLga = selfOriginLga;
    return this;
  }

   /**
   * Get selfOriginLga
   * @return selfOriginLga
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "Idanre", value = "")

  public String getSelfOriginLga() {
    return selfOriginLga;
  }


  public void setSelfOriginLga(String selfOriginLga) {

    
    
    
    this.selfOriginLga = selfOriginLga;
  }


  public VerifySelfieNinResponseEntity selfOriginPlace(String selfOriginPlace) {

    
    
    
    
    this.selfOriginPlace = selfOriginPlace;
    return this;
  }

   /**
   * Get selfOriginPlace
   * @return selfOriginPlace
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "", value = "")

  public String getSelfOriginPlace() {
    return selfOriginPlace;
  }


  public void setSelfOriginPlace(String selfOriginPlace) {

    
    
    
    this.selfOriginPlace = selfOriginPlace;
  }


  public VerifySelfieNinResponseEntity selfOriginState(String selfOriginState) {

    
    
    
    
    this.selfOriginState = selfOriginState;
    return this;
  }

   /**
   * Get selfOriginState
   * @return selfOriginState
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "Ondo", value = "")

  public String getSelfOriginState() {
    return selfOriginState;
  }


  public void setSelfOriginState(String selfOriginState) {

    
    
    
    this.selfOriginState = selfOriginState;
  }


  public VerifySelfieNinResponseEntity signature(String signature) {

    
    
    
    
    this.signature = signature;
    return this;
  }

   /**
   * Get signature
   * @return signature
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "base64 image", value = "")

  public String getSignature() {
    return signature;
  }


  public void setSignature(String signature) {

    
    
    
    this.signature = signature;
  }


  public VerifySelfieNinResponseEntity nationality(String nationality) {

    
    
    
    
    this.nationality = nationality;
    return this;
  }

   /**
   * Get nationality
   * @return nationality
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "", value = "")

  public String getNationality() {
    return nationality;
  }


  public void setNationality(String nationality) {

    
    
    
    this.nationality = nationality;
  }


  public VerifySelfieNinResponseEntity gender(String gender) {

    
    
    
    
    this.gender = gender;
    return this;
  }

   /**
   * Get gender
   * @return gender
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "m", value = "")

  public String getGender() {
    return gender;
  }


  public void setGender(String gender) {

    
    
    
    this.gender = gender;
  }


  public VerifySelfieNinResponseEntity trackingId(String trackingId) {

    
    
    
    
    this.trackingId = trackingId;
    return this;
  }

   /**
   * Get trackingId
   * @return trackingId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "S7Y0T0GU30003HL", value = "")

  public String getTrackingId() {
    return trackingId;
  }


  public void setTrackingId(String trackingId) {

    
    
    
    this.trackingId = trackingId;
  }


  public VerifySelfieNinResponseEntity selfieVerification(VerifySelfieNinResponseEntitySelfieVerification selfieVerification) {

    
    
    
    
    this.selfieVerification = selfieVerification;
    return this;
  }

   /**
   * Get selfieVerification
   * @return selfieVerification
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public VerifySelfieNinResponseEntitySelfieVerification getSelfieVerification() {
    return selfieVerification;
  }


  public void setSelfieVerification(VerifySelfieNinResponseEntitySelfieVerification selfieVerification) {

    
    
    
    this.selfieVerification = selfieVerification;
  }

  /**
   * A container for additional, undeclared properties.
   * This is a holder for any undeclared properties as specified with
   * the 'additionalProperties' keyword in the OAS document.
   */
  private Map<String, Object> additionalProperties;

  /**
   * Set the additional (undeclared) property with the specified name and value.
   * If the property does not already exist, create it otherwise replace it.
   *
   * @param key name of the property
   * @param value value of the property
   * @return the VerifySelfieNinResponseEntity instance itself
   */
  public VerifySelfieNinResponseEntity putAdditionalProperty(String key, Object value) {
    if (this.additionalProperties == null) {
        this.additionalProperties = new HashMap<String, Object>();
    }
    this.additionalProperties.put(key, value);
    return this;
  }

  /**
   * Return the additional (undeclared) property.
   *
   * @return a map of objects
   */
  public Map<String, Object> getAdditionalProperties() {
    return additionalProperties;
  }

  /**
   * Return the additional (undeclared) property with the specified name.
   *
   * @param key name of the property
   * @return an object
   */
  public Object getAdditionalProperty(String key) {
    if (this.additionalProperties == null) {
        return null;
    }
    return this.additionalProperties.get(key);
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    VerifySelfieNinResponseEntity verifySelfieNinResponseEntity = (VerifySelfieNinResponseEntity) o;
    return Objects.equals(this.title, verifySelfieNinResponseEntity.title) &&
        Objects.equals(this.nin, verifySelfieNinResponseEntity.nin) &&
        Objects.equals(this.firstname, verifySelfieNinResponseEntity.firstname) &&
        Objects.equals(this.middlename, verifySelfieNinResponseEntity.middlename) &&
        Objects.equals(this.surname, verifySelfieNinResponseEntity.surname) &&
        Objects.equals(this.maidenname, verifySelfieNinResponseEntity.maidenname) &&
        Objects.equals(this.telephoneno, verifySelfieNinResponseEntity.telephoneno) &&
        Objects.equals(this.state, verifySelfieNinResponseEntity.state) &&
        Objects.equals(this.place, verifySelfieNinResponseEntity.place) &&
        Objects.equals(this.profession, verifySelfieNinResponseEntity.profession) &&
        Objects.equals(this.height, verifySelfieNinResponseEntity.height) &&
        Objects.equals(this.email, verifySelfieNinResponseEntity.email) &&
        Objects.equals(this.birthdate, verifySelfieNinResponseEntity.birthdate) &&
        Objects.equals(this.birthstate, verifySelfieNinResponseEntity.birthstate) &&
        Objects.equals(this.birthcountry, verifySelfieNinResponseEntity.birthcountry) &&
        Objects.equals(this.centralID, verifySelfieNinResponseEntity.centralID) &&
        Objects.equals(this.documentno, verifySelfieNinResponseEntity.documentno) &&
        Objects.equals(this.educationallevel, verifySelfieNinResponseEntity.educationallevel) &&
        Objects.equals(this.employmentstatus, verifySelfieNinResponseEntity.employmentstatus) &&
        Objects.equals(this.nokFirstname, verifySelfieNinResponseEntity.nokFirstname) &&
        Objects.equals(this.nokLastname, verifySelfieNinResponseEntity.nokLastname) &&
        Objects.equals(this.nokMiddlename, verifySelfieNinResponseEntity.nokMiddlename) &&
        Objects.equals(this.nokAddress1, verifySelfieNinResponseEntity.nokAddress1) &&
        Objects.equals(this.nokAddress2, verifySelfieNinResponseEntity.nokAddress2) &&
        Objects.equals(this.nokLga, verifySelfieNinResponseEntity.nokLga) &&
        Objects.equals(this.nokState, verifySelfieNinResponseEntity.nokState) &&
        Objects.equals(this.nokTown, verifySelfieNinResponseEntity.nokTown) &&
        Objects.equals(this.nokPostalcode, verifySelfieNinResponseEntity.nokPostalcode) &&
        Objects.equals(this.othername, verifySelfieNinResponseEntity.othername) &&
        Objects.equals(this.pfirstname, verifySelfieNinResponseEntity.pfirstname) &&
        Objects.equals(this.photo, verifySelfieNinResponseEntity.photo) &&
        Objects.equals(this.pmiddlename, verifySelfieNinResponseEntity.pmiddlename) &&
        Objects.equals(this.psurname, verifySelfieNinResponseEntity.psurname) &&
        Objects.equals(this.nspokenlang, verifySelfieNinResponseEntity.nspokenlang) &&
        Objects.equals(this.ospokenlang, verifySelfieNinResponseEntity.ospokenlang) &&
        Objects.equals(this.religion, verifySelfieNinResponseEntity.religion) &&
        Objects.equals(this.residenceTown, verifySelfieNinResponseEntity.residenceTown) &&
        Objects.equals(this.residenceLga, verifySelfieNinResponseEntity.residenceLga) &&
        Objects.equals(this.residenceState, verifySelfieNinResponseEntity.residenceState) &&
        Objects.equals(this.residencestatus, verifySelfieNinResponseEntity.residencestatus) &&
        Objects.equals(this.residenceAddressLine1, verifySelfieNinResponseEntity.residenceAddressLine1) &&
        Objects.equals(this.residenceAddressLine2, verifySelfieNinResponseEntity.residenceAddressLine2) &&
        Objects.equals(this.selfOriginLga, verifySelfieNinResponseEntity.selfOriginLga) &&
        Objects.equals(this.selfOriginPlace, verifySelfieNinResponseEntity.selfOriginPlace) &&
        Objects.equals(this.selfOriginState, verifySelfieNinResponseEntity.selfOriginState) &&
        Objects.equals(this.signature, verifySelfieNinResponseEntity.signature) &&
        Objects.equals(this.nationality, verifySelfieNinResponseEntity.nationality) &&
        Objects.equals(this.gender, verifySelfieNinResponseEntity.gender) &&
        Objects.equals(this.trackingId, verifySelfieNinResponseEntity.trackingId) &&
        Objects.equals(this.selfieVerification, verifySelfieNinResponseEntity.selfieVerification)&&
        Objects.equals(this.additionalProperties, verifySelfieNinResponseEntity.additionalProperties);
  }

  @Override
  public int hashCode() {
    return Objects.hash(title, nin, firstname, middlename, surname, maidenname, telephoneno, state, place, profession, height, email, birthdate, birthstate, birthcountry, centralID, documentno, educationallevel, employmentstatus, nokFirstname, nokLastname, nokMiddlename, nokAddress1, nokAddress2, nokLga, nokState, nokTown, nokPostalcode, othername, pfirstname, photo, pmiddlename, psurname, nspokenlang, ospokenlang, religion, residenceTown, residenceLga, residenceState, residencestatus, residenceAddressLine1, residenceAddressLine2, selfOriginLga, selfOriginPlace, selfOriginState, signature, nationality, gender, trackingId, selfieVerification, additionalProperties);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class VerifySelfieNinResponseEntity {\n");
    sb.append("    title: ").append(toIndentedString(title)).append("\n");
    sb.append("    nin: ").append(toIndentedString(nin)).append("\n");
    sb.append("    firstname: ").append(toIndentedString(firstname)).append("\n");
    sb.append("    middlename: ").append(toIndentedString(middlename)).append("\n");
    sb.append("    surname: ").append(toIndentedString(surname)).append("\n");
    sb.append("    maidenname: ").append(toIndentedString(maidenname)).append("\n");
    sb.append("    telephoneno: ").append(toIndentedString(telephoneno)).append("\n");
    sb.append("    state: ").append(toIndentedString(state)).append("\n");
    sb.append("    place: ").append(toIndentedString(place)).append("\n");
    sb.append("    profession: ").append(toIndentedString(profession)).append("\n");
    sb.append("    height: ").append(toIndentedString(height)).append("\n");
    sb.append("    email: ").append(toIndentedString(email)).append("\n");
    sb.append("    birthdate: ").append(toIndentedString(birthdate)).append("\n");
    sb.append("    birthstate: ").append(toIndentedString(birthstate)).append("\n");
    sb.append("    birthcountry: ").append(toIndentedString(birthcountry)).append("\n");
    sb.append("    centralID: ").append(toIndentedString(centralID)).append("\n");
    sb.append("    documentno: ").append(toIndentedString(documentno)).append("\n");
    sb.append("    educationallevel: ").append(toIndentedString(educationallevel)).append("\n");
    sb.append("    employmentstatus: ").append(toIndentedString(employmentstatus)).append("\n");
    sb.append("    nokFirstname: ").append(toIndentedString(nokFirstname)).append("\n");
    sb.append("    nokLastname: ").append(toIndentedString(nokLastname)).append("\n");
    sb.append("    nokMiddlename: ").append(toIndentedString(nokMiddlename)).append("\n");
    sb.append("    nokAddress1: ").append(toIndentedString(nokAddress1)).append("\n");
    sb.append("    nokAddress2: ").append(toIndentedString(nokAddress2)).append("\n");
    sb.append("    nokLga: ").append(toIndentedString(nokLga)).append("\n");
    sb.append("    nokState: ").append(toIndentedString(nokState)).append("\n");
    sb.append("    nokTown: ").append(toIndentedString(nokTown)).append("\n");
    sb.append("    nokPostalcode: ").append(toIndentedString(nokPostalcode)).append("\n");
    sb.append("    othername: ").append(toIndentedString(othername)).append("\n");
    sb.append("    pfirstname: ").append(toIndentedString(pfirstname)).append("\n");
    sb.append("    photo: ").append(toIndentedString(photo)).append("\n");
    sb.append("    pmiddlename: ").append(toIndentedString(pmiddlename)).append("\n");
    sb.append("    psurname: ").append(toIndentedString(psurname)).append("\n");
    sb.append("    nspokenlang: ").append(toIndentedString(nspokenlang)).append("\n");
    sb.append("    ospokenlang: ").append(toIndentedString(ospokenlang)).append("\n");
    sb.append("    religion: ").append(toIndentedString(religion)).append("\n");
    sb.append("    residenceTown: ").append(toIndentedString(residenceTown)).append("\n");
    sb.append("    residenceLga: ").append(toIndentedString(residenceLga)).append("\n");
    sb.append("    residenceState: ").append(toIndentedString(residenceState)).append("\n");
    sb.append("    residencestatus: ").append(toIndentedString(residencestatus)).append("\n");
    sb.append("    residenceAddressLine1: ").append(toIndentedString(residenceAddressLine1)).append("\n");
    sb.append("    residenceAddressLine2: ").append(toIndentedString(residenceAddressLine2)).append("\n");
    sb.append("    selfOriginLga: ").append(toIndentedString(selfOriginLga)).append("\n");
    sb.append("    selfOriginPlace: ").append(toIndentedString(selfOriginPlace)).append("\n");
    sb.append("    selfOriginState: ").append(toIndentedString(selfOriginState)).append("\n");
    sb.append("    signature: ").append(toIndentedString(signature)).append("\n");
    sb.append("    nationality: ").append(toIndentedString(nationality)).append("\n");
    sb.append("    gender: ").append(toIndentedString(gender)).append("\n");
    sb.append("    trackingId: ").append(toIndentedString(trackingId)).append("\n");
    sb.append("    selfieVerification: ").append(toIndentedString(selfieVerification)).append("\n");
    sb.append("    additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }


  public static HashSet<String> openapiFields;
  public static HashSet<String> openapiRequiredFields;

  static {
    // a set of all properties/fields (JSON key names)
    openapiFields = new HashSet<String>();
    openapiFields.add("title");
    openapiFields.add("nin");
    openapiFields.add("firstname");
    openapiFields.add("middlename");
    openapiFields.add("surname");
    openapiFields.add("maidenname");
    openapiFields.add("telephoneno");
    openapiFields.add("state");
    openapiFields.add("place");
    openapiFields.add("profession");
    openapiFields.add("height");
    openapiFields.add("email");
    openapiFields.add("birthdate");
    openapiFields.add("birthstate");
    openapiFields.add("birthcountry");
    openapiFields.add("centralID");
    openapiFields.add("documentno");
    openapiFields.add("educationallevel");
    openapiFields.add("employmentstatus");
    openapiFields.add("nok_firstname");
    openapiFields.add("nok_lastname");
    openapiFields.add("nok_middlename");
    openapiFields.add("nok_address1");
    openapiFields.add("nok_address2");
    openapiFields.add("nok_lga");
    openapiFields.add("nok_state");
    openapiFields.add("nok_town");
    openapiFields.add("nok_postalcode");
    openapiFields.add("othername");
    openapiFields.add("pfirstname");
    openapiFields.add("photo");
    openapiFields.add("pmiddlename");
    openapiFields.add("psurname");
    openapiFields.add("nspokenlang");
    openapiFields.add("ospokenlang");
    openapiFields.add("religion");
    openapiFields.add("residence_Town");
    openapiFields.add("residence_lga");
    openapiFields.add("residence_state");
    openapiFields.add("residencestatus");
    openapiFields.add("residence_AddressLine1");
    openapiFields.add("residence_AddressLine2");
    openapiFields.add("self_origin_lga");
    openapiFields.add("self_origin_place");
    openapiFields.add("self_origin_state");
    openapiFields.add("signature");
    openapiFields.add("nationality");
    openapiFields.add("gender");
    openapiFields.add("trackingId");
    openapiFields.add("selfie_verification");

    // a set of required properties/fields (JSON key names)
    openapiRequiredFields = new HashSet<String>();
  }

 /**
  * Validates the JSON Object and throws an exception if issues found
  *
  * @param jsonObj JSON Object
  * @throws IOException if the JSON Object is invalid with respect to VerifySelfieNinResponseEntity
  */
  public static void validateJsonObject(JsonObject jsonObj) throws IOException {
      if (jsonObj == null) {
        if (!VerifySelfieNinResponseEntity.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null
          throw new IllegalArgumentException(String.format("The required field(s) %s in VerifySelfieNinResponseEntity is not found in the empty JSON string", VerifySelfieNinResponseEntity.openapiRequiredFields.toString()));
        }
      }
      if ((jsonObj.get("title") != null && !jsonObj.get("title").isJsonNull()) && !jsonObj.get("title").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString()));
      }
      if ((jsonObj.get("nin") != null && !jsonObj.get("nin").isJsonNull()) && !jsonObj.get("nin").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `nin` to be a primitive type in the JSON string but got `%s`", jsonObj.get("nin").toString()));
      }
      if ((jsonObj.get("firstname") != null && !jsonObj.get("firstname").isJsonNull()) && !jsonObj.get("firstname").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `firstname` to be a primitive type in the JSON string but got `%s`", jsonObj.get("firstname").toString()));
      }
      if ((jsonObj.get("middlename") != null && !jsonObj.get("middlename").isJsonNull()) && !jsonObj.get("middlename").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `middlename` to be a primitive type in the JSON string but got `%s`", jsonObj.get("middlename").toString()));
      }
      if ((jsonObj.get("surname") != null && !jsonObj.get("surname").isJsonNull()) && !jsonObj.get("surname").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `surname` to be a primitive type in the JSON string but got `%s`", jsonObj.get("surname").toString()));
      }
      if ((jsonObj.get("maidenname") != null && !jsonObj.get("maidenname").isJsonNull()) && !jsonObj.get("maidenname").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `maidenname` to be a primitive type in the JSON string but got `%s`", jsonObj.get("maidenname").toString()));
      }
      if ((jsonObj.get("telephoneno") != null && !jsonObj.get("telephoneno").isJsonNull()) && !jsonObj.get("telephoneno").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `telephoneno` to be a primitive type in the JSON string but got `%s`", jsonObj.get("telephoneno").toString()));
      }
      if ((jsonObj.get("state") != null && !jsonObj.get("state").isJsonNull()) && !jsonObj.get("state").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `state` to be a primitive type in the JSON string but got `%s`", jsonObj.get("state").toString()));
      }
      if ((jsonObj.get("place") != null && !jsonObj.get("place").isJsonNull()) && !jsonObj.get("place").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `place` to be a primitive type in the JSON string but got `%s`", jsonObj.get("place").toString()));
      }
      if ((jsonObj.get("profession") != null && !jsonObj.get("profession").isJsonNull()) && !jsonObj.get("profession").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `profession` to be a primitive type in the JSON string but got `%s`", jsonObj.get("profession").toString()));
      }
      if ((jsonObj.get("height") != null && !jsonObj.get("height").isJsonNull()) && !jsonObj.get("height").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `height` to be a primitive type in the JSON string but got `%s`", jsonObj.get("height").toString()));
      }
      if ((jsonObj.get("email") != null && !jsonObj.get("email").isJsonNull()) && !jsonObj.get("email").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `email` to be a primitive type in the JSON string but got `%s`", jsonObj.get("email").toString()));
      }
      if ((jsonObj.get("birthdate") != null && !jsonObj.get("birthdate").isJsonNull()) && !jsonObj.get("birthdate").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `birthdate` to be a primitive type in the JSON string but got `%s`", jsonObj.get("birthdate").toString()));
      }
      if ((jsonObj.get("birthstate") != null && !jsonObj.get("birthstate").isJsonNull()) && !jsonObj.get("birthstate").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `birthstate` to be a primitive type in the JSON string but got `%s`", jsonObj.get("birthstate").toString()));
      }
      if ((jsonObj.get("birthcountry") != null && !jsonObj.get("birthcountry").isJsonNull()) && !jsonObj.get("birthcountry").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `birthcountry` to be a primitive type in the JSON string but got `%s`", jsonObj.get("birthcountry").toString()));
      }
      if ((jsonObj.get("centralID") != null && !jsonObj.get("centralID").isJsonNull()) && !jsonObj.get("centralID").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `centralID` to be a primitive type in the JSON string but got `%s`", jsonObj.get("centralID").toString()));
      }
      if ((jsonObj.get("documentno") != null && !jsonObj.get("documentno").isJsonNull()) && !jsonObj.get("documentno").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `documentno` to be a primitive type in the JSON string but got `%s`", jsonObj.get("documentno").toString()));
      }
      if ((jsonObj.get("educationallevel") != null && !jsonObj.get("educationallevel").isJsonNull()) && !jsonObj.get("educationallevel").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `educationallevel` to be a primitive type in the JSON string but got `%s`", jsonObj.get("educationallevel").toString()));
      }
      if ((jsonObj.get("employmentstatus") != null && !jsonObj.get("employmentstatus").isJsonNull()) && !jsonObj.get("employmentstatus").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `employmentstatus` to be a primitive type in the JSON string but got `%s`", jsonObj.get("employmentstatus").toString()));
      }
      if ((jsonObj.get("nok_firstname") != null && !jsonObj.get("nok_firstname").isJsonNull()) && !jsonObj.get("nok_firstname").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `nok_firstname` to be a primitive type in the JSON string but got `%s`", jsonObj.get("nok_firstname").toString()));
      }
      if ((jsonObj.get("nok_lastname") != null && !jsonObj.get("nok_lastname").isJsonNull()) && !jsonObj.get("nok_lastname").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `nok_lastname` to be a primitive type in the JSON string but got `%s`", jsonObj.get("nok_lastname").toString()));
      }
      if ((jsonObj.get("nok_middlename") != null && !jsonObj.get("nok_middlename").isJsonNull()) && !jsonObj.get("nok_middlename").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `nok_middlename` to be a primitive type in the JSON string but got `%s`", jsonObj.get("nok_middlename").toString()));
      }
      if ((jsonObj.get("nok_address1") != null && !jsonObj.get("nok_address1").isJsonNull()) && !jsonObj.get("nok_address1").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `nok_address1` to be a primitive type in the JSON string but got `%s`", jsonObj.get("nok_address1").toString()));
      }
      if ((jsonObj.get("nok_address2") != null && !jsonObj.get("nok_address2").isJsonNull()) && !jsonObj.get("nok_address2").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `nok_address2` to be a primitive type in the JSON string but got `%s`", jsonObj.get("nok_address2").toString()));
      }
      if ((jsonObj.get("nok_lga") != null && !jsonObj.get("nok_lga").isJsonNull()) && !jsonObj.get("nok_lga").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `nok_lga` to be a primitive type in the JSON string but got `%s`", jsonObj.get("nok_lga").toString()));
      }
      if ((jsonObj.get("nok_state") != null && !jsonObj.get("nok_state").isJsonNull()) && !jsonObj.get("nok_state").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `nok_state` to be a primitive type in the JSON string but got `%s`", jsonObj.get("nok_state").toString()));
      }
      if ((jsonObj.get("nok_town") != null && !jsonObj.get("nok_town").isJsonNull()) && !jsonObj.get("nok_town").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `nok_town` to be a primitive type in the JSON string but got `%s`", jsonObj.get("nok_town").toString()));
      }
      if ((jsonObj.get("nok_postalcode") != null && !jsonObj.get("nok_postalcode").isJsonNull()) && !jsonObj.get("nok_postalcode").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `nok_postalcode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("nok_postalcode").toString()));
      }
      if ((jsonObj.get("othername") != null && !jsonObj.get("othername").isJsonNull()) && !jsonObj.get("othername").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `othername` to be a primitive type in the JSON string but got `%s`", jsonObj.get("othername").toString()));
      }
      if ((jsonObj.get("pfirstname") != null && !jsonObj.get("pfirstname").isJsonNull()) && !jsonObj.get("pfirstname").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `pfirstname` to be a primitive type in the JSON string but got `%s`", jsonObj.get("pfirstname").toString()));
      }
      if ((jsonObj.get("photo") != null && !jsonObj.get("photo").isJsonNull()) && !jsonObj.get("photo").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `photo` to be a primitive type in the JSON string but got `%s`", jsonObj.get("photo").toString()));
      }
      if ((jsonObj.get("pmiddlename") != null && !jsonObj.get("pmiddlename").isJsonNull()) && !jsonObj.get("pmiddlename").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `pmiddlename` to be a primitive type in the JSON string but got `%s`", jsonObj.get("pmiddlename").toString()));
      }
      if ((jsonObj.get("psurname") != null && !jsonObj.get("psurname").isJsonNull()) && !jsonObj.get("psurname").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `psurname` to be a primitive type in the JSON string but got `%s`", jsonObj.get("psurname").toString()));
      }
      if ((jsonObj.get("nspokenlang") != null && !jsonObj.get("nspokenlang").isJsonNull()) && !jsonObj.get("nspokenlang").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `nspokenlang` to be a primitive type in the JSON string but got `%s`", jsonObj.get("nspokenlang").toString()));
      }
      if ((jsonObj.get("ospokenlang") != null && !jsonObj.get("ospokenlang").isJsonNull()) && !jsonObj.get("ospokenlang").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `ospokenlang` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ospokenlang").toString()));
      }
      if ((jsonObj.get("religion") != null && !jsonObj.get("religion").isJsonNull()) && !jsonObj.get("religion").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `religion` to be a primitive type in the JSON string but got `%s`", jsonObj.get("religion").toString()));
      }
      if ((jsonObj.get("residence_Town") != null && !jsonObj.get("residence_Town").isJsonNull()) && !jsonObj.get("residence_Town").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `residence_Town` to be a primitive type in the JSON string but got `%s`", jsonObj.get("residence_Town").toString()));
      }
      if ((jsonObj.get("residence_lga") != null && !jsonObj.get("residence_lga").isJsonNull()) && !jsonObj.get("residence_lga").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `residence_lga` to be a primitive type in the JSON string but got `%s`", jsonObj.get("residence_lga").toString()));
      }
      if ((jsonObj.get("residence_state") != null && !jsonObj.get("residence_state").isJsonNull()) && !jsonObj.get("residence_state").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `residence_state` to be a primitive type in the JSON string but got `%s`", jsonObj.get("residence_state").toString()));
      }
      if ((jsonObj.get("residencestatus") != null && !jsonObj.get("residencestatus").isJsonNull()) && !jsonObj.get("residencestatus").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `residencestatus` to be a primitive type in the JSON string but got `%s`", jsonObj.get("residencestatus").toString()));
      }
      if ((jsonObj.get("residence_AddressLine1") != null && !jsonObj.get("residence_AddressLine1").isJsonNull()) && !jsonObj.get("residence_AddressLine1").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `residence_AddressLine1` to be a primitive type in the JSON string but got `%s`", jsonObj.get("residence_AddressLine1").toString()));
      }
      if ((jsonObj.get("residence_AddressLine2") != null && !jsonObj.get("residence_AddressLine2").isJsonNull()) && !jsonObj.get("residence_AddressLine2").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `residence_AddressLine2` to be a primitive type in the JSON string but got `%s`", jsonObj.get("residence_AddressLine2").toString()));
      }
      if ((jsonObj.get("self_origin_lga") != null && !jsonObj.get("self_origin_lga").isJsonNull()) && !jsonObj.get("self_origin_lga").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `self_origin_lga` to be a primitive type in the JSON string but got `%s`", jsonObj.get("self_origin_lga").toString()));
      }
      if ((jsonObj.get("self_origin_place") != null && !jsonObj.get("self_origin_place").isJsonNull()) && !jsonObj.get("self_origin_place").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `self_origin_place` to be a primitive type in the JSON string but got `%s`", jsonObj.get("self_origin_place").toString()));
      }
      if ((jsonObj.get("self_origin_state") != null && !jsonObj.get("self_origin_state").isJsonNull()) && !jsonObj.get("self_origin_state").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `self_origin_state` to be a primitive type in the JSON string but got `%s`", jsonObj.get("self_origin_state").toString()));
      }
      if ((jsonObj.get("signature") != null && !jsonObj.get("signature").isJsonNull()) && !jsonObj.get("signature").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `signature` to be a primitive type in the JSON string but got `%s`", jsonObj.get("signature").toString()));
      }
      if ((jsonObj.get("nationality") != null && !jsonObj.get("nationality").isJsonNull()) && !jsonObj.get("nationality").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `nationality` to be a primitive type in the JSON string but got `%s`", jsonObj.get("nationality").toString()));
      }
      if ((jsonObj.get("gender") != null && !jsonObj.get("gender").isJsonNull()) && !jsonObj.get("gender").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `gender` to be a primitive type in the JSON string but got `%s`", jsonObj.get("gender").toString()));
      }
      if ((jsonObj.get("trackingId") != null && !jsonObj.get("trackingId").isJsonNull()) && !jsonObj.get("trackingId").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `trackingId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("trackingId").toString()));
      }
      // validate the optional field `selfie_verification`
      if (jsonObj.get("selfie_verification") != null && !jsonObj.get("selfie_verification").isJsonNull()) {
        VerifySelfieNinResponseEntitySelfieVerification.validateJsonObject(jsonObj.getAsJsonObject("selfie_verification"));
      }
  }

  public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
    @SuppressWarnings("unchecked")
    @Override
    public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
       if (!VerifySelfieNinResponseEntity.class.isAssignableFrom(type.getRawType())) {
         return null; // this class only serializes 'VerifySelfieNinResponseEntity' and its subtypes
       }
       final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
       final TypeAdapter<VerifySelfieNinResponseEntity> thisAdapter
                        = gson.getDelegateAdapter(this, TypeToken.get(VerifySelfieNinResponseEntity.class));

       return (TypeAdapter<T>) new TypeAdapter<VerifySelfieNinResponseEntity>() {
           @Override
           public void write(JsonWriter out, VerifySelfieNinResponseEntity value) throws IOException {
             JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject();
             obj.remove("additionalProperties");
             // serialize additonal properties
             if (value.getAdditionalProperties() != null) {
               for (Map.Entry<String, Object> entry : value.getAdditionalProperties().entrySet()) {
                 if (entry.getValue() instanceof String)
                   obj.addProperty(entry.getKey(), (String) entry.getValue());
                 else if (entry.getValue() instanceof Number)
                   obj.addProperty(entry.getKey(), (Number) entry.getValue());
                 else if (entry.getValue() instanceof Boolean)
                   obj.addProperty(entry.getKey(), (Boolean) entry.getValue());
                 else if (entry.getValue() instanceof Character)
                   obj.addProperty(entry.getKey(), (Character) entry.getValue());
                 else {
                   obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject());
                 }
               }
             }
             elementAdapter.write(out, obj);
           }

           @Override
           public VerifySelfieNinResponseEntity read(JsonReader in) throws IOException {
             JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject();
             validateJsonObject(jsonObj);
             // store additional fields in the deserialized instance
             VerifySelfieNinResponseEntity instance = thisAdapter.fromJsonTree(jsonObj);
             for (Map.Entry<String, JsonElement> entry : jsonObj.entrySet()) {
               if (!openapiFields.contains(entry.getKey())) {
                 if (entry.getValue().isJsonPrimitive()) { // primitive type
                   if (entry.getValue().getAsJsonPrimitive().isString())
                     instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString());
                   else if (entry.getValue().getAsJsonPrimitive().isNumber())
                     instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber());
                   else if (entry.getValue().getAsJsonPrimitive().isBoolean())
                     instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean());
                   else
                     throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString()));
                 } else if (entry.getValue().isJsonArray()) {
                     instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class));
                 } else { // JSON object
                     instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class));
                 }
               }
             }
             return instance;
           }

       }.nullSafe();
    }
  }

 /**
  * Create an instance of VerifySelfieNinResponseEntity given an JSON string
  *
  * @param jsonString JSON string
  * @return An instance of VerifySelfieNinResponseEntity
  * @throws IOException if the JSON string is invalid with respect to VerifySelfieNinResponseEntity
  */
  public static VerifySelfieNinResponseEntity fromJson(String jsonString) throws IOException {
    return JSON.getGson().fromJson(jsonString, VerifySelfieNinResponseEntity.class);
  }

 /**
  * Convert an instance of VerifySelfieNinResponseEntity to an JSON string
  *
  * @return JSON string
  */
  public String toJson() {
    return JSON.getGson().toJson(this);
  }
}

