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

com.factset.sdk.SecurityModeling.models.SMBondFields Maven / Gradle / Ivy

There is a newer version: 0.21.2
Show newest version
/*
 * Security-Modeling API
 * Allow clients to fetch Analytics through APIs.
 *
 * The version of the OpenAPI document: 3
 * Contact: [email protected]
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package com.factset.sdk.SecurityModeling.models;

import java.util.Objects;
import java.util.Arrays;
import java.util.Map;
import java.util.HashMap;
import com.factset.sdk.SecurityModeling.models.SMFields;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonValue;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.openapitools.jackson.nullable.JsonNullable;
import com.fasterxml.jackson.annotation.JsonIgnore;
import org.openapitools.jackson.nullable.JsonNullable;
import java.util.NoSuchElementException;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.factset.sdk.SecurityModeling.JSON;


/**
 * SMBondFields
 */
@JsonPropertyOrder({
  SMBondFields.JSON_PROPERTY_144A_FLAG,
  SMBondFields.JSON_PROPERTY_APERIODIC_MULTIPLIERS,
  SMBondFields.JSON_PROPERTY_APERIODIC_RESET_DATES,
  SMBondFields.JSON_PROPERTY_APERIODIC_SPREADS,
  SMBondFields.JSON_PROPERTY_BUSINESS_DAY_CONV,
  SMBondFields.JSON_PROPERTY_CALL_ANNOUNCED_DATE,
  SMBondFields.JSON_PROPERTY_CALL_DATES,
  SMBondFields.JSON_PROPERTY_CALL_FREQ,
  SMBondFields.JSON_PROPERTY_CALL_NOTICE_DAYS,
  SMBondFields.JSON_PROPERTY_CALL_PRICES,
  SMBondFields.JSON_PROPERTY_CASH_RATE,
  SMBondFields.JSON_PROPERTY_COGNITY,
  SMBondFields.JSON_PROPERTY_CONVERSION_IDENTIFIER,
  SMBondFields.JSON_PROPERTY_CONVERSION_RATIO,
  SMBondFields.JSON_PROPERTY_CONVERSION_TYPE,
  SMBondFields.JSON_PROPERTY_CONVERTIBLE_FLAG,
  SMBondFields.JSON_PROPERTY_COUNTRY,
  SMBondFields.JSON_PROPERTY_COUPON,
  SMBondFields.JSON_PROPERTY_COUPON_TYPE,
  SMBondFields.JSON_PROPERTY_CREDIT_SPREAD_ADJUSTMENT_SINGLE,
  SMBondFields.JSON_PROPERTY_CURRENCY,
  SMBondFields.JSON_PROPERTY_DAY_COUNT_BASIS,
  SMBondFields.JSON_PROPERTY_DEFAULTED_DATE,
  SMBondFields.JSON_PROPERTY_FEDERAL_TAX_EXEMPT_FLAG,
  SMBondFields.JSON_PROPERTY_FIRST_PAY_DATE,
  SMBondFields.JSON_PROPERTY_FIRST_RESET_DATE,
  SMBondFields.JSON_PROPERTY_FLOAT_FORMULA,
  SMBondFields.JSON_PROPERTY_FLT_DAY_COUNT_BASIS,
  SMBondFields.JSON_PROPERTY_FLT_FIRST_PAY_DATE,
  SMBondFields.JSON_PROPERTY_FLT_PAY_FREQ,
  SMBondFields.JSON_PROPERTY_HIST_COUPON_DATES,
  SMBondFields.JSON_PROPERTY_HIST_COUPONS,
  SMBondFields.JSON_PROPERTY_HIST_RCV_ASSUMP_DATES,
  SMBondFields.JSON_PROPERTY_HIST_RCV_ASSUMP_MONTHS,
  SMBondFields.JSON_PROPERTY_HIST_RCV_ASSUMP_RATES,
  SMBondFields.JSON_PROPERTY_HIST_RCV_ASSUMP_TARGET_DATES,
  SMBondFields.JSON_PROPERTY_INFLATION_TYPE,
  SMBondFields.JSON_PROPERTY_ISSUE_DATE,
  SMBondFields.JSON_PROPERTY_ISSUE_NAME,
  SMBondFields.JSON_PROPERTY_ISSUER_ID,
  SMBondFields.JSON_PROPERTY_LAST_MODIFIED_SOURCE,
  SMBondFields.JSON_PROPERTY_LAST_MODIFIED_SOURCE_META,
  SMBondFields.JSON_PROPERTY_LAST_MODIFIED_TIME,
  SMBondFields.JSON_PROPERTY_LIFE_CAP,
  SMBondFields.JSON_PROPERTY_LIFE_FLOOR,
  SMBondFields.JSON_PROPERTY_LOCKOUT_DAYS,
  SMBondFields.JSON_PROPERTY_LOOK_BACK_DAYS,
  SMBondFields.JSON_PROPERTY_MAKE_WHOLE_CALL_FLAG,
  SMBondFields.JSON_PROPERTY_MAKE_WHOLE_EXPIRE_DATE,
  SMBondFields.JSON_PROPERTY_MAKE_WHOLE_SPREAD,
  SMBondFields.JSON_PROPERTY_MATRIX_DATES,
  SMBondFields.JSON_PROPERTY_MATRIX_MULTIPLIERS,
  SMBondFields.JSON_PROPERTY_MATRIX_PRICED_FLAG,
  SMBondFields.JSON_PROPERTY_MATRIX_SPREADS,
  SMBondFields.JSON_PROPERTY_MATRIX_USE_SCHEDULE_FLAG,
  SMBondFields.JSON_PROPERTY_MATURITY_DATE,
  SMBondFields.JSON_PROPERTY_MATURITY_PRICE,
  SMBondFields.JSON_PROPERTY_MONTHS_TO_RECOVERY,
  SMBondFields.JSON_PROPERTY_MULTIPLIER,
  SMBondFields.JSON_PROPERTY_NOTIONAL_FLAG,
  SMBondFields.JSON_PROPERTY_OBSERVATION_SHIFT,
  SMBondFields.JSON_PROPERTY_ORIG_AMT_ISSUED,
  SMBondFields.JSON_PROPERTY_PARENT_NAME,
  SMBondFields.JSON_PROPERTY_PAR_PRICE,
  SMBondFields.JSON_PROPERTY_PARSER_INFO,
  SMBondFields.JSON_PROPERTY_PAYMENT_DELAY,
  SMBondFields.JSON_PROPERTY_PAY_FREQ,
  SMBondFields.JSON_PROPERTY_PERIOD_CAP,
  SMBondFields.JSON_PROPERTY_PERIOD_FLOOR,
  SMBondFields.JSON_PROPERTY_PIK_EXP_DATE,
  SMBondFields.JSON_PROPERTY_PIK_RATE,
  SMBondFields.JSON_PROPERTY_PREFERRED_SEC_EX_DATE_LEN,
  SMBondFields.JSON_PROPERTY_PREFERRED_SEC_EX_DATE_UNITS,
  SMBondFields.JSON_PROPERTY_PREFERRED_SEC_FLAG,
  SMBondFields.JSON_PROPERTY_PREFERRED_SEC_TYPE,
  SMBondFields.JSON_PROPERTY_PRINCIPAL_TYPE,
  SMBondFields.JSON_PROPERTY_PUT_DATES,
  SMBondFields.JSON_PROPERTY_PUT_NOTICE_DAYS,
  SMBondFields.JSON_PROPERTY_PUT_FREQ,
  SMBondFields.JSON_PROPERTY_PUT_PRICES,
  SMBondFields.JSON_PROPERTY_PVT_PLACEMENT_FLAG,
  SMBondFields.JSON_PROPERTY_RATING_FITCH,
  SMBondFields.JSON_PROPERTY_RATING_FITCH_DATES,
  SMBondFields.JSON_PROPERTY_RATING_FITCH_VALUES,
  SMBondFields.JSON_PROPERTY_RATING_MOODYS_DATES,
  SMBondFields.JSON_PROPERTY_RATING_MOODYS_VALUES,
  SMBondFields.JSON_PROPERTY_RATING_SP_DATES,
  SMBondFields.JSON_PROPERTY_RATING_SP_VALUES,
  SMBondFields.JSON_PROPERTY_RECOVERY_PERCENTAGE,
  SMBondFields.JSON_PROPERTY_REDEMPTION_DATE,
  SMBondFields.JSON_PROPERTY_REDEMPTION_OPT,
  SMBondFields.JSON_PROPERTY_REDEMPTION_PRICE,
  SMBondFields.JSON_PROPERTY_REINSTATED_DATE,
  SMBondFields.JSON_PROPERTY_RESET_DELAY,
  SMBondFields.JSON_PROPERTY_RESET_FREQ,
  SMBondFields.JSON_PROPERTY_REF_INDEX,
  SMBondFields.JSON_PROPERTY_SECONDARY_TO_VENDOR_FLAG,
  SMBondFields.JSON_PROPERTY_SECTOR,
  SMBondFields.JSON_PROPERTY_SECTOR_BARCLAY1,
  SMBondFields.JSON_PROPERTY_SECTOR_BARCLAY2,
  SMBondFields.JSON_PROPERTY_SECTOR_BARCLAY3,
  SMBondFields.JSON_PROPERTY_SECTOR_BARCLAY4,
  SMBondFields.JSON_PROPERTY_SECTOR_DEF,
  SMBondFields.JSON_PROPERTY_SECTOR_INDUSTRY,
  SMBondFields.JSON_PROPERTY_SECTOR_MAIN,
  SMBondFields.JSON_PROPERTY_SECTOR_MERRILL1,
  SMBondFields.JSON_PROPERTY_SECTOR_MERRILL2,
  SMBondFields.JSON_PROPERTY_SECTOR_MERRILL3,
  SMBondFields.JSON_PROPERTY_SECTOR_MERRILL4,
  SMBondFields.JSON_PROPERTY_SECTOR_SUB_GROUP,
  SMBondFields.JSON_PROPERTY_SINK_AMTS,
  SMBondFields.JSON_PROPERTY_SINK_DATES,
  SMBondFields.JSON_PROPERTY_SPREAD,
  SMBondFields.JSON_PROPERTY_STATE,
  SMBondFields.JSON_PROPERTY_STATUS,
  SMBondFields.JSON_PROPERTY_STATUS_DATES,
  SMBondFields.JSON_PROPERTY_STATUS_VALUES,
  SMBondFields.JSON_PROPERTY_STEP_CASH_RATES,
  SMBondFields.JSON_PROPERTY_STEP_COUPON_DATES,
  SMBondFields.JSON_PROPERTY_STEP_COUPONS,
  SMBondFields.JSON_PROPERTY_STEP_PIK_RATES,
  SMBondFields.JSON_PROPERTY_VENDOR_COVERAGE_DATE,
  SMBondFields.JSON_PROPERTY_V_R_D_N_FLAG,
  SMBondFields.JSON_PROPERTY_SECURITY_TYPE
})
@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")

public class SMBondFields implements Serializable {
  private static final long serialVersionUID = 1L;

  public static final String JSON_PROPERTY_144A_FLAG = "144aFlag";
  private JsonNullable _144aFlag = JsonNullable.undefined();

  public static final String JSON_PROPERTY_APERIODIC_MULTIPLIERS = "aperiodicMultipliers";
  private JsonNullable> aperiodicMultipliers = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_APERIODIC_RESET_DATES = "aperiodicResetDates";
  private JsonNullable> aperiodicResetDates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_APERIODIC_SPREADS = "aperiodicSpreads";
  private JsonNullable> aperiodicSpreads = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_BUSINESS_DAY_CONV = "businessDayConv";
  private JsonNullable businessDayConv = JsonNullable.undefined();

  public static final String JSON_PROPERTY_CALL_ANNOUNCED_DATE = "callAnnouncedDate";
  private JsonNullable callAnnouncedDate = JsonNullable.undefined();

  public static final String JSON_PROPERTY_CALL_DATES = "callDates";
  private JsonNullable> callDates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_CALL_FREQ = "callFreq";
  private JsonNullable callFreq = JsonNullable.undefined();

  public static final String JSON_PROPERTY_CALL_NOTICE_DAYS = "callNoticeDays";
  private JsonNullable callNoticeDays = JsonNullable.undefined();

  public static final String JSON_PROPERTY_CALL_PRICES = "callPrices";
  private JsonNullable> callPrices = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_CASH_RATE = "cashRate";
  private JsonNullable cashRate = JsonNullable.undefined();

  public static final String JSON_PROPERTY_COGNITY = "cognity";
  private JsonNullable cognity = JsonNullable.undefined();

  public static final String JSON_PROPERTY_CONVERSION_IDENTIFIER = "conversionIdentifier";
  private JsonNullable conversionIdentifier = JsonNullable.undefined();

  public static final String JSON_PROPERTY_CONVERSION_RATIO = "conversionRatio";
  private JsonNullable conversionRatio = JsonNullable.undefined();

  public static final String JSON_PROPERTY_CONVERSION_TYPE = "conversionType";
  private JsonNullable conversionType = JsonNullable.undefined();

  public static final String JSON_PROPERTY_CONVERTIBLE_FLAG = "convertibleFlag";
  private JsonNullable convertibleFlag = JsonNullable.undefined();

  public static final String JSON_PROPERTY_COUNTRY = "country";
  private JsonNullable country = JsonNullable.undefined();

  public static final String JSON_PROPERTY_COUPON = "coupon";
  private JsonNullable coupon = JsonNullable.undefined();

  public static final String JSON_PROPERTY_COUPON_TYPE = "couponType";
  private JsonNullable couponType = JsonNullable.undefined();

  public static final String JSON_PROPERTY_CREDIT_SPREAD_ADJUSTMENT_SINGLE = "creditSpreadAdjustmentSingle";
  private JsonNullable creditSpreadAdjustmentSingle = JsonNullable.undefined();

  public static final String JSON_PROPERTY_CURRENCY = "currency";
  private JsonNullable currency = JsonNullable.undefined();

  public static final String JSON_PROPERTY_DAY_COUNT_BASIS = "dayCountBasis";
  private JsonNullable dayCountBasis = JsonNullable.undefined();

  public static final String JSON_PROPERTY_DEFAULTED_DATE = "defaultedDate";
  private JsonNullable defaultedDate = JsonNullable.undefined();

  public static final String JSON_PROPERTY_FEDERAL_TAX_EXEMPT_FLAG = "federalTaxExemptFlag";
  private JsonNullable federalTaxExemptFlag = JsonNullable.undefined();

  public static final String JSON_PROPERTY_FIRST_PAY_DATE = "firstPayDate";
  private JsonNullable firstPayDate = JsonNullable.undefined();

  public static final String JSON_PROPERTY_FIRST_RESET_DATE = "firstResetDate";
  private JsonNullable firstResetDate = JsonNullable.undefined();

  public static final String JSON_PROPERTY_FLOAT_FORMULA = "floatFormula";
  private JsonNullable floatFormula = JsonNullable.undefined();

  public static final String JSON_PROPERTY_FLT_DAY_COUNT_BASIS = "fltDayCountBasis";
  private JsonNullable fltDayCountBasis = JsonNullable.undefined();

  public static final String JSON_PROPERTY_FLT_FIRST_PAY_DATE = "fltFirstPayDate";
  private JsonNullable fltFirstPayDate = JsonNullable.undefined();

  public static final String JSON_PROPERTY_FLT_PAY_FREQ = "fltPayFreq";
  private JsonNullable fltPayFreq = JsonNullable.undefined();

  public static final String JSON_PROPERTY_HIST_COUPON_DATES = "histCouponDates";
  private JsonNullable> histCouponDates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_HIST_COUPONS = "histCoupons";
  private JsonNullable> histCoupons = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_HIST_RCV_ASSUMP_DATES = "histRcvAssumpDates";
  private JsonNullable> histRcvAssumpDates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_HIST_RCV_ASSUMP_MONTHS = "histRcvAssumpMonths";
  private JsonNullable> histRcvAssumpMonths = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_HIST_RCV_ASSUMP_RATES = "histRcvAssumpRates";
  private JsonNullable> histRcvAssumpRates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_HIST_RCV_ASSUMP_TARGET_DATES = "histRcvAssumpTargetDates";
  private JsonNullable> histRcvAssumpTargetDates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_INFLATION_TYPE = "inflationType";
  private JsonNullable inflationType = JsonNullable.undefined();

  public static final String JSON_PROPERTY_ISSUE_DATE = "issueDate";
  private JsonNullable issueDate = JsonNullable.undefined();

  public static final String JSON_PROPERTY_ISSUE_NAME = "issueName";
  private JsonNullable issueName = JsonNullable.undefined();

  public static final String JSON_PROPERTY_ISSUER_ID = "issuerId";
  private JsonNullable issuerId = JsonNullable.undefined();

  public static final String JSON_PROPERTY_LAST_MODIFIED_SOURCE = "lastModifiedSource";
  private JsonNullable lastModifiedSource = JsonNullable.undefined();

  public static final String JSON_PROPERTY_LAST_MODIFIED_SOURCE_META = "lastModifiedSourceMeta";
  private JsonNullable lastModifiedSourceMeta = JsonNullable.undefined();

  public static final String JSON_PROPERTY_LAST_MODIFIED_TIME = "lastModifiedTime";
  private JsonNullable lastModifiedTime = JsonNullable.undefined();

  public static final String JSON_PROPERTY_LIFE_CAP = "lifeCap";
  private JsonNullable lifeCap = JsonNullable.undefined();

  public static final String JSON_PROPERTY_LIFE_FLOOR = "lifeFloor";
  private JsonNullable lifeFloor = JsonNullable.undefined();

  public static final String JSON_PROPERTY_LOCKOUT_DAYS = "lockoutDays";
  private JsonNullable lockoutDays = JsonNullable.undefined();

  public static final String JSON_PROPERTY_LOOK_BACK_DAYS = "lookBackDays";
  private JsonNullable lookBackDays = JsonNullable.undefined();

  public static final String JSON_PROPERTY_MAKE_WHOLE_CALL_FLAG = "makeWholeCallFlag";
  private JsonNullable makeWholeCallFlag = JsonNullable.undefined();

  public static final String JSON_PROPERTY_MAKE_WHOLE_EXPIRE_DATE = "makeWholeExpireDate";
  private JsonNullable makeWholeExpireDate = JsonNullable.undefined();

  public static final String JSON_PROPERTY_MAKE_WHOLE_SPREAD = "makeWholeSpread";
  private JsonNullable makeWholeSpread = JsonNullable.undefined();

  public static final String JSON_PROPERTY_MATRIX_DATES = "matrixDates";
  private JsonNullable> matrixDates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_MATRIX_MULTIPLIERS = "matrixMultipliers";
  private JsonNullable> matrixMultipliers = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_MATRIX_PRICED_FLAG = "matrixPricedFlag";
  private JsonNullable matrixPricedFlag = JsonNullable.undefined();

  public static final String JSON_PROPERTY_MATRIX_SPREADS = "matrixSpreads";
  private JsonNullable> matrixSpreads = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_MATRIX_USE_SCHEDULE_FLAG = "matrixUseScheduleFlag";
  private JsonNullable matrixUseScheduleFlag = JsonNullable.undefined();

  public static final String JSON_PROPERTY_MATURITY_DATE = "maturityDate";
  private JsonNullable maturityDate = JsonNullable.undefined();

  public static final String JSON_PROPERTY_MATURITY_PRICE = "maturityPrice";
  private JsonNullable maturityPrice = JsonNullable.undefined();

  public static final String JSON_PROPERTY_MONTHS_TO_RECOVERY = "monthsToRecovery";
  private JsonNullable monthsToRecovery = JsonNullable.undefined();

  public static final String JSON_PROPERTY_MULTIPLIER = "multiplier";
  private JsonNullable multiplier = JsonNullable.undefined();

  public static final String JSON_PROPERTY_NOTIONAL_FLAG = "notionalFlag";
  private JsonNullable notionalFlag = JsonNullable.undefined();

  public static final String JSON_PROPERTY_OBSERVATION_SHIFT = "observationShift";
  private JsonNullable observationShift = JsonNullable.undefined();

  public static final String JSON_PROPERTY_ORIG_AMT_ISSUED = "origAmtIssued";
  private JsonNullable origAmtIssued = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PARENT_NAME = "parentName";
  private JsonNullable parentName = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PAR_PRICE = "parPrice";
  private JsonNullable parPrice = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PARSER_INFO = "parserInfo";
  private JsonNullable parserInfo = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PAYMENT_DELAY = "paymentDelay";
  private JsonNullable paymentDelay = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PAY_FREQ = "payFreq";
  private JsonNullable payFreq = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PERIOD_CAP = "periodCap";
  private JsonNullable periodCap = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PERIOD_FLOOR = "periodFloor";
  private JsonNullable periodFloor = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PIK_EXP_DATE = "pikExpDate";
  private JsonNullable pikExpDate = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PIK_RATE = "pikRate";
  private JsonNullable pikRate = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PREFERRED_SEC_EX_DATE_LEN = "preferredSecExDateLen";
  private JsonNullable preferredSecExDateLen = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PREFERRED_SEC_EX_DATE_UNITS = "preferredSecExDateUnits";
  private JsonNullable preferredSecExDateUnits = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PREFERRED_SEC_FLAG = "preferredSecFlag";
  private JsonNullable preferredSecFlag = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PREFERRED_SEC_TYPE = "preferredSecType";
  private JsonNullable preferredSecType = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PRINCIPAL_TYPE = "principalType";
  private JsonNullable principalType = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PUT_DATES = "putDates";
  private JsonNullable> putDates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_PUT_NOTICE_DAYS = "putNoticeDays";
  private JsonNullable putNoticeDays = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PUT_FREQ = "putFreq";
  private JsonNullable putFreq = JsonNullable.undefined();

  public static final String JSON_PROPERTY_PUT_PRICES = "putPrices";
  private JsonNullable> putPrices = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_PVT_PLACEMENT_FLAG = "pvtPlacementFlag";
  private JsonNullable pvtPlacementFlag = JsonNullable.undefined();

  public static final String JSON_PROPERTY_RATING_FITCH = "ratingFitch";
  private JsonNullable ratingFitch = JsonNullable.undefined();

  public static final String JSON_PROPERTY_RATING_FITCH_DATES = "ratingFitchDates";
  private JsonNullable> ratingFitchDates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_RATING_FITCH_VALUES = "ratingFitchValues";
  private JsonNullable> ratingFitchValues = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_RATING_MOODYS_DATES = "ratingMoodysDates";
  private JsonNullable> ratingMoodysDates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_RATING_MOODYS_VALUES = "ratingMoodysValues";
  private JsonNullable> ratingMoodysValues = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_RATING_SP_DATES = "ratingSpDates";
  private JsonNullable> ratingSpDates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_RATING_SP_VALUES = "ratingSpValues";
  private JsonNullable> ratingSpValues = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_RECOVERY_PERCENTAGE = "recoveryPercentage";
  private JsonNullable recoveryPercentage = JsonNullable.undefined();

  public static final String JSON_PROPERTY_REDEMPTION_DATE = "redemptionDate";
  private JsonNullable redemptionDate = JsonNullable.undefined();

  public static final String JSON_PROPERTY_REDEMPTION_OPT = "redemptionOpt";
  private JsonNullable redemptionOpt = JsonNullable.undefined();

  public static final String JSON_PROPERTY_REDEMPTION_PRICE = "redemptionPrice";
  private JsonNullable redemptionPrice = JsonNullable.undefined();

  public static final String JSON_PROPERTY_REINSTATED_DATE = "reinstatedDate";
  private JsonNullable reinstatedDate = JsonNullable.undefined();

  public static final String JSON_PROPERTY_RESET_DELAY = "resetDelay";
  private JsonNullable resetDelay = JsonNullable.undefined();

  public static final String JSON_PROPERTY_RESET_FREQ = "resetFreq";
  private JsonNullable resetFreq = JsonNullable.undefined();

  public static final String JSON_PROPERTY_REF_INDEX = "refIndex";
  private JsonNullable refIndex = JsonNullable.undefined();

  public static final String JSON_PROPERTY_SECONDARY_TO_VENDOR_FLAG = "secondaryToVendorFlag";
  private JsonNullable secondaryToVendorFlag = JsonNullable.undefined();

  public static final String JSON_PROPERTY_SECTOR = "sector";
  private JsonNullable sector = JsonNullable.undefined();

  public static final String JSON_PROPERTY_SECTOR_BARCLAY1 = "sectorBarclay1";
  private JsonNullable sectorBarclay1 = JsonNullable.undefined();

  public static final String JSON_PROPERTY_SECTOR_BARCLAY2 = "sectorBarclay2";
  private JsonNullable sectorBarclay2 = JsonNullable.undefined();

  public static final String JSON_PROPERTY_SECTOR_BARCLAY3 = "sectorBarclay3";
  private JsonNullable sectorBarclay3 = JsonNullable.undefined();

  public static final String JSON_PROPERTY_SECTOR_BARCLAY4 = "sectorBarclay4";
  private JsonNullable sectorBarclay4 = JsonNullable.undefined();

  public static final String JSON_PROPERTY_SECTOR_DEF = "sectorDef";
  private JsonNullable sectorDef = JsonNullable.undefined();

  public static final String JSON_PROPERTY_SECTOR_INDUSTRY = "sectorIndustry";
  private JsonNullable sectorIndustry = JsonNullable.undefined();

  public static final String JSON_PROPERTY_SECTOR_MAIN = "sectorMain";
  private JsonNullable sectorMain = JsonNullable.undefined();

  public static final String JSON_PROPERTY_SECTOR_MERRILL1 = "sectorMerrill1";
  private JsonNullable sectorMerrill1 = JsonNullable.undefined();

  public static final String JSON_PROPERTY_SECTOR_MERRILL2 = "sectorMerrill2";
  private JsonNullable sectorMerrill2 = JsonNullable.undefined();

  public static final String JSON_PROPERTY_SECTOR_MERRILL3 = "sectorMerrill3";
  private JsonNullable sectorMerrill3 = JsonNullable.undefined();

  public static final String JSON_PROPERTY_SECTOR_MERRILL4 = "sectorMerrill4";
  private JsonNullable sectorMerrill4 = JsonNullable.undefined();

  public static final String JSON_PROPERTY_SECTOR_SUB_GROUP = "sectorSubGroup";
  private JsonNullable sectorSubGroup = JsonNullable.undefined();

  public static final String JSON_PROPERTY_SINK_AMTS = "sinkAmts";
  private JsonNullable> sinkAmts = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_SINK_DATES = "sinkDates";
  private JsonNullable> sinkDates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_SPREAD = "spread";
  private JsonNullable spread = JsonNullable.undefined();

  public static final String JSON_PROPERTY_STATE = "state";
  private JsonNullable state = JsonNullable.undefined();

  public static final String JSON_PROPERTY_STATUS = "status";
  private JsonNullable status = JsonNullable.undefined();

  public static final String JSON_PROPERTY_STATUS_DATES = "statusDates";
  private JsonNullable> statusDates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_STATUS_VALUES = "statusValues";
  private JsonNullable> statusValues = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_STEP_CASH_RATES = "stepCashRates";
  private JsonNullable> stepCashRates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_STEP_COUPON_DATES = "stepCouponDates";
  private JsonNullable> stepCouponDates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_STEP_COUPONS = "stepCoupons";
  private JsonNullable> stepCoupons = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_STEP_PIK_RATES = "stepPikRates";
  private JsonNullable> stepPikRates = JsonNullable.>undefined();

  public static final String JSON_PROPERTY_VENDOR_COVERAGE_DATE = "vendorCoverageDate";
  private JsonNullable vendorCoverageDate = JsonNullable.undefined();

  public static final String JSON_PROPERTY_V_R_D_N_FLAG = "vRDNFlag";
  private JsonNullable vRDNFlag = JsonNullable.undefined();

  /**
   * Gets or Sets securityType
   */
  public enum SecurityTypeEnum {
    BOND("Bond"),
    
    CCF("CCF");

    private String value;

    SecurityTypeEnum(String value) {
      this.value = value;
    }

    @JsonValue
    public String getValue() {
      return value;
    }

    @Override
    public String toString() {
      return String.valueOf(value);
    }

    @JsonCreator
    public static SecurityTypeEnum fromValue(String value) {
      for (SecurityTypeEnum b : SecurityTypeEnum.values()) {
        if (b.value.equals(value)) {
          return b;
        }
      }
      throw new IllegalArgumentException("Unexpected value '" + value + "'");
    }
  }

  public static final String JSON_PROPERTY_SECURITY_TYPE = "securityType";
  private SecurityTypeEnum securityType;

  public SMBondFields() { 
  }

  @JsonCreator
  public SMBondFields(
    @JsonProperty(value=JSON_PROPERTY_SECURITY_TYPE, required=true) SecurityTypeEnum securityType
  ) {
    this();
    this.securityType = securityType;
  }

  public SMBondFields _144aFlag(Boolean _144aFlag) {
    this._144aFlag = JsonNullable.of(_144aFlag);
    return this;
  }

   /**
   * Get _144aFlag
   * @return _144aFlag
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Boolean get144aFlag() {
        return _144aFlag.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_144A_FLAG)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable get144aFlag_JsonNullable() {
    return _144aFlag;
  }
  
  @JsonProperty(JSON_PROPERTY_144A_FLAG)
  public void set144aFlag_JsonNullable(JsonNullable _144aFlag) {
    this._144aFlag = _144aFlag;
  }

  public void set144aFlag(Boolean _144aFlag) {
    this._144aFlag = JsonNullable.of(_144aFlag);
  }


  public SMBondFields aperiodicMultipliers(java.util.List aperiodicMultipliers) {
    this.aperiodicMultipliers = JsonNullable.>of(aperiodicMultipliers);
    return this;
  }

  public SMBondFields addAperiodicMultipliersItem(Double aperiodicMultipliersItem) {
    if (this.aperiodicMultipliers == null || !this.aperiodicMultipliers.isPresent()) {
      this.aperiodicMultipliers = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.aperiodicMultipliers.get().add(aperiodicMultipliersItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get aperiodicMultipliers
   * @return aperiodicMultipliers
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getAperiodicMultipliers() {
        return aperiodicMultipliers.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_APERIODIC_MULTIPLIERS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getAperiodicMultipliers_JsonNullable() {
    return aperiodicMultipliers;
  }
  
  @JsonProperty(JSON_PROPERTY_APERIODIC_MULTIPLIERS)
  public void setAperiodicMultipliers_JsonNullable(JsonNullable> aperiodicMultipliers) {
    this.aperiodicMultipliers = aperiodicMultipliers;
  }

  public void setAperiodicMultipliers(java.util.List aperiodicMultipliers) {
    this.aperiodicMultipliers = JsonNullable.>of(aperiodicMultipliers);
  }


  public SMBondFields aperiodicResetDates(java.util.List aperiodicResetDates) {
    this.aperiodicResetDates = JsonNullable.>of(aperiodicResetDates);
    return this;
  }

  public SMBondFields addAperiodicResetDatesItem(String aperiodicResetDatesItem) {
    if (this.aperiodicResetDates == null || !this.aperiodicResetDates.isPresent()) {
      this.aperiodicResetDates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.aperiodicResetDates.get().add(aperiodicResetDatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get aperiodicResetDates
   * @return aperiodicResetDates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getAperiodicResetDates() {
        return aperiodicResetDates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_APERIODIC_RESET_DATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getAperiodicResetDates_JsonNullable() {
    return aperiodicResetDates;
  }
  
  @JsonProperty(JSON_PROPERTY_APERIODIC_RESET_DATES)
  public void setAperiodicResetDates_JsonNullable(JsonNullable> aperiodicResetDates) {
    this.aperiodicResetDates = aperiodicResetDates;
  }

  public void setAperiodicResetDates(java.util.List aperiodicResetDates) {
    this.aperiodicResetDates = JsonNullable.>of(aperiodicResetDates);
  }


  public SMBondFields aperiodicSpreads(java.util.List aperiodicSpreads) {
    this.aperiodicSpreads = JsonNullable.>of(aperiodicSpreads);
    return this;
  }

  public SMBondFields addAperiodicSpreadsItem(Double aperiodicSpreadsItem) {
    if (this.aperiodicSpreads == null || !this.aperiodicSpreads.isPresent()) {
      this.aperiodicSpreads = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.aperiodicSpreads.get().add(aperiodicSpreadsItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get aperiodicSpreads
   * @return aperiodicSpreads
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getAperiodicSpreads() {
        return aperiodicSpreads.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_APERIODIC_SPREADS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getAperiodicSpreads_JsonNullable() {
    return aperiodicSpreads;
  }
  
  @JsonProperty(JSON_PROPERTY_APERIODIC_SPREADS)
  public void setAperiodicSpreads_JsonNullable(JsonNullable> aperiodicSpreads) {
    this.aperiodicSpreads = aperiodicSpreads;
  }

  public void setAperiodicSpreads(java.util.List aperiodicSpreads) {
    this.aperiodicSpreads = JsonNullable.>of(aperiodicSpreads);
  }


  public SMBondFields businessDayConv(String businessDayConv) {
    this.businessDayConv = JsonNullable.of(businessDayConv);
    return this;
  }

   /**
   * Get businessDayConv
   * @return businessDayConv
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getBusinessDayConv() {
        return businessDayConv.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_BUSINESS_DAY_CONV)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getBusinessDayConv_JsonNullable() {
    return businessDayConv;
  }
  
  @JsonProperty(JSON_PROPERTY_BUSINESS_DAY_CONV)
  public void setBusinessDayConv_JsonNullable(JsonNullable businessDayConv) {
    this.businessDayConv = businessDayConv;
  }

  public void setBusinessDayConv(String businessDayConv) {
    this.businessDayConv = JsonNullable.of(businessDayConv);
  }


  public SMBondFields callAnnouncedDate(String callAnnouncedDate) {
    this.callAnnouncedDate = JsonNullable.of(callAnnouncedDate);
    return this;
  }

   /**
   * Get callAnnouncedDate
   * @return callAnnouncedDate
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getCallAnnouncedDate() {
        return callAnnouncedDate.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_CALL_ANNOUNCED_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getCallAnnouncedDate_JsonNullable() {
    return callAnnouncedDate;
  }
  
  @JsonProperty(JSON_PROPERTY_CALL_ANNOUNCED_DATE)
  public void setCallAnnouncedDate_JsonNullable(JsonNullable callAnnouncedDate) {
    this.callAnnouncedDate = callAnnouncedDate;
  }

  public void setCallAnnouncedDate(String callAnnouncedDate) {
    this.callAnnouncedDate = JsonNullable.of(callAnnouncedDate);
  }


  public SMBondFields callDates(java.util.List callDates) {
    this.callDates = JsonNullable.>of(callDates);
    return this;
  }

  public SMBondFields addCallDatesItem(String callDatesItem) {
    if (this.callDates == null || !this.callDates.isPresent()) {
      this.callDates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.callDates.get().add(callDatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get callDates
   * @return callDates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getCallDates() {
        return callDates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_CALL_DATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getCallDates_JsonNullable() {
    return callDates;
  }
  
  @JsonProperty(JSON_PROPERTY_CALL_DATES)
  public void setCallDates_JsonNullable(JsonNullable> callDates) {
    this.callDates = callDates;
  }

  public void setCallDates(java.util.List callDates) {
    this.callDates = JsonNullable.>of(callDates);
  }


  public SMBondFields callFreq(String callFreq) {
    this.callFreq = JsonNullable.of(callFreq);
    return this;
  }

   /**
   * Get callFreq
   * @return callFreq
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getCallFreq() {
        return callFreq.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_CALL_FREQ)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getCallFreq_JsonNullable() {
    return callFreq;
  }
  
  @JsonProperty(JSON_PROPERTY_CALL_FREQ)
  public void setCallFreq_JsonNullable(JsonNullable callFreq) {
    this.callFreq = callFreq;
  }

  public void setCallFreq(String callFreq) {
    this.callFreq = JsonNullable.of(callFreq);
  }


  public SMBondFields callNoticeDays(Integer callNoticeDays) {
    this.callNoticeDays = JsonNullable.of(callNoticeDays);
    return this;
  }

   /**
   * Get callNoticeDays
   * @return callNoticeDays
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Integer getCallNoticeDays() {
        return callNoticeDays.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_CALL_NOTICE_DAYS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getCallNoticeDays_JsonNullable() {
    return callNoticeDays;
  }
  
  @JsonProperty(JSON_PROPERTY_CALL_NOTICE_DAYS)
  public void setCallNoticeDays_JsonNullable(JsonNullable callNoticeDays) {
    this.callNoticeDays = callNoticeDays;
  }

  public void setCallNoticeDays(Integer callNoticeDays) {
    this.callNoticeDays = JsonNullable.of(callNoticeDays);
  }


  public SMBondFields callPrices(java.util.List callPrices) {
    this.callPrices = JsonNullable.>of(callPrices);
    return this;
  }

  public SMBondFields addCallPricesItem(Double callPricesItem) {
    if (this.callPrices == null || !this.callPrices.isPresent()) {
      this.callPrices = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.callPrices.get().add(callPricesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get callPrices
   * @return callPrices
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getCallPrices() {
        return callPrices.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_CALL_PRICES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getCallPrices_JsonNullable() {
    return callPrices;
  }
  
  @JsonProperty(JSON_PROPERTY_CALL_PRICES)
  public void setCallPrices_JsonNullable(JsonNullable> callPrices) {
    this.callPrices = callPrices;
  }

  public void setCallPrices(java.util.List callPrices) {
    this.callPrices = JsonNullable.>of(callPrices);
  }


  public SMBondFields cashRate(Double cashRate) {
    this.cashRate = JsonNullable.of(cashRate);
    return this;
  }

   /**
   * Get cashRate
   * @return cashRate
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getCashRate() {
        return cashRate.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_CASH_RATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getCashRate_JsonNullable() {
    return cashRate;
  }
  
  @JsonProperty(JSON_PROPERTY_CASH_RATE)
  public void setCashRate_JsonNullable(JsonNullable cashRate) {
    this.cashRate = cashRate;
  }

  public void setCashRate(Double cashRate) {
    this.cashRate = JsonNullable.of(cashRate);
  }


  public SMBondFields cognity(String cognity) {
    this.cognity = JsonNullable.of(cognity);
    return this;
  }

   /**
   * Get cognity
   * @return cognity
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getCognity() {
        return cognity.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_COGNITY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getCognity_JsonNullable() {
    return cognity;
  }
  
  @JsonProperty(JSON_PROPERTY_COGNITY)
  public void setCognity_JsonNullable(JsonNullable cognity) {
    this.cognity = cognity;
  }

  public void setCognity(String cognity) {
    this.cognity = JsonNullable.of(cognity);
  }


  public SMBondFields conversionIdentifier(String conversionIdentifier) {
    this.conversionIdentifier = JsonNullable.of(conversionIdentifier);
    return this;
  }

   /**
   * Get conversionIdentifier
   * @return conversionIdentifier
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getConversionIdentifier() {
        return conversionIdentifier.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_CONVERSION_IDENTIFIER)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getConversionIdentifier_JsonNullable() {
    return conversionIdentifier;
  }
  
  @JsonProperty(JSON_PROPERTY_CONVERSION_IDENTIFIER)
  public void setConversionIdentifier_JsonNullable(JsonNullable conversionIdentifier) {
    this.conversionIdentifier = conversionIdentifier;
  }

  public void setConversionIdentifier(String conversionIdentifier) {
    this.conversionIdentifier = JsonNullable.of(conversionIdentifier);
  }


  public SMBondFields conversionRatio(Double conversionRatio) {
    this.conversionRatio = JsonNullable.of(conversionRatio);
    return this;
  }

   /**
   * Get conversionRatio
   * @return conversionRatio
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getConversionRatio() {
        return conversionRatio.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_CONVERSION_RATIO)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getConversionRatio_JsonNullable() {
    return conversionRatio;
  }
  
  @JsonProperty(JSON_PROPERTY_CONVERSION_RATIO)
  public void setConversionRatio_JsonNullable(JsonNullable conversionRatio) {
    this.conversionRatio = conversionRatio;
  }

  public void setConversionRatio(Double conversionRatio) {
    this.conversionRatio = JsonNullable.of(conversionRatio);
  }


  public SMBondFields conversionType(String conversionType) {
    this.conversionType = JsonNullable.of(conversionType);
    return this;
  }

   /**
   * Get conversionType
   * @return conversionType
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getConversionType() {
        return conversionType.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_CONVERSION_TYPE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getConversionType_JsonNullable() {
    return conversionType;
  }
  
  @JsonProperty(JSON_PROPERTY_CONVERSION_TYPE)
  public void setConversionType_JsonNullable(JsonNullable conversionType) {
    this.conversionType = conversionType;
  }

  public void setConversionType(String conversionType) {
    this.conversionType = JsonNullable.of(conversionType);
  }


  public SMBondFields convertibleFlag(Boolean convertibleFlag) {
    this.convertibleFlag = JsonNullable.of(convertibleFlag);
    return this;
  }

   /**
   * Get convertibleFlag
   * @return convertibleFlag
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Boolean getConvertibleFlag() {
        return convertibleFlag.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_CONVERTIBLE_FLAG)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getConvertibleFlag_JsonNullable() {
    return convertibleFlag;
  }
  
  @JsonProperty(JSON_PROPERTY_CONVERTIBLE_FLAG)
  public void setConvertibleFlag_JsonNullable(JsonNullable convertibleFlag) {
    this.convertibleFlag = convertibleFlag;
  }

  public void setConvertibleFlag(Boolean convertibleFlag) {
    this.convertibleFlag = JsonNullable.of(convertibleFlag);
  }


  public SMBondFields country(String country) {
    this.country = JsonNullable.of(country);
    return this;
  }

   /**
   * Get country
   * @return country
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getCountry() {
        return country.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_COUNTRY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getCountry_JsonNullable() {
    return country;
  }
  
  @JsonProperty(JSON_PROPERTY_COUNTRY)
  public void setCountry_JsonNullable(JsonNullable country) {
    this.country = country;
  }

  public void setCountry(String country) {
    this.country = JsonNullable.of(country);
  }


  public SMBondFields coupon(Double coupon) {
    this.coupon = JsonNullable.of(coupon);
    return this;
  }

   /**
   * Get coupon
   * @return coupon
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getCoupon() {
        return coupon.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_COUPON)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getCoupon_JsonNullable() {
    return coupon;
  }
  
  @JsonProperty(JSON_PROPERTY_COUPON)
  public void setCoupon_JsonNullable(JsonNullable coupon) {
    this.coupon = coupon;
  }

  public void setCoupon(Double coupon) {
    this.coupon = JsonNullable.of(coupon);
  }


  public SMBondFields couponType(String couponType) {
    this.couponType = JsonNullable.of(couponType);
    return this;
  }

   /**
   * Get couponType
   * @return couponType
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getCouponType() {
        return couponType.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_COUPON_TYPE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getCouponType_JsonNullable() {
    return couponType;
  }
  
  @JsonProperty(JSON_PROPERTY_COUPON_TYPE)
  public void setCouponType_JsonNullable(JsonNullable couponType) {
    this.couponType = couponType;
  }

  public void setCouponType(String couponType) {
    this.couponType = JsonNullable.of(couponType);
  }


  public SMBondFields creditSpreadAdjustmentSingle(Double creditSpreadAdjustmentSingle) {
    this.creditSpreadAdjustmentSingle = JsonNullable.of(creditSpreadAdjustmentSingle);
    return this;
  }

   /**
   * Get creditSpreadAdjustmentSingle
   * @return creditSpreadAdjustmentSingle
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getCreditSpreadAdjustmentSingle() {
        return creditSpreadAdjustmentSingle.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_CREDIT_SPREAD_ADJUSTMENT_SINGLE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getCreditSpreadAdjustmentSingle_JsonNullable() {
    return creditSpreadAdjustmentSingle;
  }
  
  @JsonProperty(JSON_PROPERTY_CREDIT_SPREAD_ADJUSTMENT_SINGLE)
  public void setCreditSpreadAdjustmentSingle_JsonNullable(JsonNullable creditSpreadAdjustmentSingle) {
    this.creditSpreadAdjustmentSingle = creditSpreadAdjustmentSingle;
  }

  public void setCreditSpreadAdjustmentSingle(Double creditSpreadAdjustmentSingle) {
    this.creditSpreadAdjustmentSingle = JsonNullable.of(creditSpreadAdjustmentSingle);
  }


  public SMBondFields currency(String currency) {
    this.currency = JsonNullable.of(currency);
    return this;
  }

   /**
   * Get currency
   * @return currency
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getCurrency() {
        return currency.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_CURRENCY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getCurrency_JsonNullable() {
    return currency;
  }
  
  @JsonProperty(JSON_PROPERTY_CURRENCY)
  public void setCurrency_JsonNullable(JsonNullable currency) {
    this.currency = currency;
  }

  public void setCurrency(String currency) {
    this.currency = JsonNullable.of(currency);
  }


  public SMBondFields dayCountBasis(String dayCountBasis) {
    this.dayCountBasis = JsonNullable.of(dayCountBasis);
    return this;
  }

   /**
   * Get dayCountBasis
   * @return dayCountBasis
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getDayCountBasis() {
        return dayCountBasis.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_DAY_COUNT_BASIS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getDayCountBasis_JsonNullable() {
    return dayCountBasis;
  }
  
  @JsonProperty(JSON_PROPERTY_DAY_COUNT_BASIS)
  public void setDayCountBasis_JsonNullable(JsonNullable dayCountBasis) {
    this.dayCountBasis = dayCountBasis;
  }

  public void setDayCountBasis(String dayCountBasis) {
    this.dayCountBasis = JsonNullable.of(dayCountBasis);
  }


  public SMBondFields defaultedDate(String defaultedDate) {
    this.defaultedDate = JsonNullable.of(defaultedDate);
    return this;
  }

   /**
   * Get defaultedDate
   * @return defaultedDate
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getDefaultedDate() {
        return defaultedDate.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_DEFAULTED_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getDefaultedDate_JsonNullable() {
    return defaultedDate;
  }
  
  @JsonProperty(JSON_PROPERTY_DEFAULTED_DATE)
  public void setDefaultedDate_JsonNullable(JsonNullable defaultedDate) {
    this.defaultedDate = defaultedDate;
  }

  public void setDefaultedDate(String defaultedDate) {
    this.defaultedDate = JsonNullable.of(defaultedDate);
  }


  public SMBondFields federalTaxExemptFlag(Boolean federalTaxExemptFlag) {
    this.federalTaxExemptFlag = JsonNullable.of(federalTaxExemptFlag);
    return this;
  }

   /**
   * Get federalTaxExemptFlag
   * @return federalTaxExemptFlag
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Boolean getFederalTaxExemptFlag() {
        return federalTaxExemptFlag.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_FEDERAL_TAX_EXEMPT_FLAG)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getFederalTaxExemptFlag_JsonNullable() {
    return federalTaxExemptFlag;
  }
  
  @JsonProperty(JSON_PROPERTY_FEDERAL_TAX_EXEMPT_FLAG)
  public void setFederalTaxExemptFlag_JsonNullable(JsonNullable federalTaxExemptFlag) {
    this.federalTaxExemptFlag = federalTaxExemptFlag;
  }

  public void setFederalTaxExemptFlag(Boolean federalTaxExemptFlag) {
    this.federalTaxExemptFlag = JsonNullable.of(federalTaxExemptFlag);
  }


  public SMBondFields firstPayDate(String firstPayDate) {
    this.firstPayDate = JsonNullable.of(firstPayDate);
    return this;
  }

   /**
   * Get firstPayDate
   * @return firstPayDate
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getFirstPayDate() {
        return firstPayDate.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_FIRST_PAY_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getFirstPayDate_JsonNullable() {
    return firstPayDate;
  }
  
  @JsonProperty(JSON_PROPERTY_FIRST_PAY_DATE)
  public void setFirstPayDate_JsonNullable(JsonNullable firstPayDate) {
    this.firstPayDate = firstPayDate;
  }

  public void setFirstPayDate(String firstPayDate) {
    this.firstPayDate = JsonNullable.of(firstPayDate);
  }


  public SMBondFields firstResetDate(String firstResetDate) {
    this.firstResetDate = JsonNullable.of(firstResetDate);
    return this;
  }

   /**
   * Get firstResetDate
   * @return firstResetDate
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getFirstResetDate() {
        return firstResetDate.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_FIRST_RESET_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getFirstResetDate_JsonNullable() {
    return firstResetDate;
  }
  
  @JsonProperty(JSON_PROPERTY_FIRST_RESET_DATE)
  public void setFirstResetDate_JsonNullable(JsonNullable firstResetDate) {
    this.firstResetDate = firstResetDate;
  }

  public void setFirstResetDate(String firstResetDate) {
    this.firstResetDate = JsonNullable.of(firstResetDate);
  }


  public SMBondFields floatFormula(String floatFormula) {
    this.floatFormula = JsonNullable.of(floatFormula);
    return this;
  }

   /**
   * Get floatFormula
   * @return floatFormula
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getFloatFormula() {
        return floatFormula.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_FLOAT_FORMULA)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getFloatFormula_JsonNullable() {
    return floatFormula;
  }
  
  @JsonProperty(JSON_PROPERTY_FLOAT_FORMULA)
  public void setFloatFormula_JsonNullable(JsonNullable floatFormula) {
    this.floatFormula = floatFormula;
  }

  public void setFloatFormula(String floatFormula) {
    this.floatFormula = JsonNullable.of(floatFormula);
  }


  public SMBondFields fltDayCountBasis(String fltDayCountBasis) {
    this.fltDayCountBasis = JsonNullable.of(fltDayCountBasis);
    return this;
  }

   /**
   * Get fltDayCountBasis
   * @return fltDayCountBasis
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getFltDayCountBasis() {
        return fltDayCountBasis.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_FLT_DAY_COUNT_BASIS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getFltDayCountBasis_JsonNullable() {
    return fltDayCountBasis;
  }
  
  @JsonProperty(JSON_PROPERTY_FLT_DAY_COUNT_BASIS)
  public void setFltDayCountBasis_JsonNullable(JsonNullable fltDayCountBasis) {
    this.fltDayCountBasis = fltDayCountBasis;
  }

  public void setFltDayCountBasis(String fltDayCountBasis) {
    this.fltDayCountBasis = JsonNullable.of(fltDayCountBasis);
  }


  public SMBondFields fltFirstPayDate(String fltFirstPayDate) {
    this.fltFirstPayDate = JsonNullable.of(fltFirstPayDate);
    return this;
  }

   /**
   * Get fltFirstPayDate
   * @return fltFirstPayDate
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getFltFirstPayDate() {
        return fltFirstPayDate.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_FLT_FIRST_PAY_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getFltFirstPayDate_JsonNullable() {
    return fltFirstPayDate;
  }
  
  @JsonProperty(JSON_PROPERTY_FLT_FIRST_PAY_DATE)
  public void setFltFirstPayDate_JsonNullable(JsonNullable fltFirstPayDate) {
    this.fltFirstPayDate = fltFirstPayDate;
  }

  public void setFltFirstPayDate(String fltFirstPayDate) {
    this.fltFirstPayDate = JsonNullable.of(fltFirstPayDate);
  }


  public SMBondFields fltPayFreq(String fltPayFreq) {
    this.fltPayFreq = JsonNullable.of(fltPayFreq);
    return this;
  }

   /**
   * Get fltPayFreq
   * @return fltPayFreq
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getFltPayFreq() {
        return fltPayFreq.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_FLT_PAY_FREQ)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getFltPayFreq_JsonNullable() {
    return fltPayFreq;
  }
  
  @JsonProperty(JSON_PROPERTY_FLT_PAY_FREQ)
  public void setFltPayFreq_JsonNullable(JsonNullable fltPayFreq) {
    this.fltPayFreq = fltPayFreq;
  }

  public void setFltPayFreq(String fltPayFreq) {
    this.fltPayFreq = JsonNullable.of(fltPayFreq);
  }


  public SMBondFields histCouponDates(java.util.List histCouponDates) {
    this.histCouponDates = JsonNullable.>of(histCouponDates);
    return this;
  }

  public SMBondFields addHistCouponDatesItem(String histCouponDatesItem) {
    if (this.histCouponDates == null || !this.histCouponDates.isPresent()) {
      this.histCouponDates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.histCouponDates.get().add(histCouponDatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get histCouponDates
   * @return histCouponDates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getHistCouponDates() {
        return histCouponDates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_HIST_COUPON_DATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getHistCouponDates_JsonNullable() {
    return histCouponDates;
  }
  
  @JsonProperty(JSON_PROPERTY_HIST_COUPON_DATES)
  public void setHistCouponDates_JsonNullable(JsonNullable> histCouponDates) {
    this.histCouponDates = histCouponDates;
  }

  public void setHistCouponDates(java.util.List histCouponDates) {
    this.histCouponDates = JsonNullable.>of(histCouponDates);
  }


  public SMBondFields histCoupons(java.util.List histCoupons) {
    this.histCoupons = JsonNullable.>of(histCoupons);
    return this;
  }

  public SMBondFields addHistCouponsItem(Double histCouponsItem) {
    if (this.histCoupons == null || !this.histCoupons.isPresent()) {
      this.histCoupons = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.histCoupons.get().add(histCouponsItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get histCoupons
   * @return histCoupons
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getHistCoupons() {
        return histCoupons.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_HIST_COUPONS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getHistCoupons_JsonNullable() {
    return histCoupons;
  }
  
  @JsonProperty(JSON_PROPERTY_HIST_COUPONS)
  public void setHistCoupons_JsonNullable(JsonNullable> histCoupons) {
    this.histCoupons = histCoupons;
  }

  public void setHistCoupons(java.util.List histCoupons) {
    this.histCoupons = JsonNullable.>of(histCoupons);
  }


  public SMBondFields histRcvAssumpDates(java.util.List histRcvAssumpDates) {
    this.histRcvAssumpDates = JsonNullable.>of(histRcvAssumpDates);
    return this;
  }

  public SMBondFields addHistRcvAssumpDatesItem(String histRcvAssumpDatesItem) {
    if (this.histRcvAssumpDates == null || !this.histRcvAssumpDates.isPresent()) {
      this.histRcvAssumpDates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.histRcvAssumpDates.get().add(histRcvAssumpDatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get histRcvAssumpDates
   * @return histRcvAssumpDates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getHistRcvAssumpDates() {
        return histRcvAssumpDates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_HIST_RCV_ASSUMP_DATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getHistRcvAssumpDates_JsonNullable() {
    return histRcvAssumpDates;
  }
  
  @JsonProperty(JSON_PROPERTY_HIST_RCV_ASSUMP_DATES)
  public void setHistRcvAssumpDates_JsonNullable(JsonNullable> histRcvAssumpDates) {
    this.histRcvAssumpDates = histRcvAssumpDates;
  }

  public void setHistRcvAssumpDates(java.util.List histRcvAssumpDates) {
    this.histRcvAssumpDates = JsonNullable.>of(histRcvAssumpDates);
  }


  public SMBondFields histRcvAssumpMonths(java.util.List histRcvAssumpMonths) {
    this.histRcvAssumpMonths = JsonNullable.>of(histRcvAssumpMonths);
    return this;
  }

  public SMBondFields addHistRcvAssumpMonthsItem(Integer histRcvAssumpMonthsItem) {
    if (this.histRcvAssumpMonths == null || !this.histRcvAssumpMonths.isPresent()) {
      this.histRcvAssumpMonths = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.histRcvAssumpMonths.get().add(histRcvAssumpMonthsItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get histRcvAssumpMonths
   * @return histRcvAssumpMonths
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getHistRcvAssumpMonths() {
        return histRcvAssumpMonths.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_HIST_RCV_ASSUMP_MONTHS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getHistRcvAssumpMonths_JsonNullable() {
    return histRcvAssumpMonths;
  }
  
  @JsonProperty(JSON_PROPERTY_HIST_RCV_ASSUMP_MONTHS)
  public void setHistRcvAssumpMonths_JsonNullable(JsonNullable> histRcvAssumpMonths) {
    this.histRcvAssumpMonths = histRcvAssumpMonths;
  }

  public void setHistRcvAssumpMonths(java.util.List histRcvAssumpMonths) {
    this.histRcvAssumpMonths = JsonNullable.>of(histRcvAssumpMonths);
  }


  public SMBondFields histRcvAssumpRates(java.util.List histRcvAssumpRates) {
    this.histRcvAssumpRates = JsonNullable.>of(histRcvAssumpRates);
    return this;
  }

  public SMBondFields addHistRcvAssumpRatesItem(Double histRcvAssumpRatesItem) {
    if (this.histRcvAssumpRates == null || !this.histRcvAssumpRates.isPresent()) {
      this.histRcvAssumpRates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.histRcvAssumpRates.get().add(histRcvAssumpRatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get histRcvAssumpRates
   * @return histRcvAssumpRates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getHistRcvAssumpRates() {
        return histRcvAssumpRates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_HIST_RCV_ASSUMP_RATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getHistRcvAssumpRates_JsonNullable() {
    return histRcvAssumpRates;
  }
  
  @JsonProperty(JSON_PROPERTY_HIST_RCV_ASSUMP_RATES)
  public void setHistRcvAssumpRates_JsonNullable(JsonNullable> histRcvAssumpRates) {
    this.histRcvAssumpRates = histRcvAssumpRates;
  }

  public void setHistRcvAssumpRates(java.util.List histRcvAssumpRates) {
    this.histRcvAssumpRates = JsonNullable.>of(histRcvAssumpRates);
  }


  public SMBondFields histRcvAssumpTargetDates(java.util.List histRcvAssumpTargetDates) {
    this.histRcvAssumpTargetDates = JsonNullable.>of(histRcvAssumpTargetDates);
    return this;
  }

  public SMBondFields addHistRcvAssumpTargetDatesItem(String histRcvAssumpTargetDatesItem) {
    if (this.histRcvAssumpTargetDates == null || !this.histRcvAssumpTargetDates.isPresent()) {
      this.histRcvAssumpTargetDates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.histRcvAssumpTargetDates.get().add(histRcvAssumpTargetDatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get histRcvAssumpTargetDates
   * @return histRcvAssumpTargetDates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getHistRcvAssumpTargetDates() {
        return histRcvAssumpTargetDates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_HIST_RCV_ASSUMP_TARGET_DATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getHistRcvAssumpTargetDates_JsonNullable() {
    return histRcvAssumpTargetDates;
  }
  
  @JsonProperty(JSON_PROPERTY_HIST_RCV_ASSUMP_TARGET_DATES)
  public void setHistRcvAssumpTargetDates_JsonNullable(JsonNullable> histRcvAssumpTargetDates) {
    this.histRcvAssumpTargetDates = histRcvAssumpTargetDates;
  }

  public void setHistRcvAssumpTargetDates(java.util.List histRcvAssumpTargetDates) {
    this.histRcvAssumpTargetDates = JsonNullable.>of(histRcvAssumpTargetDates);
  }


  public SMBondFields inflationType(String inflationType) {
    this.inflationType = JsonNullable.of(inflationType);
    return this;
  }

   /**
   * Get inflationType
   * @return inflationType
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getInflationType() {
        return inflationType.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_INFLATION_TYPE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getInflationType_JsonNullable() {
    return inflationType;
  }
  
  @JsonProperty(JSON_PROPERTY_INFLATION_TYPE)
  public void setInflationType_JsonNullable(JsonNullable inflationType) {
    this.inflationType = inflationType;
  }

  public void setInflationType(String inflationType) {
    this.inflationType = JsonNullable.of(inflationType);
  }


  public SMBondFields issueDate(String issueDate) {
    this.issueDate = JsonNullable.of(issueDate);
    return this;
  }

   /**
   * Get issueDate
   * @return issueDate
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getIssueDate() {
        return issueDate.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_ISSUE_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getIssueDate_JsonNullable() {
    return issueDate;
  }
  
  @JsonProperty(JSON_PROPERTY_ISSUE_DATE)
  public void setIssueDate_JsonNullable(JsonNullable issueDate) {
    this.issueDate = issueDate;
  }

  public void setIssueDate(String issueDate) {
    this.issueDate = JsonNullable.of(issueDate);
  }


  public SMBondFields issueName(String issueName) {
    this.issueName = JsonNullable.of(issueName);
    return this;
  }

   /**
   * Get issueName
   * @return issueName
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getIssueName() {
        return issueName.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_ISSUE_NAME)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getIssueName_JsonNullable() {
    return issueName;
  }
  
  @JsonProperty(JSON_PROPERTY_ISSUE_NAME)
  public void setIssueName_JsonNullable(JsonNullable issueName) {
    this.issueName = issueName;
  }

  public void setIssueName(String issueName) {
    this.issueName = JsonNullable.of(issueName);
  }


  public SMBondFields issuerId(String issuerId) {
    this.issuerId = JsonNullable.of(issuerId);
    return this;
  }

   /**
   * Get issuerId
   * @return issuerId
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getIssuerId() {
        return issuerId.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_ISSUER_ID)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getIssuerId_JsonNullable() {
    return issuerId;
  }
  
  @JsonProperty(JSON_PROPERTY_ISSUER_ID)
  public void setIssuerId_JsonNullable(JsonNullable issuerId) {
    this.issuerId = issuerId;
  }

  public void setIssuerId(String issuerId) {
    this.issuerId = JsonNullable.of(issuerId);
  }


  public SMBondFields lastModifiedSource(String lastModifiedSource) {
    this.lastModifiedSource = JsonNullable.of(lastModifiedSource);
    return this;
  }

   /**
   * Get lastModifiedSource
   * @return lastModifiedSource
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getLastModifiedSource() {
        return lastModifiedSource.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_LAST_MODIFIED_SOURCE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getLastModifiedSource_JsonNullable() {
    return lastModifiedSource;
  }
  
  @JsonProperty(JSON_PROPERTY_LAST_MODIFIED_SOURCE)
  public void setLastModifiedSource_JsonNullable(JsonNullable lastModifiedSource) {
    this.lastModifiedSource = lastModifiedSource;
  }

  public void setLastModifiedSource(String lastModifiedSource) {
    this.lastModifiedSource = JsonNullable.of(lastModifiedSource);
  }


  public SMBondFields lastModifiedSourceMeta(String lastModifiedSourceMeta) {
    this.lastModifiedSourceMeta = JsonNullable.of(lastModifiedSourceMeta);
    return this;
  }

   /**
   * Get lastModifiedSourceMeta
   * @return lastModifiedSourceMeta
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getLastModifiedSourceMeta() {
        return lastModifiedSourceMeta.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_LAST_MODIFIED_SOURCE_META)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getLastModifiedSourceMeta_JsonNullable() {
    return lastModifiedSourceMeta;
  }
  
  @JsonProperty(JSON_PROPERTY_LAST_MODIFIED_SOURCE_META)
  public void setLastModifiedSourceMeta_JsonNullable(JsonNullable lastModifiedSourceMeta) {
    this.lastModifiedSourceMeta = lastModifiedSourceMeta;
  }

  public void setLastModifiedSourceMeta(String lastModifiedSourceMeta) {
    this.lastModifiedSourceMeta = JsonNullable.of(lastModifiedSourceMeta);
  }


  public SMBondFields lastModifiedTime(String lastModifiedTime) {
    this.lastModifiedTime = JsonNullable.of(lastModifiedTime);
    return this;
  }

   /**
   * Get lastModifiedTime
   * @return lastModifiedTime
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getLastModifiedTime() {
        return lastModifiedTime.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_LAST_MODIFIED_TIME)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getLastModifiedTime_JsonNullable() {
    return lastModifiedTime;
  }
  
  @JsonProperty(JSON_PROPERTY_LAST_MODIFIED_TIME)
  public void setLastModifiedTime_JsonNullable(JsonNullable lastModifiedTime) {
    this.lastModifiedTime = lastModifiedTime;
  }

  public void setLastModifiedTime(String lastModifiedTime) {
    this.lastModifiedTime = JsonNullable.of(lastModifiedTime);
  }


  public SMBondFields lifeCap(Double lifeCap) {
    this.lifeCap = JsonNullable.of(lifeCap);
    return this;
  }

   /**
   * Get lifeCap
   * @return lifeCap
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getLifeCap() {
        return lifeCap.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_LIFE_CAP)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getLifeCap_JsonNullable() {
    return lifeCap;
  }
  
  @JsonProperty(JSON_PROPERTY_LIFE_CAP)
  public void setLifeCap_JsonNullable(JsonNullable lifeCap) {
    this.lifeCap = lifeCap;
  }

  public void setLifeCap(Double lifeCap) {
    this.lifeCap = JsonNullable.of(lifeCap);
  }


  public SMBondFields lifeFloor(Double lifeFloor) {
    this.lifeFloor = JsonNullable.of(lifeFloor);
    return this;
  }

   /**
   * Get lifeFloor
   * @return lifeFloor
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getLifeFloor() {
        return lifeFloor.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_LIFE_FLOOR)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getLifeFloor_JsonNullable() {
    return lifeFloor;
  }
  
  @JsonProperty(JSON_PROPERTY_LIFE_FLOOR)
  public void setLifeFloor_JsonNullable(JsonNullable lifeFloor) {
    this.lifeFloor = lifeFloor;
  }

  public void setLifeFloor(Double lifeFloor) {
    this.lifeFloor = JsonNullable.of(lifeFloor);
  }


  public SMBondFields lockoutDays(Integer lockoutDays) {
    this.lockoutDays = JsonNullable.of(lockoutDays);
    return this;
  }

   /**
   * Get lockoutDays
   * @return lockoutDays
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Integer getLockoutDays() {
        return lockoutDays.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_LOCKOUT_DAYS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getLockoutDays_JsonNullable() {
    return lockoutDays;
  }
  
  @JsonProperty(JSON_PROPERTY_LOCKOUT_DAYS)
  public void setLockoutDays_JsonNullable(JsonNullable lockoutDays) {
    this.lockoutDays = lockoutDays;
  }

  public void setLockoutDays(Integer lockoutDays) {
    this.lockoutDays = JsonNullable.of(lockoutDays);
  }


  public SMBondFields lookBackDays(Integer lookBackDays) {
    this.lookBackDays = JsonNullable.of(lookBackDays);
    return this;
  }

   /**
   * Get lookBackDays
   * @return lookBackDays
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Integer getLookBackDays() {
        return lookBackDays.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_LOOK_BACK_DAYS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getLookBackDays_JsonNullable() {
    return lookBackDays;
  }
  
  @JsonProperty(JSON_PROPERTY_LOOK_BACK_DAYS)
  public void setLookBackDays_JsonNullable(JsonNullable lookBackDays) {
    this.lookBackDays = lookBackDays;
  }

  public void setLookBackDays(Integer lookBackDays) {
    this.lookBackDays = JsonNullable.of(lookBackDays);
  }


  public SMBondFields makeWholeCallFlag(Boolean makeWholeCallFlag) {
    this.makeWholeCallFlag = JsonNullable.of(makeWholeCallFlag);
    return this;
  }

   /**
   * Get makeWholeCallFlag
   * @return makeWholeCallFlag
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Boolean getMakeWholeCallFlag() {
        return makeWholeCallFlag.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_MAKE_WHOLE_CALL_FLAG)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getMakeWholeCallFlag_JsonNullable() {
    return makeWholeCallFlag;
  }
  
  @JsonProperty(JSON_PROPERTY_MAKE_WHOLE_CALL_FLAG)
  public void setMakeWholeCallFlag_JsonNullable(JsonNullable makeWholeCallFlag) {
    this.makeWholeCallFlag = makeWholeCallFlag;
  }

  public void setMakeWholeCallFlag(Boolean makeWholeCallFlag) {
    this.makeWholeCallFlag = JsonNullable.of(makeWholeCallFlag);
  }


  public SMBondFields makeWholeExpireDate(String makeWholeExpireDate) {
    this.makeWholeExpireDate = JsonNullable.of(makeWholeExpireDate);
    return this;
  }

   /**
   * Get makeWholeExpireDate
   * @return makeWholeExpireDate
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getMakeWholeExpireDate() {
        return makeWholeExpireDate.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_MAKE_WHOLE_EXPIRE_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getMakeWholeExpireDate_JsonNullable() {
    return makeWholeExpireDate;
  }
  
  @JsonProperty(JSON_PROPERTY_MAKE_WHOLE_EXPIRE_DATE)
  public void setMakeWholeExpireDate_JsonNullable(JsonNullable makeWholeExpireDate) {
    this.makeWholeExpireDate = makeWholeExpireDate;
  }

  public void setMakeWholeExpireDate(String makeWholeExpireDate) {
    this.makeWholeExpireDate = JsonNullable.of(makeWholeExpireDate);
  }


  public SMBondFields makeWholeSpread(Double makeWholeSpread) {
    this.makeWholeSpread = JsonNullable.of(makeWholeSpread);
    return this;
  }

   /**
   * Get makeWholeSpread
   * @return makeWholeSpread
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getMakeWholeSpread() {
        return makeWholeSpread.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_MAKE_WHOLE_SPREAD)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getMakeWholeSpread_JsonNullable() {
    return makeWholeSpread;
  }
  
  @JsonProperty(JSON_PROPERTY_MAKE_WHOLE_SPREAD)
  public void setMakeWholeSpread_JsonNullable(JsonNullable makeWholeSpread) {
    this.makeWholeSpread = makeWholeSpread;
  }

  public void setMakeWholeSpread(Double makeWholeSpread) {
    this.makeWholeSpread = JsonNullable.of(makeWholeSpread);
  }


  public SMBondFields matrixDates(java.util.List matrixDates) {
    this.matrixDates = JsonNullable.>of(matrixDates);
    return this;
  }

  public SMBondFields addMatrixDatesItem(String matrixDatesItem) {
    if (this.matrixDates == null || !this.matrixDates.isPresent()) {
      this.matrixDates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.matrixDates.get().add(matrixDatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get matrixDates
   * @return matrixDates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getMatrixDates() {
        return matrixDates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_MATRIX_DATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getMatrixDates_JsonNullable() {
    return matrixDates;
  }
  
  @JsonProperty(JSON_PROPERTY_MATRIX_DATES)
  public void setMatrixDates_JsonNullable(JsonNullable> matrixDates) {
    this.matrixDates = matrixDates;
  }

  public void setMatrixDates(java.util.List matrixDates) {
    this.matrixDates = JsonNullable.>of(matrixDates);
  }


  public SMBondFields matrixMultipliers(java.util.List matrixMultipliers) {
    this.matrixMultipliers = JsonNullable.>of(matrixMultipliers);
    return this;
  }

  public SMBondFields addMatrixMultipliersItem(Double matrixMultipliersItem) {
    if (this.matrixMultipliers == null || !this.matrixMultipliers.isPresent()) {
      this.matrixMultipliers = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.matrixMultipliers.get().add(matrixMultipliersItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get matrixMultipliers
   * @return matrixMultipliers
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getMatrixMultipliers() {
        return matrixMultipliers.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_MATRIX_MULTIPLIERS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getMatrixMultipliers_JsonNullable() {
    return matrixMultipliers;
  }
  
  @JsonProperty(JSON_PROPERTY_MATRIX_MULTIPLIERS)
  public void setMatrixMultipliers_JsonNullable(JsonNullable> matrixMultipliers) {
    this.matrixMultipliers = matrixMultipliers;
  }

  public void setMatrixMultipliers(java.util.List matrixMultipliers) {
    this.matrixMultipliers = JsonNullable.>of(matrixMultipliers);
  }


  public SMBondFields matrixPricedFlag(Boolean matrixPricedFlag) {
    this.matrixPricedFlag = JsonNullable.of(matrixPricedFlag);
    return this;
  }

   /**
   * Get matrixPricedFlag
   * @return matrixPricedFlag
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Boolean getMatrixPricedFlag() {
        return matrixPricedFlag.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_MATRIX_PRICED_FLAG)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getMatrixPricedFlag_JsonNullable() {
    return matrixPricedFlag;
  }
  
  @JsonProperty(JSON_PROPERTY_MATRIX_PRICED_FLAG)
  public void setMatrixPricedFlag_JsonNullable(JsonNullable matrixPricedFlag) {
    this.matrixPricedFlag = matrixPricedFlag;
  }

  public void setMatrixPricedFlag(Boolean matrixPricedFlag) {
    this.matrixPricedFlag = JsonNullable.of(matrixPricedFlag);
  }


  public SMBondFields matrixSpreads(java.util.List matrixSpreads) {
    this.matrixSpreads = JsonNullable.>of(matrixSpreads);
    return this;
  }

  public SMBondFields addMatrixSpreadsItem(Double matrixSpreadsItem) {
    if (this.matrixSpreads == null || !this.matrixSpreads.isPresent()) {
      this.matrixSpreads = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.matrixSpreads.get().add(matrixSpreadsItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get matrixSpreads
   * @return matrixSpreads
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getMatrixSpreads() {
        return matrixSpreads.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_MATRIX_SPREADS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getMatrixSpreads_JsonNullable() {
    return matrixSpreads;
  }
  
  @JsonProperty(JSON_PROPERTY_MATRIX_SPREADS)
  public void setMatrixSpreads_JsonNullable(JsonNullable> matrixSpreads) {
    this.matrixSpreads = matrixSpreads;
  }

  public void setMatrixSpreads(java.util.List matrixSpreads) {
    this.matrixSpreads = JsonNullable.>of(matrixSpreads);
  }


  public SMBondFields matrixUseScheduleFlag(Boolean matrixUseScheduleFlag) {
    this.matrixUseScheduleFlag = JsonNullable.of(matrixUseScheduleFlag);
    return this;
  }

   /**
   * Get matrixUseScheduleFlag
   * @return matrixUseScheduleFlag
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Boolean getMatrixUseScheduleFlag() {
        return matrixUseScheduleFlag.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_MATRIX_USE_SCHEDULE_FLAG)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getMatrixUseScheduleFlag_JsonNullable() {
    return matrixUseScheduleFlag;
  }
  
  @JsonProperty(JSON_PROPERTY_MATRIX_USE_SCHEDULE_FLAG)
  public void setMatrixUseScheduleFlag_JsonNullable(JsonNullable matrixUseScheduleFlag) {
    this.matrixUseScheduleFlag = matrixUseScheduleFlag;
  }

  public void setMatrixUseScheduleFlag(Boolean matrixUseScheduleFlag) {
    this.matrixUseScheduleFlag = JsonNullable.of(matrixUseScheduleFlag);
  }


  public SMBondFields maturityDate(String maturityDate) {
    this.maturityDate = JsonNullable.of(maturityDate);
    return this;
  }

   /**
   * Get maturityDate
   * @return maturityDate
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getMaturityDate() {
        return maturityDate.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_MATURITY_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getMaturityDate_JsonNullable() {
    return maturityDate;
  }
  
  @JsonProperty(JSON_PROPERTY_MATURITY_DATE)
  public void setMaturityDate_JsonNullable(JsonNullable maturityDate) {
    this.maturityDate = maturityDate;
  }

  public void setMaturityDate(String maturityDate) {
    this.maturityDate = JsonNullable.of(maturityDate);
  }


  public SMBondFields maturityPrice(Double maturityPrice) {
    this.maturityPrice = JsonNullable.of(maturityPrice);
    return this;
  }

   /**
   * Get maturityPrice
   * @return maturityPrice
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getMaturityPrice() {
        return maturityPrice.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_MATURITY_PRICE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getMaturityPrice_JsonNullable() {
    return maturityPrice;
  }
  
  @JsonProperty(JSON_PROPERTY_MATURITY_PRICE)
  public void setMaturityPrice_JsonNullable(JsonNullable maturityPrice) {
    this.maturityPrice = maturityPrice;
  }

  public void setMaturityPrice(Double maturityPrice) {
    this.maturityPrice = JsonNullable.of(maturityPrice);
  }


  public SMBondFields monthsToRecovery(Double monthsToRecovery) {
    this.monthsToRecovery = JsonNullable.of(monthsToRecovery);
    return this;
  }

   /**
   * Get monthsToRecovery
   * @return monthsToRecovery
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getMonthsToRecovery() {
        return monthsToRecovery.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_MONTHS_TO_RECOVERY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getMonthsToRecovery_JsonNullable() {
    return monthsToRecovery;
  }
  
  @JsonProperty(JSON_PROPERTY_MONTHS_TO_RECOVERY)
  public void setMonthsToRecovery_JsonNullable(JsonNullable monthsToRecovery) {
    this.monthsToRecovery = monthsToRecovery;
  }

  public void setMonthsToRecovery(Double monthsToRecovery) {
    this.monthsToRecovery = JsonNullable.of(monthsToRecovery);
  }


  public SMBondFields multiplier(Double multiplier) {
    this.multiplier = JsonNullable.of(multiplier);
    return this;
  }

   /**
   * Get multiplier
   * @return multiplier
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getMultiplier() {
        return multiplier.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_MULTIPLIER)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getMultiplier_JsonNullable() {
    return multiplier;
  }
  
  @JsonProperty(JSON_PROPERTY_MULTIPLIER)
  public void setMultiplier_JsonNullable(JsonNullable multiplier) {
    this.multiplier = multiplier;
  }

  public void setMultiplier(Double multiplier) {
    this.multiplier = JsonNullable.of(multiplier);
  }


  public SMBondFields notionalFlag(Boolean notionalFlag) {
    this.notionalFlag = JsonNullable.of(notionalFlag);
    return this;
  }

   /**
   * Get notionalFlag
   * @return notionalFlag
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Boolean getNotionalFlag() {
        return notionalFlag.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_NOTIONAL_FLAG)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getNotionalFlag_JsonNullable() {
    return notionalFlag;
  }
  
  @JsonProperty(JSON_PROPERTY_NOTIONAL_FLAG)
  public void setNotionalFlag_JsonNullable(JsonNullable notionalFlag) {
    this.notionalFlag = notionalFlag;
  }

  public void setNotionalFlag(Boolean notionalFlag) {
    this.notionalFlag = JsonNullable.of(notionalFlag);
  }


  public SMBondFields observationShift(Integer observationShift) {
    this.observationShift = JsonNullable.of(observationShift);
    return this;
  }

   /**
   * Get observationShift
   * @return observationShift
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Integer getObservationShift() {
        return observationShift.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_OBSERVATION_SHIFT)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getObservationShift_JsonNullable() {
    return observationShift;
  }
  
  @JsonProperty(JSON_PROPERTY_OBSERVATION_SHIFT)
  public void setObservationShift_JsonNullable(JsonNullable observationShift) {
    this.observationShift = observationShift;
  }

  public void setObservationShift(Integer observationShift) {
    this.observationShift = JsonNullable.of(observationShift);
  }


  public SMBondFields origAmtIssued(Double origAmtIssued) {
    this.origAmtIssued = JsonNullable.of(origAmtIssued);
    return this;
  }

   /**
   * Get origAmtIssued
   * @return origAmtIssued
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getOrigAmtIssued() {
        return origAmtIssued.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_ORIG_AMT_ISSUED)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getOrigAmtIssued_JsonNullable() {
    return origAmtIssued;
  }
  
  @JsonProperty(JSON_PROPERTY_ORIG_AMT_ISSUED)
  public void setOrigAmtIssued_JsonNullable(JsonNullable origAmtIssued) {
    this.origAmtIssued = origAmtIssued;
  }

  public void setOrigAmtIssued(Double origAmtIssued) {
    this.origAmtIssued = JsonNullable.of(origAmtIssued);
  }


  public SMBondFields parentName(String parentName) {
    this.parentName = JsonNullable.of(parentName);
    return this;
  }

   /**
   * Get parentName
   * @return parentName
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getParentName() {
        return parentName.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PARENT_NAME)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getParentName_JsonNullable() {
    return parentName;
  }
  
  @JsonProperty(JSON_PROPERTY_PARENT_NAME)
  public void setParentName_JsonNullable(JsonNullable parentName) {
    this.parentName = parentName;
  }

  public void setParentName(String parentName) {
    this.parentName = JsonNullable.of(parentName);
  }


  public SMBondFields parPrice(Double parPrice) {
    this.parPrice = JsonNullable.of(parPrice);
    return this;
  }

   /**
   * Get parPrice
   * @return parPrice
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getParPrice() {
        return parPrice.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PAR_PRICE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getParPrice_JsonNullable() {
    return parPrice;
  }
  
  @JsonProperty(JSON_PROPERTY_PAR_PRICE)
  public void setParPrice_JsonNullable(JsonNullable parPrice) {
    this.parPrice = parPrice;
  }

  public void setParPrice(Double parPrice) {
    this.parPrice = JsonNullable.of(parPrice);
  }


  public SMBondFields parserInfo(String parserInfo) {
    this.parserInfo = JsonNullable.of(parserInfo);
    return this;
  }

   /**
   * Get parserInfo
   * @return parserInfo
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getParserInfo() {
        return parserInfo.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PARSER_INFO)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getParserInfo_JsonNullable() {
    return parserInfo;
  }
  
  @JsonProperty(JSON_PROPERTY_PARSER_INFO)
  public void setParserInfo_JsonNullable(JsonNullable parserInfo) {
    this.parserInfo = parserInfo;
  }

  public void setParserInfo(String parserInfo) {
    this.parserInfo = JsonNullable.of(parserInfo);
  }


  public SMBondFields paymentDelay(Integer paymentDelay) {
    this.paymentDelay = JsonNullable.of(paymentDelay);
    return this;
  }

   /**
   * Get paymentDelay
   * @return paymentDelay
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Integer getPaymentDelay() {
        return paymentDelay.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PAYMENT_DELAY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getPaymentDelay_JsonNullable() {
    return paymentDelay;
  }
  
  @JsonProperty(JSON_PROPERTY_PAYMENT_DELAY)
  public void setPaymentDelay_JsonNullable(JsonNullable paymentDelay) {
    this.paymentDelay = paymentDelay;
  }

  public void setPaymentDelay(Integer paymentDelay) {
    this.paymentDelay = JsonNullable.of(paymentDelay);
  }


  public SMBondFields payFreq(String payFreq) {
    this.payFreq = JsonNullable.of(payFreq);
    return this;
  }

   /**
   * Get payFreq
   * @return payFreq
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getPayFreq() {
        return payFreq.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PAY_FREQ)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getPayFreq_JsonNullable() {
    return payFreq;
  }
  
  @JsonProperty(JSON_PROPERTY_PAY_FREQ)
  public void setPayFreq_JsonNullable(JsonNullable payFreq) {
    this.payFreq = payFreq;
  }

  public void setPayFreq(String payFreq) {
    this.payFreq = JsonNullable.of(payFreq);
  }


  public SMBondFields periodCap(Double periodCap) {
    this.periodCap = JsonNullable.of(periodCap);
    return this;
  }

   /**
   * Get periodCap
   * @return periodCap
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getPeriodCap() {
        return periodCap.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PERIOD_CAP)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getPeriodCap_JsonNullable() {
    return periodCap;
  }
  
  @JsonProperty(JSON_PROPERTY_PERIOD_CAP)
  public void setPeriodCap_JsonNullable(JsonNullable periodCap) {
    this.periodCap = periodCap;
  }

  public void setPeriodCap(Double periodCap) {
    this.periodCap = JsonNullable.of(periodCap);
  }


  public SMBondFields periodFloor(Double periodFloor) {
    this.periodFloor = JsonNullable.of(periodFloor);
    return this;
  }

   /**
   * Get periodFloor
   * @return periodFloor
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getPeriodFloor() {
        return periodFloor.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PERIOD_FLOOR)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getPeriodFloor_JsonNullable() {
    return periodFloor;
  }
  
  @JsonProperty(JSON_PROPERTY_PERIOD_FLOOR)
  public void setPeriodFloor_JsonNullable(JsonNullable periodFloor) {
    this.periodFloor = periodFloor;
  }

  public void setPeriodFloor(Double periodFloor) {
    this.periodFloor = JsonNullable.of(periodFloor);
  }


  public SMBondFields pikExpDate(String pikExpDate) {
    this.pikExpDate = JsonNullable.of(pikExpDate);
    return this;
  }

   /**
   * Get pikExpDate
   * @return pikExpDate
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getPikExpDate() {
        return pikExpDate.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PIK_EXP_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getPikExpDate_JsonNullable() {
    return pikExpDate;
  }
  
  @JsonProperty(JSON_PROPERTY_PIK_EXP_DATE)
  public void setPikExpDate_JsonNullable(JsonNullable pikExpDate) {
    this.pikExpDate = pikExpDate;
  }

  public void setPikExpDate(String pikExpDate) {
    this.pikExpDate = JsonNullable.of(pikExpDate);
  }


  public SMBondFields pikRate(Integer pikRate) {
    this.pikRate = JsonNullable.of(pikRate);
    return this;
  }

   /**
   * Get pikRate
   * @return pikRate
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Integer getPikRate() {
        return pikRate.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PIK_RATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getPikRate_JsonNullable() {
    return pikRate;
  }
  
  @JsonProperty(JSON_PROPERTY_PIK_RATE)
  public void setPikRate_JsonNullable(JsonNullable pikRate) {
    this.pikRate = pikRate;
  }

  public void setPikRate(Integer pikRate) {
    this.pikRate = JsonNullable.of(pikRate);
  }


  public SMBondFields preferredSecExDateLen(Integer preferredSecExDateLen) {
    this.preferredSecExDateLen = JsonNullable.of(preferredSecExDateLen);
    return this;
  }

   /**
   * Get preferredSecExDateLen
   * @return preferredSecExDateLen
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Integer getPreferredSecExDateLen() {
        return preferredSecExDateLen.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PREFERRED_SEC_EX_DATE_LEN)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getPreferredSecExDateLen_JsonNullable() {
    return preferredSecExDateLen;
  }
  
  @JsonProperty(JSON_PROPERTY_PREFERRED_SEC_EX_DATE_LEN)
  public void setPreferredSecExDateLen_JsonNullable(JsonNullable preferredSecExDateLen) {
    this.preferredSecExDateLen = preferredSecExDateLen;
  }

  public void setPreferredSecExDateLen(Integer preferredSecExDateLen) {
    this.preferredSecExDateLen = JsonNullable.of(preferredSecExDateLen);
  }


  public SMBondFields preferredSecExDateUnits(String preferredSecExDateUnits) {
    this.preferredSecExDateUnits = JsonNullable.of(preferredSecExDateUnits);
    return this;
  }

   /**
   * Get preferredSecExDateUnits
   * @return preferredSecExDateUnits
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getPreferredSecExDateUnits() {
        return preferredSecExDateUnits.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PREFERRED_SEC_EX_DATE_UNITS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getPreferredSecExDateUnits_JsonNullable() {
    return preferredSecExDateUnits;
  }
  
  @JsonProperty(JSON_PROPERTY_PREFERRED_SEC_EX_DATE_UNITS)
  public void setPreferredSecExDateUnits_JsonNullable(JsonNullable preferredSecExDateUnits) {
    this.preferredSecExDateUnits = preferredSecExDateUnits;
  }

  public void setPreferredSecExDateUnits(String preferredSecExDateUnits) {
    this.preferredSecExDateUnits = JsonNullable.of(preferredSecExDateUnits);
  }


  public SMBondFields preferredSecFlag(Boolean preferredSecFlag) {
    this.preferredSecFlag = JsonNullable.of(preferredSecFlag);
    return this;
  }

   /**
   * Get preferredSecFlag
   * @return preferredSecFlag
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Boolean getPreferredSecFlag() {
        return preferredSecFlag.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PREFERRED_SEC_FLAG)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getPreferredSecFlag_JsonNullable() {
    return preferredSecFlag;
  }
  
  @JsonProperty(JSON_PROPERTY_PREFERRED_SEC_FLAG)
  public void setPreferredSecFlag_JsonNullable(JsonNullable preferredSecFlag) {
    this.preferredSecFlag = preferredSecFlag;
  }

  public void setPreferredSecFlag(Boolean preferredSecFlag) {
    this.preferredSecFlag = JsonNullable.of(preferredSecFlag);
  }


  public SMBondFields preferredSecType(String preferredSecType) {
    this.preferredSecType = JsonNullable.of(preferredSecType);
    return this;
  }

   /**
   * Get preferredSecType
   * @return preferredSecType
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getPreferredSecType() {
        return preferredSecType.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PREFERRED_SEC_TYPE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getPreferredSecType_JsonNullable() {
    return preferredSecType;
  }
  
  @JsonProperty(JSON_PROPERTY_PREFERRED_SEC_TYPE)
  public void setPreferredSecType_JsonNullable(JsonNullable preferredSecType) {
    this.preferredSecType = preferredSecType;
  }

  public void setPreferredSecType(String preferredSecType) {
    this.preferredSecType = JsonNullable.of(preferredSecType);
  }


  public SMBondFields principalType(String principalType) {
    this.principalType = JsonNullable.of(principalType);
    return this;
  }

   /**
   * Get principalType
   * @return principalType
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getPrincipalType() {
        return principalType.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PRINCIPAL_TYPE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getPrincipalType_JsonNullable() {
    return principalType;
  }
  
  @JsonProperty(JSON_PROPERTY_PRINCIPAL_TYPE)
  public void setPrincipalType_JsonNullable(JsonNullable principalType) {
    this.principalType = principalType;
  }

  public void setPrincipalType(String principalType) {
    this.principalType = JsonNullable.of(principalType);
  }


  public SMBondFields putDates(java.util.List putDates) {
    this.putDates = JsonNullable.>of(putDates);
    return this;
  }

  public SMBondFields addPutDatesItem(String putDatesItem) {
    if (this.putDates == null || !this.putDates.isPresent()) {
      this.putDates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.putDates.get().add(putDatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get putDates
   * @return putDates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getPutDates() {
        return putDates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PUT_DATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getPutDates_JsonNullable() {
    return putDates;
  }
  
  @JsonProperty(JSON_PROPERTY_PUT_DATES)
  public void setPutDates_JsonNullable(JsonNullable> putDates) {
    this.putDates = putDates;
  }

  public void setPutDates(java.util.List putDates) {
    this.putDates = JsonNullable.>of(putDates);
  }


  public SMBondFields putNoticeDays(Integer putNoticeDays) {
    this.putNoticeDays = JsonNullable.of(putNoticeDays);
    return this;
  }

   /**
   * Get putNoticeDays
   * @return putNoticeDays
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Integer getPutNoticeDays() {
        return putNoticeDays.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PUT_NOTICE_DAYS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getPutNoticeDays_JsonNullable() {
    return putNoticeDays;
  }
  
  @JsonProperty(JSON_PROPERTY_PUT_NOTICE_DAYS)
  public void setPutNoticeDays_JsonNullable(JsonNullable putNoticeDays) {
    this.putNoticeDays = putNoticeDays;
  }

  public void setPutNoticeDays(Integer putNoticeDays) {
    this.putNoticeDays = JsonNullable.of(putNoticeDays);
  }


  public SMBondFields putFreq(String putFreq) {
    this.putFreq = JsonNullable.of(putFreq);
    return this;
  }

   /**
   * Get putFreq
   * @return putFreq
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getPutFreq() {
        return putFreq.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PUT_FREQ)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getPutFreq_JsonNullable() {
    return putFreq;
  }
  
  @JsonProperty(JSON_PROPERTY_PUT_FREQ)
  public void setPutFreq_JsonNullable(JsonNullable putFreq) {
    this.putFreq = putFreq;
  }

  public void setPutFreq(String putFreq) {
    this.putFreq = JsonNullable.of(putFreq);
  }


  public SMBondFields putPrices(java.util.List putPrices) {
    this.putPrices = JsonNullable.>of(putPrices);
    return this;
  }

  public SMBondFields addPutPricesItem(Double putPricesItem) {
    if (this.putPrices == null || !this.putPrices.isPresent()) {
      this.putPrices = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.putPrices.get().add(putPricesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get putPrices
   * @return putPrices
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getPutPrices() {
        return putPrices.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PUT_PRICES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getPutPrices_JsonNullable() {
    return putPrices;
  }
  
  @JsonProperty(JSON_PROPERTY_PUT_PRICES)
  public void setPutPrices_JsonNullable(JsonNullable> putPrices) {
    this.putPrices = putPrices;
  }

  public void setPutPrices(java.util.List putPrices) {
    this.putPrices = JsonNullable.>of(putPrices);
  }


  public SMBondFields pvtPlacementFlag(Boolean pvtPlacementFlag) {
    this.pvtPlacementFlag = JsonNullable.of(pvtPlacementFlag);
    return this;
  }

   /**
   * Get pvtPlacementFlag
   * @return pvtPlacementFlag
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Boolean getPvtPlacementFlag() {
        return pvtPlacementFlag.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_PVT_PLACEMENT_FLAG)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getPvtPlacementFlag_JsonNullable() {
    return pvtPlacementFlag;
  }
  
  @JsonProperty(JSON_PROPERTY_PVT_PLACEMENT_FLAG)
  public void setPvtPlacementFlag_JsonNullable(JsonNullable pvtPlacementFlag) {
    this.pvtPlacementFlag = pvtPlacementFlag;
  }

  public void setPvtPlacementFlag(Boolean pvtPlacementFlag) {
    this.pvtPlacementFlag = JsonNullable.of(pvtPlacementFlag);
  }


  public SMBondFields ratingFitch(String ratingFitch) {
    this.ratingFitch = JsonNullable.of(ratingFitch);
    return this;
  }

   /**
   * Get ratingFitch
   * @return ratingFitch
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getRatingFitch() {
        return ratingFitch.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_RATING_FITCH)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getRatingFitch_JsonNullable() {
    return ratingFitch;
  }
  
  @JsonProperty(JSON_PROPERTY_RATING_FITCH)
  public void setRatingFitch_JsonNullable(JsonNullable ratingFitch) {
    this.ratingFitch = ratingFitch;
  }

  public void setRatingFitch(String ratingFitch) {
    this.ratingFitch = JsonNullable.of(ratingFitch);
  }


  public SMBondFields ratingFitchDates(java.util.List ratingFitchDates) {
    this.ratingFitchDates = JsonNullable.>of(ratingFitchDates);
    return this;
  }

  public SMBondFields addRatingFitchDatesItem(String ratingFitchDatesItem) {
    if (this.ratingFitchDates == null || !this.ratingFitchDates.isPresent()) {
      this.ratingFitchDates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.ratingFitchDates.get().add(ratingFitchDatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get ratingFitchDates
   * @return ratingFitchDates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getRatingFitchDates() {
        return ratingFitchDates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_RATING_FITCH_DATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getRatingFitchDates_JsonNullable() {
    return ratingFitchDates;
  }
  
  @JsonProperty(JSON_PROPERTY_RATING_FITCH_DATES)
  public void setRatingFitchDates_JsonNullable(JsonNullable> ratingFitchDates) {
    this.ratingFitchDates = ratingFitchDates;
  }

  public void setRatingFitchDates(java.util.List ratingFitchDates) {
    this.ratingFitchDates = JsonNullable.>of(ratingFitchDates);
  }


  public SMBondFields ratingFitchValues(java.util.List ratingFitchValues) {
    this.ratingFitchValues = JsonNullable.>of(ratingFitchValues);
    return this;
  }

  public SMBondFields addRatingFitchValuesItem(String ratingFitchValuesItem) {
    if (this.ratingFitchValues == null || !this.ratingFitchValues.isPresent()) {
      this.ratingFitchValues = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.ratingFitchValues.get().add(ratingFitchValuesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get ratingFitchValues
   * @return ratingFitchValues
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getRatingFitchValues() {
        return ratingFitchValues.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_RATING_FITCH_VALUES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getRatingFitchValues_JsonNullable() {
    return ratingFitchValues;
  }
  
  @JsonProperty(JSON_PROPERTY_RATING_FITCH_VALUES)
  public void setRatingFitchValues_JsonNullable(JsonNullable> ratingFitchValues) {
    this.ratingFitchValues = ratingFitchValues;
  }

  public void setRatingFitchValues(java.util.List ratingFitchValues) {
    this.ratingFitchValues = JsonNullable.>of(ratingFitchValues);
  }


  public SMBondFields ratingMoodysDates(java.util.List ratingMoodysDates) {
    this.ratingMoodysDates = JsonNullable.>of(ratingMoodysDates);
    return this;
  }

  public SMBondFields addRatingMoodysDatesItem(String ratingMoodysDatesItem) {
    if (this.ratingMoodysDates == null || !this.ratingMoodysDates.isPresent()) {
      this.ratingMoodysDates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.ratingMoodysDates.get().add(ratingMoodysDatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get ratingMoodysDates
   * @return ratingMoodysDates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getRatingMoodysDates() {
        return ratingMoodysDates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_RATING_MOODYS_DATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getRatingMoodysDates_JsonNullable() {
    return ratingMoodysDates;
  }
  
  @JsonProperty(JSON_PROPERTY_RATING_MOODYS_DATES)
  public void setRatingMoodysDates_JsonNullable(JsonNullable> ratingMoodysDates) {
    this.ratingMoodysDates = ratingMoodysDates;
  }

  public void setRatingMoodysDates(java.util.List ratingMoodysDates) {
    this.ratingMoodysDates = JsonNullable.>of(ratingMoodysDates);
  }


  public SMBondFields ratingMoodysValues(java.util.List ratingMoodysValues) {
    this.ratingMoodysValues = JsonNullable.>of(ratingMoodysValues);
    return this;
  }

  public SMBondFields addRatingMoodysValuesItem(String ratingMoodysValuesItem) {
    if (this.ratingMoodysValues == null || !this.ratingMoodysValues.isPresent()) {
      this.ratingMoodysValues = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.ratingMoodysValues.get().add(ratingMoodysValuesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get ratingMoodysValues
   * @return ratingMoodysValues
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getRatingMoodysValues() {
        return ratingMoodysValues.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_RATING_MOODYS_VALUES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getRatingMoodysValues_JsonNullable() {
    return ratingMoodysValues;
  }
  
  @JsonProperty(JSON_PROPERTY_RATING_MOODYS_VALUES)
  public void setRatingMoodysValues_JsonNullable(JsonNullable> ratingMoodysValues) {
    this.ratingMoodysValues = ratingMoodysValues;
  }

  public void setRatingMoodysValues(java.util.List ratingMoodysValues) {
    this.ratingMoodysValues = JsonNullable.>of(ratingMoodysValues);
  }


  public SMBondFields ratingSpDates(java.util.List ratingSpDates) {
    this.ratingSpDates = JsonNullable.>of(ratingSpDates);
    return this;
  }

  public SMBondFields addRatingSpDatesItem(String ratingSpDatesItem) {
    if (this.ratingSpDates == null || !this.ratingSpDates.isPresent()) {
      this.ratingSpDates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.ratingSpDates.get().add(ratingSpDatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get ratingSpDates
   * @return ratingSpDates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getRatingSpDates() {
        return ratingSpDates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_RATING_SP_DATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getRatingSpDates_JsonNullable() {
    return ratingSpDates;
  }
  
  @JsonProperty(JSON_PROPERTY_RATING_SP_DATES)
  public void setRatingSpDates_JsonNullable(JsonNullable> ratingSpDates) {
    this.ratingSpDates = ratingSpDates;
  }

  public void setRatingSpDates(java.util.List ratingSpDates) {
    this.ratingSpDates = JsonNullable.>of(ratingSpDates);
  }


  public SMBondFields ratingSpValues(java.util.List ratingSpValues) {
    this.ratingSpValues = JsonNullable.>of(ratingSpValues);
    return this;
  }

  public SMBondFields addRatingSpValuesItem(String ratingSpValuesItem) {
    if (this.ratingSpValues == null || !this.ratingSpValues.isPresent()) {
      this.ratingSpValues = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.ratingSpValues.get().add(ratingSpValuesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get ratingSpValues
   * @return ratingSpValues
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getRatingSpValues() {
        return ratingSpValues.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_RATING_SP_VALUES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getRatingSpValues_JsonNullable() {
    return ratingSpValues;
  }
  
  @JsonProperty(JSON_PROPERTY_RATING_SP_VALUES)
  public void setRatingSpValues_JsonNullable(JsonNullable> ratingSpValues) {
    this.ratingSpValues = ratingSpValues;
  }

  public void setRatingSpValues(java.util.List ratingSpValues) {
    this.ratingSpValues = JsonNullable.>of(ratingSpValues);
  }


  public SMBondFields recoveryPercentage(Double recoveryPercentage) {
    this.recoveryPercentage = JsonNullable.of(recoveryPercentage);
    return this;
  }

   /**
   * Get recoveryPercentage
   * @return recoveryPercentage
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getRecoveryPercentage() {
        return recoveryPercentage.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_RECOVERY_PERCENTAGE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getRecoveryPercentage_JsonNullable() {
    return recoveryPercentage;
  }
  
  @JsonProperty(JSON_PROPERTY_RECOVERY_PERCENTAGE)
  public void setRecoveryPercentage_JsonNullable(JsonNullable recoveryPercentage) {
    this.recoveryPercentage = recoveryPercentage;
  }

  public void setRecoveryPercentage(Double recoveryPercentage) {
    this.recoveryPercentage = JsonNullable.of(recoveryPercentage);
  }


  public SMBondFields redemptionDate(String redemptionDate) {
    this.redemptionDate = JsonNullable.of(redemptionDate);
    return this;
  }

   /**
   * Get redemptionDate
   * @return redemptionDate
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getRedemptionDate() {
        return redemptionDate.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_REDEMPTION_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getRedemptionDate_JsonNullable() {
    return redemptionDate;
  }
  
  @JsonProperty(JSON_PROPERTY_REDEMPTION_DATE)
  public void setRedemptionDate_JsonNullable(JsonNullable redemptionDate) {
    this.redemptionDate = redemptionDate;
  }

  public void setRedemptionDate(String redemptionDate) {
    this.redemptionDate = JsonNullable.of(redemptionDate);
  }


  public SMBondFields redemptionOpt(String redemptionOpt) {
    this.redemptionOpt = JsonNullable.of(redemptionOpt);
    return this;
  }

   /**
   * Get redemptionOpt
   * @return redemptionOpt
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getRedemptionOpt() {
        return redemptionOpt.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_REDEMPTION_OPT)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getRedemptionOpt_JsonNullable() {
    return redemptionOpt;
  }
  
  @JsonProperty(JSON_PROPERTY_REDEMPTION_OPT)
  public void setRedemptionOpt_JsonNullable(JsonNullable redemptionOpt) {
    this.redemptionOpt = redemptionOpt;
  }

  public void setRedemptionOpt(String redemptionOpt) {
    this.redemptionOpt = JsonNullable.of(redemptionOpt);
  }


  public SMBondFields redemptionPrice(Double redemptionPrice) {
    this.redemptionPrice = JsonNullable.of(redemptionPrice);
    return this;
  }

   /**
   * Get redemptionPrice
   * @return redemptionPrice
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getRedemptionPrice() {
        return redemptionPrice.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_REDEMPTION_PRICE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getRedemptionPrice_JsonNullable() {
    return redemptionPrice;
  }
  
  @JsonProperty(JSON_PROPERTY_REDEMPTION_PRICE)
  public void setRedemptionPrice_JsonNullable(JsonNullable redemptionPrice) {
    this.redemptionPrice = redemptionPrice;
  }

  public void setRedemptionPrice(Double redemptionPrice) {
    this.redemptionPrice = JsonNullable.of(redemptionPrice);
  }


  public SMBondFields reinstatedDate(String reinstatedDate) {
    this.reinstatedDate = JsonNullable.of(reinstatedDate);
    return this;
  }

   /**
   * Get reinstatedDate
   * @return reinstatedDate
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getReinstatedDate() {
        return reinstatedDate.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_REINSTATED_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getReinstatedDate_JsonNullable() {
    return reinstatedDate;
  }
  
  @JsonProperty(JSON_PROPERTY_REINSTATED_DATE)
  public void setReinstatedDate_JsonNullable(JsonNullable reinstatedDate) {
    this.reinstatedDate = reinstatedDate;
  }

  public void setReinstatedDate(String reinstatedDate) {
    this.reinstatedDate = JsonNullable.of(reinstatedDate);
  }


  public SMBondFields resetDelay(Integer resetDelay) {
    this.resetDelay = JsonNullable.of(resetDelay);
    return this;
  }

   /**
   * Get resetDelay
   * @return resetDelay
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Integer getResetDelay() {
        return resetDelay.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_RESET_DELAY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getResetDelay_JsonNullable() {
    return resetDelay;
  }
  
  @JsonProperty(JSON_PROPERTY_RESET_DELAY)
  public void setResetDelay_JsonNullable(JsonNullable resetDelay) {
    this.resetDelay = resetDelay;
  }

  public void setResetDelay(Integer resetDelay) {
    this.resetDelay = JsonNullable.of(resetDelay);
  }


  public SMBondFields resetFreq(String resetFreq) {
    this.resetFreq = JsonNullable.of(resetFreq);
    return this;
  }

   /**
   * Get resetFreq
   * @return resetFreq
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getResetFreq() {
        return resetFreq.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_RESET_FREQ)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getResetFreq_JsonNullable() {
    return resetFreq;
  }
  
  @JsonProperty(JSON_PROPERTY_RESET_FREQ)
  public void setResetFreq_JsonNullable(JsonNullable resetFreq) {
    this.resetFreq = resetFreq;
  }

  public void setResetFreq(String resetFreq) {
    this.resetFreq = JsonNullable.of(resetFreq);
  }


  public SMBondFields refIndex(String refIndex) {
    this.refIndex = JsonNullable.of(refIndex);
    return this;
  }

   /**
   * Get refIndex
   * @return refIndex
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getRefIndex() {
        return refIndex.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_REF_INDEX)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getRefIndex_JsonNullable() {
    return refIndex;
  }
  
  @JsonProperty(JSON_PROPERTY_REF_INDEX)
  public void setRefIndex_JsonNullable(JsonNullable refIndex) {
    this.refIndex = refIndex;
  }

  public void setRefIndex(String refIndex) {
    this.refIndex = JsonNullable.of(refIndex);
  }


  public SMBondFields secondaryToVendorFlag(Boolean secondaryToVendorFlag) {
    this.secondaryToVendorFlag = JsonNullable.of(secondaryToVendorFlag);
    return this;
  }

   /**
   * Get secondaryToVendorFlag
   * @return secondaryToVendorFlag
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Boolean getSecondaryToVendorFlag() {
        return secondaryToVendorFlag.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SECONDARY_TO_VENDOR_FLAG)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getSecondaryToVendorFlag_JsonNullable() {
    return secondaryToVendorFlag;
  }
  
  @JsonProperty(JSON_PROPERTY_SECONDARY_TO_VENDOR_FLAG)
  public void setSecondaryToVendorFlag_JsonNullable(JsonNullable secondaryToVendorFlag) {
    this.secondaryToVendorFlag = secondaryToVendorFlag;
  }

  public void setSecondaryToVendorFlag(Boolean secondaryToVendorFlag) {
    this.secondaryToVendorFlag = JsonNullable.of(secondaryToVendorFlag);
  }


  public SMBondFields sector(String sector) {
    this.sector = JsonNullable.of(sector);
    return this;
  }

   /**
   * Get sector
   * @return sector
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getSector() {
        return sector.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SECTOR)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getSector_JsonNullable() {
    return sector;
  }
  
  @JsonProperty(JSON_PROPERTY_SECTOR)
  public void setSector_JsonNullable(JsonNullable sector) {
    this.sector = sector;
  }

  public void setSector(String sector) {
    this.sector = JsonNullable.of(sector);
  }


  public SMBondFields sectorBarclay1(String sectorBarclay1) {
    this.sectorBarclay1 = JsonNullable.of(sectorBarclay1);
    return this;
  }

   /**
   * Get sectorBarclay1
   * @return sectorBarclay1
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getSectorBarclay1() {
        return sectorBarclay1.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SECTOR_BARCLAY1)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getSectorBarclay1_JsonNullable() {
    return sectorBarclay1;
  }
  
  @JsonProperty(JSON_PROPERTY_SECTOR_BARCLAY1)
  public void setSectorBarclay1_JsonNullable(JsonNullable sectorBarclay1) {
    this.sectorBarclay1 = sectorBarclay1;
  }

  public void setSectorBarclay1(String sectorBarclay1) {
    this.sectorBarclay1 = JsonNullable.of(sectorBarclay1);
  }


  public SMBondFields sectorBarclay2(String sectorBarclay2) {
    this.sectorBarclay2 = JsonNullable.of(sectorBarclay2);
    return this;
  }

   /**
   * Get sectorBarclay2
   * @return sectorBarclay2
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getSectorBarclay2() {
        return sectorBarclay2.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SECTOR_BARCLAY2)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getSectorBarclay2_JsonNullable() {
    return sectorBarclay2;
  }
  
  @JsonProperty(JSON_PROPERTY_SECTOR_BARCLAY2)
  public void setSectorBarclay2_JsonNullable(JsonNullable sectorBarclay2) {
    this.sectorBarclay2 = sectorBarclay2;
  }

  public void setSectorBarclay2(String sectorBarclay2) {
    this.sectorBarclay2 = JsonNullable.of(sectorBarclay2);
  }


  public SMBondFields sectorBarclay3(String sectorBarclay3) {
    this.sectorBarclay3 = JsonNullable.of(sectorBarclay3);
    return this;
  }

   /**
   * Get sectorBarclay3
   * @return sectorBarclay3
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getSectorBarclay3() {
        return sectorBarclay3.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SECTOR_BARCLAY3)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getSectorBarclay3_JsonNullable() {
    return sectorBarclay3;
  }
  
  @JsonProperty(JSON_PROPERTY_SECTOR_BARCLAY3)
  public void setSectorBarclay3_JsonNullable(JsonNullable sectorBarclay3) {
    this.sectorBarclay3 = sectorBarclay3;
  }

  public void setSectorBarclay3(String sectorBarclay3) {
    this.sectorBarclay3 = JsonNullable.of(sectorBarclay3);
  }


  public SMBondFields sectorBarclay4(String sectorBarclay4) {
    this.sectorBarclay4 = JsonNullable.of(sectorBarclay4);
    return this;
  }

   /**
   * Get sectorBarclay4
   * @return sectorBarclay4
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getSectorBarclay4() {
        return sectorBarclay4.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SECTOR_BARCLAY4)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getSectorBarclay4_JsonNullable() {
    return sectorBarclay4;
  }
  
  @JsonProperty(JSON_PROPERTY_SECTOR_BARCLAY4)
  public void setSectorBarclay4_JsonNullable(JsonNullable sectorBarclay4) {
    this.sectorBarclay4 = sectorBarclay4;
  }

  public void setSectorBarclay4(String sectorBarclay4) {
    this.sectorBarclay4 = JsonNullable.of(sectorBarclay4);
  }


  public SMBondFields sectorDef(String sectorDef) {
    this.sectorDef = JsonNullable.of(sectorDef);
    return this;
  }

   /**
   * Get sectorDef
   * @return sectorDef
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getSectorDef() {
        return sectorDef.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SECTOR_DEF)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getSectorDef_JsonNullable() {
    return sectorDef;
  }
  
  @JsonProperty(JSON_PROPERTY_SECTOR_DEF)
  public void setSectorDef_JsonNullable(JsonNullable sectorDef) {
    this.sectorDef = sectorDef;
  }

  public void setSectorDef(String sectorDef) {
    this.sectorDef = JsonNullable.of(sectorDef);
  }


  public SMBondFields sectorIndustry(String sectorIndustry) {
    this.sectorIndustry = JsonNullable.of(sectorIndustry);
    return this;
  }

   /**
   * Get sectorIndustry
   * @return sectorIndustry
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getSectorIndustry() {
        return sectorIndustry.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SECTOR_INDUSTRY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getSectorIndustry_JsonNullable() {
    return sectorIndustry;
  }
  
  @JsonProperty(JSON_PROPERTY_SECTOR_INDUSTRY)
  public void setSectorIndustry_JsonNullable(JsonNullable sectorIndustry) {
    this.sectorIndustry = sectorIndustry;
  }

  public void setSectorIndustry(String sectorIndustry) {
    this.sectorIndustry = JsonNullable.of(sectorIndustry);
  }


  public SMBondFields sectorMain(String sectorMain) {
    this.sectorMain = JsonNullable.of(sectorMain);
    return this;
  }

   /**
   * Get sectorMain
   * @return sectorMain
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getSectorMain() {
        return sectorMain.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SECTOR_MAIN)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getSectorMain_JsonNullable() {
    return sectorMain;
  }
  
  @JsonProperty(JSON_PROPERTY_SECTOR_MAIN)
  public void setSectorMain_JsonNullable(JsonNullable sectorMain) {
    this.sectorMain = sectorMain;
  }

  public void setSectorMain(String sectorMain) {
    this.sectorMain = JsonNullable.of(sectorMain);
  }


  public SMBondFields sectorMerrill1(String sectorMerrill1) {
    this.sectorMerrill1 = JsonNullable.of(sectorMerrill1);
    return this;
  }

   /**
   * Get sectorMerrill1
   * @return sectorMerrill1
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getSectorMerrill1() {
        return sectorMerrill1.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SECTOR_MERRILL1)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getSectorMerrill1_JsonNullable() {
    return sectorMerrill1;
  }
  
  @JsonProperty(JSON_PROPERTY_SECTOR_MERRILL1)
  public void setSectorMerrill1_JsonNullable(JsonNullable sectorMerrill1) {
    this.sectorMerrill1 = sectorMerrill1;
  }

  public void setSectorMerrill1(String sectorMerrill1) {
    this.sectorMerrill1 = JsonNullable.of(sectorMerrill1);
  }


  public SMBondFields sectorMerrill2(String sectorMerrill2) {
    this.sectorMerrill2 = JsonNullable.of(sectorMerrill2);
    return this;
  }

   /**
   * Get sectorMerrill2
   * @return sectorMerrill2
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getSectorMerrill2() {
        return sectorMerrill2.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SECTOR_MERRILL2)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getSectorMerrill2_JsonNullable() {
    return sectorMerrill2;
  }
  
  @JsonProperty(JSON_PROPERTY_SECTOR_MERRILL2)
  public void setSectorMerrill2_JsonNullable(JsonNullable sectorMerrill2) {
    this.sectorMerrill2 = sectorMerrill2;
  }

  public void setSectorMerrill2(String sectorMerrill2) {
    this.sectorMerrill2 = JsonNullable.of(sectorMerrill2);
  }


  public SMBondFields sectorMerrill3(String sectorMerrill3) {
    this.sectorMerrill3 = JsonNullable.of(sectorMerrill3);
    return this;
  }

   /**
   * Get sectorMerrill3
   * @return sectorMerrill3
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getSectorMerrill3() {
        return sectorMerrill3.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SECTOR_MERRILL3)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getSectorMerrill3_JsonNullable() {
    return sectorMerrill3;
  }
  
  @JsonProperty(JSON_PROPERTY_SECTOR_MERRILL3)
  public void setSectorMerrill3_JsonNullable(JsonNullable sectorMerrill3) {
    this.sectorMerrill3 = sectorMerrill3;
  }

  public void setSectorMerrill3(String sectorMerrill3) {
    this.sectorMerrill3 = JsonNullable.of(sectorMerrill3);
  }


  public SMBondFields sectorMerrill4(String sectorMerrill4) {
    this.sectorMerrill4 = JsonNullable.of(sectorMerrill4);
    return this;
  }

   /**
   * Get sectorMerrill4
   * @return sectorMerrill4
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getSectorMerrill4() {
        return sectorMerrill4.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SECTOR_MERRILL4)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getSectorMerrill4_JsonNullable() {
    return sectorMerrill4;
  }
  
  @JsonProperty(JSON_PROPERTY_SECTOR_MERRILL4)
  public void setSectorMerrill4_JsonNullable(JsonNullable sectorMerrill4) {
    this.sectorMerrill4 = sectorMerrill4;
  }

  public void setSectorMerrill4(String sectorMerrill4) {
    this.sectorMerrill4 = JsonNullable.of(sectorMerrill4);
  }


  public SMBondFields sectorSubGroup(String sectorSubGroup) {
    this.sectorSubGroup = JsonNullable.of(sectorSubGroup);
    return this;
  }

   /**
   * Get sectorSubGroup
   * @return sectorSubGroup
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getSectorSubGroup() {
        return sectorSubGroup.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SECTOR_SUB_GROUP)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getSectorSubGroup_JsonNullable() {
    return sectorSubGroup;
  }
  
  @JsonProperty(JSON_PROPERTY_SECTOR_SUB_GROUP)
  public void setSectorSubGroup_JsonNullable(JsonNullable sectorSubGroup) {
    this.sectorSubGroup = sectorSubGroup;
  }

  public void setSectorSubGroup(String sectorSubGroup) {
    this.sectorSubGroup = JsonNullable.of(sectorSubGroup);
  }


  public SMBondFields sinkAmts(java.util.List sinkAmts) {
    this.sinkAmts = JsonNullable.>of(sinkAmts);
    return this;
  }

  public SMBondFields addSinkAmtsItem(Double sinkAmtsItem) {
    if (this.sinkAmts == null || !this.sinkAmts.isPresent()) {
      this.sinkAmts = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.sinkAmts.get().add(sinkAmtsItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get sinkAmts
   * @return sinkAmts
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getSinkAmts() {
        return sinkAmts.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SINK_AMTS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getSinkAmts_JsonNullable() {
    return sinkAmts;
  }
  
  @JsonProperty(JSON_PROPERTY_SINK_AMTS)
  public void setSinkAmts_JsonNullable(JsonNullable> sinkAmts) {
    this.sinkAmts = sinkAmts;
  }

  public void setSinkAmts(java.util.List sinkAmts) {
    this.sinkAmts = JsonNullable.>of(sinkAmts);
  }


  public SMBondFields sinkDates(java.util.List sinkDates) {
    this.sinkDates = JsonNullable.>of(sinkDates);
    return this;
  }

  public SMBondFields addSinkDatesItem(String sinkDatesItem) {
    if (this.sinkDates == null || !this.sinkDates.isPresent()) {
      this.sinkDates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.sinkDates.get().add(sinkDatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get sinkDates
   * @return sinkDates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getSinkDates() {
        return sinkDates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SINK_DATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getSinkDates_JsonNullable() {
    return sinkDates;
  }
  
  @JsonProperty(JSON_PROPERTY_SINK_DATES)
  public void setSinkDates_JsonNullable(JsonNullable> sinkDates) {
    this.sinkDates = sinkDates;
  }

  public void setSinkDates(java.util.List sinkDates) {
    this.sinkDates = JsonNullable.>of(sinkDates);
  }


  public SMBondFields spread(Double spread) {
    this.spread = JsonNullable.of(spread);
    return this;
  }

   /**
   * Get spread
   * @return spread
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Double getSpread() {
        return spread.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_SPREAD)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getSpread_JsonNullable() {
    return spread;
  }
  
  @JsonProperty(JSON_PROPERTY_SPREAD)
  public void setSpread_JsonNullable(JsonNullable spread) {
    this.spread = spread;
  }

  public void setSpread(Double spread) {
    this.spread = JsonNullable.of(spread);
  }


  public SMBondFields state(String state) {
    this.state = JsonNullable.of(state);
    return this;
  }

   /**
   * Get state
   * @return state
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getState() {
        return state.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_STATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getState_JsonNullable() {
    return state;
  }
  
  @JsonProperty(JSON_PROPERTY_STATE)
  public void setState_JsonNullable(JsonNullable state) {
    this.state = state;
  }

  public void setState(String state) {
    this.state = JsonNullable.of(state);
  }


  public SMBondFields status(String status) {
    this.status = JsonNullable.of(status);
    return this;
  }

   /**
   * Get status
   * @return status
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getStatus() {
        return status.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_STATUS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getStatus_JsonNullable() {
    return status;
  }
  
  @JsonProperty(JSON_PROPERTY_STATUS)
  public void setStatus_JsonNullable(JsonNullable status) {
    this.status = status;
  }

  public void setStatus(String status) {
    this.status = JsonNullable.of(status);
  }


  public SMBondFields statusDates(java.util.List statusDates) {
    this.statusDates = JsonNullable.>of(statusDates);
    return this;
  }

  public SMBondFields addStatusDatesItem(String statusDatesItem) {
    if (this.statusDates == null || !this.statusDates.isPresent()) {
      this.statusDates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.statusDates.get().add(statusDatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get statusDates
   * @return statusDates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getStatusDates() {
        return statusDates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_STATUS_DATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getStatusDates_JsonNullable() {
    return statusDates;
  }
  
  @JsonProperty(JSON_PROPERTY_STATUS_DATES)
  public void setStatusDates_JsonNullable(JsonNullable> statusDates) {
    this.statusDates = statusDates;
  }

  public void setStatusDates(java.util.List statusDates) {
    this.statusDates = JsonNullable.>of(statusDates);
  }


  public SMBondFields statusValues(java.util.List statusValues) {
    this.statusValues = JsonNullable.>of(statusValues);
    return this;
  }

  public SMBondFields addStatusValuesItem(String statusValuesItem) {
    if (this.statusValues == null || !this.statusValues.isPresent()) {
      this.statusValues = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.statusValues.get().add(statusValuesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get statusValues
   * @return statusValues
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getStatusValues() {
        return statusValues.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_STATUS_VALUES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getStatusValues_JsonNullable() {
    return statusValues;
  }
  
  @JsonProperty(JSON_PROPERTY_STATUS_VALUES)
  public void setStatusValues_JsonNullable(JsonNullable> statusValues) {
    this.statusValues = statusValues;
  }

  public void setStatusValues(java.util.List statusValues) {
    this.statusValues = JsonNullable.>of(statusValues);
  }


  public SMBondFields stepCashRates(java.util.List stepCashRates) {
    this.stepCashRates = JsonNullable.>of(stepCashRates);
    return this;
  }

  public SMBondFields addStepCashRatesItem(Double stepCashRatesItem) {
    if (this.stepCashRates == null || !this.stepCashRates.isPresent()) {
      this.stepCashRates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.stepCashRates.get().add(stepCashRatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get stepCashRates
   * @return stepCashRates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getStepCashRates() {
        return stepCashRates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_STEP_CASH_RATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getStepCashRates_JsonNullable() {
    return stepCashRates;
  }
  
  @JsonProperty(JSON_PROPERTY_STEP_CASH_RATES)
  public void setStepCashRates_JsonNullable(JsonNullable> stepCashRates) {
    this.stepCashRates = stepCashRates;
  }

  public void setStepCashRates(java.util.List stepCashRates) {
    this.stepCashRates = JsonNullable.>of(stepCashRates);
  }


  public SMBondFields stepCouponDates(java.util.List stepCouponDates) {
    this.stepCouponDates = JsonNullable.>of(stepCouponDates);
    return this;
  }

  public SMBondFields addStepCouponDatesItem(String stepCouponDatesItem) {
    if (this.stepCouponDates == null || !this.stepCouponDates.isPresent()) {
      this.stepCouponDates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.stepCouponDates.get().add(stepCouponDatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get stepCouponDates
   * @return stepCouponDates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getStepCouponDates() {
        return stepCouponDates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_STEP_COUPON_DATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getStepCouponDates_JsonNullable() {
    return stepCouponDates;
  }
  
  @JsonProperty(JSON_PROPERTY_STEP_COUPON_DATES)
  public void setStepCouponDates_JsonNullable(JsonNullable> stepCouponDates) {
    this.stepCouponDates = stepCouponDates;
  }

  public void setStepCouponDates(java.util.List stepCouponDates) {
    this.stepCouponDates = JsonNullable.>of(stepCouponDates);
  }


  public SMBondFields stepCoupons(java.util.List stepCoupons) {
    this.stepCoupons = JsonNullable.>of(stepCoupons);
    return this;
  }

  public SMBondFields addStepCouponsItem(Double stepCouponsItem) {
    if (this.stepCoupons == null || !this.stepCoupons.isPresent()) {
      this.stepCoupons = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.stepCoupons.get().add(stepCouponsItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get stepCoupons
   * @return stepCoupons
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getStepCoupons() {
        return stepCoupons.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_STEP_COUPONS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getStepCoupons_JsonNullable() {
    return stepCoupons;
  }
  
  @JsonProperty(JSON_PROPERTY_STEP_COUPONS)
  public void setStepCoupons_JsonNullable(JsonNullable> stepCoupons) {
    this.stepCoupons = stepCoupons;
  }

  public void setStepCoupons(java.util.List stepCoupons) {
    this.stepCoupons = JsonNullable.>of(stepCoupons);
  }


  public SMBondFields stepPikRates(java.util.List stepPikRates) {
    this.stepPikRates = JsonNullable.>of(stepPikRates);
    return this;
  }

  public SMBondFields addStepPikRatesItem(Double stepPikRatesItem) {
    if (this.stepPikRates == null || !this.stepPikRates.isPresent()) {
      this.stepPikRates = JsonNullable.>of(new java.util.ArrayList<>());
    }
    try {
      this.stepPikRates.get().add(stepPikRatesItem);
    } catch (java.util.NoSuchElementException e) {
      // this can never happen, as we make sure above that the value is present
    }
    return this;
  }

   /**
   * Get stepPikRates
   * @return stepPikRates
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public java.util.List getStepPikRates() {
        return stepPikRates.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_STEP_PIK_RATES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable> getStepPikRates_JsonNullable() {
    return stepPikRates;
  }
  
  @JsonProperty(JSON_PROPERTY_STEP_PIK_RATES)
  public void setStepPikRates_JsonNullable(JsonNullable> stepPikRates) {
    this.stepPikRates = stepPikRates;
  }

  public void setStepPikRates(java.util.List stepPikRates) {
    this.stepPikRates = JsonNullable.>of(stepPikRates);
  }


  public SMBondFields vendorCoverageDate(String vendorCoverageDate) {
    this.vendorCoverageDate = JsonNullable.of(vendorCoverageDate);
    return this;
  }

   /**
   * Get vendorCoverageDate
   * @return vendorCoverageDate
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public String getVendorCoverageDate() {
        return vendorCoverageDate.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_VENDOR_COVERAGE_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getVendorCoverageDate_JsonNullable() {
    return vendorCoverageDate;
  }
  
  @JsonProperty(JSON_PROPERTY_VENDOR_COVERAGE_DATE)
  public void setVendorCoverageDate_JsonNullable(JsonNullable vendorCoverageDate) {
    this.vendorCoverageDate = vendorCoverageDate;
  }

  public void setVendorCoverageDate(String vendorCoverageDate) {
    this.vendorCoverageDate = JsonNullable.of(vendorCoverageDate);
  }


  public SMBondFields vRDNFlag(Boolean vRDNFlag) {
    this.vRDNFlag = JsonNullable.of(vRDNFlag);
    return this;
  }

   /**
   * Get vRDNFlag
   * @return vRDNFlag
  **/
  @jakarta.annotation.Nullable
  @ApiModelProperty(value = "")
  @JsonIgnore

  public Boolean getvRDNFlag() {
        return vRDNFlag.orElse(null);
  }

  @JsonProperty(JSON_PROPERTY_V_R_D_N_FLAG)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public JsonNullable getvRDNFlag_JsonNullable() {
    return vRDNFlag;
  }
  
  @JsonProperty(JSON_PROPERTY_V_R_D_N_FLAG)
  public void setvRDNFlag_JsonNullable(JsonNullable vRDNFlag) {
    this.vRDNFlag = vRDNFlag;
  }

  public void setvRDNFlag(Boolean vRDNFlag) {
    this.vRDNFlag = JsonNullable.of(vRDNFlag);
  }


  public SMBondFields securityType(SecurityTypeEnum securityType) {
    this.securityType = securityType;
    return this;
  }

   /**
   * Get securityType
   * @return securityType
  **/
  @jakarta.annotation.Nonnull
  @ApiModelProperty(required = true, value = "")
  @JsonProperty(JSON_PROPERTY_SECURITY_TYPE)
  @JsonInclude(value = JsonInclude.Include.ALWAYS)

  public SecurityTypeEnum getSecurityType() {
    return securityType;
  }


  @JsonProperty(JSON_PROPERTY_SECURITY_TYPE)
  @JsonInclude(value = JsonInclude.Include.ALWAYS)
  public void setSecurityType(SecurityTypeEnum securityType) {
    this.securityType = securityType;
  }


  /**
   * Return true if this SMBondFields object is equal to o.
   */
  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    SMBondFields smBondFields = (SMBondFields) o;
    return equalsNullable(this._144aFlag, smBondFields._144aFlag) &&
        equalsNullable(this.aperiodicMultipliers, smBondFields.aperiodicMultipliers) &&
        equalsNullable(this.aperiodicResetDates, smBondFields.aperiodicResetDates) &&
        equalsNullable(this.aperiodicSpreads, smBondFields.aperiodicSpreads) &&
        equalsNullable(this.businessDayConv, smBondFields.businessDayConv) &&
        equalsNullable(this.callAnnouncedDate, smBondFields.callAnnouncedDate) &&
        equalsNullable(this.callDates, smBondFields.callDates) &&
        equalsNullable(this.callFreq, smBondFields.callFreq) &&
        equalsNullable(this.callNoticeDays, smBondFields.callNoticeDays) &&
        equalsNullable(this.callPrices, smBondFields.callPrices) &&
        equalsNullable(this.cashRate, smBondFields.cashRate) &&
        equalsNullable(this.cognity, smBondFields.cognity) &&
        equalsNullable(this.conversionIdentifier, smBondFields.conversionIdentifier) &&
        equalsNullable(this.conversionRatio, smBondFields.conversionRatio) &&
        equalsNullable(this.conversionType, smBondFields.conversionType) &&
        equalsNullable(this.convertibleFlag, smBondFields.convertibleFlag) &&
        equalsNullable(this.country, smBondFields.country) &&
        equalsNullable(this.coupon, smBondFields.coupon) &&
        equalsNullable(this.couponType, smBondFields.couponType) &&
        equalsNullable(this.creditSpreadAdjustmentSingle, smBondFields.creditSpreadAdjustmentSingle) &&
        equalsNullable(this.currency, smBondFields.currency) &&
        equalsNullable(this.dayCountBasis, smBondFields.dayCountBasis) &&
        equalsNullable(this.defaultedDate, smBondFields.defaultedDate) &&
        equalsNullable(this.federalTaxExemptFlag, smBondFields.federalTaxExemptFlag) &&
        equalsNullable(this.firstPayDate, smBondFields.firstPayDate) &&
        equalsNullable(this.firstResetDate, smBondFields.firstResetDate) &&
        equalsNullable(this.floatFormula, smBondFields.floatFormula) &&
        equalsNullable(this.fltDayCountBasis, smBondFields.fltDayCountBasis) &&
        equalsNullable(this.fltFirstPayDate, smBondFields.fltFirstPayDate) &&
        equalsNullable(this.fltPayFreq, smBondFields.fltPayFreq) &&
        equalsNullable(this.histCouponDates, smBondFields.histCouponDates) &&
        equalsNullable(this.histCoupons, smBondFields.histCoupons) &&
        equalsNullable(this.histRcvAssumpDates, smBondFields.histRcvAssumpDates) &&
        equalsNullable(this.histRcvAssumpMonths, smBondFields.histRcvAssumpMonths) &&
        equalsNullable(this.histRcvAssumpRates, smBondFields.histRcvAssumpRates) &&
        equalsNullable(this.histRcvAssumpTargetDates, smBondFields.histRcvAssumpTargetDates) &&
        equalsNullable(this.inflationType, smBondFields.inflationType) &&
        equalsNullable(this.issueDate, smBondFields.issueDate) &&
        equalsNullable(this.issueName, smBondFields.issueName) &&
        equalsNullable(this.issuerId, smBondFields.issuerId) &&
        equalsNullable(this.lastModifiedSource, smBondFields.lastModifiedSource) &&
        equalsNullable(this.lastModifiedSourceMeta, smBondFields.lastModifiedSourceMeta) &&
        equalsNullable(this.lastModifiedTime, smBondFields.lastModifiedTime) &&
        equalsNullable(this.lifeCap, smBondFields.lifeCap) &&
        equalsNullable(this.lifeFloor, smBondFields.lifeFloor) &&
        equalsNullable(this.lockoutDays, smBondFields.lockoutDays) &&
        equalsNullable(this.lookBackDays, smBondFields.lookBackDays) &&
        equalsNullable(this.makeWholeCallFlag, smBondFields.makeWholeCallFlag) &&
        equalsNullable(this.makeWholeExpireDate, smBondFields.makeWholeExpireDate) &&
        equalsNullable(this.makeWholeSpread, smBondFields.makeWholeSpread) &&
        equalsNullable(this.matrixDates, smBondFields.matrixDates) &&
        equalsNullable(this.matrixMultipliers, smBondFields.matrixMultipliers) &&
        equalsNullable(this.matrixPricedFlag, smBondFields.matrixPricedFlag) &&
        equalsNullable(this.matrixSpreads, smBondFields.matrixSpreads) &&
        equalsNullable(this.matrixUseScheduleFlag, smBondFields.matrixUseScheduleFlag) &&
        equalsNullable(this.maturityDate, smBondFields.maturityDate) &&
        equalsNullable(this.maturityPrice, smBondFields.maturityPrice) &&
        equalsNullable(this.monthsToRecovery, smBondFields.monthsToRecovery) &&
        equalsNullable(this.multiplier, smBondFields.multiplier) &&
        equalsNullable(this.notionalFlag, smBondFields.notionalFlag) &&
        equalsNullable(this.observationShift, smBondFields.observationShift) &&
        equalsNullable(this.origAmtIssued, smBondFields.origAmtIssued) &&
        equalsNullable(this.parentName, smBondFields.parentName) &&
        equalsNullable(this.parPrice, smBondFields.parPrice) &&
        equalsNullable(this.parserInfo, smBondFields.parserInfo) &&
        equalsNullable(this.paymentDelay, smBondFields.paymentDelay) &&
        equalsNullable(this.payFreq, smBondFields.payFreq) &&
        equalsNullable(this.periodCap, smBondFields.periodCap) &&
        equalsNullable(this.periodFloor, smBondFields.periodFloor) &&
        equalsNullable(this.pikExpDate, smBondFields.pikExpDate) &&
        equalsNullable(this.pikRate, smBondFields.pikRate) &&
        equalsNullable(this.preferredSecExDateLen, smBondFields.preferredSecExDateLen) &&
        equalsNullable(this.preferredSecExDateUnits, smBondFields.preferredSecExDateUnits) &&
        equalsNullable(this.preferredSecFlag, smBondFields.preferredSecFlag) &&
        equalsNullable(this.preferredSecType, smBondFields.preferredSecType) &&
        equalsNullable(this.principalType, smBondFields.principalType) &&
        equalsNullable(this.putDates, smBondFields.putDates) &&
        equalsNullable(this.putNoticeDays, smBondFields.putNoticeDays) &&
        equalsNullable(this.putFreq, smBondFields.putFreq) &&
        equalsNullable(this.putPrices, smBondFields.putPrices) &&
        equalsNullable(this.pvtPlacementFlag, smBondFields.pvtPlacementFlag) &&
        equalsNullable(this.ratingFitch, smBondFields.ratingFitch) &&
        equalsNullable(this.ratingFitchDates, smBondFields.ratingFitchDates) &&
        equalsNullable(this.ratingFitchValues, smBondFields.ratingFitchValues) &&
        equalsNullable(this.ratingMoodysDates, smBondFields.ratingMoodysDates) &&
        equalsNullable(this.ratingMoodysValues, smBondFields.ratingMoodysValues) &&
        equalsNullable(this.ratingSpDates, smBondFields.ratingSpDates) &&
        equalsNullable(this.ratingSpValues, smBondFields.ratingSpValues) &&
        equalsNullable(this.recoveryPercentage, smBondFields.recoveryPercentage) &&
        equalsNullable(this.redemptionDate, smBondFields.redemptionDate) &&
        equalsNullable(this.redemptionOpt, smBondFields.redemptionOpt) &&
        equalsNullable(this.redemptionPrice, smBondFields.redemptionPrice) &&
        equalsNullable(this.reinstatedDate, smBondFields.reinstatedDate) &&
        equalsNullable(this.resetDelay, smBondFields.resetDelay) &&
        equalsNullable(this.resetFreq, smBondFields.resetFreq) &&
        equalsNullable(this.refIndex, smBondFields.refIndex) &&
        equalsNullable(this.secondaryToVendorFlag, smBondFields.secondaryToVendorFlag) &&
        equalsNullable(this.sector, smBondFields.sector) &&
        equalsNullable(this.sectorBarclay1, smBondFields.sectorBarclay1) &&
        equalsNullable(this.sectorBarclay2, smBondFields.sectorBarclay2) &&
        equalsNullable(this.sectorBarclay3, smBondFields.sectorBarclay3) &&
        equalsNullable(this.sectorBarclay4, smBondFields.sectorBarclay4) &&
        equalsNullable(this.sectorDef, smBondFields.sectorDef) &&
        equalsNullable(this.sectorIndustry, smBondFields.sectorIndustry) &&
        equalsNullable(this.sectorMain, smBondFields.sectorMain) &&
        equalsNullable(this.sectorMerrill1, smBondFields.sectorMerrill1) &&
        equalsNullable(this.sectorMerrill2, smBondFields.sectorMerrill2) &&
        equalsNullable(this.sectorMerrill3, smBondFields.sectorMerrill3) &&
        equalsNullable(this.sectorMerrill4, smBondFields.sectorMerrill4) &&
        equalsNullable(this.sectorSubGroup, smBondFields.sectorSubGroup) &&
        equalsNullable(this.sinkAmts, smBondFields.sinkAmts) &&
        equalsNullable(this.sinkDates, smBondFields.sinkDates) &&
        equalsNullable(this.spread, smBondFields.spread) &&
        equalsNullable(this.state, smBondFields.state) &&
        equalsNullable(this.status, smBondFields.status) &&
        equalsNullable(this.statusDates, smBondFields.statusDates) &&
        equalsNullable(this.statusValues, smBondFields.statusValues) &&
        equalsNullable(this.stepCashRates, smBondFields.stepCashRates) &&
        equalsNullable(this.stepCouponDates, smBondFields.stepCouponDates) &&
        equalsNullable(this.stepCoupons, smBondFields.stepCoupons) &&
        equalsNullable(this.stepPikRates, smBondFields.stepPikRates) &&
        equalsNullable(this.vendorCoverageDate, smBondFields.vendorCoverageDate) &&
        equalsNullable(this.vRDNFlag, smBondFields.vRDNFlag) &&
        Objects.equals(this.securityType, smBondFields.securityType);
  }

  private static  boolean equalsNullable(JsonNullable a, JsonNullable b) {
    return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get()));
  }

  @Override
  public int hashCode() {
    return Objects.hash(hashCodeNullable(_144aFlag), hashCodeNullable(aperiodicMultipliers), hashCodeNullable(aperiodicResetDates), hashCodeNullable(aperiodicSpreads), hashCodeNullable(businessDayConv), hashCodeNullable(callAnnouncedDate), hashCodeNullable(callDates), hashCodeNullable(callFreq), hashCodeNullable(callNoticeDays), hashCodeNullable(callPrices), hashCodeNullable(cashRate), hashCodeNullable(cognity), hashCodeNullable(conversionIdentifier), hashCodeNullable(conversionRatio), hashCodeNullable(conversionType), hashCodeNullable(convertibleFlag), hashCodeNullable(country), hashCodeNullable(coupon), hashCodeNullable(couponType), hashCodeNullable(creditSpreadAdjustmentSingle), hashCodeNullable(currency), hashCodeNullable(dayCountBasis), hashCodeNullable(defaultedDate), hashCodeNullable(federalTaxExemptFlag), hashCodeNullable(firstPayDate), hashCodeNullable(firstResetDate), hashCodeNullable(floatFormula), hashCodeNullable(fltDayCountBasis), hashCodeNullable(fltFirstPayDate), hashCodeNullable(fltPayFreq), hashCodeNullable(histCouponDates), hashCodeNullable(histCoupons), hashCodeNullable(histRcvAssumpDates), hashCodeNullable(histRcvAssumpMonths), hashCodeNullable(histRcvAssumpRates), hashCodeNullable(histRcvAssumpTargetDates), hashCodeNullable(inflationType), hashCodeNullable(issueDate), hashCodeNullable(issueName), hashCodeNullable(issuerId), hashCodeNullable(lastModifiedSource), hashCodeNullable(lastModifiedSourceMeta), hashCodeNullable(lastModifiedTime), hashCodeNullable(lifeCap), hashCodeNullable(lifeFloor), hashCodeNullable(lockoutDays), hashCodeNullable(lookBackDays), hashCodeNullable(makeWholeCallFlag), hashCodeNullable(makeWholeExpireDate), hashCodeNullable(makeWholeSpread), hashCodeNullable(matrixDates), hashCodeNullable(matrixMultipliers), hashCodeNullable(matrixPricedFlag), hashCodeNullable(matrixSpreads), hashCodeNullable(matrixUseScheduleFlag), hashCodeNullable(maturityDate), hashCodeNullable(maturityPrice), hashCodeNullable(monthsToRecovery), hashCodeNullable(multiplier), hashCodeNullable(notionalFlag), hashCodeNullable(observationShift), hashCodeNullable(origAmtIssued), hashCodeNullable(parentName), hashCodeNullable(parPrice), hashCodeNullable(parserInfo), hashCodeNullable(paymentDelay), hashCodeNullable(payFreq), hashCodeNullable(periodCap), hashCodeNullable(periodFloor), hashCodeNullable(pikExpDate), hashCodeNullable(pikRate), hashCodeNullable(preferredSecExDateLen), hashCodeNullable(preferredSecExDateUnits), hashCodeNullable(preferredSecFlag), hashCodeNullable(preferredSecType), hashCodeNullable(principalType), hashCodeNullable(putDates), hashCodeNullable(putNoticeDays), hashCodeNullable(putFreq), hashCodeNullable(putPrices), hashCodeNullable(pvtPlacementFlag), hashCodeNullable(ratingFitch), hashCodeNullable(ratingFitchDates), hashCodeNullable(ratingFitchValues), hashCodeNullable(ratingMoodysDates), hashCodeNullable(ratingMoodysValues), hashCodeNullable(ratingSpDates), hashCodeNullable(ratingSpValues), hashCodeNullable(recoveryPercentage), hashCodeNullable(redemptionDate), hashCodeNullable(redemptionOpt), hashCodeNullable(redemptionPrice), hashCodeNullable(reinstatedDate), hashCodeNullable(resetDelay), hashCodeNullable(resetFreq), hashCodeNullable(refIndex), hashCodeNullable(secondaryToVendorFlag), hashCodeNullable(sector), hashCodeNullable(sectorBarclay1), hashCodeNullable(sectorBarclay2), hashCodeNullable(sectorBarclay3), hashCodeNullable(sectorBarclay4), hashCodeNullable(sectorDef), hashCodeNullable(sectorIndustry), hashCodeNullable(sectorMain), hashCodeNullable(sectorMerrill1), hashCodeNullable(sectorMerrill2), hashCodeNullable(sectorMerrill3), hashCodeNullable(sectorMerrill4), hashCodeNullable(sectorSubGroup), hashCodeNullable(sinkAmts), hashCodeNullable(sinkDates), hashCodeNullable(spread), hashCodeNullable(state), hashCodeNullable(status), hashCodeNullable(statusDates), hashCodeNullable(statusValues), hashCodeNullable(stepCashRates), hashCodeNullable(stepCouponDates), hashCodeNullable(stepCoupons), hashCodeNullable(stepPikRates), hashCodeNullable(vendorCoverageDate), hashCodeNullable(vRDNFlag), securityType);
  }

  private static  int hashCodeNullable(JsonNullable a) {
    if (a == null) {
      return 1;
    }
    return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31;
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class SMBondFields {\n");
    sb.append("    _144aFlag: ").append(toIndentedString(_144aFlag)).append("\n");
    sb.append("    aperiodicMultipliers: ").append(toIndentedString(aperiodicMultipliers)).append("\n");
    sb.append("    aperiodicResetDates: ").append(toIndentedString(aperiodicResetDates)).append("\n");
    sb.append("    aperiodicSpreads: ").append(toIndentedString(aperiodicSpreads)).append("\n");
    sb.append("    businessDayConv: ").append(toIndentedString(businessDayConv)).append("\n");
    sb.append("    callAnnouncedDate: ").append(toIndentedString(callAnnouncedDate)).append("\n");
    sb.append("    callDates: ").append(toIndentedString(callDates)).append("\n");
    sb.append("    callFreq: ").append(toIndentedString(callFreq)).append("\n");
    sb.append("    callNoticeDays: ").append(toIndentedString(callNoticeDays)).append("\n");
    sb.append("    callPrices: ").append(toIndentedString(callPrices)).append("\n");
    sb.append("    cashRate: ").append(toIndentedString(cashRate)).append("\n");
    sb.append("    cognity: ").append(toIndentedString(cognity)).append("\n");
    sb.append("    conversionIdentifier: ").append(toIndentedString(conversionIdentifier)).append("\n");
    sb.append("    conversionRatio: ").append(toIndentedString(conversionRatio)).append("\n");
    sb.append("    conversionType: ").append(toIndentedString(conversionType)).append("\n");
    sb.append("    convertibleFlag: ").append(toIndentedString(convertibleFlag)).append("\n");
    sb.append("    country: ").append(toIndentedString(country)).append("\n");
    sb.append("    coupon: ").append(toIndentedString(coupon)).append("\n");
    sb.append("    couponType: ").append(toIndentedString(couponType)).append("\n");
    sb.append("    creditSpreadAdjustmentSingle: ").append(toIndentedString(creditSpreadAdjustmentSingle)).append("\n");
    sb.append("    currency: ").append(toIndentedString(currency)).append("\n");
    sb.append("    dayCountBasis: ").append(toIndentedString(dayCountBasis)).append("\n");
    sb.append("    defaultedDate: ").append(toIndentedString(defaultedDate)).append("\n");
    sb.append("    federalTaxExemptFlag: ").append(toIndentedString(federalTaxExemptFlag)).append("\n");
    sb.append("    firstPayDate: ").append(toIndentedString(firstPayDate)).append("\n");
    sb.append("    firstResetDate: ").append(toIndentedString(firstResetDate)).append("\n");
    sb.append("    floatFormula: ").append(toIndentedString(floatFormula)).append("\n");
    sb.append("    fltDayCountBasis: ").append(toIndentedString(fltDayCountBasis)).append("\n");
    sb.append("    fltFirstPayDate: ").append(toIndentedString(fltFirstPayDate)).append("\n");
    sb.append("    fltPayFreq: ").append(toIndentedString(fltPayFreq)).append("\n");
    sb.append("    histCouponDates: ").append(toIndentedString(histCouponDates)).append("\n");
    sb.append("    histCoupons: ").append(toIndentedString(histCoupons)).append("\n");
    sb.append("    histRcvAssumpDates: ").append(toIndentedString(histRcvAssumpDates)).append("\n");
    sb.append("    histRcvAssumpMonths: ").append(toIndentedString(histRcvAssumpMonths)).append("\n");
    sb.append("    histRcvAssumpRates: ").append(toIndentedString(histRcvAssumpRates)).append("\n");
    sb.append("    histRcvAssumpTargetDates: ").append(toIndentedString(histRcvAssumpTargetDates)).append("\n");
    sb.append("    inflationType: ").append(toIndentedString(inflationType)).append("\n");
    sb.append("    issueDate: ").append(toIndentedString(issueDate)).append("\n");
    sb.append("    issueName: ").append(toIndentedString(issueName)).append("\n");
    sb.append("    issuerId: ").append(toIndentedString(issuerId)).append("\n");
    sb.append("    lastModifiedSource: ").append(toIndentedString(lastModifiedSource)).append("\n");
    sb.append("    lastModifiedSourceMeta: ").append(toIndentedString(lastModifiedSourceMeta)).append("\n");
    sb.append("    lastModifiedTime: ").append(toIndentedString(lastModifiedTime)).append("\n");
    sb.append("    lifeCap: ").append(toIndentedString(lifeCap)).append("\n");
    sb.append("    lifeFloor: ").append(toIndentedString(lifeFloor)).append("\n");
    sb.append("    lockoutDays: ").append(toIndentedString(lockoutDays)).append("\n");
    sb.append("    lookBackDays: ").append(toIndentedString(lookBackDays)).append("\n");
    sb.append("    makeWholeCallFlag: ").append(toIndentedString(makeWholeCallFlag)).append("\n");
    sb.append("    makeWholeExpireDate: ").append(toIndentedString(makeWholeExpireDate)).append("\n");
    sb.append("    makeWholeSpread: ").append(toIndentedString(makeWholeSpread)).append("\n");
    sb.append("    matrixDates: ").append(toIndentedString(matrixDates)).append("\n");
    sb.append("    matrixMultipliers: ").append(toIndentedString(matrixMultipliers)).append("\n");
    sb.append("    matrixPricedFlag: ").append(toIndentedString(matrixPricedFlag)).append("\n");
    sb.append("    matrixSpreads: ").append(toIndentedString(matrixSpreads)).append("\n");
    sb.append("    matrixUseScheduleFlag: ").append(toIndentedString(matrixUseScheduleFlag)).append("\n");
    sb.append("    maturityDate: ").append(toIndentedString(maturityDate)).append("\n");
    sb.append("    maturityPrice: ").append(toIndentedString(maturityPrice)).append("\n");
    sb.append("    monthsToRecovery: ").append(toIndentedString(monthsToRecovery)).append("\n");
    sb.append("    multiplier: ").append(toIndentedString(multiplier)).append("\n");
    sb.append("    notionalFlag: ").append(toIndentedString(notionalFlag)).append("\n");
    sb.append("    observationShift: ").append(toIndentedString(observationShift)).append("\n");
    sb.append("    origAmtIssued: ").append(toIndentedString(origAmtIssued)).append("\n");
    sb.append("    parentName: ").append(toIndentedString(parentName)).append("\n");
    sb.append("    parPrice: ").append(toIndentedString(parPrice)).append("\n");
    sb.append("    parserInfo: ").append(toIndentedString(parserInfo)).append("\n");
    sb.append("    paymentDelay: ").append(toIndentedString(paymentDelay)).append("\n");
    sb.append("    payFreq: ").append(toIndentedString(payFreq)).append("\n");
    sb.append("    periodCap: ").append(toIndentedString(periodCap)).append("\n");
    sb.append("    periodFloor: ").append(toIndentedString(periodFloor)).append("\n");
    sb.append("    pikExpDate: ").append(toIndentedString(pikExpDate)).append("\n");
    sb.append("    pikRate: ").append(toIndentedString(pikRate)).append("\n");
    sb.append("    preferredSecExDateLen: ").append(toIndentedString(preferredSecExDateLen)).append("\n");
    sb.append("    preferredSecExDateUnits: ").append(toIndentedString(preferredSecExDateUnits)).append("\n");
    sb.append("    preferredSecFlag: ").append(toIndentedString(preferredSecFlag)).append("\n");
    sb.append("    preferredSecType: ").append(toIndentedString(preferredSecType)).append("\n");
    sb.append("    principalType: ").append(toIndentedString(principalType)).append("\n");
    sb.append("    putDates: ").append(toIndentedString(putDates)).append("\n");
    sb.append("    putNoticeDays: ").append(toIndentedString(putNoticeDays)).append("\n");
    sb.append("    putFreq: ").append(toIndentedString(putFreq)).append("\n");
    sb.append("    putPrices: ").append(toIndentedString(putPrices)).append("\n");
    sb.append("    pvtPlacementFlag: ").append(toIndentedString(pvtPlacementFlag)).append("\n");
    sb.append("    ratingFitch: ").append(toIndentedString(ratingFitch)).append("\n");
    sb.append("    ratingFitchDates: ").append(toIndentedString(ratingFitchDates)).append("\n");
    sb.append("    ratingFitchValues: ").append(toIndentedString(ratingFitchValues)).append("\n");
    sb.append("    ratingMoodysDates: ").append(toIndentedString(ratingMoodysDates)).append("\n");
    sb.append("    ratingMoodysValues: ").append(toIndentedString(ratingMoodysValues)).append("\n");
    sb.append("    ratingSpDates: ").append(toIndentedString(ratingSpDates)).append("\n");
    sb.append("    ratingSpValues: ").append(toIndentedString(ratingSpValues)).append("\n");
    sb.append("    recoveryPercentage: ").append(toIndentedString(recoveryPercentage)).append("\n");
    sb.append("    redemptionDate: ").append(toIndentedString(redemptionDate)).append("\n");
    sb.append("    redemptionOpt: ").append(toIndentedString(redemptionOpt)).append("\n");
    sb.append("    redemptionPrice: ").append(toIndentedString(redemptionPrice)).append("\n");
    sb.append("    reinstatedDate: ").append(toIndentedString(reinstatedDate)).append("\n");
    sb.append("    resetDelay: ").append(toIndentedString(resetDelay)).append("\n");
    sb.append("    resetFreq: ").append(toIndentedString(resetFreq)).append("\n");
    sb.append("    refIndex: ").append(toIndentedString(refIndex)).append("\n");
    sb.append("    secondaryToVendorFlag: ").append(toIndentedString(secondaryToVendorFlag)).append("\n");
    sb.append("    sector: ").append(toIndentedString(sector)).append("\n");
    sb.append("    sectorBarclay1: ").append(toIndentedString(sectorBarclay1)).append("\n");
    sb.append("    sectorBarclay2: ").append(toIndentedString(sectorBarclay2)).append("\n");
    sb.append("    sectorBarclay3: ").append(toIndentedString(sectorBarclay3)).append("\n");
    sb.append("    sectorBarclay4: ").append(toIndentedString(sectorBarclay4)).append("\n");
    sb.append("    sectorDef: ").append(toIndentedString(sectorDef)).append("\n");
    sb.append("    sectorIndustry: ").append(toIndentedString(sectorIndustry)).append("\n");
    sb.append("    sectorMain: ").append(toIndentedString(sectorMain)).append("\n");
    sb.append("    sectorMerrill1: ").append(toIndentedString(sectorMerrill1)).append("\n");
    sb.append("    sectorMerrill2: ").append(toIndentedString(sectorMerrill2)).append("\n");
    sb.append("    sectorMerrill3: ").append(toIndentedString(sectorMerrill3)).append("\n");
    sb.append("    sectorMerrill4: ").append(toIndentedString(sectorMerrill4)).append("\n");
    sb.append("    sectorSubGroup: ").append(toIndentedString(sectorSubGroup)).append("\n");
    sb.append("    sinkAmts: ").append(toIndentedString(sinkAmts)).append("\n");
    sb.append("    sinkDates: ").append(toIndentedString(sinkDates)).append("\n");
    sb.append("    spread: ").append(toIndentedString(spread)).append("\n");
    sb.append("    state: ").append(toIndentedString(state)).append("\n");
    sb.append("    status: ").append(toIndentedString(status)).append("\n");
    sb.append("    statusDates: ").append(toIndentedString(statusDates)).append("\n");
    sb.append("    statusValues: ").append(toIndentedString(statusValues)).append("\n");
    sb.append("    stepCashRates: ").append(toIndentedString(stepCashRates)).append("\n");
    sb.append("    stepCouponDates: ").append(toIndentedString(stepCouponDates)).append("\n");
    sb.append("    stepCoupons: ").append(toIndentedString(stepCoupons)).append("\n");
    sb.append("    stepPikRates: ").append(toIndentedString(stepPikRates)).append("\n");
    sb.append("    vendorCoverageDate: ").append(toIndentedString(vendorCoverageDate)).append("\n");
    sb.append("    vRDNFlag: ").append(toIndentedString(vRDNFlag)).append("\n");
    sb.append("    securityType: ").append(toIndentedString(securityType)).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    ");
  }

}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy