{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "definitions": {
        "org.isda.cdm.AdjustableDates": {
            "title": "AdjustableDates",
            "description": "An instance of org.isda.cdm.AdjustableDates",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdjustableDates",
                    "pattern": "^org\\.isda\\.cdm\\.AdjustableDates$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "unadjustedDate": {
                    "type": "array",
                    "items": {
                        "format": "date-time",
                        "type": "string"
                    }
                },
                "adjustedDate": {
                    "type": "array",
                    "items": {
                        "format": "date-time",
                        "type": "string"
                    }
                },
                "dateAdjustments": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayAdjustments"
                }
            },
            "required": ["$class", "id", "unadjustedDate", "adjustedDate", "dateAdjustments"]
        },
        "org.isda.cdm.AdjustableDatesBuilder": {
            "title": "AdjustableDatesBuilder",
            "description": "An instance of org.isda.cdm.AdjustableDatesBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdjustableDatesBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AdjustableDatesBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "unadjustedDate": {
                    "type": "array",
                    "items": {
                        "format": "date-time",
                        "type": "string"
                    }
                },
                "adjustedDate": {
                    "type": "array",
                    "items": {
                        "format": "date-time",
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "id", "unadjustedDate", "adjustedDate"]
        },
        "org.isda.cdm.AmountSchedule": {
            "title": "AmountSchedule",
            "description": "An instance of org.isda.cdm.AmountSchedule",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AmountSchedule",
                    "pattern": "^org\\.isda\\.cdm\\.AmountSchedule$",
                    "description": "The class identifier for this type"
                },
                "currency": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "currencyScheme": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "initialValue": {
                    "type": "number"
                },
                "step": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Step"
                    }
                }
            },
            "required": ["$class", "currency", "currencyScheme", "id", "initialValue", "step"]
        },
        "org.isda.cdm.AmountScheduleBuilder": {
            "title": "AmountScheduleBuilder",
            "description": "An instance of org.isda.cdm.AmountScheduleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AmountScheduleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AmountScheduleBuilder$",
                    "description": "The class identifier for this type"
                },
                "currency": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "currencyScheme": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "initialValue": {
                    "type": "number"
                }
            },
            "required": ["$class", "currency", "currencyScheme", "id", "initialValue"]
        },
        "org.isda.cdm.NonNegativeStep": {
            "title": "NonNegativeStep",
            "description": "An instance of org.isda.cdm.NonNegativeStep",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NonNegativeStep",
                    "pattern": "^org\\.isda\\.cdm\\.NonNegativeStep$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "stepDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "stepValue": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "stepDate", "stepValue"]
        },
        "org.isda.cdm.NonNegativeStepBuilder": {
            "title": "NonNegativeStepBuilder",
            "description": "An instance of org.isda.cdm.NonNegativeStepBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NonNegativeStepBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.NonNegativeStepBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "stepDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "stepValue": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "stepDate", "stepValue"]
        },
        "org.isda.cdm.ComputedAmount": {
            "title": "ComputedAmount",
            "description": "An instance of org.isda.cdm.ComputedAmount",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ComputedAmount",
                    "pattern": "^org\\.isda\\.cdm\\.ComputedAmount$",
                    "description": "The class identifier for this type"
                },
                "currency": {
                    "type": "string"
                },
                "callFunction": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                },
                "amount": {
                    "type": "number"
                }
            },
            "required": ["$class", "currency", "callFunction", "currencyScheme", "amount"]
        },
        "org.isda.cdm.ComputedAmountBuilder": {
            "title": "ComputedAmountBuilder",
            "description": "An instance of org.isda.cdm.ComputedAmountBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ComputedAmountBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ComputedAmountBuilder$",
                    "description": "The class identifier for this type"
                },
                "currency": {
                    "type": "string"
                },
                "callFunction": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                },
                "amount": {
                    "type": "number"
                }
            },
            "required": ["$class", "currency", "callFunction", "currencyScheme", "amount"]
        },
        "org.isda.cdm.InterestShortFall": {
            "title": "InterestShortFall",
            "description": "An instance of org.isda.cdm.InterestShortFall",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.InterestShortFall",
                    "pattern": "^org\\.isda\\.cdm\\.InterestShortFall$",
                    "description": "The class identifier for this type"
                },
                "interestShortfallCap": {
                    "$ref": "#/definitions/org.isda.cdm.InterestShortfallCapEnum"
                },
                "compounding": {
                    "type": "boolean"
                },
                "rateSource": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                }
            },
            "required": ["$class", "interestShortfallCap", "compounding", "rateSource"]
        },
        "org.isda.cdm.InterestShortFallBuilder": {
            "title": "InterestShortFallBuilder",
            "description": "An instance of org.isda.cdm.InterestShortFallBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.InterestShortFallBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.InterestShortFallBuilder$",
                    "description": "The class identifier for this type"
                },
                "interestShortfallCap": {
                    "$ref": "#/definitions/org.isda.cdm.InterestShortfallCapEnum"
                },
                "compounding": {
                    "type": "boolean"
                },
                "rateSource": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                }
            },
            "required": ["$class", "interestShortfallCap", "compounding", "rateSource"]
        },
        "org.isda.cdm.TradeHeaderBuilder": {
            "title": "TradeHeaderBuilder",
            "description": "An instance of org.isda.cdm.TradeHeaderBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.TradeHeaderBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.TradeHeaderBuilder$",
                    "description": "The class identifier for this type"
                },
                "tradeDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "tradeDate"]
        },
        "org.isda.cdm.TradeHeader": {
            "title": "TradeHeader",
            "description": "An instance of org.isda.cdm.TradeHeader",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.TradeHeader",
                    "pattern": "^org\\.isda\\.cdm\\.TradeHeader$",
                    "description": "The class identifier for this type"
                },
                "identifier": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.PartyContractIdentifier"
                    }
                },
                "tradeDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "identifier", "tradeDate"]
        },
        "org.isda.cdm.PaymentDetail": {
            "title": "PaymentDetail",
            "description": "An instance of org.isda.cdm.PaymentDetail",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PaymentDetail",
                    "pattern": "^org\\.isda\\.cdm\\.PaymentDetail$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "paymentDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableOrAdjustedDate"
                },
                "paymentRule": {
                    "$ref": "#/definitions/org.isda.cdm.PaymentRule"
                },
                "paymentAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                }
            },
            "required": ["$class", "id", "paymentDate", "paymentRule", "paymentAmount"]
        },
        "org.isda.cdm.PaymentDetailBuilder": {
            "title": "PaymentDetailBuilder",
            "description": "An instance of org.isda.cdm.PaymentDetailBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PaymentDetailBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PaymentDetailBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                }
            },
            "required": ["$class", "id"]
        },
        "org.isda.cdm.PaymentRule": {
            "title": "PaymentRule",
            "description": "An instance of org.isda.cdm.PaymentRule",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PaymentRule",
                    "pattern": "^org\\.isda\\.cdm\\.PaymentRule$",
                    "description": "The class identifier for this type"
                },
                "percentageRule": {
                    "$ref": "#/definitions/org.isda.cdm.PercentageRule"
                }
            },
            "required": ["$class", "percentageRule"]
        },
        "org.isda.cdm.PaymentRuleBuilder": {
            "title": "PaymentRuleBuilder",
            "description": "An instance of org.isda.cdm.PaymentRuleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PaymentRuleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PaymentRuleBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.AllocationOutcome": {
            "title": "AllocationOutcome",
            "description": "An instance of org.isda.cdm.AllocationOutcome",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AllocationOutcome",
                    "pattern": "^org\\.isda\\.cdm\\.AllocationOutcome$",
                    "description": "The class identifier for this type"
                },
                "execution": {
                    "$ref": "#/definitions/org.isda.cdm.ExecutionReference"
                },
                "contractReference": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ContractReference"
                    }
                },
                "contract": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Contract"
                    }
                }
            },
            "required": ["$class", "execution", "contractReference", "contract"]
        },
        "org.isda.cdm.AllocationOutcomeBuilder": {
            "title": "AllocationOutcomeBuilder",
            "description": "An instance of org.isda.cdm.AllocationOutcomeBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AllocationOutcomeBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AllocationOutcomeBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.Account": {
            "title": "Account",
            "description": "An instance of org.isda.cdm.Account",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Account",
                    "pattern": "^org\\.isda\\.cdm\\.Account$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "accountNumber": {
                    "type": "string"
                },
                "accountName": {
                    "type": "string"
                },
                "accountType": {
                    "$ref": "#/definitions/org.isda.cdm.AccountTypeEnum"
                },
                "accountBeneficiary": {
                    "type": "string"
                },
                "servicingParty": {
                    "type": "string"
                },
                "accountNameScheme": {
                    "type": "string"
                },
                "accountNumberScheme": {
                    "type": "string"
                },
                "accountTypeScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "accountNumber", "accountName", "accountType", "accountBeneficiary", "servicingParty", "accountNameScheme", "accountNumberScheme", "accountTypeScheme"]
        },
        "org.isda.cdm.AccountBuilder": {
            "title": "AccountBuilder",
            "description": "An instance of org.isda.cdm.AccountBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AccountBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AccountBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "accountNumber": {
                    "type": "string"
                },
                "accountName": {
                    "type": "string"
                },
                "accountType": {
                    "$ref": "#/definitions/org.isda.cdm.AccountTypeEnum"
                },
                "accountBeneficiary": {
                    "type": "string"
                },
                "servicingParty": {
                    "type": "string"
                },
                "accountNameScheme": {
                    "type": "string"
                },
                "accountNumberScheme": {
                    "type": "string"
                },
                "accountTypeScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "accountNumber", "accountName", "accountType", "accountBeneficiary", "servicingParty", "accountNameScheme", "accountNumberScheme", "accountTypeScheme"]
        },
        "org.isda.cdm.ContractualDefinitionsEnum": {
            "title": "ContractualDefinitionsEnum",
            "description": "An instance of org.isda.cdm.ContractualDefinitionsEnum",
            "enum": [
                "ISDA1991",
                "ISDA_1993_COMMODITY",
                "ISDA_1996_EQUITY",
                "ISDA_1997_BULLION",
                "ISDA_1997_GOVERNMENT_BOND",
                "ISDA1998FX",
                "ISDA_1999_CREDIT",
                "ISDA2000",
                "ISDA_2002_EQUITY",
                "ISDA_2003_CREDIT",
                "ISDA_2004_NOVATION",
                "ISDA_2005_COMMODITY",
                "ISDA2006",
                "ISDA_2006_INFLATION",
                "ISDA_2008_INFLATION",
                "ISDA_2011_EQUITY",
                "ISDA_2014_CREDIT"
            ]
        },
        "org.isda.cdm.BermudaExercise": {
            "title": "BermudaExercise",
            "description": "An instance of org.isda.cdm.BermudaExercise",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BermudaExercise",
                    "pattern": "^org\\.isda\\.cdm\\.BermudaExercise$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "relevantUnderlyingDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableOrRelativeDates"
                },
                "earliestExerciseTime": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterTime"
                },
                "expirationTime": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterTime"
                },
                "bermudaExerciseDates": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableOrRelativeDates"
                },
                "latestExerciseTime": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterTime"
                },
                "multipleExercise": {
                    "$ref": "#/definitions/org.isda.cdm.MultipleExercise"
                },
                "exerciseFeeSchedule": {
                    "$ref": "#/definitions/org.isda.cdm.ExerciseFeeSchedule"
                }
            },
            "required": ["$class", "id", "relevantUnderlyingDate", "earliestExerciseTime", "expirationTime", "bermudaExerciseDates", "latestExerciseTime", "multipleExercise", "exerciseFeeSchedule"]
        },
        "org.isda.cdm.BermudaExerciseBuilder": {
            "title": "BermudaExerciseBuilder",
            "description": "An instance of org.isda.cdm.BermudaExerciseBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BermudaExerciseBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.BermudaExerciseBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                }
            },
            "required": ["$class", "id"]
        },
        "org.isda.cdm.ContractualMatrix": {
            "title": "ContractualMatrix",
            "description": "An instance of org.isda.cdm.ContractualMatrix",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractualMatrix",
                    "pattern": "^org\\.isda\\.cdm\\.ContractualMatrix$",
                    "description": "The class identifier for this type"
                },
                "matrixType": {
                    "$ref": "#/definitions/org.isda.cdm.MatrixTypeEnum"
                },
                "publicationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "matrixTerm": {
                    "$ref": "#/definitions/org.isda.cdm.MatrixTermEnum"
                },
                "matrixTermScheme": {
                    "type": "string"
                },
                "matrixTypeScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "matrixType", "publicationDate", "matrixTerm", "matrixTermScheme", "matrixTypeScheme"]
        },
        "org.isda.cdm.ContractualMatrixBuilder": {
            "title": "ContractualMatrixBuilder",
            "description": "An instance of org.isda.cdm.ContractualMatrixBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractualMatrixBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ContractualMatrixBuilder$",
                    "description": "The class identifier for this type"
                },
                "matrixType": {
                    "$ref": "#/definitions/org.isda.cdm.MatrixTypeEnum"
                },
                "publicationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "matrixTerm": {
                    "$ref": "#/definitions/org.isda.cdm.MatrixTermEnum"
                },
                "matrixTermScheme": {
                    "type": "string"
                },
                "matrixTypeScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "matrixType", "publicationDate", "matrixTerm", "matrixTermScheme", "matrixTypeScheme"]
        },
        "org.isda.cdm.PhysicalExercise": {
            "title": "PhysicalExercise",
            "description": "An instance of org.isda.cdm.PhysicalExercise",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PhysicalExercise",
                    "pattern": "^org\\.isda\\.cdm\\.PhysicalExercise$",
                    "description": "The class identifier for this type"
                },
                "cashflow": {
                    "$ref": "#/definitions/org.isda.cdm.Cashflow"
                },
                "commodity": {
                    "$ref": "#/definitions/org.isda.cdm.Commodity"
                },
                "listedProduct": {
                    "$ref": "#/definitions/org.isda.cdm.ListedProduct"
                },
                "quantity": {
                    "$ref": "#/definitions/org.isda.cdm.Quantity"
                },
                "contractReference": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ContractReference"
                    }
                },
                "contract": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Contract"
                    }
                }
            },
            "required": ["$class", "cashflow", "commodity", "listedProduct", "quantity", "contractReference", "contract"]
        },
        "org.isda.cdm.PhysicalExerciseBuilder": {
            "title": "PhysicalExerciseBuilder",
            "description": "An instance of org.isda.cdm.PhysicalExerciseBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PhysicalExerciseBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PhysicalExerciseBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.InterestRateCurveBuilder": {
            "title": "InterestRateCurveBuilder",
            "description": "An instance of org.isda.cdm.InterestRateCurveBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.InterestRateCurveBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.InterestRateCurveBuilder$",
                    "description": "The class identifier for this type"
                },
                "floatingRateIndexScheme": {
                    "type": "string"
                },
                "floatingRateIndex": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                }
            },
            "required": ["$class", "floatingRateIndexScheme", "floatingRateIndex"]
        },
        "org.isda.cdm.InterestRateCurve": {
            "title": "InterestRateCurve",
            "description": "An instance of org.isda.cdm.InterestRateCurve",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.InterestRateCurve",
                    "pattern": "^org\\.isda\\.cdm\\.InterestRateCurve$",
                    "description": "The class identifier for this type"
                },
                "floatingRateIndexScheme": {
                    "type": "string"
                },
                "floatingRateIndex": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                },
                "tenor": {
                    "$ref": "#/definitions/org.isda.cdm.Period"
                }
            },
            "required": ["$class", "floatingRateIndexScheme", "floatingRateIndex", "tenor"]
        },
        "org.isda.cdm.RelativeDateOffset": {
            "title": "RelativeDateOffset",
            "description": "An instance of org.isda.cdm.RelativeDateOffset",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.RelativeDateOffset",
                    "pattern": "^org\\.isda\\.cdm\\.RelativeDateOffset$",
                    "description": "The class identifier for this type"
                },
                "businessDayConvention": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayConventionEnum"
                },
                "businessCenters": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenters"
                },
                "businessCentersReference": {
                    "type": "string"
                },
                "dateRelativeTo": {
                    "type": "string"
                },
                "adjustedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "dayType": {
                    "$ref": "#/definitions/org.isda.cdm.DayTypeEnum"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": ["$class", "businessDayConvention", "businessCenters", "businessCentersReference", "dateRelativeTo", "adjustedDate", "dayType", "id", "period", "periodMultiplier"]
        },
        "org.isda.cdm.RelativeDateOffsetBuilder": {
            "title": "RelativeDateOffsetBuilder",
            "description": "An instance of org.isda.cdm.RelativeDateOffsetBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.RelativeDateOffsetBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.RelativeDateOffsetBuilder$",
                    "description": "The class identifier for this type"
                },
                "businessDayConvention": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayConventionEnum"
                },
                "businessCentersReference": {
                    "type": "string"
                },
                "dateRelativeTo": {
                    "type": "string"
                },
                "adjustedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "dayType": {
                    "$ref": "#/definitions/org.isda.cdm.DayTypeEnum"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": ["$class", "businessDayConvention", "businessCentersReference", "dateRelativeTo", "adjustedDate", "dayType", "id", "period", "periodMultiplier"]
        },
        "org.isda.cdm.PayoutLineage": {
            "title": "PayoutLineage",
            "description": "An instance of org.isda.cdm.PayoutLineage",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PayoutLineage",
                    "pattern": "^org\\.isda\\.cdm\\.PayoutLineage$",
                    "description": "The class identifier for this type"
                },
                "cashflow": {
                    "type": "string"
                },
                "optionPayout": {
                    "type": "string"
                },
                "creditDefaultPayout": {
                    "type": "string"
                },
                "payoutReference": {
                    "type": "string"
                },
                "interestRatePayout": {
                    "type": "string"
                }
            },
            "required": ["$class", "cashflow", "optionPayout", "creditDefaultPayout", "payoutReference", "interestRatePayout"]
        },
        "org.isda.cdm.PayoutLineageBuilder": {
            "title": "PayoutLineageBuilder",
            "description": "An instance of org.isda.cdm.PayoutLineageBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PayoutLineageBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PayoutLineageBuilder$",
                    "description": "The class identifier for this type"
                },
                "cashflow": {
                    "type": "string"
                },
                "optionPayout": {
                    "type": "string"
                },
                "creditDefaultPayout": {
                    "type": "string"
                },
                "payoutReference": {
                    "type": "string"
                },
                "interestRatePayout": {
                    "type": "string"
                }
            },
            "required": ["$class", "cashflow", "optionPayout", "creditDefaultPayout", "payoutReference", "interestRatePayout"]
        },
        "org.isda.cdm.ManualExercise": {
            "title": "ManualExercise",
            "description": "An instance of org.isda.cdm.ManualExercise",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ManualExercise",
                    "pattern": "^org\\.isda\\.cdm\\.ManualExercise$",
                    "description": "The class identifier for this type"
                },
                "exerciseNotice": {
                    "$ref": "#/definitions/org.isda.cdm.ExerciseNotice"
                },
                "fallbackExercise": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "exerciseNotice", "fallbackExercise"]
        },
        "org.isda.cdm.ManualExerciseBuilder": {
            "title": "ManualExerciseBuilder",
            "description": "An instance of org.isda.cdm.ManualExerciseBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ManualExerciseBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ManualExerciseBuilder$",
                    "description": "The class identifier for this type"
                },
                "fallbackExercise": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "fallbackExercise"]
        },
        "org.isda.cdm.GeneralTerms": {
            "title": "GeneralTerms",
            "description": "An instance of org.isda.cdm.GeneralTerms",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.GeneralTerms",
                    "pattern": "^org\\.isda\\.cdm\\.GeneralTerms$",
                    "description": "The class identifier for this type"
                },
                "additionalTermScheme": {
                    "type": "string"
                },
                "buyerSeller": {
                    "$ref": "#/definitions/org.isda.cdm.BuyerSeller"
                },
                "referenceInformation": {
                    "$ref": "#/definitions/org.isda.cdm.ReferenceInformation"
                },
                "indexReferenceInformation": {
                    "$ref": "#/definitions/org.isda.cdm.IndexReferenceInformation"
                },
                "substitution": {
                    "type": "boolean"
                },
                "modifiedEquityDelivery": {
                    "type": "boolean"
                },
                "basketReferenceInformation": {
                    "$ref": "#/definitions/org.isda.cdm.BasketReferenceInformation"
                },
                "additionalTerm": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "dateAdjustments": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayAdjustments"
                }
            },
            "required": [
                "$class",
                "additionalTermScheme",
                "buyerSeller",
                "referenceInformation",
                "indexReferenceInformation",
                "substitution",
                "modifiedEquityDelivery",
                "basketReferenceInformation",
                "additionalTerm",
                "dateAdjustments"
            ]
        },
        "org.isda.cdm.GeneralTermsBuilder": {
            "title": "GeneralTermsBuilder",
            "description": "An instance of org.isda.cdm.GeneralTermsBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.GeneralTermsBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.GeneralTermsBuilder$",
                    "description": "The class identifier for this type"
                },
                "additionalTermScheme": {
                    "type": "string"
                },
                "substitution": {
                    "type": "boolean"
                },
                "modifiedEquityDelivery": {
                    "type": "boolean"
                },
                "additionalTerm": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "additionalTermScheme", "substitution", "modifiedEquityDelivery", "additionalTerm"]
        },
        "org.isda.cdm.ListedProduct": {
            "title": "ListedProduct",
            "description": "An instance of org.isda.cdm.ListedProduct",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ListedProduct",
                    "pattern": "^org\\.isda\\.cdm\\.ListedProduct$",
                    "description": "The class identifier for this type"
                },
                "bond": {
                    "$ref": "#/definitions/org.isda.cdm.Bond"
                },
                "convertibleBond": {
                    "$ref": "#/definitions/org.isda.cdm.ConvertibleBond"
                },
                "rosettaKey": {
                    "type": "string"
                }
            },
            "required": ["$class", "bond", "convertibleBond", "rosettaKey"]
        },
        "org.isda.cdm.ListedProductBuilder": {
            "title": "ListedProductBuilder",
            "description": "An instance of org.isda.cdm.ListedProductBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ListedProductBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ListedProductBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.RoundingDirectionEnum": {
            "title": "RoundingDirectionEnum",
            "description": "An instance of org.isda.cdm.RoundingDirectionEnum",
            "enum": ["UP", "DOWN", "NEAREST"]
        },
        "org.isda.cdm.NewTradePrimitiveBuilder": {
            "title": "NewTradePrimitiveBuilder",
            "description": "An instance of org.isda.cdm.NewTradePrimitiveBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NewTradePrimitiveBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.NewTradePrimitiveBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.NewTradePrimitive": {
            "title": "NewTradePrimitive",
            "description": "An instance of org.isda.cdm.NewTradePrimitive",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NewTradePrimitive",
                    "pattern": "^org\\.isda\\.cdm\\.NewTradePrimitive$",
                    "description": "The class identifier for this type"
                },
                "contractReference": {
                    "$ref": "#/definitions/org.isda.cdm.ContractIdentifier"
                },
                "contract": {
                    "$ref": "#/definitions/org.isda.cdm.Contract"
                }
            },
            "required": ["$class", "contractReference", "contract"]
        },
        "org.isda.cdm.IndexReferenceInformationBuilder": {
            "title": "IndexReferenceInformationBuilder",
            "description": "An instance of org.isda.cdm.IndexReferenceInformationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.IndexReferenceInformationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.IndexReferenceInformationBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "indexAnnexVersion": {
                    "type": "integer"
                },
                "indexAnnexSourceScheme": {
                    "type": "string"
                },
                "indexIdScheme": {
                    "type": "string"
                },
                "indexNameScheme": {
                    "type": "string"
                },
                "indexSeries": {
                    "type": "integer"
                },
                "indexName": {
                    "type": "string"
                },
                "indexId": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "indexAnnexDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "indexAnnexSource": {
                    "$ref": "#/definitions/org.isda.cdm.IndexAnnexSourceEnum"
                }
            },
            "required": ["$class", "id", "indexAnnexVersion", "indexAnnexSourceScheme", "indexIdScheme", "indexNameScheme", "indexSeries", "indexName", "indexId", "indexAnnexDate", "indexAnnexSource"]
        },
        "org.isda.cdm.IndexReferenceInformation": {
            "title": "IndexReferenceInformation",
            "description": "An instance of org.isda.cdm.IndexReferenceInformation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.IndexReferenceInformation",
                    "pattern": "^org\\.isda\\.cdm\\.IndexReferenceInformation$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "indexAnnexVersion": {
                    "type": "integer"
                },
                "indexAnnexSourceScheme": {
                    "type": "string"
                },
                "indexIdScheme": {
                    "type": "string"
                },
                "indexNameScheme": {
                    "type": "string"
                },
                "tranche": {
                    "$ref": "#/definitions/org.isda.cdm.Tranche"
                },
                "indexSeries": {
                    "type": "integer"
                },
                "indexName": {
                    "type": "string"
                },
                "indexId": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "indexAnnexDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "indexAnnexSource": {
                    "$ref": "#/definitions/org.isda.cdm.IndexAnnexSourceEnum"
                },
                "excludedReferenceEntity": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.LegalEntity"
                    }
                },
                "settledEntityMatrix": {
                    "$ref": "#/definitions/org.isda.cdm.SettledEntityMatrix"
                }
            },
            "required": [
                "$class",
                "id",
                "indexAnnexVersion",
                "indexAnnexSourceScheme",
                "indexIdScheme",
                "indexNameScheme",
                "tranche",
                "indexSeries",
                "indexName",
                "indexId",
                "indexAnnexDate",
                "indexAnnexSource",
                "excludedReferenceEntity",
                "settledEntityMatrix"
            ]
        },
        "org.isda.cdm.ContractOrContractReference": {
            "title": "ContractOrContractReference",
            "description": "An instance of org.isda.cdm.ContractOrContractReference",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractOrContractReference",
                    "pattern": "^org\\.isda\\.cdm\\.ContractOrContractReference$",
                    "description": "The class identifier for this type"
                },
                "contractReference": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ContractReference"
                    }
                },
                "contract": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Contract"
                    }
                }
            },
            "required": ["$class", "contractReference", "contract"]
        },
        "org.isda.cdm.ContractOrContractReferenceBuilder": {
            "title": "ContractOrContractReferenceBuilder",
            "description": "An instance of org.isda.cdm.ContractOrContractReferenceBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractOrContractReferenceBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ContractOrContractReferenceBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.StepRelativeToEnum": {
            "title": "StepRelativeToEnum",
            "description": "An instance of org.isda.cdm.StepRelativeToEnum",
            "enum": ["INITIAL", "PREVIOUS"]
        },
        "org.isda.cdm.TransactedPriceBuilder": {
            "title": "TransactedPriceBuilder",
            "description": "An instance of org.isda.cdm.TransactedPriceBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.TransactedPriceBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.TransactedPriceBuilder$",
                    "description": "The class identifier for this type"
                },
                "initialPoints": {
                    "type": "number"
                },
                "quotationStyle": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationStyleEnum"
                },
                "marketFixedRate": {
                    "type": "number"
                },
                "marketPrice": {
                    "type": "number"
                }
            },
            "required": ["$class", "initialPoints", "quotationStyle", "marketFixedRate", "marketPrice"]
        },
        "org.isda.cdm.TransactedPrice": {
            "title": "TransactedPrice",
            "description": "An instance of org.isda.cdm.TransactedPrice",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.TransactedPrice",
                    "pattern": "^org\\.isda\\.cdm\\.TransactedPrice$",
                    "description": "The class identifier for this type"
                },
                "initialPoints": {
                    "type": "number"
                },
                "quotationStyle": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationStyleEnum"
                },
                "marketFixedRate": {
                    "type": "number"
                },
                "marketPrice": {
                    "type": "number"
                }
            },
            "required": ["$class", "initialPoints", "quotationStyle", "marketFixedRate", "marketPrice"]
        },
        "org.isda.cdm.Step": {
            "title": "Step",
            "description": "An instance of org.isda.cdm.Step",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Step",
                    "pattern": "^org\\.isda\\.cdm\\.Step$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "stepDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "stepValue": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "stepDate", "stepValue"]
        },
        "org.isda.cdm.StepBuilder": {
            "title": "StepBuilder",
            "description": "An instance of org.isda.cdm.StepBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StepBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.StepBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "stepDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "stepValue": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "stepDate", "stepValue"]
        },
        "org.isda.cdm.FxLinkedNotionalAmount": {
            "title": "FxLinkedNotionalAmount",
            "description": "An instance of org.isda.cdm.FxLinkedNotionalAmount",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FxLinkedNotionalAmount",
                    "pattern": "^org\\.isda\\.cdm\\.FxLinkedNotionalAmount$",
                    "description": "The class identifier for this type"
                },
                "notionalAmount": {
                    "type": "number"
                },
                "resetDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedFxSpotFixingDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "observedFxSpotRate": {
                    "type": "number"
                }
            },
            "required": ["$class", "notionalAmount", "resetDate", "adjustedFxSpotFixingDate", "observedFxSpotRate"]
        },
        "org.isda.cdm.FxLinkedNotionalAmountBuilder": {
            "title": "FxLinkedNotionalAmountBuilder",
            "description": "An instance of org.isda.cdm.FxLinkedNotionalAmountBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FxLinkedNotionalAmountBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FxLinkedNotionalAmountBuilder$",
                    "description": "The class identifier for this type"
                },
                "notionalAmount": {
                    "type": "number"
                },
                "resetDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedFxSpotFixingDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "observedFxSpotRate": {
                    "type": "number"
                }
            },
            "required": ["$class", "notionalAmount", "resetDate", "adjustedFxSpotFixingDate", "observedFxSpotRate"]
        },
        "org.isda.cdm.EarlyTerminationEvent": {
            "title": "EarlyTerminationEvent",
            "description": "An instance of org.isda.cdm.EarlyTerminationEvent",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EarlyTerminationEvent",
                    "pattern": "^org\\.isda\\.cdm\\.EarlyTerminationEvent$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "adjustedEarlyTerminationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedExerciseFeePaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedCashSettlementValuationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedCashSettlementPaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedExerciseDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "id", "adjustedEarlyTerminationDate", "adjustedExerciseFeePaymentDate", "adjustedCashSettlementValuationDate", "adjustedCashSettlementPaymentDate", "adjustedExerciseDate"]
        },
        "org.isda.cdm.EarlyTerminationEventBuilder": {
            "title": "EarlyTerminationEventBuilder",
            "description": "An instance of org.isda.cdm.EarlyTerminationEventBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EarlyTerminationEventBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.EarlyTerminationEventBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "adjustedEarlyTerminationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedExerciseFeePaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedCashSettlementValuationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedCashSettlementPaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedExerciseDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "id", "adjustedEarlyTerminationDate", "adjustedExerciseFeePaymentDate", "adjustedCashSettlementValuationDate", "adjustedCashSettlementPaymentDate", "adjustedExerciseDate"]
        },
        "org.isda.cdm.ObservationPrimitive": {
            "title": "ObservationPrimitive",
            "description": "An instance of org.isda.cdm.ObservationPrimitive",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ObservationPrimitive",
                    "pattern": "^org\\.isda\\.cdm\\.ObservationPrimitive$",
                    "description": "The class identifier for this type"
                },
                "side": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationSideEnum"
                },
                "source": {
                    "$ref": "#/definitions/org.isda.cdm.ObservationSource"
                },
                "observation": {
                    "type": "number"
                },
                "date": {
                    "format": "date-time",
                    "type": "string"
                },
                "time": {
                    "$ref": "#/definitions/org.isda.cdm.TimeZone"
                }
            },
            "required": ["$class", "side", "source", "observation", "date", "time"]
        },
        "org.isda.cdm.ObservationPrimitiveBuilder": {
            "title": "ObservationPrimitiveBuilder",
            "description": "An instance of org.isda.cdm.ObservationPrimitiveBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ObservationPrimitiveBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ObservationPrimitiveBuilder$",
                    "description": "The class identifier for this type"
                },
                "side": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationSideEnum"
                },
                "observation": {
                    "type": "number"
                },
                "date": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "side", "observation", "date"]
        },
        "org.isda.cdm.ValuationDate": {
            "title": "ValuationDate",
            "description": "An instance of org.isda.cdm.ValuationDate",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ValuationDate",
                    "pattern": "^org\\.isda\\.cdm\\.ValuationDate$",
                    "description": "The class identifier for this type"
                },
                "singleValuationDate": {
                    "$ref": "#/definitions/org.isda.cdm.SingleValuationDate"
                },
                "multipleValuationDates": {
                    "$ref": "#/definitions/org.isda.cdm.MultipleValuationDates"
                }
            },
            "required": ["$class", "singleValuationDate", "multipleValuationDates"]
        },
        "org.isda.cdm.ValuationDateBuilder": {
            "title": "ValuationDateBuilder",
            "description": "An instance of org.isda.cdm.ValuationDateBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ValuationDateBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ValuationDateBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.PartyRole": {
            "title": "PartyRole",
            "description": "An instance of org.isda.cdm.PartyRole",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PartyRole",
                    "pattern": "^org\\.isda\\.cdm\\.PartyRole$",
                    "description": "The class identifier for this type"
                },
                "role": {
                    "$ref": "#/definitions/org.isda.cdm.PartyRoleEnum"
                },
                "partyReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "role", "partyReference"]
        },
        "org.isda.cdm.PartyRoleBuilder": {
            "title": "PartyRoleBuilder",
            "description": "An instance of org.isda.cdm.PartyRoleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PartyRoleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PartyRoleBuilder$",
                    "description": "The class identifier for this type"
                },
                "role": {
                    "$ref": "#/definitions/org.isda.cdm.PartyRoleEnum"
                },
                "partyReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "role", "partyReference"]
        },
        "org.isda.cdm.TimeUnitEnum": {
            "title": "TimeUnitEnum",
            "description": "An instance of org.isda.cdm.TimeUnitEnum",
            "enum": ["SECOND", "MINUTE", "HOUR", "DAY", "WEEK", "MONTH", "YEAR"]
        },
        "org.isda.cdm.TimeZone": {
            "title": "TimeZone",
            "description": "An instance of org.isda.cdm.TimeZone",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.TimeZone",
                    "pattern": "^org\\.isda\\.cdm\\.TimeZone$",
                    "description": "The class identifier for this type"
                },
                "location": {
                    "type": "string"
                },
                "locationScheme": {
                    "type": "string"
                },
                "time": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "location", "locationScheme", "time"]
        },
        "org.isda.cdm.TimeZoneBuilder": {
            "title": "TimeZoneBuilder",
            "description": "An instance of org.isda.cdm.TimeZoneBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.TimeZoneBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.TimeZoneBuilder$",
                    "description": "The class identifier for this type"
                },
                "location": {
                    "type": "string"
                },
                "locationScheme": {
                    "type": "string"
                },
                "time": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "location", "locationScheme", "time"]
        },
        "org.isda.cdm.Tranche": {
            "title": "Tranche",
            "description": "An instance of org.isda.cdm.Tranche",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Tranche",
                    "pattern": "^org\\.isda\\.cdm\\.Tranche$",
                    "description": "The class identifier for this type"
                },
                "attachmentPoint": {
                    "type": "number"
                },
                "exhaustionPoint": {
                    "type": "number"
                },
                "incurredRecoveryApplicable": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "attachmentPoint", "exhaustionPoint", "incurredRecoveryApplicable"]
        },
        "org.isda.cdm.TrancheBuilder": {
            "title": "TrancheBuilder",
            "description": "An instance of org.isda.cdm.TrancheBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.TrancheBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.TrancheBuilder$",
                    "description": "The class identifier for this type"
                },
                "attachmentPoint": {
                    "type": "number"
                },
                "exhaustionPoint": {
                    "type": "number"
                },
                "incurredRecoveryApplicable": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "attachmentPoint", "exhaustionPoint", "incurredRecoveryApplicable"]
        },
        "org.isda.cdm.StrategyFeature": {
            "title": "StrategyFeature",
            "description": "An instance of org.isda.cdm.StrategyFeature",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StrategyFeature",
                    "pattern": "^org\\.isda\\.cdm\\.StrategyFeature$",
                    "description": "The class identifier for this type"
                },
                "strikeSpread": {
                    "$ref": "#/definitions/org.isda.cdm.StrikeSpread"
                },
                "calendarSpread": {
                    "$ref": "#/definitions/org.isda.cdm.CalendarSpread"
                }
            },
            "required": ["$class", "strikeSpread", "calendarSpread"]
        },
        "org.isda.cdm.StrategyFeatureBuilder": {
            "title": "StrategyFeatureBuilder",
            "description": "An instance of org.isda.cdm.StrategyFeatureBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StrategyFeatureBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.StrategyFeatureBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.FloatingAmountEvents": {
            "title": "FloatingAmountEvents",
            "description": "An instance of org.isda.cdm.FloatingAmountEvents",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FloatingAmountEvents",
                    "pattern": "^org\\.isda\\.cdm\\.FloatingAmountEvents$",
                    "description": "The class identifier for this type"
                },
                "failureToPayPrincipal": {
                    "type": "boolean"
                },
                "writedown": {
                    "type": "boolean"
                },
                "impliedWritedown": {
                    "type": "boolean"
                },
                "additionalFixedPayments": {
                    "$ref": "#/definitions/org.isda.cdm.AdditionalFixedPayments"
                },
                "interestShortfall": {
                    "$ref": "#/definitions/org.isda.cdm.InterestShortFall"
                },
                "floatingAmountProvisions": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingAmountProvisions"
                }
            },
            "required": ["$class", "failureToPayPrincipal", "writedown", "impliedWritedown", "additionalFixedPayments", "interestShortfall", "floatingAmountProvisions"]
        },
        "org.isda.cdm.FloatingAmountEventsBuilder": {
            "title": "FloatingAmountEventsBuilder",
            "description": "An instance of org.isda.cdm.FloatingAmountEventsBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FloatingAmountEventsBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FloatingAmountEventsBuilder$",
                    "description": "The class identifier for this type"
                },
                "failureToPayPrincipal": {
                    "type": "boolean"
                },
                "writedown": {
                    "type": "boolean"
                },
                "impliedWritedown": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "failureToPayPrincipal", "writedown", "impliedWritedown"]
        },
        "org.isda.cdm.Collateral": {
            "title": "Collateral",
            "description": "An instance of org.isda.cdm.Collateral",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Collateral",
                    "pattern": "^org\\.isda\\.cdm\\.Collateral$",
                    "description": "The class identifier for this type"
                },
                "independentAmount": {
                    "$ref": "#/definitions/org.isda.cdm.IndependentAmount"
                }
            },
            "required": ["$class", "independentAmount"]
        },
        "org.isda.cdm.CollateralBuilder": {
            "title": "CollateralBuilder",
            "description": "An instance of org.isda.cdm.CollateralBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CollateralBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CollateralBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.CurveBuilder": {
            "title": "CurveBuilder",
            "description": "An instance of org.isda.cdm.CurveBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CurveBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CurveBuilder$",
                    "description": "The class identifier for this type"
                },
                "commodityCurveScheme": {
                    "type": "string"
                },
                "commodityCurve": {
                    "$ref": "#/definitions/org.isda.cdm.CommodityReferencePriceEnum"
                }
            },
            "required": ["$class", "commodityCurveScheme", "commodityCurve"]
        },
        "org.isda.cdm.Curve": {
            "title": "Curve",
            "description": "An instance of org.isda.cdm.Curve",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Curve",
                    "pattern": "^org\\.isda\\.cdm\\.Curve$",
                    "description": "The class identifier for this type"
                },
                "commodityCurveScheme": {
                    "type": "string"
                },
                "interestRateCurve": {
                    "$ref": "#/definitions/org.isda.cdm.InterestRateCurve"
                },
                "commodityCurve": {
                    "$ref": "#/definitions/org.isda.cdm.CommodityReferencePriceEnum"
                }
            },
            "required": ["$class", "commodityCurveScheme", "interestRateCurve", "commodityCurve"]
        },
        "org.isda.cdm.PassThrough": {
            "title": "PassThrough",
            "description": "An instance of org.isda.cdm.PassThrough",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PassThrough",
                    "pattern": "^org\\.isda\\.cdm\\.PassThrough$",
                    "description": "The class identifier for this type"
                },
                "passThroughItem": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.PassThroughItem"
                    }
                }
            },
            "required": ["$class", "passThroughItem"]
        },
        "org.isda.cdm.PassThroughBuilder": {
            "title": "PassThroughBuilder",
            "description": "An instance of org.isda.cdm.PassThroughBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PassThroughBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PassThroughBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.QuotationStyleEnum": {
            "title": "QuotationStyleEnum",
            "description": "An instance of org.isda.cdm.QuotationStyleEnum",
            "enum": ["POINTS_UP_FRONT", "TRADED_SPREAD", "PRICE"]
        },
        "org.isda.cdm.ReferencePoolItemBuilder": {
            "title": "ReferencePoolItemBuilder",
            "description": "An instance of org.isda.cdm.ReferencePoolItemBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ReferencePoolItemBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ReferencePoolItemBuilder$",
                    "description": "The class identifier for this type"
                },
                "protectionTermsReference": {
                    "type": "string"
                },
                "settlementTermsReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "protectionTermsReference", "settlementTermsReference"]
        },
        "org.isda.cdm.ReferencePoolItem": {
            "title": "ReferencePoolItem",
            "description": "An instance of org.isda.cdm.ReferencePoolItem",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ReferencePoolItem",
                    "pattern": "^org\\.isda\\.cdm\\.ReferencePoolItem$",
                    "description": "The class identifier for this type"
                },
                "referencePair": {
                    "$ref": "#/definitions/org.isda.cdm.ReferencePair"
                },
                "protectionTermsReference": {
                    "type": "string"
                },
                "settlementTermsReference": {
                    "type": "string"
                },
                "constituentWeight": {
                    "$ref": "#/definitions/org.isda.cdm.ConstituentWeight"
                }
            },
            "required": ["$class", "referencePair", "protectionTermsReference", "settlementTermsReference", "constituentWeight"]
        },
        "org.isda.cdm.StubPeriod": {
            "title": "StubPeriod",
            "description": "An instance of org.isda.cdm.StubPeriod",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StubPeriod",
                    "pattern": "^org\\.isda\\.cdm\\.StubPeriod$",
                    "description": "The class identifier for this type"
                },
                "calculationPeriodDatesReference": {
                    "type": "string"
                },
                "initialStub": {
                    "$ref": "#/definitions/org.isda.cdm.StubValue"
                },
                "finalStub": {
                    "$ref": "#/definitions/org.isda.cdm.StubValue"
                }
            },
            "required": ["$class", "calculationPeriodDatesReference", "initialStub", "finalStub"]
        },
        "org.isda.cdm.StubPeriodBuilder": {
            "title": "StubPeriodBuilder",
            "description": "An instance of org.isda.cdm.StubPeriodBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StubPeriodBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.StubPeriodBuilder$",
                    "description": "The class identifier for this type"
                },
                "calculationPeriodDatesReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "calculationPeriodDatesReference"]
        },
        "org.isda.cdm.Event": {
            "title": "Event",
            "description": "An instance of org.isda.cdm.Event",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Event",
                    "pattern": "^org\\.isda\\.cdm\\.Event$",
                    "description": "The class identifier for this type"
                },
                "effectiveDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "primitive": {
                    "$ref": "#/definitions/org.isda.cdm.PrimitiveEvent"
                },
                "lineage": {
                    "$ref": "#/definitions/org.isda.cdm.Lineage"
                },
                "messageInformation": {
                    "$ref": "#/definitions/org.isda.cdm.MessageInformation"
                },
                "eventIdentifier": {
                    "$ref": "#/definitions/org.isda.cdm.Identifier"
                },
                "eventQualifier": {
                    "type": "string"
                },
                "eventDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "action": {
                    "$ref": "#/definitions/org.isda.cdm.ActionEnum"
                },
                "intent": {
                    "$ref": "#/definitions/org.isda.cdm.IntentEnum"
                },
                "functionCall": {
                    "type": "string"
                },
                "eventEffect": {
                    "$ref": "#/definitions/org.isda.cdm.EventEffect"
                },
                "party": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Party"
                    }
                },
                "rosettaKey": {
                    "type": "string"
                },
                "timestamp": {
                    "$ref": "#/definitions/org.isda.cdm.EventTimestamp"
                }
            },
            "required": [
                "$class",
                "effectiveDate",
                "primitive",
                "lineage",
                "messageInformation",
                "eventIdentifier",
                "eventQualifier",
                "eventDate",
                "action",
                "intent",
                "functionCall",
                "eventEffect",
                "party",
                "rosettaKey",
                "timestamp"
            ]
        },
        "org.isda.cdm.EventBuilder": {
            "title": "EventBuilder",
            "description": "An instance of org.isda.cdm.EventBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EventBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.EventBuilder$",
                    "description": "The class identifier for this type"
                },
                "effectiveDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "eventQualifier": {
                    "type": "string"
                },
                "eventDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "action": {
                    "$ref": "#/definitions/org.isda.cdm.ActionEnum"
                },
                "intent": {
                    "$ref": "#/definitions/org.isda.cdm.IntentEnum"
                },
                "functionCall": {
                    "type": "string"
                }
            },
            "required": ["$class", "effectiveDate", "eventQualifier", "eventDate", "action", "intent", "functionCall"]
        },
        "org.isda.cdm.Transfer": {
            "title": "Transfer",
            "description": "An instance of org.isda.cdm.Transfer",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Transfer",
                    "pattern": "^org\\.isda\\.cdm\\.Transfer$",
                    "description": "The class identifier for this type"
                },
                "grossCashflow": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.GrossCashflow"
                    }
                },
                "settlementReference": {
                    "type": "string"
                },
                "rosettaKey": {
                    "type": "string"
                },
                "transferDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableOrAdjustedOrRelativeDate"
                },
                "transferCalculation": {
                    "type": "string"
                },
                "transferType": {
                    "$ref": "#/definitions/org.isda.cdm.TransferTypeEnum"
                },
                "transferStatus": {
                    "$ref": "#/definitions/org.isda.cdm.TransferStatusEnum"
                },
                "payerReceiver": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiver"
                },
                "asset": {
                    "$ref": "#/definitions/org.accordproject.base.Asset"
                },
                "transferorTransferee": {
                    "$ref": "#/definitions/org.isda.cdm.TransferorTransferee"
                },
                "quantity": {
                    "$ref": "#/definitions/org.isda.cdm.Quantity"
                },
                "amount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                }
            },
            "required": [
                "$class",
                "grossCashflow",
                "settlementReference",
                "rosettaKey",
                "transferDate",
                "transferCalculation",
                "transferType",
                "transferStatus",
                "payerReceiver",
                "asset",
                "transferorTransferee",
                "quantity",
                "amount"
            ]
        },
        "org.isda.cdm.TransferBuilder": {
            "title": "TransferBuilder",
            "description": "An instance of org.isda.cdm.TransferBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.TransferBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.TransferBuilder$",
                    "description": "The class identifier for this type"
                },
                "settlementReference": {
                    "type": "string"
                },
                "transferCalculation": {
                    "type": "string"
                },
                "transferType": {
                    "$ref": "#/definitions/org.isda.cdm.TransferTypeEnum"
                },
                "transferStatus": {
                    "$ref": "#/definitions/org.isda.cdm.TransferStatusEnum"
                }
            },
            "required": ["$class", "settlementReference", "transferCalculation", "transferType", "transferStatus"]
        },
        "org.isda.cdm.SpreadScheduleTypeEnum": {
            "title": "SpreadScheduleTypeEnum",
            "description": "An instance of org.isda.cdm.SpreadScheduleTypeEnum",
            "enum": ["LONG", "SHORT"]
        },
        "org.isda.cdm.AdditionalFixedPayments": {
            "title": "AdditionalFixedPayments",
            "description": "An instance of org.isda.cdm.AdditionalFixedPayments",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdditionalFixedPayments",
                    "pattern": "^org\\.isda\\.cdm\\.AdditionalFixedPayments$",
                    "description": "The class identifier for this type"
                },
                "interestShortfallReimbursement": {
                    "type": "boolean"
                },
                "principalShortfallReimbursement": {
                    "type": "boolean"
                },
                "writedownReimbursement": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "interestShortfallReimbursement", "principalShortfallReimbursement", "writedownReimbursement"]
        },
        "org.isda.cdm.AdditionalFixedPaymentsBuilder": {
            "title": "AdditionalFixedPaymentsBuilder",
            "description": "An instance of org.isda.cdm.AdditionalFixedPaymentsBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdditionalFixedPaymentsBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AdditionalFixedPaymentsBuilder$",
                    "description": "The class identifier for this type"
                },
                "interestShortfallReimbursement": {
                    "type": "boolean"
                },
                "principalShortfallReimbursement": {
                    "type": "boolean"
                },
                "writedownReimbursement": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "interestShortfallReimbursement", "principalShortfallReimbursement", "writedownReimbursement"]
        },
        "org.isda.cdm.EuropeanExerciseBuilder": {
            "title": "EuropeanExerciseBuilder",
            "description": "An instance of org.isda.cdm.EuropeanExerciseBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EuropeanExerciseBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.EuropeanExerciseBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                }
            },
            "required": ["$class", "id"]
        },
        "org.isda.cdm.EuropeanExercise": {
            "title": "EuropeanExercise",
            "description": "An instance of org.isda.cdm.EuropeanExercise",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EuropeanExercise",
                    "pattern": "^org\\.isda\\.cdm\\.EuropeanExercise$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "expirationDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableOrRelativeDate"
                },
                "relevantUnderlyingDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableOrRelativeDates"
                },
                "earliestExerciseTime": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterTime"
                },
                "expirationTime": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterTime"
                },
                "partialExercise": {
                    "$ref": "#/definitions/org.isda.cdm.PartialExercise"
                },
                "exerciseFee": {
                    "$ref": "#/definitions/org.isda.cdm.ExerciseFee"
                }
            },
            "required": ["$class", "id", "expirationDate", "relevantUnderlyingDate", "earliestExerciseTime", "expirationTime", "partialExercise", "exerciseFee"]
        },
        "org.isda.cdm.CreditSeniorityTradingEnum": {
            "title": "CreditSeniorityTradingEnum",
            "description": "An instance of org.isda.cdm.CreditSeniorityTradingEnum",
            "enum": ["SENIOR", "SUBORDINATE"]
        },
        "org.isda.cdm.Barrier": {
            "title": "Barrier",
            "description": "An instance of org.isda.cdm.Barrier",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Barrier",
                    "pattern": "^org\\.isda\\.cdm\\.Barrier$",
                    "description": "The class identifier for this type"
                },
                "barrierCap": {
                    "$ref": "#/definitions/org.isda.cdm.TriggerEvent"
                },
                "barrierFloor": {
                    "$ref": "#/definitions/org.isda.cdm.TriggerEvent"
                }
            },
            "required": ["$class", "barrierCap", "barrierFloor"]
        },
        "org.isda.cdm.BarrierBuilder": {
            "title": "BarrierBuilder",
            "description": "An instance of org.isda.cdm.BarrierBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BarrierBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.BarrierBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.QuoteBasisEnum": {
            "title": "QuoteBasisEnum",
            "description": "An instance of org.isda.cdm.QuoteBasisEnum",
            "enum": ["CURRENCY_1_PER_CURRENCY_2", "CURRENCY_2_PER_CURRENCY_1"]
        },
        "org.isda.cdm.BusinessDayAdjustments": {
            "title": "BusinessDayAdjustments",
            "description": "An instance of org.isda.cdm.BusinessDayAdjustments",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BusinessDayAdjustments",
                    "pattern": "^org\\.isda\\.cdm\\.BusinessDayAdjustments$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "businessDayConvention": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayConventionEnum"
                },
                "businessCenters": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenters"
                }
            },
            "required": ["$class", "id", "businessDayConvention", "businessCenters"]
        },
        "org.isda.cdm.BusinessDayAdjustmentsBuilder": {
            "title": "BusinessDayAdjustmentsBuilder",
            "description": "An instance of org.isda.cdm.BusinessDayAdjustmentsBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BusinessDayAdjustmentsBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.BusinessDayAdjustmentsBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "businessDayConvention": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayConventionEnum"
                }
            },
            "required": ["$class", "id", "businessDayConvention"]
        },
        "org.isda.cdm.PeriodExtendedEnum": {
            "title": "PeriodExtendedEnum",
            "description": "An instance of org.isda.cdm.PeriodExtendedEnum",
            "enum": ["T", "D", "W", "M", "Y"]
        },
        "org.isda.cdm.FloatingRateDefinition": {
            "title": "FloatingRateDefinition",
            "description": "An instance of org.isda.cdm.FloatingRateDefinition",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FloatingRateDefinition",
                    "pattern": "^org\\.isda\\.cdm\\.FloatingRateDefinition$",
                    "description": "The class identifier for this type"
                },
                "floatingRateMultiplier": {
                    "type": "number"
                },
                "spread": {
                    "type": "number"
                },
                "calculatedRate": {
                    "type": "number"
                },
                "rateObservation": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.RateObservation"
                    }
                },
                "capRate": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Strike"
                    }
                },
                "floorRate": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Strike"
                    }
                }
            },
            "required": ["$class", "floatingRateMultiplier", "spread", "calculatedRate", "rateObservation", "capRate", "floorRate"]
        },
        "org.isda.cdm.FloatingRateDefinitionBuilder": {
            "title": "FloatingRateDefinitionBuilder",
            "description": "An instance of org.isda.cdm.FloatingRateDefinitionBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FloatingRateDefinitionBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FloatingRateDefinitionBuilder$",
                    "description": "The class identifier for this type"
                },
                "floatingRateMultiplier": {
                    "type": "number"
                },
                "spread": {
                    "type": "number"
                },
                "calculatedRate": {
                    "type": "number"
                }
            },
            "required": ["$class", "floatingRateMultiplier", "spread", "calculatedRate"]
        },
        "org.isda.cdm.AllocationPrimitiveBuilder": {
            "title": "AllocationPrimitiveBuilder",
            "description": "An instance of org.isda.cdm.AllocationPrimitiveBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AllocationPrimitiveBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AllocationPrimitiveBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.AllocationPrimitive": {
            "title": "AllocationPrimitive",
            "description": "An instance of org.isda.cdm.AllocationPrimitive",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AllocationPrimitive",
                    "pattern": "^org\\.isda\\.cdm\\.AllocationPrimitive$",
                    "description": "The class identifier for this type"
                },
                "before": {
                    "$ref": "#/definitions/org.isda.cdm.Execution"
                },
                "after": {
                    "$ref": "#/definitions/org.isda.cdm.AllocationOutcome"
                }
            },
            "required": ["$class", "before", "after"]
        },
        "org.isda.cdm.FxRateBuilder": {
            "title": "FxRateBuilder",
            "description": "An instance of org.isda.cdm.FxRateBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FxRateBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FxRateBuilder$",
                    "description": "The class identifier for this type"
                },
                "rate": {
                    "type": "number"
                }
            },
            "required": ["$class", "rate"]
        },
        "org.isda.cdm.FxRate": {
            "title": "FxRate",
            "description": "An instance of org.isda.cdm.FxRate",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FxRate",
                    "pattern": "^org\\.isda\\.cdm\\.FxRate$",
                    "description": "The class identifier for this type"
                },
                "quotedCurrencyPair": {
                    "$ref": "#/definitions/org.isda.cdm.QuotedCurrencyPair"
                },
                "rate": {
                    "type": "number"
                }
            },
            "required": ["$class", "quotedCurrencyPair", "rate"]
        },
        "org.isda.cdm.ExtendibleProvisionAdjustedDatesBuilder": {
            "title": "ExtendibleProvisionAdjustedDatesBuilder",
            "description": "An instance of org.isda.cdm.ExtendibleProvisionAdjustedDatesBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExtendibleProvisionAdjustedDatesBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ExtendibleProvisionAdjustedDatesBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.ExtendibleProvisionAdjustedDates": {
            "title": "ExtendibleProvisionAdjustedDates",
            "description": "An instance of org.isda.cdm.ExtendibleProvisionAdjustedDates",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExtendibleProvisionAdjustedDates",
                    "pattern": "^org\\.isda\\.cdm\\.ExtendibleProvisionAdjustedDates$",
                    "description": "The class identifier for this type"
                },
                "extensionEvent": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ExtensionEvent"
                    }
                }
            },
            "required": ["$class", "extensionEvent"]
        },
        "org.isda.cdm.RelativeDatesBuilder": {
            "title": "RelativeDatesBuilder",
            "description": "An instance of org.isda.cdm.RelativeDatesBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.RelativeDatesBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.RelativeDatesBuilder$",
                    "description": "The class identifier for this type"
                },
                "periodSkip": {
                    "type": "integer"
                },
                "businessDayConvention": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayConventionEnum"
                },
                "businessCentersReference": {
                    "type": "string"
                },
                "dateRelativeTo": {
                    "type": "string"
                },
                "adjustedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "dayType": {
                    "$ref": "#/definitions/org.isda.cdm.DayTypeEnum"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": ["$class", "periodSkip", "businessDayConvention", "businessCentersReference", "dateRelativeTo", "adjustedDate", "dayType", "id", "period", "periodMultiplier"]
        },
        "org.isda.cdm.RelativeDates": {
            "title": "RelativeDates",
            "description": "An instance of org.isda.cdm.RelativeDates",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.RelativeDates",
                    "pattern": "^org\\.isda\\.cdm\\.RelativeDates$",
                    "description": "The class identifier for this type"
                },
                "periodSkip": {
                    "type": "integer"
                },
                "scheduleBounds": {
                    "$ref": "#/definitions/org.isda.cdm.DateRange"
                },
                "businessDayConvention": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayConventionEnum"
                },
                "businessCenters": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenters"
                },
                "businessCentersReference": {
                    "type": "string"
                },
                "dateRelativeTo": {
                    "type": "string"
                },
                "adjustedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "dayType": {
                    "$ref": "#/definitions/org.isda.cdm.DayTypeEnum"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": [
                "$class",
                "periodSkip",
                "scheduleBounds",
                "businessDayConvention",
                "businessCenters",
                "businessCentersReference",
                "dateRelativeTo",
                "adjustedDate",
                "dayType",
                "id",
                "period",
                "periodMultiplier"
            ]
        },
        "org.isda.cdm.ActionEnum": {
            "title": "ActionEnum",
            "description": "An instance of org.isda.cdm.ActionEnum",
            "enum": ["NEW", "CORRECT", "CANCEL"]
        },
        "org.isda.cdm.OptionStrike": {
            "title": "OptionStrike",
            "description": "An instance of org.isda.cdm.OptionStrike",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionStrike",
                    "pattern": "^org\\.isda\\.cdm\\.OptionStrike$",
                    "description": "The class identifier for this type"
                },
                "currency": {
                    "type": "string"
                },
                "spread": {
                    "type": "number"
                },
                "referenceSwapCurve": {
                    "$ref": "#/definitions/org.isda.cdm.ReferenceSwapCurve"
                },
                "price": {
                    "type": "number"
                },
                "percentage": {
                    "type": "number"
                },
                "strikeReference": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "currency", "spread", "referenceSwapCurve", "price", "percentage", "strikeReference", "currencyScheme"]
        },
        "org.isda.cdm.OptionStrikeBuilder": {
            "title": "OptionStrikeBuilder",
            "description": "An instance of org.isda.cdm.OptionStrikeBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionStrikeBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.OptionStrikeBuilder$",
                    "description": "The class identifier for this type"
                },
                "currency": {
                    "type": "string"
                },
                "spread": {
                    "type": "number"
                },
                "price": {
                    "type": "number"
                },
                "percentage": {
                    "type": "number"
                },
                "strikeReference": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "currency", "spread", "price", "percentage", "strikeReference", "currencyScheme"]
        },
        "org.isda.cdm.ResetPrimitive": {
            "title": "ResetPrimitive",
            "description": "An instance of org.isda.cdm.ResetPrimitive",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ResetPrimitive",
                    "pattern": "^org\\.isda\\.cdm\\.ResetPrimitive$",
                    "description": "The class identifier for this type"
                },
                "cashflow": {
                    "$ref": "#/definitions/org.isda.cdm.Cashflow"
                },
                "resetValue": {
                    "type": "number"
                },
                "rosettaKey": {
                    "type": "string"
                },
                "date": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "cashflow", "resetValue", "rosettaKey", "date"]
        },
        "org.isda.cdm.ResetPrimitiveBuilder": {
            "title": "ResetPrimitiveBuilder",
            "description": "An instance of org.isda.cdm.ResetPrimitiveBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ResetPrimitiveBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ResetPrimitiveBuilder$",
                    "description": "The class identifier for this type"
                },
                "resetValue": {
                    "type": "number"
                },
                "date": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "resetValue", "date"]
        },
        "org.isda.cdm.AveragingPeriodBuilder": {
            "title": "AveragingPeriodBuilder",
            "description": "An instance of org.isda.cdm.AveragingPeriodBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AveragingPeriodBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AveragingPeriodBuilder$",
                    "description": "The class identifier for this type"
                },
                "marketDisruptionScheme": {
                    "type": "string"
                },
                "marketDisruption": {
                    "$ref": "#/definitions/org.isda.cdm.MarketDisruptionEnum"
                }
            },
            "required": ["$class", "marketDisruptionScheme", "marketDisruption"]
        },
        "org.isda.cdm.AveragingPeriod": {
            "title": "AveragingPeriod",
            "description": "An instance of org.isda.cdm.AveragingPeriod",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AveragingPeriod",
                    "pattern": "^org\\.isda\\.cdm\\.AveragingPeriod$",
                    "description": "The class identifier for this type"
                },
                "marketDisruptionScheme": {
                    "type": "string"
                },
                "averagingDateTimes": {
                    "$ref": "#/definitions/org.isda.cdm.DateTimeList"
                },
                "averagingObservations": {
                    "$ref": "#/definitions/org.isda.cdm.AveragingObservationList"
                },
                "marketDisruption": {
                    "$ref": "#/definitions/org.isda.cdm.MarketDisruptionEnum"
                },
                "schedule": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.AveragingSchedule"
                    }
                }
            },
            "required": ["$class", "marketDisruptionScheme", "averagingDateTimes", "averagingObservations", "marketDisruption", "schedule"]
        },
        "org.isda.cdm.PercentageRuleBuilder": {
            "title": "PercentageRuleBuilder",
            "description": "An instance of org.isda.cdm.PercentageRuleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PercentageRuleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PercentageRuleBuilder$",
                    "description": "The class identifier for this type"
                },
                "paymentPercent": {
                    "type": "number"
                },
                "notionalAmountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "paymentPercent", "notionalAmountReference"]
        },
        "org.isda.cdm.PercentageRule": {
            "title": "PercentageRule",
            "description": "An instance of org.isda.cdm.PercentageRule",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PercentageRule",
                    "pattern": "^org\\.isda\\.cdm\\.PercentageRule$",
                    "description": "The class identifier for this type"
                },
                "paymentPercent": {
                    "type": "number"
                },
                "notionalAmountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "paymentPercent", "notionalAmountReference"]
        },
        "org.isda.cdm.CalculationAgent": {
            "title": "CalculationAgent",
            "description": "An instance of org.isda.cdm.CalculationAgent",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CalculationAgent",
                    "pattern": "^org\\.isda\\.cdm\\.CalculationAgent$",
                    "description": "The class identifier for this type"
                },
                "calculationAgentBusinessCenterScheme": {
                    "type": "string"
                },
                "calculationAgentBusinessCenter": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterEnum"
                },
                "calculationAgentPartyReference": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "calculationAgentParty": {
                    "$ref": "#/definitions/org.isda.cdm.CalculationAgentPartyEnum"
                }
            },
            "required": ["$class", "calculationAgentBusinessCenterScheme", "calculationAgentBusinessCenter", "calculationAgentPartyReference", "calculationAgentParty"]
        },
        "org.isda.cdm.CalculationAgentBuilder": {
            "title": "CalculationAgentBuilder",
            "description": "An instance of org.isda.cdm.CalculationAgentBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CalculationAgentBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CalculationAgentBuilder$",
                    "description": "The class identifier for this type"
                },
                "calculationAgentBusinessCenterScheme": {
                    "type": "string"
                },
                "calculationAgentBusinessCenter": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterEnum"
                },
                "calculationAgentPartyReference": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "calculationAgentParty": {
                    "$ref": "#/definitions/org.isda.cdm.CalculationAgentPartyEnum"
                }
            },
            "required": ["$class", "calculationAgentBusinessCenterScheme", "calculationAgentBusinessCenter", "calculationAgentPartyReference", "calculationAgentParty"]
        },
        "org.isda.cdm.NaturalPerson": {
            "title": "NaturalPerson",
            "description": "An instance of org.isda.cdm.NaturalPerson",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NaturalPerson",
                    "pattern": "^org\\.isda\\.cdm\\.NaturalPerson$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "honorific": {
                    "type": "string"
                },
                "firstName": {
                    "type": "string"
                },
                "middleName": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "initial": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "surname": {
                    "type": "string"
                },
                "suffix": {
                    "type": "string"
                },
                "dateOfBirth": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "id", "honorific", "firstName", "middleName", "initial", "surname", "suffix", "dateOfBirth"]
        },
        "org.isda.cdm.NaturalPersonBuilder": {
            "title": "NaturalPersonBuilder",
            "description": "An instance of org.isda.cdm.NaturalPersonBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NaturalPersonBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.NaturalPersonBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "honorific": {
                    "type": "string"
                },
                "firstName": {
                    "type": "string"
                },
                "middleName": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "initial": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "surname": {
                    "type": "string"
                },
                "suffix": {
                    "type": "string"
                },
                "dateOfBirth": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "id", "honorific", "firstName", "middleName", "initial", "surname", "suffix", "dateOfBirth"]
        },
        "org.isda.cdm.BusinessDateRangeBuilder": {
            "title": "BusinessDateRangeBuilder",
            "description": "An instance of org.isda.cdm.BusinessDateRangeBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BusinessDateRangeBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.BusinessDateRangeBuilder$",
                    "description": "The class identifier for this type"
                },
                "businessDayConvention": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayConventionEnum"
                },
                "unadjustedFirstDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "unadjustedLastDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "businessDayConvention", "unadjustedFirstDate", "unadjustedLastDate"]
        },
        "org.isda.cdm.BusinessDateRange": {
            "title": "BusinessDateRange",
            "description": "An instance of org.isda.cdm.BusinessDateRange",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BusinessDateRange",
                    "pattern": "^org\\.isda\\.cdm\\.BusinessDateRange$",
                    "description": "The class identifier for this type"
                },
                "businessDayConvention": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayConventionEnum"
                },
                "businessCenters": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenters"
                },
                "unadjustedFirstDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "unadjustedLastDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "businessDayConvention", "businessCenters", "unadjustedFirstDate", "unadjustedLastDate"]
        },
        "org.isda.cdm.CancelableProvision": {
            "title": "CancelableProvision",
            "description": "An instance of org.isda.cdm.CancelableProvision",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CancelableProvision",
                    "pattern": "^org\\.isda\\.cdm\\.CancelableProvision$",
                    "description": "The class identifier for this type"
                },
                "followUpConfirmation": {
                    "type": "boolean"
                },
                "americanExercise": {
                    "$ref": "#/definitions/org.isda.cdm.AmericanExercise"
                },
                "bermudaExercise": {
                    "$ref": "#/definitions/org.isda.cdm.BermudaExercise"
                },
                "europeanExercise": {
                    "$ref": "#/definitions/org.isda.cdm.EuropeanExercise"
                },
                "exerciseNotice": {
                    "$ref": "#/definitions/org.isda.cdm.ExerciseNotice"
                },
                "initialFee": {
                    "$ref": "#/definitions/org.isda.cdm.SimplePayment"
                },
                "cancelableProvisionAdjustedDates": {
                    "$ref": "#/definitions/org.isda.cdm.CancelableProvisionAdjustedDates"
                },
                "finalCalculationPeriodDateAdjustment": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.FinalCalculationPeriodDateAdjustment"
                    }
                },
                "sellerPartyReference": {
                    "type": "string"
                },
                "buyerPartyReference": {
                    "type": "string"
                },
                "buyerAccountReference": {
                    "type": "string"
                },
                "sellerAccountReference": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "followUpConfirmation",
                "americanExercise",
                "bermudaExercise",
                "europeanExercise",
                "exerciseNotice",
                "initialFee",
                "cancelableProvisionAdjustedDates",
                "finalCalculationPeriodDateAdjustment",
                "sellerPartyReference",
                "buyerPartyReference",
                "buyerAccountReference",
                "sellerAccountReference"
            ]
        },
        "org.isda.cdm.CancelableProvisionBuilder": {
            "title": "CancelableProvisionBuilder",
            "description": "An instance of org.isda.cdm.CancelableProvisionBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CancelableProvisionBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CancelableProvisionBuilder$",
                    "description": "The class identifier for this type"
                },
                "followUpConfirmation": {
                    "type": "boolean"
                },
                "sellerPartyReference": {
                    "type": "string"
                },
                "buyerPartyReference": {
                    "type": "string"
                },
                "buyerAccountReference": {
                    "type": "string"
                },
                "sellerAccountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "followUpConfirmation", "sellerPartyReference", "buyerPartyReference", "buyerAccountReference", "sellerAccountReference"]
        },
        "org.isda.cdm.BrokerConfirmationTypeEnum": {
            "title": "BrokerConfirmationTypeEnum",
            "description": "An instance of org.isda.cdm.BrokerConfirmationTypeEnum",
            "enum": ["ABX", "CD_SON_MBS"]
        },
        "org.isda.cdm.QuotationRateTypeEnum": {
            "title": "QuotationRateTypeEnum",
            "description": "An instance of org.isda.cdm.QuotationRateTypeEnum",
            "enum": ["BID", "ASK", "MID", "EXERCISING_PARTY_PAYS"]
        },
        "org.isda.cdm.PriceSourceDisruptionBuilder": {
            "title": "PriceSourceDisruptionBuilder",
            "description": "An instance of org.isda.cdm.PriceSourceDisruptionBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PriceSourceDisruptionBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PriceSourceDisruptionBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.PriceSourceDisruption": {
            "title": "PriceSourceDisruption",
            "description": "An instance of org.isda.cdm.PriceSourceDisruption",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PriceSourceDisruption",
                    "pattern": "^org\\.isda\\.cdm\\.PriceSourceDisruption$",
                    "description": "The class identifier for this type"
                },
                "fallbackReferencePrice": {
                    "$ref": "#/definitions/org.isda.cdm.FallbackReferencePrice"
                }
            },
            "required": ["$class", "fallbackReferencePrice"]
        },
        "org.isda.cdm.CreditDefaultPayout": {
            "title": "CreditDefaultPayout",
            "description": "An instance of org.isda.cdm.CreditDefaultPayout",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CreditDefaultPayout",
                    "pattern": "^org\\.isda\\.cdm\\.CreditDefaultPayout$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "physicalSettlementTerms": {
                    "$ref": "#/definitions/org.isda.cdm.PhysicalSettlementTerms"
                },
                "rosettaKeyValue": {
                    "type": "string"
                },
                "protectionTerms": {
                    "$ref": "#/definitions/org.isda.cdm.ProtectionTerms"
                },
                "generalTerms": {
                    "$ref": "#/definitions/org.isda.cdm.GeneralTerms"
                },
                "cashSettlementTerms": {
                    "$ref": "#/definitions/org.isda.cdm.CashSettlementTerms"
                },
                "transactedPrice": {
                    "$ref": "#/definitions/org.isda.cdm.TransactedPrice"
                }
            },
            "required": ["$class", "id", "physicalSettlementTerms", "rosettaKeyValue", "protectionTerms", "generalTerms", "cashSettlementTerms", "transactedPrice"]
        },
        "org.isda.cdm.CreditDefaultPayoutBuilder": {
            "title": "CreditDefaultPayoutBuilder",
            "description": "An instance of org.isda.cdm.CreditDefaultPayoutBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CreditDefaultPayoutBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CreditDefaultPayoutBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                }
            },
            "required": ["$class", "id"]
        },
        "org.isda.cdm.CashPriceMethodBuilder": {
            "title": "CashPriceMethodBuilder",
            "description": "An instance of org.isda.cdm.CashPriceMethodBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CashPriceMethodBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CashPriceMethodBuilder$",
                    "description": "The class identifier for this type"
                },
                "cashSettlementCurrencyScheme": {
                    "type": "string"
                },
                "cashSettlementCurrency": {
                    "type": "string"
                },
                "quotationRateType": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationRateTypeEnum"
                }
            },
            "required": ["$class", "cashSettlementCurrencyScheme", "cashSettlementCurrency", "quotationRateType"]
        },
        "org.isda.cdm.CashPriceMethod": {
            "title": "CashPriceMethod",
            "description": "An instance of org.isda.cdm.CashPriceMethod",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CashPriceMethod",
                    "pattern": "^org\\.isda\\.cdm\\.CashPriceMethod$",
                    "description": "The class identifier for this type"
                },
                "cashSettlementCurrencyScheme": {
                    "type": "string"
                },
                "cashSettlementReferenceBanks": {
                    "$ref": "#/definitions/org.isda.cdm.CashSettlementReferenceBanks"
                },
                "cashSettlementCurrency": {
                    "type": "string"
                },
                "quotationRateType": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationRateTypeEnum"
                }
            },
            "required": ["$class", "cashSettlementCurrencyScheme", "cashSettlementReferenceBanks", "cashSettlementCurrency", "quotationRateType"]
        },
        "org.isda.cdm.TimeTypeEnum": {
            "title": "TimeTypeEnum",
            "description": "An instance of org.isda.cdm.TimeTypeEnum",
            "enum": ["CLOSE", "OPEN", "OSP", "SPECIFIC_TIME", "XETRA", "DERIVATIVES_CLOSE", "AS_SPECIFIED_IN_MASTER_CONFIRMATION"]
        },
        "org.isda.cdm.InformationProviderEnum": {
            "title": "InformationProviderEnum",
            "description": "An instance of org.isda.cdm.InformationProviderEnum",
            "enum": ["BANK_OF_JAPAN", "BLOOMBERG", "ISDA", "REUTERS", "TELERATE", "OTHER"]
        },
        "org.isda.cdm.RollConventionEnum": {
            "title": "RollConventionEnum",
            "description": "An instance of org.isda.cdm.RollConventionEnum",
            "enum": [
                "EOM",
                "FRN",
                "IMM",
                "IMMCAD",
                "IMMAUD",
                "IMMNZD",
                "SFE",
                "NONE",
                "TBILL",
                "_1",
                "_2",
                "_3",
                "_4",
                "_5",
                "_6",
                "_7",
                "_8",
                "_9",
                "_10",
                "_11",
                "_12",
                "_13",
                "_14",
                "_15",
                "_16",
                "_17",
                "_18",
                "_19",
                "_20",
                "_21",
                "_22",
                "_23",
                "_24",
                "_25",
                "_26",
                "_27",
                "_28",
                "_29",
                "_30",
                "MON",
                "TUE",
                "WED",
                "THU",
                "FRI",
                "SAT",
                "SUN"
            ]
        },
        "org.isda.cdm.Mortgage": {
            "title": "Mortgage",
            "description": "An instance of org.isda.cdm.Mortgage",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Mortgage",
                    "pattern": "^org\\.isda\\.cdm\\.Mortgage$",
                    "description": "The class identifier for this type"
                },
                "paymentFrequency": {
                    "$ref": "#/definitions/org.isda.cdm.Period"
                },
                "dayCountFractionScheme": {
                    "type": "string"
                },
                "sectorScheme": {
                    "type": "string"
                },
                "tranche": {
                    "type": "string"
                },
                "insurer": {
                    "$ref": "#/definitions/org.isda.cdm.Party"
                },
                "insurerReference": {
                    "type": "string"
                },
                "originalPrincipalAmount": {
                    "type": "number"
                },
                "sector": {
                    "$ref": "#/definitions/org.isda.cdm.MortgageSectorEnum"
                },
                "dayCountFraction": {
                    "$ref": "#/definitions/org.isda.cdm.DayCountFractionEnum"
                },
                "pool": {
                    "$ref": "#/definitions/org.isda.cdm.AssetPool"
                },
                "couponTypeScheme": {
                    "type": "string"
                },
                "seniorityScheme": {
                    "type": "string"
                },
                "issuerName": {
                    "type": "string"
                },
                "issuerReference": {
                    "type": "string"
                },
                "seniority": {
                    "$ref": "#/definitions/org.isda.cdm.CreditSeniorityEnum"
                },
                "couponType": {
                    "$ref": "#/definitions/org.isda.cdm.CouponTypeEnum"
                },
                "couponRate": {
                    "type": "number"
                },
                "maturity": {
                    "format": "date-time",
                    "type": "string"
                },
                "issueDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "clearanceSystemScheme": {
                    "type": "string"
                },
                "productIdentifierScheme": {
                    "type": "string"
                },
                "productIdentifier": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ProductIdentifier"
                    }
                },
                "productTaxonomy": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ProductTaxonomy"
                    }
                },
                "description": {
                    "type": "string"
                },
                "clearanceSystem": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "paymentFrequency",
                "dayCountFractionScheme",
                "sectorScheme",
                "tranche",
                "insurer",
                "insurerReference",
                "originalPrincipalAmount",
                "sector",
                "dayCountFraction",
                "pool",
                "couponTypeScheme",
                "seniorityScheme",
                "issuerName",
                "issuerReference",
                "seniority",
                "couponType",
                "couponRate",
                "maturity",
                "issueDate",
                "id",
                "currency",
                "clearanceSystemScheme",
                "productIdentifierScheme",
                "productIdentifier",
                "productTaxonomy",
                "description",
                "clearanceSystem",
                "currencyScheme"
            ]
        },
        "org.isda.cdm.MortgageBuilder": {
            "title": "MortgageBuilder",
            "description": "An instance of org.isda.cdm.MortgageBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MortgageBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.MortgageBuilder$",
                    "description": "The class identifier for this type"
                },
                "dayCountFractionScheme": {
                    "type": "string"
                },
                "sectorScheme": {
                    "type": "string"
                },
                "tranche": {
                    "type": "string"
                },
                "insurerReference": {
                    "type": "string"
                },
                "originalPrincipalAmount": {
                    "type": "number"
                },
                "sector": {
                    "$ref": "#/definitions/org.isda.cdm.MortgageSectorEnum"
                },
                "dayCountFraction": {
                    "$ref": "#/definitions/org.isda.cdm.DayCountFractionEnum"
                },
                "couponTypeScheme": {
                    "type": "string"
                },
                "seniorityScheme": {
                    "type": "string"
                },
                "issuerName": {
                    "type": "string"
                },
                "issuerReference": {
                    "type": "string"
                },
                "seniority": {
                    "$ref": "#/definitions/org.isda.cdm.CreditSeniorityEnum"
                },
                "couponType": {
                    "$ref": "#/definitions/org.isda.cdm.CouponTypeEnum"
                },
                "couponRate": {
                    "type": "number"
                },
                "maturity": {
                    "format": "date-time",
                    "type": "string"
                },
                "issueDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "clearanceSystemScheme": {
                    "type": "string"
                },
                "productIdentifierScheme": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "clearanceSystem": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "dayCountFractionScheme",
                "sectorScheme",
                "tranche",
                "insurerReference",
                "originalPrincipalAmount",
                "sector",
                "dayCountFraction",
                "couponTypeScheme",
                "seniorityScheme",
                "issuerName",
                "issuerReference",
                "seniority",
                "couponType",
                "couponRate",
                "maturity",
                "issueDate",
                "id",
                "currency",
                "clearanceSystemScheme",
                "productIdentifierScheme",
                "description",
                "clearanceSystem",
                "currencyScheme"
            ]
        },
        "org.isda.cdm.AssetClassEnum": {
            "title": "AssetClassEnum",
            "description": "An instance of org.isda.cdm.AssetClassEnum",
            "enum": ["COMMODITY", "CREDIT", "EQUITY", "FOREIGN_EXCHANGE", "INTEREST_RATE"]
        },
        "org.isda.cdm.GoverningLawEnum": {
            "title": "GoverningLawEnum",
            "description": "An instance of org.isda.cdm.GoverningLawEnum",
            "enum": ["AS_SPECIFIED_IN_MASTER_AGREEMENT"]
        },
        "org.isda.cdm.CategoryEnum": {
            "title": "CategoryEnum",
            "description": "An instance of org.isda.cdm.CategoryEnum",
            "enum": ["TBD"]
        },
        "org.isda.cdm.PaymentDiscounting": {
            "title": "PaymentDiscounting",
            "description": "An instance of org.isda.cdm.PaymentDiscounting",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PaymentDiscounting",
                    "pattern": "^org\\.isda\\.cdm\\.PaymentDiscounting$",
                    "description": "The class identifier for this type"
                },
                "discountFactor": {
                    "type": "number"
                },
                "presentValueAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                }
            },
            "required": ["$class", "discountFactor", "presentValueAmount"]
        },
        "org.isda.cdm.PaymentDiscountingBuilder": {
            "title": "PaymentDiscountingBuilder",
            "description": "An instance of org.isda.cdm.PaymentDiscountingBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PaymentDiscountingBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PaymentDiscountingBuilder$",
                    "description": "The class identifier for this type"
                },
                "discountFactor": {
                    "type": "number"
                }
            },
            "required": ["$class", "discountFactor"]
        },
        "org.isda.cdm.ReferenceSwapCurve": {
            "title": "ReferenceSwapCurve",
            "description": "An instance of org.isda.cdm.ReferenceSwapCurve",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ReferenceSwapCurve",
                    "pattern": "^org\\.isda\\.cdm\\.ReferenceSwapCurve$",
                    "description": "The class identifier for this type"
                },
                "swapUnwindValue": {
                    "$ref": "#/definitions/org.isda.cdm.SwapCurveValuation"
                },
                "makeWholeAmount": {
                    "$ref": "#/definitions/org.isda.cdm.MakeWholeAmount"
                }
            },
            "required": ["$class", "swapUnwindValue", "makeWholeAmount"]
        },
        "org.isda.cdm.ReferenceSwapCurveBuilder": {
            "title": "ReferenceSwapCurveBuilder",
            "description": "An instance of org.isda.cdm.ReferenceSwapCurveBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ReferenceSwapCurveBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ReferenceSwapCurveBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.InterestRate": {
            "title": "InterestRate",
            "description": "An instance of org.isda.cdm.InterestRate",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.InterestRate",
                    "pattern": "^org\\.isda\\.cdm\\.InterestRate$",
                    "description": "The class identifier for this type"
                },
                "floatingRate": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateCalculation"
                },
                "inflationRate": {
                    "$ref": "#/definitions/org.isda.cdm.InflationRateCalculation"
                },
                "fixedRate": {
                    "$ref": "#/definitions/org.isda.cdm.Schedule"
                }
            },
            "required": ["$class", "floatingRate", "inflationRate", "fixedRate"]
        },
        "org.isda.cdm.InterestRateBuilder": {
            "title": "InterestRateBuilder",
            "description": "An instance of org.isda.cdm.InterestRateBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.InterestRateBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.InterestRateBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.PartyContractIdentifierBuilder": {
            "title": "PartyContractIdentifierBuilder",
            "description": "An instance of org.isda.cdm.PartyContractIdentifierBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PartyContractIdentifierBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PartyContractIdentifierBuilder$",
                    "description": "The class identifier for this type"
                },
                "accountReference": {
                    "type": "string"
                },
                "partyReference": {
                    "type": "string"
                },
                "issuer": {
                    "type": "string"
                },
                "issuerScheme": {
                    "type": "string"
                },
                "version": {
                    "type": "integer"
                }
            },
            "required": ["$class", "accountReference", "partyReference", "issuer", "issuerScheme", "version"]
        },
        "org.isda.cdm.PartyContractIdentifier": {
            "title": "PartyContractIdentifier",
            "description": "An instance of org.isda.cdm.PartyContractIdentifier",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PartyContractIdentifier",
                    "pattern": "^org\\.isda\\.cdm\\.PartyContractIdentifier$",
                    "description": "The class identifier for this type"
                },
                "linkId": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.LinkId"
                    }
                },
                "allocationTradeId": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ContractIdentifier"
                    }
                },
                "resultingTradeId": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ContractIdentifierExtended"
                    }
                },
                "blockTradeId": {
                    "$ref": "#/definitions/org.isda.cdm.ContractIdentifier"
                },
                "originatingTradeId": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ContractIdentifier"
                    }
                },
                "accountReference": {
                    "type": "string"
                },
                "partyReference": {
                    "type": "string"
                },
                "identifierValue": {
                    "$ref": "#/definitions/org.isda.cdm.IdentifierValue"
                },
                "issuer": {
                    "type": "string"
                },
                "issuerScheme": {
                    "type": "string"
                },
                "version": {
                    "type": "integer"
                }
            },
            "required": [
                "$class",
                "linkId",
                "allocationTradeId",
                "resultingTradeId",
                "blockTradeId",
                "originatingTradeId",
                "accountReference",
                "partyReference",
                "identifierValue",
                "issuer",
                "issuerScheme",
                "version"
            ]
        },
        "org.isda.cdm.OptionTypeEnum": {
            "title": "OptionTypeEnum",
            "description": "An instance of org.isda.cdm.OptionTypeEnum",
            "enum": ["PUT", "CALL", "PAYER", "RECEIVER", "STRADDLE"]
        },
        "org.isda.cdm.ConvertibleBondBuilder": {
            "title": "ConvertibleBondBuilder",
            "description": "An instance of org.isda.cdm.ConvertibleBondBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ConvertibleBondBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ConvertibleBondBuilder$",
                    "description": "The class identifier for this type"
                },
                "redemptionDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "dayCountFractionScheme": {
                    "type": "string"
                },
                "parValue": {
                    "type": "number"
                },
                "issuanceFaceAmount": {
                    "type": "number"
                },
                "dayCountFraction": {
                    "$ref": "#/definitions/org.isda.cdm.DayCountFractionEnum"
                },
                "couponTypeScheme": {
                    "type": "string"
                },
                "seniorityScheme": {
                    "type": "string"
                },
                "issuerName": {
                    "type": "string"
                },
                "issuerReference": {
                    "type": "string"
                },
                "seniority": {
                    "$ref": "#/definitions/org.isda.cdm.CreditSeniorityEnum"
                },
                "couponType": {
                    "$ref": "#/definitions/org.isda.cdm.CouponTypeEnum"
                },
                "couponRate": {
                    "type": "number"
                },
                "maturity": {
                    "format": "date-time",
                    "type": "string"
                },
                "issueDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "clearanceSystemScheme": {
                    "type": "string"
                },
                "productIdentifierScheme": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "clearanceSystem": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "redemptionDate",
                "dayCountFractionScheme",
                "parValue",
                "issuanceFaceAmount",
                "dayCountFraction",
                "couponTypeScheme",
                "seniorityScheme",
                "issuerName",
                "issuerReference",
                "seniority",
                "couponType",
                "couponRate",
                "maturity",
                "issueDate",
                "id",
                "currency",
                "clearanceSystemScheme",
                "productIdentifierScheme",
                "description",
                "clearanceSystem",
                "currencyScheme"
            ]
        },
        "org.isda.cdm.ConvertibleBond": {
            "title": "ConvertibleBond",
            "description": "An instance of org.isda.cdm.ConvertibleBond",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ConvertibleBond",
                    "pattern": "^org\\.isda\\.cdm\\.ConvertibleBond$",
                    "description": "The class identifier for this type"
                },
                "underlyingEquity": {
                    "$ref": "#/definitions/org.isda.cdm.EquityAsset"
                },
                "redemptionDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "paymentFrequency": {
                    "$ref": "#/definitions/org.isda.cdm.Period"
                },
                "dayCountFractionScheme": {
                    "type": "string"
                },
                "parValue": {
                    "type": "number"
                },
                "issuanceFaceAmount": {
                    "type": "number"
                },
                "dayCountFraction": {
                    "$ref": "#/definitions/org.isda.cdm.DayCountFractionEnum"
                },
                "couponTypeScheme": {
                    "type": "string"
                },
                "seniorityScheme": {
                    "type": "string"
                },
                "issuerName": {
                    "type": "string"
                },
                "issuerReference": {
                    "type": "string"
                },
                "seniority": {
                    "$ref": "#/definitions/org.isda.cdm.CreditSeniorityEnum"
                },
                "couponType": {
                    "$ref": "#/definitions/org.isda.cdm.CouponTypeEnum"
                },
                "couponRate": {
                    "type": "number"
                },
                "maturity": {
                    "format": "date-time",
                    "type": "string"
                },
                "issueDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "clearanceSystemScheme": {
                    "type": "string"
                },
                "productIdentifierScheme": {
                    "type": "string"
                },
                "productIdentifier": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ProductIdentifier"
                    }
                },
                "productTaxonomy": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ProductTaxonomy"
                    }
                },
                "description": {
                    "type": "string"
                },
                "clearanceSystem": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "underlyingEquity",
                "redemptionDate",
                "paymentFrequency",
                "dayCountFractionScheme",
                "parValue",
                "issuanceFaceAmount",
                "dayCountFraction",
                "couponTypeScheme",
                "seniorityScheme",
                "issuerName",
                "issuerReference",
                "seniority",
                "couponType",
                "couponRate",
                "maturity",
                "issueDate",
                "id",
                "currency",
                "clearanceSystemScheme",
                "productIdentifierScheme",
                "productIdentifier",
                "productTaxonomy",
                "description",
                "clearanceSystem",
                "currencyScheme"
            ]
        },
        "org.isda.cdm.Offset": {
            "title": "Offset",
            "description": "An instance of org.isda.cdm.Offset",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Offset",
                    "pattern": "^org\\.isda\\.cdm\\.Offset$",
                    "description": "The class identifier for this type"
                },
                "dayType": {
                    "$ref": "#/definitions/org.isda.cdm.DayTypeEnum"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": ["$class", "dayType", "id", "period", "periodMultiplier"]
        },
        "org.isda.cdm.OffsetBuilder": {
            "title": "OffsetBuilder",
            "description": "An instance of org.isda.cdm.OffsetBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OffsetBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.OffsetBuilder$",
                    "description": "The class identifier for this type"
                },
                "dayType": {
                    "$ref": "#/definitions/org.isda.cdm.DayTypeEnum"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": ["$class", "dayType", "id", "period", "periodMultiplier"]
        },
        "org.isda.cdm.StandardSettlementStyleEnum": {
            "title": "StandardSettlementStyleEnum",
            "description": "An instance of org.isda.cdm.StandardSettlementStyleEnum",
            "enum": ["STANDARD", "NET", "STANDARD_AND_NET"]
        },
        "org.isda.cdm.PaymentDates": {
            "title": "PaymentDates",
            "description": "An instance of org.isda.cdm.PaymentDates",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PaymentDates",
                    "pattern": "^org\\.isda\\.cdm\\.PaymentDates$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "paymentFrequency": {
                    "$ref": "#/definitions/org.isda.cdm.Frequency"
                },
                "paymentDaysOffset": {
                    "$ref": "#/definitions/org.isda.cdm.Offset"
                },
                "lastRegularPaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "resetDatesReference": {
                    "type": "string"
                },
                "valuationDatesReference": {
                    "type": "string"
                },
                "paymentDelay": {
                    "type": "boolean"
                },
                "payRelativeTo": {
                    "$ref": "#/definitions/org.isda.cdm.PayRelativeToEnum"
                },
                "firstPaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "calculationPeriodDatesReference": {
                    "type": "string"
                },
                "paymentDatesAdjustments": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayAdjustments"
                }
            },
            "required": [
                "$class",
                "id",
                "paymentFrequency",
                "paymentDaysOffset",
                "lastRegularPaymentDate",
                "resetDatesReference",
                "valuationDatesReference",
                "paymentDelay",
                "payRelativeTo",
                "firstPaymentDate",
                "calculationPeriodDatesReference",
                "paymentDatesAdjustments"
            ]
        },
        "org.isda.cdm.PaymentDatesBuilder": {
            "title": "PaymentDatesBuilder",
            "description": "An instance of org.isda.cdm.PaymentDatesBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PaymentDatesBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PaymentDatesBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "lastRegularPaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "resetDatesReference": {
                    "type": "string"
                },
                "valuationDatesReference": {
                    "type": "string"
                },
                "paymentDelay": {
                    "type": "boolean"
                },
                "payRelativeTo": {
                    "$ref": "#/definitions/org.isda.cdm.PayRelativeToEnum"
                },
                "firstPaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "calculationPeriodDatesReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "lastRegularPaymentDate", "resetDatesReference", "valuationDatesReference", "paymentDelay", "payRelativeTo", "firstPaymentDate", "calculationPeriodDatesReference"]
        },
        "org.isda.cdm.QuotedCurrencyPair": {
            "title": "QuotedCurrencyPair",
            "description": "An instance of org.isda.cdm.QuotedCurrencyPair",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.QuotedCurrencyPair",
                    "pattern": "^org\\.isda\\.cdm\\.QuotedCurrencyPair$",
                    "description": "The class identifier for this type"
                },
                "currency1": {
                    "type": "string"
                },
                "currency2": {
                    "type": "string"
                },
                "quoteBasis": {
                    "$ref": "#/definitions/org.isda.cdm.QuoteBasisEnum"
                },
                "currency1Scheme": {
                    "type": "string"
                },
                "currency2Scheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "currency1", "currency2", "quoteBasis", "currency1Scheme", "currency2Scheme"]
        },
        "org.isda.cdm.QuotedCurrencyPairBuilder": {
            "title": "QuotedCurrencyPairBuilder",
            "description": "An instance of org.isda.cdm.QuotedCurrencyPairBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.QuotedCurrencyPairBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.QuotedCurrencyPairBuilder$",
                    "description": "The class identifier for this type"
                },
                "currency1": {
                    "type": "string"
                },
                "currency2": {
                    "type": "string"
                },
                "quoteBasis": {
                    "$ref": "#/definitions/org.isda.cdm.QuoteBasisEnum"
                },
                "currency1Scheme": {
                    "type": "string"
                },
                "currency2Scheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "currency1", "currency2", "quoteBasis", "currency1Scheme", "currency2Scheme"]
        },
        "org.isda.cdm.ObservationSource": {
            "title": "ObservationSource",
            "description": "An instance of org.isda.cdm.ObservationSource",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ObservationSource",
                    "pattern": "^org\\.isda\\.cdm\\.ObservationSource$",
                    "description": "The class identifier for this type"
                },
                "curve": {
                    "$ref": "#/definitions/org.isda.cdm.Curve"
                },
                "informationSource": {
                    "$ref": "#/definitions/org.isda.cdm.InformationSource"
                }
            },
            "required": ["$class", "curve", "informationSource"]
        },
        "org.isda.cdm.ObservationSourceBuilder": {
            "title": "ObservationSourceBuilder",
            "description": "An instance of org.isda.cdm.ObservationSourceBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ObservationSourceBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ObservationSourceBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.ContractIdentifierExtended": {
            "title": "ContractIdentifierExtended",
            "description": "An instance of org.isda.cdm.ContractIdentifierExtended",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractIdentifierExtended",
                    "pattern": "^org\\.isda\\.cdm\\.ContractIdentifierExtended$",
                    "description": "The class identifier for this type"
                },
                "associatedParty": {
                    "type": "string"
                },
                "accountReference": {
                    "type": "string"
                },
                "partyReference": {
                    "type": "string"
                },
                "identifierValue": {
                    "$ref": "#/definitions/org.isda.cdm.IdentifierValue"
                },
                "issuer": {
                    "type": "string"
                },
                "issuerScheme": {
                    "type": "string"
                },
                "version": {
                    "type": "integer"
                }
            },
            "required": ["$class", "associatedParty", "accountReference", "partyReference", "identifierValue", "issuer", "issuerScheme", "version"]
        },
        "org.isda.cdm.ContractIdentifierExtendedBuilder": {
            "title": "ContractIdentifierExtendedBuilder",
            "description": "An instance of org.isda.cdm.ContractIdentifierExtendedBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractIdentifierExtendedBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ContractIdentifierExtendedBuilder$",
                    "description": "The class identifier for this type"
                },
                "associatedParty": {
                    "type": "string"
                },
                "accountReference": {
                    "type": "string"
                },
                "partyReference": {
                    "type": "string"
                },
                "issuer": {
                    "type": "string"
                },
                "issuerScheme": {
                    "type": "string"
                },
                "version": {
                    "type": "integer"
                }
            },
            "required": ["$class", "associatedParty", "accountReference", "partyReference", "issuer", "issuerScheme", "version"]
        },
        "org.isda.cdm.StrikeBuilder": {
            "title": "StrikeBuilder",
            "description": "An instance of org.isda.cdm.StrikeBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StrikeBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.StrikeBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "buyer": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiverEnum"
                },
                "seller": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiverEnum"
                },
                "strikeRate": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "buyer", "seller", "strikeRate"]
        },
        "org.isda.cdm.Strike": {
            "title": "Strike",
            "description": "An instance of org.isda.cdm.Strike",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Strike",
                    "pattern": "^org\\.isda\\.cdm\\.Strike$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "buyer": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiverEnum"
                },
                "seller": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiverEnum"
                },
                "strikeRate": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "buyer", "seller", "strikeRate"]
        },
        "org.isda.cdm.PaymentTypeEnum": {
            "title": "PaymentTypeEnum",
            "description": "An instance of org.isda.cdm.PaymentTypeEnum",
            "enum": ["NET_CASHFLOW", "BROKERAGE_COMMISSION", "FEE", "INTEREST", "NET_INTEREST", "NOVATION_FEE", "PREMIUM", "TERMINATION_FEE"]
        },
        "org.isda.cdm.StrikeSchedule": {
            "title": "StrikeSchedule",
            "description": "An instance of org.isda.cdm.StrikeSchedule",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StrikeSchedule",
                    "pattern": "^org\\.isda\\.cdm\\.StrikeSchedule$",
                    "description": "The class identifier for this type"
                },
                "buyer": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiverEnum"
                },
                "seller": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiverEnum"
                },
                "id": {
                    "type": "string"
                },
                "initialValue": {
                    "type": "number"
                },
                "step": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Step"
                    }
                }
            },
            "required": ["$class", "buyer", "seller", "id", "initialValue", "step"]
        },
        "org.isda.cdm.StrikeScheduleBuilder": {
            "title": "StrikeScheduleBuilder",
            "description": "An instance of org.isda.cdm.StrikeScheduleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StrikeScheduleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.StrikeScheduleBuilder$",
                    "description": "The class identifier for this type"
                },
                "buyer": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiverEnum"
                },
                "seller": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiverEnum"
                },
                "id": {
                    "type": "string"
                },
                "initialValue": {
                    "type": "number"
                }
            },
            "required": ["$class", "buyer", "seller", "id", "initialValue"]
        },
        "org.isda.cdm.AveragingMethodEnum": {
            "title": "AveragingMethodEnum",
            "description": "An instance of org.isda.cdm.AveragingMethodEnum",
            "enum": ["UNWEIGHTED", "WEIGHTED"]
        },
        "org.isda.cdm.IntentEnum": {
            "title": "IntentEnum",
            "description": "An instance of org.isda.cdm.IntentEnum",
            "enum": [
                "ALLOCATION",
                "COMPRESSION",
                "CORRECTION",
                "EARLY_TERMINATION",
                "EXERCISE",
                "INCREASE",
                "NEW_TRADE",
                "NOVATION",
                "PARTIAL_NOVATION",
                "PARTIAL_TERMINATION",
                "PORTFOLIO_COMPRESSION",
                "RENEGOTIATION",
                "TERMINATION"
            ]
        },
        "org.isda.cdm.ExercisePrimitive": {
            "title": "ExercisePrimitive",
            "description": "An instance of org.isda.cdm.ExercisePrimitive",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExercisePrimitive",
                    "pattern": "^org\\.isda\\.cdm\\.ExercisePrimitive$",
                    "description": "The class identifier for this type"
                },
                "before": {
                    "$ref": "#/definitions/org.isda.cdm.ContractOrContractReference"
                },
                "exerciseDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "exerciseTime": {
                    "format": "date-time",
                    "type": "string"
                },
                "fullExercise": {
                    "type": "boolean"
                },
                "after": {
                    "$ref": "#/definitions/org.isda.cdm.ExerciseOutcome"
                }
            },
            "required": ["$class", "before", "exerciseDate", "exerciseTime", "fullExercise", "after"]
        },
        "org.isda.cdm.ExercisePrimitiveBuilder": {
            "title": "ExercisePrimitiveBuilder",
            "description": "An instance of org.isda.cdm.ExercisePrimitiveBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExercisePrimitiveBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ExercisePrimitiveBuilder$",
                    "description": "The class identifier for this type"
                },
                "exerciseDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "exerciseTime": {
                    "format": "date-time",
                    "type": "string"
                },
                "fullExercise": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "exerciseDate", "exerciseTime", "fullExercise"]
        },
        "org.isda.cdm.DayOfWeekEnum": {
            "title": "DayOfWeekEnum",
            "description": "An instance of org.isda.cdm.DayOfWeekEnum",
            "enum": ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"]
        },
        "org.isda.cdm.AccountTypeEnum": {
            "title": "AccountTypeEnum",
            "description": "An instance of org.isda.cdm.AccountTypeEnum",
            "enum": ["AGGREGATE_CLIENT", "CLIENT", "HOUSE"]
        },
        "org.isda.cdm.AdjustedRelativeDateOffset": {
            "title": "AdjustedRelativeDateOffset",
            "description": "An instance of org.isda.cdm.AdjustedRelativeDateOffset",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdjustedRelativeDateOffset",
                    "pattern": "^org\\.isda\\.cdm\\.AdjustedRelativeDateOffset$",
                    "description": "The class identifier for this type"
                },
                "relativeDateAdjustments": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayAdjustments"
                },
                "businessDayConvention": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayConventionEnum"
                },
                "businessCenters": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenters"
                },
                "businessCentersReference": {
                    "type": "string"
                },
                "dateRelativeTo": {
                    "type": "string"
                },
                "adjustedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "dayType": {
                    "$ref": "#/definitions/org.isda.cdm.DayTypeEnum"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": [
                "$class",
                "relativeDateAdjustments",
                "businessDayConvention",
                "businessCenters",
                "businessCentersReference",
                "dateRelativeTo",
                "adjustedDate",
                "dayType",
                "id",
                "period",
                "periodMultiplier"
            ]
        },
        "org.isda.cdm.AdjustedRelativeDateOffsetBuilder": {
            "title": "AdjustedRelativeDateOffsetBuilder",
            "description": "An instance of org.isda.cdm.AdjustedRelativeDateOffsetBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdjustedRelativeDateOffsetBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AdjustedRelativeDateOffsetBuilder$",
                    "description": "The class identifier for this type"
                },
                "businessDayConvention": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayConventionEnum"
                },
                "businessCentersReference": {
                    "type": "string"
                },
                "dateRelativeTo": {
                    "type": "string"
                },
                "adjustedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "dayType": {
                    "$ref": "#/definitions/org.isda.cdm.DayTypeEnum"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": ["$class", "businessDayConvention", "businessCentersReference", "dateRelativeTo", "adjustedDate", "dayType", "id", "period", "periodMultiplier"]
        },
        "org.isda.cdm.CreditSupportAgreementBuilder": {
            "title": "CreditSupportAgreementBuilder",
            "description": "An instance of org.isda.cdm.CreditSupportAgreementBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CreditSupportAgreementBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CreditSupportAgreementBuilder$",
                    "description": "The class identifier for this type"
                },
                "type": {
                    "$ref": "#/definitions/org.isda.cdm.CreditSupportAgreementTypeEnum"
                },
                "identifierValue": {
                    "type": "string"
                },
                "date": {
                    "format": "date-time",
                    "type": "string"
                },
                "typeScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "type", "identifierValue", "date", "typeScheme"]
        },
        "org.isda.cdm.CreditSupportAgreement": {
            "title": "CreditSupportAgreement",
            "description": "An instance of org.isda.cdm.CreditSupportAgreement",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CreditSupportAgreement",
                    "pattern": "^org\\.isda\\.cdm\\.CreditSupportAgreement$",
                    "description": "The class identifier for this type"
                },
                "type": {
                    "$ref": "#/definitions/org.isda.cdm.CreditSupportAgreementTypeEnum"
                },
                "identifierValue": {
                    "type": "string"
                },
                "date": {
                    "format": "date-time",
                    "type": "string"
                },
                "typeScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "type", "identifierValue", "date", "typeScheme"]
        },
        "org.isda.cdm.PaymentStatusEnum": {
            "title": "PaymentStatusEnum",
            "description": "An instance of org.isda.cdm.PaymentStatusEnum",
            "enum": ["DISPUTED", "INSTRUCTED", "PENDING", "SETTLED"]
        },
        "org.isda.cdm.LinkId": {
            "title": "LinkId",
            "description": "An instance of org.isda.cdm.LinkId",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.LinkId",
                    "pattern": "^org\\.isda\\.cdm\\.LinkId$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "linkId": {
                    "type": "string"
                },
                "linkIdScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "linkId", "linkIdScheme"]
        },
        "org.isda.cdm.LinkIdBuilder": {
            "title": "LinkIdBuilder",
            "description": "An instance of org.isda.cdm.LinkIdBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.LinkIdBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.LinkIdBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "linkId": {
                    "type": "string"
                },
                "linkIdScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "linkId", "linkIdScheme"]
        },
        "org.isda.cdm.MasterConfirmationTypeEnum": {
            "title": "MasterConfirmationTypeEnum",
            "description": "An instance of org.isda.cdm.MasterConfirmationTypeEnum",
            "enum": ["CREDIT_INDEX_2003", "DJ_CDX_NA", "DJ_I_TRAXX_EUROPE", "ISDA_1999_CREDIT", "ISDA_2003_CREDIT_JAPAN", "ISDA_2003_CREDIT_NORTH_AMERICAN"]
        },
        "org.isda.cdm.MatrixTypeEnum": {
            "title": "MatrixTypeEnum",
            "description": "An instance of org.isda.cdm.MatrixTypeEnum",
            "enum": ["CREDIT_DERIVATIVES_PHYSICAL_SETTLEMENT_MATRIX", "EQUITY_DERIVATIVES_MATRIX", "SETTLEMENT_MATRIX"]
        },
        "org.isda.cdm.ExtendibleProvisionBuilder": {
            "title": "ExtendibleProvisionBuilder",
            "description": "An instance of org.isda.cdm.ExtendibleProvisionBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExtendibleProvisionBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ExtendibleProvisionBuilder$",
                    "description": "The class identifier for this type"
                },
                "followUpConfirmation": {
                    "type": "boolean"
                },
                "sellerPartyReference": {
                    "type": "string"
                },
                "buyerPartyReference": {
                    "type": "string"
                },
                "buyerAccountReference": {
                    "type": "string"
                },
                "sellerAccountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "followUpConfirmation", "sellerPartyReference", "buyerPartyReference", "buyerAccountReference", "sellerAccountReference"]
        },
        "org.isda.cdm.ExtendibleProvision": {
            "title": "ExtendibleProvision",
            "description": "An instance of org.isda.cdm.ExtendibleProvision",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExtendibleProvision",
                    "pattern": "^org\\.isda\\.cdm\\.ExtendibleProvision$",
                    "description": "The class identifier for this type"
                },
                "followUpConfirmation": {
                    "type": "boolean"
                },
                "americanExercise": {
                    "$ref": "#/definitions/org.isda.cdm.AmericanExercise"
                },
                "bermudaExercise": {
                    "$ref": "#/definitions/org.isda.cdm.BermudaExercise"
                },
                "europeanExercise": {
                    "$ref": "#/definitions/org.isda.cdm.EuropeanExercise"
                },
                "exerciseNotice": {
                    "$ref": "#/definitions/org.isda.cdm.ExerciseNotice"
                },
                "extendibleProvisionAdjustedDates": {
                    "$ref": "#/definitions/org.isda.cdm.ExtendibleProvisionAdjustedDates"
                },
                "sellerPartyReference": {
                    "type": "string"
                },
                "buyerPartyReference": {
                    "type": "string"
                },
                "buyerAccountReference": {
                    "type": "string"
                },
                "sellerAccountReference": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "followUpConfirmation",
                "americanExercise",
                "bermudaExercise",
                "europeanExercise",
                "exerciseNotice",
                "extendibleProvisionAdjustedDates",
                "sellerPartyReference",
                "buyerPartyReference",
                "buyerAccountReference",
                "sellerAccountReference"
            ]
        },
        "org.isda.cdm.InterestShortfallCapEnum": {
            "title": "InterestShortfallCapEnum",
            "description": "An instance of org.isda.cdm.InterestShortfallCapEnum",
            "enum": ["FIXED", "VARIABLE"]
        },
        "org.isda.cdm.ExtensionEvent": {
            "title": "ExtensionEvent",
            "description": "An instance of org.isda.cdm.ExtensionEvent",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExtensionEvent",
                    "pattern": "^org\\.isda\\.cdm\\.ExtensionEvent$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "adjustedExerciseDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedExtendedTerminationDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "id", "adjustedExerciseDate", "adjustedExtendedTerminationDate"]
        },
        "org.isda.cdm.ExtensionEventBuilder": {
            "title": "ExtensionEventBuilder",
            "description": "An instance of org.isda.cdm.ExtensionEventBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExtensionEventBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ExtensionEventBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "adjustedExerciseDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedExtendedTerminationDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "id", "adjustedExerciseDate", "adjustedExtendedTerminationDate"]
        },
        "org.isda.cdm.CreditSeniorityEnum": {
            "title": "CreditSeniorityEnum",
            "description": "An instance of org.isda.cdm.CreditSeniorityEnum",
            "enum": ["OTHER", "SENIOR_SEC", "SENIOR_UN_SEC", "SUB_LOWER_TIER_2", "SUB_TIER_1", "SUB_TIER_3", "SUB_UPPER_TIER_2"]
        },
        "org.isda.cdm.InterpolationMethodEnum": {
            "title": "InterpolationMethodEnum",
            "description": "An instance of org.isda.cdm.InterpolationMethodEnum",
            "enum": ["LINEAR_ZERO_YIELD", "NONE"]
        },
        "org.isda.cdm.AdjustableOrAdjustedDate": {
            "title": "AdjustableOrAdjustedDate",
            "description": "An instance of org.isda.cdm.AdjustableOrAdjustedDate",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdjustableOrAdjustedDate",
                    "pattern": "^org\\.isda\\.cdm\\.AdjustableOrAdjustedDate$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "unadjustedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "dateAdjustments": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayAdjustments"
                }
            },
            "required": ["$class", "id", "unadjustedDate", "adjustedDate", "dateAdjustments"]
        },
        "org.isda.cdm.AdjustableOrAdjustedDateBuilder": {
            "title": "AdjustableOrAdjustedDateBuilder",
            "description": "An instance of org.isda.cdm.AdjustableOrAdjustedDateBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdjustableOrAdjustedDateBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AdjustableOrAdjustedDateBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "unadjustedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "id", "unadjustedDate", "adjustedDate"]
        },
        "org.isda.cdm.BuyerSeller": {
            "title": "BuyerSeller",
            "description": "An instance of org.isda.cdm.BuyerSeller",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BuyerSeller",
                    "pattern": "^org\\.isda\\.cdm\\.BuyerSeller$",
                    "description": "The class identifier for this type"
                },
                "sellerPartyReference": {
                    "type": "string"
                },
                "buyerPartyReference": {
                    "type": "string"
                },
                "buyerAccountReference": {
                    "type": "string"
                },
                "sellerAccountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "sellerPartyReference", "buyerPartyReference", "buyerAccountReference", "sellerAccountReference"]
        },
        "org.isda.cdm.BuyerSellerBuilder": {
            "title": "BuyerSellerBuilder",
            "description": "An instance of org.isda.cdm.BuyerSellerBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BuyerSellerBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.BuyerSellerBuilder$",
                    "description": "The class identifier for this type"
                },
                "sellerPartyReference": {
                    "type": "string"
                },
                "buyerPartyReference": {
                    "type": "string"
                },
                "buyerAccountReference": {
                    "type": "string"
                },
                "sellerAccountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "sellerPartyReference", "buyerPartyReference", "buyerAccountReference", "sellerAccountReference"]
        },
        "org.isda.cdm.PaymentBuilder": {
            "title": "PaymentBuilder",
            "description": "An instance of org.isda.cdm.PaymentBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PaymentBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PaymentBuilder$",
                    "description": "The class identifier for this type"
                },
                "paymentType": {
                    "$ref": "#/definitions/org.isda.cdm.PaymentTypeEnum"
                },
                "paymentStatus": {
                    "$ref": "#/definitions/org.isda.cdm.PaymentStatusEnum"
                },
                "settlementReference": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "discountFactor": {
                    "type": "number"
                }
            },
            "required": ["$class", "paymentType", "paymentStatus", "settlementReference", "id", "discountFactor"]
        },
        "org.isda.cdm.Payment": {
            "title": "Payment",
            "description": "An instance of org.isda.cdm.Payment",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Payment",
                    "pattern": "^org\\.isda\\.cdm\\.Payment$",
                    "description": "The class identifier for this type"
                },
                "paymentType": {
                    "$ref": "#/definitions/org.isda.cdm.PaymentTypeEnum"
                },
                "paymentDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableOrAdjustedOrRelativeDate"
                },
                "grossCashflow": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.GrossCashflow"
                    }
                },
                "paymentStatus": {
                    "$ref": "#/definitions/org.isda.cdm.PaymentStatusEnum"
                },
                "settlementReference": {
                    "type": "string"
                },
                "rosettaKey": {
                    "type": "string"
                },
                "paymentAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "id": {
                    "type": "string"
                },
                "discountFactor": {
                    "type": "number"
                },
                "presentValueAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "premiumExpression": {
                    "$ref": "#/definitions/org.isda.cdm.PremiumExpression"
                },
                "paymentDiscounting": {
                    "$ref": "#/definitions/org.isda.cdm.PaymentDiscounting"
                },
                "payerReceiver": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiver"
                }
            },
            "required": [
                "$class",
                "paymentType",
                "paymentDate",
                "grossCashflow",
                "paymentStatus",
                "settlementReference",
                "rosettaKey",
                "paymentAmount",
                "id",
                "discountFactor",
                "presentValueAmount",
                "premiumExpression",
                "paymentDiscounting",
                "payerReceiver"
            ]
        },
        "org.isda.cdm.LengthUnitEnum": {
            "title": "LengthUnitEnum",
            "description": "An instance of org.isda.cdm.LengthUnitEnum",
            "enum": ["PAGES", "TIME_UNIT"]
        },
        "org.isda.cdm.SingleValuationDateBuilder": {
            "title": "SingleValuationDateBuilder",
            "description": "An instance of org.isda.cdm.SingleValuationDateBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SingleValuationDateBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.SingleValuationDateBuilder$",
                    "description": "The class identifier for this type"
                },
                "businessDays": {
                    "type": "integer"
                }
            },
            "required": ["$class", "businessDays"]
        },
        "org.isda.cdm.SingleValuationDate": {
            "title": "SingleValuationDate",
            "description": "An instance of org.isda.cdm.SingleValuationDate",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SingleValuationDate",
                    "pattern": "^org\\.isda\\.cdm\\.SingleValuationDate$",
                    "description": "The class identifier for this type"
                },
                "businessDays": {
                    "type": "integer"
                }
            },
            "required": ["$class", "businessDays"]
        },
        "org.isda.cdm.PayerReceiverEnum": {
            "title": "PayerReceiverEnum",
            "description": "An instance of org.isda.cdm.PayerReceiverEnum",
            "enum": ["PAYER", "RECEIVER"]
        },
        "org.isda.cdm.FloatingRateCalculation": {
            "title": "FloatingRateCalculation",
            "description": "An instance of org.isda.cdm.FloatingRateCalculation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FloatingRateCalculation",
                    "pattern": "^org\\.isda\\.cdm\\.FloatingRateCalculation$",
                    "description": "The class identifier for this type"
                },
                "initialRate": {
                    "type": "number"
                },
                "finalRateRounding": {
                    "$ref": "#/definitions/org.isda.cdm.Rounding"
                },
                "averagingMethod": {
                    "$ref": "#/definitions/org.isda.cdm.AveragingMethodEnum"
                },
                "negativeInterestRateTreatment": {
                    "$ref": "#/definitions/org.isda.cdm.NegativeInterestRateTreatmentEnum"
                },
                "id": {
                    "type": "string"
                },
                "spreadSchedule": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.SpreadSchedule"
                    }
                },
                "floatingRateIndexScheme": {
                    "type": "string"
                },
                "floatingRateMultiplierSchedule": {
                    "$ref": "#/definitions/org.isda.cdm.Schedule"
                },
                "floatingRateIndex": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                },
                "indexTenor": {
                    "$ref": "#/definitions/org.isda.cdm.Period"
                },
                "rateTreatment": {
                    "$ref": "#/definitions/org.isda.cdm.RateTreatmentEnum"
                },
                "capRateSchedule": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.StrikeSchedule"
                    }
                },
                "floorRateSchedule": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.StrikeSchedule"
                    }
                }
            },
            "required": [
                "$class",
                "initialRate",
                "finalRateRounding",
                "averagingMethod",
                "negativeInterestRateTreatment",
                "id",
                "spreadSchedule",
                "floatingRateIndexScheme",
                "floatingRateMultiplierSchedule",
                "floatingRateIndex",
                "indexTenor",
                "rateTreatment",
                "capRateSchedule",
                "floorRateSchedule"
            ]
        },
        "org.isda.cdm.FloatingRateCalculationBuilder": {
            "title": "FloatingRateCalculationBuilder",
            "description": "An instance of org.isda.cdm.FloatingRateCalculationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FloatingRateCalculationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FloatingRateCalculationBuilder$",
                    "description": "The class identifier for this type"
                },
                "initialRate": {
                    "type": "number"
                },
                "averagingMethod": {
                    "$ref": "#/definitions/org.isda.cdm.AveragingMethodEnum"
                },
                "negativeInterestRateTreatment": {
                    "$ref": "#/definitions/org.isda.cdm.NegativeInterestRateTreatmentEnum"
                },
                "id": {
                    "type": "string"
                },
                "floatingRateIndexScheme": {
                    "type": "string"
                },
                "floatingRateIndex": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                },
                "rateTreatment": {
                    "$ref": "#/definitions/org.isda.cdm.RateTreatmentEnum"
                }
            },
            "required": ["$class", "initialRate", "averagingMethod", "negativeInterestRateTreatment", "id", "floatingRateIndexScheme", "floatingRateIndex", "rateTreatment"]
        },
        "org.isda.cdm.EventTestBundleBuilder": {
            "title": "EventTestBundleBuilder",
            "description": "An instance of org.isda.cdm.EventTestBundleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EventTestBundleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.EventTestBundleBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.EventTestBundle": {
            "title": "EventTestBundle",
            "description": "An instance of org.isda.cdm.EventTestBundle",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EventTestBundle",
                    "pattern": "^org\\.isda\\.cdm\\.EventTestBundle$",
                    "description": "The class identifier for this type"
                },
                "event": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.accordproject.base.Event"
                    }
                },
                "computedAmount": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ComputedAmount"
                    }
                }
            },
            "required": ["$class", "event", "computedAmount"]
        },
        "org.isda.cdm.NonDeliverableSettlementBuilder": {
            "title": "NonDeliverableSettlementBuilder",
            "description": "An instance of org.isda.cdm.NonDeliverableSettlementBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NonDeliverableSettlementBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.NonDeliverableSettlementBuilder$",
                    "description": "The class identifier for this type"
                },
                "referenceCurrency": {
                    "type": "string"
                },
                "settlementRateOption": {
                    "$ref": "#/definitions/org.isda.cdm.SettlementRateOptionEnum"
                },
                "referenceCurrencyScheme": {
                    "type": "string"
                },
                "settlementRateOptionScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "referenceCurrency", "settlementRateOption", "referenceCurrencyScheme", "settlementRateOptionScheme"]
        },
        "org.isda.cdm.NonDeliverableSettlement": {
            "title": "NonDeliverableSettlement",
            "description": "An instance of org.isda.cdm.NonDeliverableSettlement",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NonDeliverableSettlement",
                    "pattern": "^org\\.isda\\.cdm\\.NonDeliverableSettlement$",
                    "description": "The class identifier for this type"
                },
                "referenceCurrency": {
                    "type": "string"
                },
                "fxFixingDate": {
                    "$ref": "#/definitions/org.isda.cdm.FxFixingDate"
                },
                "fxFixingSchedule": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableDates"
                },
                "settlementRateOption": {
                    "$ref": "#/definitions/org.isda.cdm.SettlementRateOptionEnum"
                },
                "priceSourceDisruption": {
                    "$ref": "#/definitions/org.isda.cdm.PriceSourceDisruption"
                },
                "referenceCurrencyScheme": {
                    "type": "string"
                },
                "settlementRateOptionScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "referenceCurrency", "fxFixingDate", "fxFixingSchedule", "settlementRateOption", "priceSourceDisruption", "referenceCurrencyScheme", "settlementRateOptionScheme"]
        },
        "org.isda.cdm.AutomaticExercise": {
            "title": "AutomaticExercise",
            "description": "An instance of org.isda.cdm.AutomaticExercise",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AutomaticExercise",
                    "pattern": "^org\\.isda\\.cdm\\.AutomaticExercise$",
                    "description": "The class identifier for this type"
                },
                "thresholdRate": {
                    "type": "number"
                }
            },
            "required": ["$class", "thresholdRate"]
        },
        "org.isda.cdm.AutomaticExerciseBuilder": {
            "title": "AutomaticExerciseBuilder",
            "description": "An instance of org.isda.cdm.AutomaticExerciseBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AutomaticExerciseBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AutomaticExerciseBuilder$",
                    "description": "The class identifier for this type"
                },
                "thresholdRate": {
                    "type": "number"
                }
            },
            "required": ["$class", "thresholdRate"]
        },
        "org.isda.cdm.MasterConfirmationAnnexTypeEnum": {
            "title": "MasterConfirmationAnnexTypeEnum",
            "description": "An instance of org.isda.cdm.MasterConfirmationAnnexTypeEnum",
            "enum": ["ISDA_2004_INDEX_VARIANCE_SWAP_AMERICAS_INTERDEALER"]
        },
        "org.isda.cdm.CalculationPeriodFrequency": {
            "title": "CalculationPeriodFrequency",
            "description": "An instance of org.isda.cdm.CalculationPeriodFrequency",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CalculationPeriodFrequency",
                    "pattern": "^org\\.isda\\.cdm\\.CalculationPeriodFrequency$",
                    "description": "The class identifier for this type"
                },
                "rollConvention": {
                    "$ref": "#/definitions/org.isda.cdm.RollConventionEnum"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodExtendedEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": ["$class", "rollConvention", "id", "period", "periodMultiplier"]
        },
        "org.isda.cdm.CalculationPeriodFrequencyBuilder": {
            "title": "CalculationPeriodFrequencyBuilder",
            "description": "An instance of org.isda.cdm.CalculationPeriodFrequencyBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CalculationPeriodFrequencyBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CalculationPeriodFrequencyBuilder$",
                    "description": "The class identifier for this type"
                },
                "rollConvention": {
                    "$ref": "#/definitions/org.isda.cdm.RollConventionEnum"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodExtendedEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": ["$class", "rollConvention", "id", "period", "periodMultiplier"]
        },
        "org.isda.cdm.CashflowRepresentationBuilder": {
            "title": "CashflowRepresentationBuilder",
            "description": "An instance of org.isda.cdm.CashflowRepresentationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CashflowRepresentationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CashflowRepresentationBuilder$",
                    "description": "The class identifier for this type"
                },
                "cashflowsMatchParameters": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "cashflowsMatchParameters"]
        },
        "org.isda.cdm.CashflowRepresentation": {
            "title": "CashflowRepresentation",
            "description": "An instance of org.isda.cdm.CashflowRepresentation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CashflowRepresentation",
                    "pattern": "^org\\.isda\\.cdm\\.CashflowRepresentation$",
                    "description": "The class identifier for this type"
                },
                "cashflowsMatchParameters": {
                    "type": "boolean"
                },
                "principalExchange": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.PrincipalExchange"
                    }
                },
                "paymentCalculationPeriod": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.PaymentCalculationPeriod"
                    }
                }
            },
            "required": ["$class", "cashflowsMatchParameters", "principalExchange", "paymentCalculationPeriod"]
        },
        "org.isda.cdm.DiscountingBuilder": {
            "title": "DiscountingBuilder",
            "description": "An instance of org.isda.cdm.DiscountingBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DiscountingBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.DiscountingBuilder$",
                    "description": "The class identifier for this type"
                },
                "discountRateDayCountFraction": {
                    "$ref": "#/definitions/org.isda.cdm.DayCountFractionEnum"
                },
                "discountRate": {
                    "type": "number"
                },
                "discountingType": {
                    "$ref": "#/definitions/org.isda.cdm.DiscountingTypeEnum"
                },
                "discountRateDayCountFractionScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "discountRateDayCountFraction", "discountRate", "discountingType", "discountRateDayCountFractionScheme"]
        },
        "org.isda.cdm.Discounting": {
            "title": "Discounting",
            "description": "An instance of org.isda.cdm.Discounting",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Discounting",
                    "pattern": "^org\\.isda\\.cdm\\.Discounting$",
                    "description": "The class identifier for this type"
                },
                "discountRateDayCountFraction": {
                    "$ref": "#/definitions/org.isda.cdm.DayCountFractionEnum"
                },
                "discountRate": {
                    "type": "number"
                },
                "discountingType": {
                    "$ref": "#/definitions/org.isda.cdm.DiscountingTypeEnum"
                },
                "discountRateDayCountFractionScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "discountRateDayCountFraction", "discountRate", "discountingType", "discountRateDayCountFractionScheme"]
        },
        "org.isda.cdm.YieldCurveMethod": {
            "title": "YieldCurveMethod",
            "description": "An instance of org.isda.cdm.YieldCurveMethod",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.YieldCurveMethod",
                    "pattern": "^org\\.isda\\.cdm\\.YieldCurveMethod$",
                    "description": "The class identifier for this type"
                },
                "quotationRateType": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationRateTypeEnum"
                },
                "settlementRateSource": {
                    "$ref": "#/definitions/org.isda.cdm.SettlementRateSource"
                }
            },
            "required": ["$class", "quotationRateType", "settlementRateSource"]
        },
        "org.isda.cdm.YieldCurveMethodBuilder": {
            "title": "YieldCurveMethodBuilder",
            "description": "An instance of org.isda.cdm.YieldCurveMethodBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.YieldCurveMethodBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.YieldCurveMethodBuilder$",
                    "description": "The class identifier for this type"
                },
                "quotationRateType": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationRateTypeEnum"
                }
            },
            "required": ["$class", "quotationRateType"]
        },
        "org.isda.cdm.CreditSupportAgreementTypeEnum": {
            "title": "CreditSupportAgreementTypeEnum",
            "description": "An instance of org.isda.cdm.CreditSupportAgreementTypeEnum",
            "enum": [
                "ISDA_1994_CREDIT_SUPPORT_ANNEX_NEW_YORK_LAW",
                "ISDA_1995_CREDIT_SUPPORT_ANNEX_ENGLISH_LAW",
                "ISDA_1995_CREDIT_SUPPORT_ANNEX_JAPANESE_LAW",
                "ISDA_1995_CREDIT_SUPPORT_DEED_ENGLISH_LAW",
                "ISDA_2001_MARGIN_PROVISIONS",
                "ISDA_2013_STANDARD_CREDIT_SUPPORT_AGREEMENT",
                "ISDA_2014_STANDARD_CREDIT_SUPPORT_AGREEMENT"
            ]
        },
        "org.isda.cdm.OptionExercise": {
            "title": "OptionExercise",
            "description": "An instance of org.isda.cdm.OptionExercise",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionExercise",
                    "pattern": "^org\\.isda\\.cdm\\.OptionExercise$",
                    "description": "The class identifier for this type"
                },
                "optionStyle": {
                    "$ref": "#/definitions/org.isda.cdm.OptionStyle"
                },
                "strike": {
                    "$ref": "#/definitions/org.isda.cdm.OptionStrike"
                },
                "exerciseProcedure": {
                    "$ref": "#/definitions/org.isda.cdm.ExerciseProcedure"
                },
                "settlement": {
                    "$ref": "#/definitions/org.isda.cdm.OptionSettlement"
                }
            },
            "required": ["$class", "optionStyle", "strike", "exerciseProcedure", "settlement"]
        },
        "org.isda.cdm.OptionExerciseBuilder": {
            "title": "OptionExerciseBuilder",
            "description": "An instance of org.isda.cdm.OptionExerciseBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionExerciseBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.OptionExerciseBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.CashSettlementPaymentDateBuilder": {
            "title": "CashSettlementPaymentDateBuilder",
            "description": "An instance of org.isda.cdm.CashSettlementPaymentDateBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CashSettlementPaymentDateBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CashSettlementPaymentDateBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                }
            },
            "required": ["$class", "id"]
        },
        "org.isda.cdm.CashSettlementPaymentDate": {
            "title": "CashSettlementPaymentDate",
            "description": "An instance of org.isda.cdm.CashSettlementPaymentDate",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CashSettlementPaymentDate",
                    "pattern": "^org\\.isda\\.cdm\\.CashSettlementPaymentDate$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "adjustableDates": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableDates"
                },
                "businessDateRange": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDateRange"
                },
                "relativeDate": {
                    "$ref": "#/definitions/org.isda.cdm.RelativeDateOffset"
                }
            },
            "required": ["$class", "id", "adjustableDates", "businessDateRange", "relativeDate"]
        },
        "org.isda.cdm.DateList": {
            "title": "DateList",
            "description": "An instance of org.isda.cdm.DateList",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DateList",
                    "pattern": "^org\\.isda\\.cdm\\.DateList$",
                    "description": "The class identifier for this type"
                },
                "date": {
                    "type": "array",
                    "items": {
                        "format": "date-time",
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "date"]
        },
        "org.isda.cdm.DateListBuilder": {
            "title": "DateListBuilder",
            "description": "An instance of org.isda.cdm.DateListBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DateListBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.DateListBuilder$",
                    "description": "The class identifier for this type"
                },
                "date": {
                    "type": "array",
                    "items": {
                        "format": "date-time",
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "date"]
        },
        "org.isda.cdm.DateRange": {
            "title": "DateRange",
            "description": "An instance of org.isda.cdm.DateRange",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DateRange",
                    "pattern": "^org\\.isda\\.cdm\\.DateRange$",
                    "description": "The class identifier for this type"
                },
                "unadjustedFirstDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "unadjustedLastDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "unadjustedFirstDate", "unadjustedLastDate"]
        },
        "org.isda.cdm.DateRangeBuilder": {
            "title": "DateRangeBuilder",
            "description": "An instance of org.isda.cdm.DateRangeBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DateRangeBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.DateRangeBuilder$",
                    "description": "The class identifier for this type"
                },
                "unadjustedFirstDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "unadjustedLastDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "unadjustedFirstDate", "unadjustedLastDate"]
        },
        "org.isda.cdm.PrimitiveEvent": {
            "title": "PrimitiveEvent",
            "description": "An instance of org.isda.cdm.PrimitiveEvent",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PrimitiveEvent",
                    "pattern": "^org\\.isda\\.cdm\\.PrimitiveEvent$",
                    "description": "The class identifier for this type"
                },
                "payment": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Payment"
                    }
                },
                "observation": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ObservationPrimitive"
                    }
                },
                "transfer": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Transfer"
                    }
                },
                "newTrade": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.NewTradePrimitive"
                    }
                },
                "inception": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Inception"
                    }
                },
                "quantityChange": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.QuantityChangePrimitive"
                    }
                },
                "allocation": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.AllocationPrimitive"
                    }
                },
                "termsChange": {
                    "$ref": "#/definitions/org.isda.cdm.TermsChangePrimitive"
                },
                "exercise": {
                    "$ref": "#/definitions/org.isda.cdm.ExercisePrimitive"
                },
                "reset": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ResetPrimitive"
                    }
                }
            },
            "required": ["$class", "payment", "observation", "transfer", "newTrade", "inception", "quantityChange", "allocation", "termsChange", "exercise", "reset"]
        },
        "org.isda.cdm.PrimitiveEventBuilder": {
            "title": "PrimitiveEventBuilder",
            "description": "An instance of org.isda.cdm.PrimitiveEventBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PrimitiveEventBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PrimitiveEventBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.StubValueBuilder": {
            "title": "StubValueBuilder",
            "description": "An instance of org.isda.cdm.StubValueBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StubValueBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.StubValueBuilder$",
                    "description": "The class identifier for this type"
                },
                "stubRate": {
                    "type": "number"
                }
            },
            "required": ["$class", "stubRate"]
        },
        "org.isda.cdm.StubValue": {
            "title": "StubValue",
            "description": "An instance of org.isda.cdm.StubValue",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StubValue",
                    "pattern": "^org\\.isda\\.cdm\\.StubValue$",
                    "description": "The class identifier for this type"
                },
                "floatingRate": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.StubFloatingRate"
                    }
                },
                "stubRate": {
                    "type": "number"
                },
                "stubAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                }
            },
            "required": ["$class", "floatingRate", "stubRate", "stubAmount"]
        },
        "org.isda.cdm.PartyRoleEnum": {
            "title": "PartyRoleEnum",
            "description": "An instance of org.isda.cdm.PartyRoleEnum",
            "enum": ["BARRIER_DETERMINATION_AGENT", "BENEFICIARY", "BROKER", "DETERMINING_PARTY", "HEDGING_PARTY"]
        },
        "org.isda.cdm.GrossCashflowBuilder": {
            "title": "GrossCashflowBuilder",
            "description": "An instance of org.isda.cdm.GrossCashflowBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.GrossCashflowBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.GrossCashflowBuilder$",
                    "description": "The class identifier for this type"
                },
                "cashflowCalculation": {
                    "type": "string"
                },
                "cashflowType": {
                    "$ref": "#/definitions/org.isda.cdm.CashflowTypeEnum"
                },
                "id": {
                    "type": "string"
                },
                "discountFactor": {
                    "type": "number"
                }
            },
            "required": ["$class", "cashflowCalculation", "cashflowType", "id", "discountFactor"]
        },
        "org.isda.cdm.GrossCashflow": {
            "title": "GrossCashflow",
            "description": "An instance of org.isda.cdm.GrossCashflow",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.GrossCashflow",
                    "pattern": "^org\\.isda\\.cdm\\.GrossCashflow$",
                    "description": "The class identifier for this type"
                },
                "payoutLineage": {
                    "$ref": "#/definitions/org.isda.cdm.PayoutLineage"
                },
                "cashflowCalculation": {
                    "type": "string"
                },
                "cashflowType": {
                    "$ref": "#/definitions/org.isda.cdm.CashflowTypeEnum"
                },
                "cashflowAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "id": {
                    "type": "string"
                },
                "discountFactor": {
                    "type": "number"
                },
                "presentValueAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "premiumExpression": {
                    "$ref": "#/definitions/org.isda.cdm.PremiumExpression"
                },
                "paymentDiscounting": {
                    "$ref": "#/definitions/org.isda.cdm.PaymentDiscounting"
                },
                "payerReceiver": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiver"
                }
            },
            "required": [
                "$class",
                "payoutLineage",
                "cashflowCalculation",
                "cashflowType",
                "cashflowAmount",
                "id",
                "discountFactor",
                "presentValueAmount",
                "premiumExpression",
                "paymentDiscounting",
                "payerReceiver"
            ]
        },
        "org.isda.cdm.NaturalPersonRole": {
            "title": "NaturalPersonRole",
            "description": "An instance of org.isda.cdm.NaturalPersonRole",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NaturalPersonRole",
                    "pattern": "^org\\.isda\\.cdm\\.NaturalPersonRole$",
                    "description": "The class identifier for this type"
                },
                "role": {
                    "$ref": "#/definitions/org.isda.cdm.NaturalPersonRoleEnum"
                },
                "personReference": {
                    "type": "string"
                },
                "roleScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "role", "personReference", "roleScheme"]
        },
        "org.isda.cdm.NaturalPersonRoleBuilder": {
            "title": "NaturalPersonRoleBuilder",
            "description": "An instance of org.isda.cdm.NaturalPersonRoleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NaturalPersonRoleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.NaturalPersonRoleBuilder$",
                    "description": "The class identifier for this type"
                },
                "role": {
                    "$ref": "#/definitions/org.isda.cdm.NaturalPersonRoleEnum"
                },
                "personReference": {
                    "type": "string"
                },
                "roleScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "role", "personReference", "roleScheme"]
        },
        "org.isda.cdm.QuantityTypeEnum": {
            "title": "QuantityTypeEnum",
            "description": "An instance of org.isda.cdm.QuantityTypeEnum",
            "enum": ["UNITS", "CONTRACTS", "UNITS_OF_MEASURE_PER_TIME_UNIT"]
        },
        "org.isda.cdm.EntityTypeEnum": {
            "title": "EntityTypeEnum",
            "description": "An instance of org.isda.cdm.EntityTypeEnum",
            "enum": [
                "ASIAN",
                "AUSTRALIAN_AND_NEW_ZEALAND",
                "EUROPEAN_EMERGING_MARKETS",
                "JAPANESE",
                "NORTH_AMERICAN_HIGH_YIELD",
                "NORTH_AMERICAN_INSURANCE",
                "NORTH_AMERICAN_INVESTMENT_GRADE",
                "SINGAPOREAN",
                "WESTERN_EUROPEAN",
                "WESTERN_EUROPEAN_INSURANCE"
            ]
        },
        "org.isda.cdm.FxFixingDate": {
            "title": "FxFixingDate",
            "description": "An instance of org.isda.cdm.FxFixingDate",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FxFixingDate",
                    "pattern": "^org\\.isda\\.cdm\\.FxFixingDate$",
                    "description": "The class identifier for this type"
                },
                "businessDayConvention": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayConventionEnum"
                },
                "businessCenters": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenters"
                },
                "businessCentersReference": {
                    "type": "string"
                },
                "dateRelativeToPaymentDates": {
                    "$ref": "#/definitions/org.isda.cdm.DateRelativeToPaymentDates"
                },
                "dateRelativeToCalculationPeriodDates": {
                    "$ref": "#/definitions/org.isda.cdm.DateRelativeToCalculationPeriodDates"
                },
                "dayType": {
                    "$ref": "#/definitions/org.isda.cdm.DayTypeEnum"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": [
                "$class",
                "businessDayConvention",
                "businessCenters",
                "businessCentersReference",
                "dateRelativeToPaymentDates",
                "dateRelativeToCalculationPeriodDates",
                "dayType",
                "id",
                "period",
                "periodMultiplier"
            ]
        },
        "org.isda.cdm.FxFixingDateBuilder": {
            "title": "FxFixingDateBuilder",
            "description": "An instance of org.isda.cdm.FxFixingDateBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FxFixingDateBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FxFixingDateBuilder$",
                    "description": "The class identifier for this type"
                },
                "businessDayConvention": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayConventionEnum"
                },
                "businessCentersReference": {
                    "type": "string"
                },
                "dayType": {
                    "$ref": "#/definitions/org.isda.cdm.DayTypeEnum"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": ["$class", "businessDayConvention", "businessCentersReference", "dayType", "id", "period", "periodMultiplier"]
        },
        "org.isda.cdm.RelatedParty": {
            "title": "RelatedParty",
            "description": "An instance of org.isda.cdm.RelatedParty",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.RelatedParty",
                    "pattern": "^org\\.isda\\.cdm\\.RelatedParty$",
                    "description": "The class identifier for this type"
                },
                "role": {
                    "$ref": "#/definitions/org.isda.cdm.PartyRoleEnum"
                },
                "accountReference": {
                    "type": "string"
                },
                "partyReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "role", "accountReference", "partyReference"]
        },
        "org.isda.cdm.RelatedPartyBuilder": {
            "title": "RelatedPartyBuilder",
            "description": "An instance of org.isda.cdm.RelatedPartyBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.RelatedPartyBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.RelatedPartyBuilder$",
                    "description": "The class identifier for this type"
                },
                "role": {
                    "$ref": "#/definitions/org.isda.cdm.PartyRoleEnum"
                },
                "accountReference": {
                    "type": "string"
                },
                "partyReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "role", "accountReference", "partyReference"]
        },
        "org.isda.cdm.SimplePayment": {
            "title": "SimplePayment",
            "description": "An instance of org.isda.cdm.SimplePayment",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SimplePayment",
                    "pattern": "^org\\.isda\\.cdm\\.SimplePayment$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "paymentDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableOrRelativeDate"
                },
                "paymentAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "payerPartyReference": {
                    "type": "string"
                },
                "receiverPartyReference": {
                    "type": "string"
                },
                "payerAccountReference": {
                    "type": "string"
                },
                "receiverAccountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "paymentDate", "paymentAmount", "payerPartyReference", "receiverPartyReference", "payerAccountReference", "receiverAccountReference"]
        },
        "org.isda.cdm.SimplePaymentBuilder": {
            "title": "SimplePaymentBuilder",
            "description": "An instance of org.isda.cdm.SimplePaymentBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SimplePaymentBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.SimplePaymentBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "payerPartyReference": {
                    "type": "string"
                },
                "receiverPartyReference": {
                    "type": "string"
                },
                "payerAccountReference": {
                    "type": "string"
                },
                "receiverAccountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "payerPartyReference", "receiverPartyReference", "payerAccountReference", "receiverAccountReference"]
        },
        "org.isda.cdm.ResetRelativeToEnum": {
            "title": "ResetRelativeToEnum",
            "description": "An instance of org.isda.cdm.ResetRelativeToEnum",
            "enum": ["CALCULATION_PERIOD_START_DATE", "CALCULATION_PERIOD_END_DATE"]
        },
        "org.isda.cdm.Product": {
            "title": "Product",
            "description": "An instance of org.isda.cdm.Product",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Product",
                    "pattern": "^org\\.isda\\.cdm\\.Product$",
                    "description": "The class identifier for this type"
                },
                "listedProduct": {
                    "$ref": "#/definitions/org.isda.cdm.ListedProduct"
                },
                "contractualProduct": {
                    "$ref": "#/definitions/org.isda.cdm.ContractualProduct"
                }
            },
            "required": ["$class", "listedProduct", "contractualProduct"]
        },
        "org.isda.cdm.ProductBuilder": {
            "title": "ProductBuilder",
            "description": "An instance of org.isda.cdm.ProductBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ProductBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ProductBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.ResetDates": {
            "title": "ResetDates",
            "description": "An instance of org.isda.cdm.ResetDates",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ResetDates",
                    "pattern": "^org\\.isda\\.cdm\\.ResetDates$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "rateCutOffDaysOffset": {
                    "$ref": "#/definitions/org.isda.cdm.Offset"
                },
                "resetRelativeTo": {
                    "$ref": "#/definitions/org.isda.cdm.ResetRelativeToEnum"
                },
                "initialFixingDate": {
                    "$ref": "#/definitions/org.isda.cdm.InitialFixingDate"
                },
                "finalFixingDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableDate"
                },
                "fixingDates": {
                    "$ref": "#/definitions/org.isda.cdm.RelativeDateOffset"
                },
                "calculationPeriodDatesReference": {
                    "type": "string"
                },
                "resetFrequency": {
                    "$ref": "#/definitions/org.isda.cdm.ResetFrequency"
                },
                "resetDatesAdjustments": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayAdjustments"
                }
            },
            "required": [
                "$class",
                "id",
                "rateCutOffDaysOffset",
                "resetRelativeTo",
                "initialFixingDate",
                "finalFixingDate",
                "fixingDates",
                "calculationPeriodDatesReference",
                "resetFrequency",
                "resetDatesAdjustments"
            ]
        },
        "org.isda.cdm.ResetDatesBuilder": {
            "title": "ResetDatesBuilder",
            "description": "An instance of org.isda.cdm.ResetDatesBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ResetDatesBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ResetDatesBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "resetRelativeTo": {
                    "$ref": "#/definitions/org.isda.cdm.ResetRelativeToEnum"
                },
                "calculationPeriodDatesReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "resetRelativeTo", "calculationPeriodDatesReference"]
        },
        "org.isda.cdm.NotDomesticCurrencyBuilder": {
            "title": "NotDomesticCurrencyBuilder",
            "description": "An instance of org.isda.cdm.NotDomesticCurrencyBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NotDomesticCurrencyBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.NotDomesticCurrencyBuilder$",
                    "description": "The class identifier for this type"
                },
                "currency": {
                    "type": "string"
                },
                "applicable": {
                    "type": "boolean"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "currency", "applicable", "currencyScheme"]
        },
        "org.isda.cdm.NotDomesticCurrency": {
            "title": "NotDomesticCurrency",
            "description": "An instance of org.isda.cdm.NotDomesticCurrency",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NotDomesticCurrency",
                    "pattern": "^org\\.isda\\.cdm\\.NotDomesticCurrency$",
                    "description": "The class identifier for this type"
                },
                "currency": {
                    "type": "string"
                },
                "applicable": {
                    "type": "boolean"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "currency", "applicable", "currencyScheme"]
        },
        "org.isda.cdm.AdjustableOrRelativeDate": {
            "title": "AdjustableOrRelativeDate",
            "description": "An instance of org.isda.cdm.AdjustableOrRelativeDate",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdjustableOrRelativeDate",
                    "pattern": "^org\\.isda\\.cdm\\.AdjustableOrRelativeDate$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "adjustableDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableDate"
                },
                "relativeDate": {
                    "$ref": "#/definitions/org.isda.cdm.RelativeDateOffset"
                }
            },
            "required": ["$class", "id", "adjustableDate", "relativeDate"]
        },
        "org.isda.cdm.AdjustableOrRelativeDateBuilder": {
            "title": "AdjustableOrRelativeDateBuilder",
            "description": "An instance of org.isda.cdm.AdjustableOrRelativeDateBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdjustableOrRelativeDateBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AdjustableOrRelativeDateBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                }
            },
            "required": ["$class", "id"]
        },
        "org.isda.cdm.FraDiscountingEnum": {
            "title": "FraDiscountingEnum",
            "description": "An instance of org.isda.cdm.FraDiscountingEnum",
            "enum": ["ISDA", "AFMA", "NONE", "ISDA_YIELD"]
        },
        "org.isda.cdm.FxLinkedNotionalScheduleBuilder": {
            "title": "FxLinkedNotionalScheduleBuilder",
            "description": "An instance of org.isda.cdm.FxLinkedNotionalScheduleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FxLinkedNotionalScheduleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FxLinkedNotionalScheduleBuilder$",
                    "description": "The class identifier for this type"
                },
                "varyingNotionalCurrency": {
                    "type": "string"
                },
                "constantNotionalScheduleReference": {
                    "type": "string"
                },
                "initialValue": {
                    "type": "number"
                },
                "varyingNotionalCurrencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "varyingNotionalCurrency", "constantNotionalScheduleReference", "initialValue", "varyingNotionalCurrencyScheme"]
        },
        "org.isda.cdm.FxLinkedNotionalSchedule": {
            "title": "FxLinkedNotionalSchedule",
            "description": "An instance of org.isda.cdm.FxLinkedNotionalSchedule",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FxLinkedNotionalSchedule",
                    "pattern": "^org\\.isda\\.cdm\\.FxLinkedNotionalSchedule$",
                    "description": "The class identifier for this type"
                },
                "varyingNotionalCurrency": {
                    "type": "string"
                },
                "fxSpotRateSource": {
                    "$ref": "#/definitions/org.isda.cdm.FxSpotRateSource"
                },
                "constantNotionalScheduleReference": {
                    "type": "string"
                },
                "varyingNotionalFixingDates": {
                    "$ref": "#/definitions/org.isda.cdm.RelativeDateOffset"
                },
                "varyingNotionalInterimExchangePaymentDates": {
                    "$ref": "#/definitions/org.isda.cdm.RelativeDateOffset"
                },
                "initialValue": {
                    "type": "number"
                },
                "varyingNotionalCurrencyScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "varyingNotionalCurrency",
                "fxSpotRateSource",
                "constantNotionalScheduleReference",
                "varyingNotionalFixingDates",
                "varyingNotionalInterimExchangePaymentDates",
                "initialValue",
                "varyingNotionalCurrencyScheme"
            ]
        },
        "org.isda.cdm.MultipleExercise": {
            "title": "MultipleExercise",
            "description": "An instance of org.isda.cdm.MultipleExercise",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MultipleExercise",
                    "pattern": "^org\\.isda\\.cdm\\.MultipleExercise$",
                    "description": "The class identifier for this type"
                },
                "maximumNumberOfOptions": {
                    "type": "number"
                },
                "maximumNotionalAmount": {
                    "type": "number"
                },
                "minimumNumberOfOptions": {
                    "type": "integer"
                },
                "notionaReference": {
                    "type": "string"
                },
                "integralMultipleAmount": {
                    "type": "number"
                },
                "minimumNotionalAmount": {
                    "type": "number"
                }
            },
            "required": ["$class", "maximumNumberOfOptions", "maximumNotionalAmount", "minimumNumberOfOptions", "notionaReference", "integralMultipleAmount", "minimumNotionalAmount"]
        },
        "org.isda.cdm.MultipleExerciseBuilder": {
            "title": "MultipleExerciseBuilder",
            "description": "An instance of org.isda.cdm.MultipleExerciseBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MultipleExerciseBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.MultipleExerciseBuilder$",
                    "description": "The class identifier for this type"
                },
                "maximumNumberOfOptions": {
                    "type": "number"
                },
                "maximumNotionalAmount": {
                    "type": "number"
                },
                "minimumNumberOfOptions": {
                    "type": "integer"
                },
                "notionaReference": {
                    "type": "string"
                },
                "integralMultipleAmount": {
                    "type": "number"
                },
                "minimumNotionalAmount": {
                    "type": "number"
                }
            },
            "required": ["$class", "maximumNumberOfOptions", "maximumNotionalAmount", "minimumNumberOfOptions", "notionaReference", "integralMultipleAmount", "minimumNotionalAmount"]
        },
        "org.isda.cdm.PCDeliverableObligationCharacBuilder": {
            "title": "PCDeliverableObligationCharacBuilder",
            "description": "An instance of org.isda.cdm.PCDeliverableObligationCharacBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PCDeliverableObligationCharacBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PCDeliverableObligationCharacBuilder$",
                    "description": "The class identifier for this type"
                },
                "applicable": {
                    "type": "boolean"
                },
                "partialCashSettlement": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "applicable", "partialCashSettlement"]
        },
        "org.isda.cdm.PCDeliverableObligationCharac": {
            "title": "PCDeliverableObligationCharac",
            "description": "An instance of org.isda.cdm.PCDeliverableObligationCharac",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PCDeliverableObligationCharac",
                    "pattern": "^org\\.isda\\.cdm\\.PCDeliverableObligationCharac$",
                    "description": "The class identifier for this type"
                },
                "applicable": {
                    "type": "boolean"
                },
                "partialCashSettlement": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "applicable", "partialCashSettlement"]
        },
        "org.isda.cdm.FloatingAmountProvisions": {
            "title": "FloatingAmountProvisions",
            "description": "An instance of org.isda.cdm.FloatingAmountProvisions",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FloatingAmountProvisions",
                    "pattern": "^org\\.isda\\.cdm\\.FloatingAmountProvisions$",
                    "description": "The class identifier for this type"
                },
                "wacCapInterestProvision": {
                    "type": "boolean"
                },
                "stepUpProvision": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "wacCapInterestProvision", "stepUpProvision"]
        },
        "org.isda.cdm.FloatingAmountProvisionsBuilder": {
            "title": "FloatingAmountProvisionsBuilder",
            "description": "An instance of org.isda.cdm.FloatingAmountProvisionsBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FloatingAmountProvisionsBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FloatingAmountProvisionsBuilder$",
                    "description": "The class identifier for this type"
                },
                "wacCapInterestProvision": {
                    "type": "boolean"
                },
                "stepUpProvision": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "wacCapInterestProvision", "stepUpProvision"]
        },
        "org.isda.cdm.DayTypeEnum": {
            "title": "DayTypeEnum",
            "description": "An instance of org.isda.cdm.DayTypeEnum",
            "enum": ["BUSINESS", "CALENDAR", "COMMODITY_BUSINESS", "CURRENCY_BUSINESS", "EXCHANGE_BUSINESS", "SCHEDULED_TRADING_DAY"]
        },
        "org.isda.cdm.FallbackReferencePrice": {
            "title": "FallbackReferencePrice",
            "description": "An instance of org.isda.cdm.FallbackReferencePrice",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FallbackReferencePrice",
                    "pattern": "^org\\.isda\\.cdm\\.FallbackReferencePrice$",
                    "description": "The class identifier for this type"
                },
                "fallBackSettlementRateOption": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.SettlementRateOptionEnum"
                    }
                },
                "fallbackSurveyValuationPostponement": {
                    "type": "boolean"
                },
                "calculationAgenDetermination": {
                    "$ref": "#/definitions/org.isda.cdm.CalculationAgent"
                },
                "valuationPostponement": {
                    "$ref": "#/definitions/org.isda.cdm.ValuationPostponement"
                },
                "fallBackSettlementRateOptionScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "fallBackSettlementRateOption", "fallbackSurveyValuationPostponement", "calculationAgenDetermination", "valuationPostponement", "fallBackSettlementRateOptionScheme"]
        },
        "org.isda.cdm.FallbackReferencePriceBuilder": {
            "title": "FallbackReferencePriceBuilder",
            "description": "An instance of org.isda.cdm.FallbackReferencePriceBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FallbackReferencePriceBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FallbackReferencePriceBuilder$",
                    "description": "The class identifier for this type"
                },
                "fallBackSettlementRateOption": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.SettlementRateOptionEnum"
                    }
                },
                "fallbackSurveyValuationPostponement": {
                    "type": "boolean"
                },
                "fallBackSettlementRateOptionScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "fallBackSettlementRateOption", "fallbackSurveyValuationPostponement", "fallBackSettlementRateOptionScheme"]
        },
        "org.isda.cdm.FixedIncomeSecurityBuilder": {
            "title": "FixedIncomeSecurityBuilder",
            "description": "An instance of org.isda.cdm.FixedIncomeSecurityBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FixedIncomeSecurityBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FixedIncomeSecurityBuilder$",
                    "description": "The class identifier for this type"
                },
                "couponTypeScheme": {
                    "type": "string"
                },
                "seniorityScheme": {
                    "type": "string"
                },
                "issuerName": {
                    "type": "string"
                },
                "issuerReference": {
                    "type": "string"
                },
                "seniority": {
                    "$ref": "#/definitions/org.isda.cdm.CreditSeniorityEnum"
                },
                "couponType": {
                    "$ref": "#/definitions/org.isda.cdm.CouponTypeEnum"
                },
                "couponRate": {
                    "type": "number"
                },
                "maturity": {
                    "format": "date-time",
                    "type": "string"
                },
                "issueDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "clearanceSystemScheme": {
                    "type": "string"
                },
                "productIdentifierScheme": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "clearanceSystem": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "couponTypeScheme",
                "seniorityScheme",
                "issuerName",
                "issuerReference",
                "seniority",
                "couponType",
                "couponRate",
                "maturity",
                "issueDate",
                "id",
                "currency",
                "clearanceSystemScheme",
                "productIdentifierScheme",
                "description",
                "clearanceSystem",
                "currencyScheme"
            ]
        },
        "org.isda.cdm.FixedIncomeSecurity": {
            "title": "FixedIncomeSecurity",
            "description": "An instance of org.isda.cdm.FixedIncomeSecurity",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FixedIncomeSecurity",
                    "pattern": "^org\\.isda\\.cdm\\.FixedIncomeSecurity$",
                    "description": "The class identifier for this type"
                },
                "couponTypeScheme": {
                    "type": "string"
                },
                "seniorityScheme": {
                    "type": "string"
                },
                "issuerName": {
                    "type": "string"
                },
                "issuerReference": {
                    "type": "string"
                },
                "seniority": {
                    "$ref": "#/definitions/org.isda.cdm.CreditSeniorityEnum"
                },
                "couponType": {
                    "$ref": "#/definitions/org.isda.cdm.CouponTypeEnum"
                },
                "couponRate": {
                    "type": "number"
                },
                "maturity": {
                    "format": "date-time",
                    "type": "string"
                },
                "issueDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "clearanceSystemScheme": {
                    "type": "string"
                },
                "productIdentifierScheme": {
                    "type": "string"
                },
                "productIdentifier": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ProductIdentifier"
                    }
                },
                "productTaxonomy": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ProductTaxonomy"
                    }
                },
                "description": {
                    "type": "string"
                },
                "clearanceSystem": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "couponTypeScheme",
                "seniorityScheme",
                "issuerName",
                "issuerReference",
                "seniority",
                "couponType",
                "couponRate",
                "maturity",
                "issueDate",
                "id",
                "currency",
                "clearanceSystemScheme",
                "productIdentifierScheme",
                "productIdentifier",
                "productTaxonomy",
                "description",
                "clearanceSystem",
                "currencyScheme"
            ]
        },
        "org.isda.cdm.BasketName": {
            "title": "BasketName",
            "description": "An instance of org.isda.cdm.BasketName",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BasketName",
                    "pattern": "^org\\.isda\\.cdm\\.BasketName$",
                    "description": "The class identifier for this type"
                },
                "basketName": {
                    "type": "string"
                },
                "basketId": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "basketIdScheme": {
                    "type": "string"
                },
                "basketNameScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "basketName", "basketId", "basketIdScheme", "basketNameScheme"]
        },
        "org.isda.cdm.BasketNameBuilder": {
            "title": "BasketNameBuilder",
            "description": "An instance of org.isda.cdm.BasketNameBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BasketNameBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.BasketNameBuilder$",
                    "description": "The class identifier for this type"
                },
                "basketName": {
                    "type": "string"
                },
                "basketId": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "basketIdScheme": {
                    "type": "string"
                },
                "basketNameScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "basketName", "basketId", "basketIdScheme", "basketNameScheme"]
        },
        "org.isda.cdm.QuotationSideEnum": {
            "title": "QuotationSideEnum",
            "description": "An instance of org.isda.cdm.QuotationSideEnum",
            "enum": ["BID", "ASK", "MID"]
        },
        "org.isda.cdm.TransferorTransfereeBuilder": {
            "title": "TransferorTransfereeBuilder",
            "description": "An instance of org.isda.cdm.TransferorTransfereeBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.TransferorTransfereeBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.TransferorTransfereeBuilder$",
                    "description": "The class identifier for this type"
                },
                "transferorPartyReference": {
                    "type": "string"
                },
                "transferorAccountReference": {
                    "type": "string"
                },
                "transfereePartyReference": {
                    "type": "string"
                },
                "transfereeAccountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "transferorPartyReference", "transferorAccountReference", "transfereePartyReference", "transfereeAccountReference"]
        },
        "org.isda.cdm.TransferorTransferee": {
            "title": "TransferorTransferee",
            "description": "An instance of org.isda.cdm.TransferorTransferee",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.TransferorTransferee",
                    "pattern": "^org\\.isda\\.cdm\\.TransferorTransferee$",
                    "description": "The class identifier for this type"
                },
                "transferorPartyReference": {
                    "type": "string"
                },
                "transferorAccountReference": {
                    "type": "string"
                },
                "transfereePartyReference": {
                    "type": "string"
                },
                "transfereeAccountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "transferorPartyReference", "transferorAccountReference", "transfereePartyReference", "transfereeAccountReference"]
        },
        "org.isda.cdm.FutureValueAmount": {
            "title": "FutureValueAmount",
            "description": "An instance of org.isda.cdm.FutureValueAmount",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FutureValueAmount",
                    "pattern": "^org\\.isda\\.cdm\\.FutureValueAmount$",
                    "description": "The class identifier for this type"
                },
                "valueDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "calculationPeriodNumberOfDays": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                },
                "amount": {
                    "type": "number"
                }
            },
            "required": ["$class", "valueDate", "calculationPeriodNumberOfDays", "id", "currency", "currencyScheme", "amount"]
        },
        "org.isda.cdm.FutureValueAmountBuilder": {
            "title": "FutureValueAmountBuilder",
            "description": "An instance of org.isda.cdm.FutureValueAmountBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FutureValueAmountBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FutureValueAmountBuilder$",
                    "description": "The class identifier for this type"
                },
                "valueDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "calculationPeriodNumberOfDays": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                },
                "amount": {
                    "type": "number"
                }
            },
            "required": ["$class", "valueDate", "calculationPeriodNumberOfDays", "id", "currency", "currencyScheme", "amount"]
        },
        "org.isda.cdm.ObligationCategoryEnum": {
            "title": "ObligationCategoryEnum",
            "description": "An instance of org.isda.cdm.ObligationCategoryEnum",
            "enum": ["PAYMENT", "BORROWED_MONEY", "REFERENCE_OBLIGATIONS_ONLY", "BOND", "LOAN", "BOND_OR_LOAN"]
        },
        "org.isda.cdm.PhysicalSettlementTerms": {
            "title": "PhysicalSettlementTerms",
            "description": "An instance of org.isda.cdm.PhysicalSettlementTerms",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PhysicalSettlementTerms",
                    "pattern": "^org\\.isda\\.cdm\\.PhysicalSettlementTerms$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "deliverableObligations": {
                    "$ref": "#/definitions/org.isda.cdm.DeliverableObligations"
                },
                "settlementCurrency": {
                    "type": "string"
                },
                "physicalSettlementPeriod": {
                    "$ref": "#/definitions/org.isda.cdm.PhysicalSettlementPeriod"
                },
                "escrow": {
                    "type": "boolean"
                },
                "sixtyBusinessDaySettlementCap": {
                    "type": "boolean"
                },
                "settlementCurrencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "deliverableObligations", "settlementCurrency", "physicalSettlementPeriod", "escrow", "sixtyBusinessDaySettlementCap", "settlementCurrencyScheme"]
        },
        "org.isda.cdm.PhysicalSettlementTermsBuilder": {
            "title": "PhysicalSettlementTermsBuilder",
            "description": "An instance of org.isda.cdm.PhysicalSettlementTermsBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PhysicalSettlementTermsBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PhysicalSettlementTermsBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "settlementCurrency": {
                    "type": "string"
                },
                "escrow": {
                    "type": "boolean"
                },
                "sixtyBusinessDaySettlementCap": {
                    "type": "boolean"
                },
                "settlementCurrencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "settlementCurrency", "escrow", "sixtyBusinessDaySettlementCap", "settlementCurrencyScheme"]
        },
        "org.isda.cdm.OptionalEarlyTerminationAdjustedDates": {
            "title": "OptionalEarlyTerminationAdjustedDates",
            "description": "An instance of org.isda.cdm.OptionalEarlyTerminationAdjustedDates",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionalEarlyTerminationAdjustedDates",
                    "pattern": "^org\\.isda\\.cdm\\.OptionalEarlyTerminationAdjustedDates$",
                    "description": "The class identifier for this type"
                },
                "earlyTerminationEvent": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.EarlyTerminationEvent"
                    }
                }
            },
            "required": ["$class", "earlyTerminationEvent"]
        },
        "org.isda.cdm.OptionalEarlyTerminationAdjustedDatesBuilder": {
            "title": "OptionalEarlyTerminationAdjustedDatesBuilder",
            "description": "An instance of org.isda.cdm.OptionalEarlyTerminationAdjustedDatesBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionalEarlyTerminationAdjustedDatesBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.OptionalEarlyTerminationAdjustedDatesBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.OptionSettlement": {
            "title": "OptionSettlement",
            "description": "An instance of org.isda.cdm.OptionSettlement",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionSettlement",
                    "pattern": "^org\\.isda\\.cdm\\.OptionSettlement$",
                    "description": "The class identifier for this type"
                },
                "physicalSettlementTerms": {
                    "$ref": "#/definitions/org.isda.cdm.OptionPhysicalSettlement"
                },
                "settlementCurrency": {
                    "type": "string"
                },
                "cashSettlementTerms": {
                    "$ref": "#/definitions/org.isda.cdm.OptionCashSettlement"
                },
                "settlementType": {
                    "$ref": "#/definitions/org.isda.cdm.SettlementTypeEnum"
                },
                "settlementDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableOrRelativeDate"
                },
                "settlementAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "settlementCurrencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "physicalSettlementTerms", "settlementCurrency", "cashSettlementTerms", "settlementType", "settlementDate", "settlementAmount", "settlementCurrencyScheme"]
        },
        "org.isda.cdm.OptionSettlementBuilder": {
            "title": "OptionSettlementBuilder",
            "description": "An instance of org.isda.cdm.OptionSettlementBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionSettlementBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.OptionSettlementBuilder$",
                    "description": "The class identifier for this type"
                },
                "settlementCurrency": {
                    "type": "string"
                },
                "settlementType": {
                    "$ref": "#/definitions/org.isda.cdm.SettlementTypeEnum"
                },
                "settlementCurrencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "settlementCurrency", "settlementType", "settlementCurrencyScheme"]
        },
        "org.isda.cdm.OptionalEarlyTermination": {
            "title": "OptionalEarlyTermination",
            "description": "An instance of org.isda.cdm.OptionalEarlyTermination",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionalEarlyTermination",
                    "pattern": "^org\\.isda\\.cdm\\.OptionalEarlyTermination$",
                    "description": "The class identifier for this type"
                },
                "cashSettlement": {
                    "$ref": "#/definitions/org.isda.cdm.OptionCashSettlement"
                },
                "followUpConfirmation": {
                    "type": "boolean"
                },
                "singlePartyOption": {
                    "$ref": "#/definitions/org.isda.cdm.BuyerSeller"
                },
                "americanExercise": {
                    "$ref": "#/definitions/org.isda.cdm.AmericanExercise"
                },
                "bermudaExercise": {
                    "$ref": "#/definitions/org.isda.cdm.BermudaExercise"
                },
                "europeanExercise": {
                    "$ref": "#/definitions/org.isda.cdm.EuropeanExercise"
                },
                "exerciseNotice": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ExerciseNotice"
                    }
                },
                "optionalEarlyTerminationAdjustedDates": {
                    "$ref": "#/definitions/org.isda.cdm.OptionalEarlyTerminationAdjustedDates"
                },
                "calculationAgent": {
                    "$ref": "#/definitions/org.isda.cdm.CalculationAgent"
                }
            },
            "required": [
                "$class",
                "cashSettlement",
                "followUpConfirmation",
                "singlePartyOption",
                "americanExercise",
                "bermudaExercise",
                "europeanExercise",
                "exerciseNotice",
                "optionalEarlyTerminationAdjustedDates",
                "calculationAgent"
            ]
        },
        "org.isda.cdm.OptionalEarlyTerminationBuilder": {
            "title": "OptionalEarlyTerminationBuilder",
            "description": "An instance of org.isda.cdm.OptionalEarlyTerminationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionalEarlyTerminationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.OptionalEarlyTerminationBuilder$",
                    "description": "The class identifier for this type"
                },
                "followUpConfirmation": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "followUpConfirmation"]
        },
        "org.isda.cdm.AssetBuilder": {
            "title": "AssetBuilder",
            "description": "An instance of org.isda.cdm.AssetBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AssetBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AssetBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.Asset": {
            "title": "Asset",
            "description": "An instance of org.isda.cdm.Asset",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Asset",
                    "pattern": "^org\\.isda\\.cdm\\.Asset$",
                    "description": "The class identifier for this type"
                },
                "commodity": {
                    "$ref": "#/definitions/org.isda.cdm.Commodity"
                },
                "listedProduct": {
                    "$ref": "#/definitions/org.isda.cdm.ListedProduct"
                }
            },
            "required": ["$class", "commodity", "listedProduct"]
        },
        "org.isda.cdm.StubPeriodTypeEnum": {
            "title": "StubPeriodTypeEnum",
            "description": "An instance of org.isda.cdm.StubPeriodTypeEnum",
            "enum": ["SHORT_INITIAL", "SHORT_FINAL", "LONG_INITIAL", "LONG_FINAL"]
        },
        "org.isda.cdm.PartyContractInformationBuilder": {
            "title": "PartyContractInformationBuilder",
            "description": "An instance of org.isda.cdm.PartyContractInformationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PartyContractInformationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PartyContractInformationBuilder$",
                    "description": "The class identifier for this type"
                },
                "partyReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "partyReference"]
        },
        "org.isda.cdm.PartyContractInformation": {
            "title": "PartyContractInformation",
            "description": "An instance of org.isda.cdm.PartyContractInformation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PartyContractInformation",
                    "pattern": "^org\\.isda\\.cdm\\.PartyContractInformation$",
                    "description": "The class identifier for this type"
                },
                "naturalPersonRole": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.NaturalPersonRole"
                    }
                },
                "partyReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "naturalPersonRole", "partyReference"]
        },
        "org.isda.cdm.FxSpotRateSource": {
            "title": "FxSpotRateSource",
            "description": "An instance of org.isda.cdm.FxSpotRateSource",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FxSpotRateSource",
                    "pattern": "^org\\.isda\\.cdm\\.FxSpotRateSource$",
                    "description": "The class identifier for this type"
                },
                "primaryRateSource": {
                    "$ref": "#/definitions/org.isda.cdm.InformationSource"
                },
                "secondaryRateSource": {
                    "$ref": "#/definitions/org.isda.cdm.InformationSource"
                },
                "fixingTime": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterTime"
                }
            },
            "required": ["$class", "primaryRateSource", "secondaryRateSource", "fixingTime"]
        },
        "org.isda.cdm.FxSpotRateSourceBuilder": {
            "title": "FxSpotRateSourceBuilder",
            "description": "An instance of org.isda.cdm.FxSpotRateSourceBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FxSpotRateSourceBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FxSpotRateSourceBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.SettlementRateSource": {
            "title": "SettlementRateSource",
            "description": "An instance of org.isda.cdm.SettlementRateSource",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SettlementRateSource",
                    "pattern": "^org\\.isda\\.cdm\\.SettlementRateSource$",
                    "description": "The class identifier for this type"
                },
                "cashSettlementReferenceBanks": {
                    "$ref": "#/definitions/org.isda.cdm.CashSettlementReferenceBanks"
                },
                "informationSource": {
                    "$ref": "#/definitions/org.isda.cdm.InformationSource"
                }
            },
            "required": ["$class", "cashSettlementReferenceBanks", "informationSource"]
        },
        "org.isda.cdm.SettlementRateSourceBuilder": {
            "title": "SettlementRateSourceBuilder",
            "description": "An instance of org.isda.cdm.SettlementRateSourceBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SettlementRateSourceBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.SettlementRateSourceBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.CalculationPeriodBuilder": {
            "title": "CalculationPeriodBuilder",
            "description": "An instance of org.isda.cdm.CalculationPeriodBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CalculationPeriodBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CalculationPeriodBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "notionalAmount": {
                    "type": "number"
                },
                "forecastRate": {
                    "type": "number"
                },
                "unadjustedStartDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "unadjustedEndDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedStartDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedEndDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "dayCountYearFraction": {
                    "type": "number"
                },
                "calculationPeriodNumberOfDays": {
                    "type": "integer"
                },
                "fixedRate": {
                    "type": "number"
                }
            },
            "required": [
                "$class",
                "id",
                "notionalAmount",
                "forecastRate",
                "unadjustedStartDate",
                "unadjustedEndDate",
                "adjustedStartDate",
                "adjustedEndDate",
                "dayCountYearFraction",
                "calculationPeriodNumberOfDays",
                "fixedRate"
            ]
        },
        "org.isda.cdm.CalculationPeriod": {
            "title": "CalculationPeriod",
            "description": "An instance of org.isda.cdm.CalculationPeriod",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CalculationPeriod",
                    "pattern": "^org\\.isda\\.cdm\\.CalculationPeriod$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "notionalAmount": {
                    "type": "number"
                },
                "forecastRate": {
                    "type": "number"
                },
                "unadjustedStartDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "unadjustedEndDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedStartDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedEndDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "fxLinkedNotionalAmount": {
                    "$ref": "#/definitions/org.isda.cdm.FxLinkedNotionalAmount"
                },
                "floatingRateDefinition": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateDefinition"
                },
                "dayCountYearFraction": {
                    "type": "number"
                },
                "forecastAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "calculationPeriodNumberOfDays": {
                    "type": "integer"
                },
                "fixedRate": {
                    "type": "number"
                }
            },
            "required": [
                "$class",
                "id",
                "notionalAmount",
                "forecastRate",
                "unadjustedStartDate",
                "unadjustedEndDate",
                "adjustedStartDate",
                "adjustedEndDate",
                "fxLinkedNotionalAmount",
                "floatingRateDefinition",
                "dayCountYearFraction",
                "forecastAmount",
                "calculationPeriodNumberOfDays",
                "fixedRate"
            ]
        },
        "org.isda.cdm.ExecutionReferenceBuilder": {
            "title": "ExecutionReferenceBuilder",
            "description": "An instance of org.isda.cdm.ExecutionReferenceBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExecutionReferenceBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ExecutionReferenceBuilder$",
                    "description": "The class identifier for this type"
                },
                "state": {
                    "$ref": "#/definitions/org.isda.cdm.StateEnum"
                }
            },
            "required": ["$class", "state"]
        },
        "org.isda.cdm.ExecutionReference": {
            "title": "ExecutionReference",
            "description": "An instance of org.isda.cdm.ExecutionReference",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExecutionReference",
                    "pattern": "^org\\.isda\\.cdm\\.ExecutionReference$",
                    "description": "The class identifier for this type"
                },
                "state": {
                    "$ref": "#/definitions/org.isda.cdm.StateEnum"
                },
                "executionReference": {
                    "$ref": "#/definitions/org.isda.cdm.Identifier"
                }
            },
            "required": ["$class", "state", "executionReference"]
        },
        "org.isda.cdm.ExerciseProcedure": {
            "title": "ExerciseProcedure",
            "description": "An instance of org.isda.cdm.ExerciseProcedure",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExerciseProcedure",
                    "pattern": "^org\\.isda\\.cdm\\.ExerciseProcedure$",
                    "description": "The class identifier for this type"
                },
                "manualExercise": {
                    "$ref": "#/definitions/org.isda.cdm.ManualExercise"
                },
                "automaticExercise": {
                    "$ref": "#/definitions/org.isda.cdm.AutomaticExercise"
                },
                "followUpConfirmation": {
                    "type": "boolean"
                },
                "limitedRightToConfirm": {
                    "type": "boolean"
                },
                "splitTicket": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "manualExercise", "automaticExercise", "followUpConfirmation", "limitedRightToConfirm", "splitTicket"]
        },
        "org.isda.cdm.ExerciseProcedureBuilder": {
            "title": "ExerciseProcedureBuilder",
            "description": "An instance of org.isda.cdm.ExerciseProcedureBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExerciseProcedureBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ExerciseProcedureBuilder$",
                    "description": "The class identifier for this type"
                },
                "followUpConfirmation": {
                    "type": "boolean"
                },
                "limitedRightToConfirm": {
                    "type": "boolean"
                },
                "splitTicket": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "followUpConfirmation", "limitedRightToConfirm", "splitTicket"]
        },
        "org.isda.cdm.CalculationAgentPartyEnum": {
            "title": "CalculationAgentPartyEnum",
            "description": "An instance of org.isda.cdm.CalculationAgentPartyEnum",
            "enum": ["EXERCISING_PARTY", "NON_EXERCISING_PARTY", "AS_SPECIFIED_IN_MASTER_AGREEMENT", "AS_SPECIFIED_IN_STANDARD_TERMS_SUPPLEMENT", "BOTH"]
        },
        "org.isda.cdm.NonNegativeSchedule": {
            "title": "NonNegativeSchedule",
            "description": "An instance of org.isda.cdm.NonNegativeSchedule",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NonNegativeSchedule",
                    "pattern": "^org\\.isda\\.cdm\\.NonNegativeSchedule$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "initialValue": {
                    "type": "number"
                },
                "step": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.NonNegativeStep"
                    }
                }
            },
            "required": ["$class", "id", "initialValue", "step"]
        },
        "org.isda.cdm.NonNegativeScheduleBuilder": {
            "title": "NonNegativeScheduleBuilder",
            "description": "An instance of org.isda.cdm.NonNegativeScheduleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NonNegativeScheduleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.NonNegativeScheduleBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "initialValue": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "initialValue"]
        },
        "org.isda.cdm.Contract": {
            "title": "Contract",
            "description": "An instance of org.isda.cdm.Contract",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Contract",
                    "pattern": "^org\\.isda\\.cdm\\.Contract$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "state": {
                    "$ref": "#/definitions/org.isda.cdm.StateEnum"
                },
                "account": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Account"
                    }
                },
                "calculationAgent": {
                    "$ref": "#/definitions/org.isda.cdm.CalculationAgent"
                },
                "clearedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "collateral": {
                    "$ref": "#/definitions/org.isda.cdm.Collateral"
                },
                "contractIdentifier": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.PartyContractIdentifier"
                    }
                },
                "contractualProduct": {
                    "$ref": "#/definitions/org.isda.cdm.ContractualProduct"
                },
                "documentation": {
                    "$ref": "#/definitions/org.isda.cdm.Documentation"
                },
                "governingLaw": {
                    "$ref": "#/definitions/org.isda.cdm.GoverningLawEnum"
                },
                "governingLawScheme": {
                    "type": "string"
                },
                "otherPartyPayment": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Payment"
                    }
                },
                "party": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Party"
                    }
                },
                "partyContractInformation": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.PartyContractInformation"
                    }
                },
                "partyRole": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.PartyRole"
                    }
                },
                "tradeDate": {
                    "$ref": "#/definitions/org.isda.cdm.DateInstances"
                },
                "rosettaKey": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "id",
                "state",
                "account",
                "calculationAgent",
                "clearedDate",
                "collateral",
                "contractIdentifier",
                "contractualProduct",
                "documentation",
                "governingLaw",
                "governingLawScheme",
                "otherPartyPayment",
                "party",
                "partyContractInformation",
                "partyRole",
                "tradeDate",
                "rosettaKey"
            ]
        },
        "org.isda.cdm.ContractBuilder": {
            "title": "ContractBuilder",
            "description": "An instance of org.isda.cdm.ContractBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ContractBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "state": {
                    "$ref": "#/definitions/org.isda.cdm.StateEnum"
                },
                "clearedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "governingLaw": {
                    "$ref": "#/definitions/org.isda.cdm.GoverningLawEnum"
                },
                "governingLawScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "state", "clearedDate", "governingLaw", "governingLawScheme"]
        },
        "org.isda.cdm.DiscountingTypeEnum": {
            "title": "DiscountingTypeEnum",
            "description": "An instance of org.isda.cdm.DiscountingTypeEnum",
            "enum": ["STANDARD", "FRA", "FRA_YIELD"]
        },
        "org.isda.cdm.Money": {
            "title": "Money",
            "description": "An instance of org.isda.cdm.Money",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Money",
                    "pattern": "^org\\.isda\\.cdm\\.Money$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                },
                "amount": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "currency", "currencyScheme", "amount"]
        },
        "org.isda.cdm.MoneyBuilder": {
            "title": "MoneyBuilder",
            "description": "An instance of org.isda.cdm.MoneyBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MoneyBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.MoneyBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                },
                "amount": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "currency", "currencyScheme", "amount"]
        },
        "org.isda.cdm.TriggerEvent": {
            "title": "TriggerEvent",
            "description": "An instance of org.isda.cdm.TriggerEvent",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.TriggerEvent",
                    "pattern": "^org\\.isda\\.cdm\\.TriggerEvent$",
                    "description": "The class identifier for this type"
                },
                "triggerDates": {
                    "$ref": "#/definitions/org.isda.cdm.DateList"
                },
                "trigger": {
                    "$ref": "#/definitions/org.isda.cdm.Trigger"
                },
                "featurePayment": {
                    "$ref": "#/definitions/org.isda.cdm.FeaturePayment"
                },
                "schedule": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.AveragingSchedule"
                    }
                }
            },
            "required": ["$class", "triggerDates", "trigger", "featurePayment", "schedule"]
        },
        "org.isda.cdm.TriggerEventBuilder": {
            "title": "TriggerEventBuilder",
            "description": "An instance of org.isda.cdm.TriggerEventBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.TriggerEventBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.TriggerEventBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.ResetFrequencyBuilder": {
            "title": "ResetFrequencyBuilder",
            "description": "An instance of org.isda.cdm.ResetFrequencyBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ResetFrequencyBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ResetFrequencyBuilder$",
                    "description": "The class identifier for this type"
                },
                "weeklyRollConvention": {
                    "$ref": "#/definitions/org.isda.cdm.WeeklyRollConventionEnum"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodExtendedEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": ["$class", "weeklyRollConvention", "id", "period", "periodMultiplier"]
        },
        "org.isda.cdm.ResetFrequency": {
            "title": "ResetFrequency",
            "description": "An instance of org.isda.cdm.ResetFrequency",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ResetFrequency",
                    "pattern": "^org\\.isda\\.cdm\\.ResetFrequency$",
                    "description": "The class identifier for this type"
                },
                "weeklyRollConvention": {
                    "$ref": "#/definitions/org.isda.cdm.WeeklyRollConventionEnum"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodExtendedEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": ["$class", "weeklyRollConvention", "id", "period", "periodMultiplier"]
        },
        "org.isda.cdm.TriggerTypeEnum": {
            "title": "TriggerTypeEnum",
            "description": "An instance of org.isda.cdm.TriggerTypeEnum",
            "enum": ["EQUAL_OR_LESS", "EQUAL_OR_GREATER", "EQUAL", "LESS", "GREATER"]
        },
        "org.isda.cdm.CashSettlementReferenceBanks": {
            "title": "CashSettlementReferenceBanks",
            "description": "An instance of org.isda.cdm.CashSettlementReferenceBanks",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CashSettlementReferenceBanks",
                    "pattern": "^org\\.isda\\.cdm\\.CashSettlementReferenceBanks$",
                    "description": "The class identifier for this type"
                },
                "referenceBank": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ReferenceBank"
                    }
                }
            },
            "required": ["$class", "referenceBank"]
        },
        "org.isda.cdm.CashSettlementReferenceBanksBuilder": {
            "title": "CashSettlementReferenceBanksBuilder",
            "description": "An instance of org.isda.cdm.CashSettlementReferenceBanksBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CashSettlementReferenceBanksBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CashSettlementReferenceBanksBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.AssetPoolBuilder": {
            "title": "AssetPoolBuilder",
            "description": "An instance of org.isda.cdm.AssetPoolBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AssetPoolBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AssetPoolBuilder$",
                    "description": "The class identifier for this type"
                },
                "effectiveDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "initialFactor": {
                    "type": "number"
                },
                "currentFactor": {
                    "type": "number"
                },
                "version": {
                    "type": "string"
                }
            },
            "required": ["$class", "effectiveDate", "initialFactor", "currentFactor", "version"]
        },
        "org.isda.cdm.AssetPool": {
            "title": "AssetPool",
            "description": "An instance of org.isda.cdm.AssetPool",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AssetPool",
                    "pattern": "^org\\.isda\\.cdm\\.AssetPool$",
                    "description": "The class identifier for this type"
                },
                "effectiveDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "initialFactor": {
                    "type": "number"
                },
                "currentFactor": {
                    "type": "number"
                },
                "version": {
                    "type": "string"
                }
            },
            "required": ["$class", "effectiveDate", "initialFactor", "currentFactor", "version"]
        },
        "org.isda.cdm.ContractualProductBuilder": {
            "title": "ContractualProductBuilder",
            "description": "An instance of org.isda.cdm.ContractualProductBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractualProductBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ContractualProductBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.ContractualProduct": {
            "title": "ContractualProduct",
            "description": "An instance of org.isda.cdm.ContractualProduct",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractualProduct",
                    "pattern": "^org\\.isda\\.cdm\\.ContractualProduct$",
                    "description": "The class identifier for this type"
                },
                "economicTerms": {
                    "$ref": "#/definitions/org.isda.cdm.EconomicTerms"
                },
                "productTaxonomy": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ProductTaxonomy"
                    }
                },
                "productIdentification": {
                    "$ref": "#/definitions/org.isda.cdm.ProductIdentification"
                }
            },
            "required": ["$class", "economicTerms", "productTaxonomy", "productIdentification"]
        },
        "org.isda.cdm.OptionPayoutBuilder": {
            "title": "OptionPayoutBuilder",
            "description": "An instance of org.isda.cdm.OptionPayoutBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionPayoutBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.OptionPayoutBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "optionType": {
                    "$ref": "#/definitions/org.isda.cdm.OptionTypeEnum"
                }
            },
            "required": ["$class", "id", "optionType"]
        },
        "org.isda.cdm.OptionPayout": {
            "title": "OptionPayout",
            "description": "An instance of org.isda.cdm.OptionPayout",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionPayout",
                    "pattern": "^org\\.isda\\.cdm\\.OptionPayout$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "rosettaKeyValue": {
                    "type": "string"
                },
                "buyerSeller": {
                    "$ref": "#/definitions/org.isda.cdm.BuyerSeller"
                },
                "optionType": {
                    "$ref": "#/definitions/org.isda.cdm.OptionTypeEnum"
                },
                "feature": {
                    "$ref": "#/definitions/org.isda.cdm.OptionFeature"
                },
                "denomination": {
                    "$ref": "#/definitions/org.isda.cdm.OptionDenomination"
                },
                "exerciseTerms": {
                    "$ref": "#/definitions/org.isda.cdm.OptionExercise"
                },
                "underlyer": {
                    "$ref": "#/definitions/org.isda.cdm.Product"
                },
                "quantity": {
                    "$ref": "#/definitions/org.isda.cdm.ContractualQuantity"
                }
            },
            "required": ["$class", "id", "rosettaKeyValue", "buyerSeller", "optionType", "feature", "denomination", "exerciseTerms", "underlyer", "quantity"]
        },
        "org.isda.cdm.PayoutBuilder": {
            "title": "PayoutBuilder",
            "description": "An instance of org.isda.cdm.PayoutBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PayoutBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PayoutBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.Payout": {
            "title": "Payout",
            "description": "An instance of org.isda.cdm.Payout",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Payout",
                    "pattern": "^org\\.isda\\.cdm\\.Payout$",
                    "description": "The class identifier for this type"
                },
                "cashflow": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Cashflow"
                    }
                },
                "optionPayout": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.OptionPayout"
                    }
                },
                "creditDefaultPayout": {
                    "$ref": "#/definitions/org.isda.cdm.CreditDefaultPayout"
                },
                "interestRatePayout": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.InterestRatePayout"
                    }
                }
            },
            "required": ["$class", "cashflow", "optionPayout", "creditDefaultPayout", "interestRatePayout"]
        },
        "org.isda.cdm.WeightedAveragingObservation": {
            "title": "WeightedAveragingObservation",
            "description": "An instance of org.isda.cdm.WeightedAveragingObservation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.WeightedAveragingObservation",
                    "pattern": "^org\\.isda\\.cdm\\.WeightedAveragingObservation$",
                    "description": "The class identifier for this type"
                },
                "dateTime": {
                    "format": "date-time",
                    "type": "string"
                },
                "weight": {
                    "type": "number"
                },
                "observationNumber": {
                    "type": "integer"
                }
            },
            "required": ["$class", "dateTime", "weight", "observationNumber"]
        },
        "org.isda.cdm.WeightedAveragingObservationBuilder": {
            "title": "WeightedAveragingObservationBuilder",
            "description": "An instance of org.isda.cdm.WeightedAveragingObservationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.WeightedAveragingObservationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.WeightedAveragingObservationBuilder$",
                    "description": "The class identifier for this type"
                },
                "dateTime": {
                    "format": "date-time",
                    "type": "string"
                },
                "weight": {
                    "type": "number"
                },
                "observationNumber": {
                    "type": "integer"
                }
            },
            "required": ["$class", "dateTime", "weight", "observationNumber"]
        },
        "org.isda.cdm.PubliclyAvailableInformation": {
            "title": "PubliclyAvailableInformation",
            "description": "An instance of org.isda.cdm.PubliclyAvailableInformation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PubliclyAvailableInformation",
                    "pattern": "^org\\.isda\\.cdm\\.PubliclyAvailableInformation$",
                    "description": "The class identifier for this type"
                },
                "specifiedNumber": {
                    "type": "integer"
                },
                "standardPublicSources": {
                    "type": "boolean"
                },
                "publicSource": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "specifiedNumber", "standardPublicSources", "publicSource"]
        },
        "org.isda.cdm.PubliclyAvailableInformationBuilder": {
            "title": "PubliclyAvailableInformationBuilder",
            "description": "An instance of org.isda.cdm.PubliclyAvailableInformationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PubliclyAvailableInformationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PubliclyAvailableInformationBuilder$",
                    "description": "The class identifier for this type"
                },
                "specifiedNumber": {
                    "type": "integer"
                },
                "standardPublicSources": {
                    "type": "boolean"
                },
                "publicSource": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "specifiedNumber", "standardPublicSources", "publicSource"]
        },
        "org.isda.cdm.Party": {
            "title": "Party",
            "description": "An instance of org.isda.cdm.Party",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Party",
                    "pattern": "^org\\.isda\\.cdm\\.Party$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "partyIdScheme": {
                    "type": "string"
                },
                "partyId": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "legalEntity": {
                    "$ref": "#/definitions/org.isda.cdm.LegalEntity"
                },
                "naturalPerson": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.NaturalPerson"
                    }
                }
            },
            "required": ["$class", "id", "partyIdScheme", "partyId", "legalEntity", "naturalPerson"]
        },
        "org.isda.cdm.PartyBuilder": {
            "title": "PartyBuilder",
            "description": "An instance of org.isda.cdm.PartyBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PartyBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PartyBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "partyIdScheme": {
                    "type": "string"
                },
                "partyId": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "id", "partyIdScheme", "partyId"]
        },
        "org.isda.cdm.MessageInformationBuilder": {
            "title": "MessageInformationBuilder",
            "description": "An instance of org.isda.cdm.MessageInformationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MessageInformationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.MessageInformationBuilder$",
                    "description": "The class identifier for this type"
                },
                "copyToScheme": {
                    "type": "string"
                },
                "messageIdScheme": {
                    "type": "string"
                },
                "sentByScheme": {
                    "type": "string"
                },
                "sentToScheme": {
                    "type": "string"
                },
                "messageId": {
                    "type": "string"
                },
                "sentBy": {
                    "type": "string"
                },
                "sentTo": {
                    "type": "string"
                },
                "copyTo": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "copyToScheme", "messageIdScheme", "sentByScheme", "sentToScheme", "messageId", "sentBy", "sentTo", "copyTo"]
        },
        "org.isda.cdm.MessageInformation": {
            "title": "MessageInformation",
            "description": "An instance of org.isda.cdm.MessageInformation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MessageInformation",
                    "pattern": "^org\\.isda\\.cdm\\.MessageInformation$",
                    "description": "The class identifier for this type"
                },
                "copyToScheme": {
                    "type": "string"
                },
                "messageIdScheme": {
                    "type": "string"
                },
                "sentByScheme": {
                    "type": "string"
                },
                "sentToScheme": {
                    "type": "string"
                },
                "messageId": {
                    "type": "string"
                },
                "sentBy": {
                    "type": "string"
                },
                "sentTo": {
                    "type": "string"
                },
                "copyTo": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "copyToScheme", "messageIdScheme", "sentByScheme", "sentToScheme", "messageId", "sentBy", "sentTo", "copyTo"]
        },
        "org.isda.cdm.Asian": {
            "title": "Asian",
            "description": "An instance of org.isda.cdm.Asian",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Asian",
                    "pattern": "^org\\.isda\\.cdm\\.Asian$",
                    "description": "The class identifier for this type"
                },
                "averagingInOut": {
                    "$ref": "#/definitions/org.isda.cdm.AveragingInOutEnum"
                },
                "strikeFactor": {
                    "type": "number"
                },
                "averagingPeriodIn": {
                    "$ref": "#/definitions/org.isda.cdm.AveragingPeriod"
                },
                "averagingPeriodOut": {
                    "$ref": "#/definitions/org.isda.cdm.AveragingPeriod"
                }
            },
            "required": ["$class", "averagingInOut", "strikeFactor", "averagingPeriodIn", "averagingPeriodOut"]
        },
        "org.isda.cdm.AsianBuilder": {
            "title": "AsianBuilder",
            "description": "An instance of org.isda.cdm.AsianBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AsianBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AsianBuilder$",
                    "description": "The class identifier for this type"
                },
                "averagingInOut": {
                    "$ref": "#/definitions/org.isda.cdm.AveragingInOutEnum"
                },
                "strikeFactor": {
                    "type": "number"
                }
            },
            "required": ["$class", "averagingInOut", "strikeFactor"]
        },
        "org.isda.cdm.ReferenceBankBuilder": {
            "title": "ReferenceBankBuilder",
            "description": "An instance of org.isda.cdm.ReferenceBankBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ReferenceBankBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ReferenceBankBuilder$",
                    "description": "The class identifier for this type"
                },
                "referenceBankId": {
                    "type": "string"
                },
                "referenceBankName": {
                    "type": "string"
                },
                "referenceBankIdScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "referenceBankId", "referenceBankName", "referenceBankIdScheme"]
        },
        "org.isda.cdm.ReferenceBank": {
            "title": "ReferenceBank",
            "description": "An instance of org.isda.cdm.ReferenceBank",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ReferenceBank",
                    "pattern": "^org\\.isda\\.cdm\\.ReferenceBank$",
                    "description": "The class identifier for this type"
                },
                "referenceBankId": {
                    "type": "string"
                },
                "referenceBankName": {
                    "type": "string"
                },
                "referenceBankIdScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "referenceBankId", "referenceBankName", "referenceBankIdScheme"]
        },
        "org.isda.cdm.ProtectionTerms": {
            "title": "ProtectionTerms",
            "description": "An instance of org.isda.cdm.ProtectionTerms",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ProtectionTerms",
                    "pattern": "^org\\.isda\\.cdm\\.ProtectionTerms$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "notionalAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "creditEvents": {
                    "$ref": "#/definitions/org.isda.cdm.CreditEvents"
                },
                "floatingAmountEvents": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingAmountEvents"
                },
                "obligations": {
                    "$ref": "#/definitions/org.isda.cdm.Obligations"
                }
            },
            "required": ["$class", "id", "notionalAmount", "creditEvents", "floatingAmountEvents", "obligations"]
        },
        "org.isda.cdm.ProtectionTermsBuilder": {
            "title": "ProtectionTermsBuilder",
            "description": "An instance of org.isda.cdm.ProtectionTermsBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ProtectionTermsBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ProtectionTermsBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                }
            },
            "required": ["$class", "id"]
        },
        "org.isda.cdm.ProductIdSourceEnum": {
            "title": "ProductIdSourceEnum",
            "description": "An instance of org.isda.cdm.ProductIdSourceEnum",
            "enum": ["CUSIP", "SEDOL", "ISIN", "RIC", "FIGI", "WERTPAPIER", "SICOVAM"]
        },
        "org.isda.cdm.RestructuringBuilder": {
            "title": "RestructuringBuilder",
            "description": "An instance of org.isda.cdm.RestructuringBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.RestructuringBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.RestructuringBuilder$",
                    "description": "The class identifier for this type"
                },
                "multipleHolderObligation": {
                    "type": "boolean"
                },
                "multipleCreditEventNotices": {
                    "type": "boolean"
                },
                "applicable": {
                    "type": "boolean"
                },
                "restructuringType": {
                    "$ref": "#/definitions/org.isda.cdm.RestructuringEnum"
                },
                "restructuringTypeScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "multipleHolderObligation", "multipleCreditEventNotices", "applicable", "restructuringType", "restructuringTypeScheme"]
        },
        "org.isda.cdm.Restructuring": {
            "title": "Restructuring",
            "description": "An instance of org.isda.cdm.Restructuring",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Restructuring",
                    "pattern": "^org\\.isda\\.cdm\\.Restructuring$",
                    "description": "The class identifier for this type"
                },
                "multipleHolderObligation": {
                    "type": "boolean"
                },
                "multipleCreditEventNotices": {
                    "type": "boolean"
                },
                "applicable": {
                    "type": "boolean"
                },
                "restructuringType": {
                    "$ref": "#/definitions/org.isda.cdm.RestructuringEnum"
                },
                "restructuringTypeScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "multipleHolderObligation", "multipleCreditEventNotices", "applicable", "restructuringType", "restructuringTypeScheme"]
        },
        "org.isda.cdm.CreditEventNotice": {
            "title": "CreditEventNotice",
            "description": "An instance of org.isda.cdm.CreditEventNotice",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CreditEventNotice",
                    "pattern": "^org\\.isda\\.cdm\\.CreditEventNotice$",
                    "description": "The class identifier for this type"
                },
                "notifyingParty": {
                    "$ref": "#/definitions/org.isda.cdm.NotifyingParty"
                },
                "businessCenter": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterEnum"
                },
                "publiclyAvailableInformation": {
                    "$ref": "#/definitions/org.isda.cdm.PubliclyAvailableInformation"
                }
            },
            "required": ["$class", "notifyingParty", "businessCenter", "publiclyAvailableInformation"]
        },
        "org.isda.cdm.CreditEventNoticeBuilder": {
            "title": "CreditEventNoticeBuilder",
            "description": "An instance of org.isda.cdm.CreditEventNoticeBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CreditEventNoticeBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CreditEventNoticeBuilder$",
                    "description": "The class identifier for this type"
                },
                "businessCenter": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterEnum"
                }
            },
            "required": ["$class", "businessCenter"]
        },
        "org.isda.cdm.StrikeSpread": {
            "title": "StrikeSpread",
            "description": "An instance of org.isda.cdm.StrikeSpread",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StrikeSpread",
                    "pattern": "^org\\.isda\\.cdm\\.StrikeSpread$",
                    "description": "The class identifier for this type"
                },
                "upperStrike": {
                    "$ref": "#/definitions/org.isda.cdm.OptionStrike"
                },
                "upperStrikeNumberOfOptions": {
                    "type": "number"
                }
            },
            "required": ["$class", "upperStrike", "upperStrikeNumberOfOptions"]
        },
        "org.isda.cdm.StrikeSpreadBuilder": {
            "title": "StrikeSpreadBuilder",
            "description": "An instance of org.isda.cdm.StrikeSpreadBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StrikeSpreadBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.StrikeSpreadBuilder$",
                    "description": "The class identifier for this type"
                },
                "upperStrikeNumberOfOptions": {
                    "type": "number"
                }
            },
            "required": ["$class", "upperStrikeNumberOfOptions"]
        },
        "org.isda.cdm.ResourceLength": {
            "title": "ResourceLength",
            "description": "An instance of org.isda.cdm.ResourceLength",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ResourceLength",
                    "pattern": "^org\\.isda\\.cdm\\.ResourceLength$",
                    "description": "The class identifier for this type"
                },
                "lengthUnit": {
                    "$ref": "#/definitions/org.isda.cdm.LengthUnitEnum"
                },
                "lengthValue": {
                    "type": "number"
                }
            },
            "required": ["$class", "lengthUnit", "lengthValue"]
        },
        "org.isda.cdm.ResourceLengthBuilder": {
            "title": "ResourceLengthBuilder",
            "description": "An instance of org.isda.cdm.ResourceLengthBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ResourceLengthBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ResourceLengthBuilder$",
                    "description": "The class identifier for this type"
                },
                "lengthUnit": {
                    "$ref": "#/definitions/org.isda.cdm.LengthUnitEnum"
                },
                "lengthValue": {
                    "type": "number"
                }
            },
            "required": ["$class", "lengthUnit", "lengthValue"]
        },
        "org.isda.cdm.ResourceTypeEnum": {
            "title": "ResourceTypeEnum",
            "description": "An instance of org.isda.cdm.ResourceTypeEnum",
            "enum": ["CONFIRMATION", "SUPPLEMENTAL_MATERIAL_ECONOMIC_TERMS", "TERM_SHEET"]
        },
        "org.isda.cdm.AmericanExerciseBuilder": {
            "title": "AmericanExerciseBuilder",
            "description": "An instance of org.isda.cdm.AmericanExerciseBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AmericanExerciseBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AmericanExerciseBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                }
            },
            "required": ["$class", "id"]
        },
        "org.isda.cdm.AmericanExercise": {
            "title": "AmericanExercise",
            "description": "An instance of org.isda.cdm.AmericanExercise",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AmericanExercise",
                    "pattern": "^org\\.isda\\.cdm\\.AmericanExercise$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "expirationDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableOrRelativeDate"
                },
                "relevantUnderlyingDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableOrRelativeDates"
                },
                "earliestExerciseTime": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterTime"
                },
                "expirationTime": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterTime"
                },
                "latestExerciseTime": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterTime"
                },
                "multipleExercise": {
                    "$ref": "#/definitions/org.isda.cdm.MultipleExercise"
                },
                "exerciseFeeSchedule": {
                    "$ref": "#/definitions/org.isda.cdm.ExerciseFeeSchedule"
                },
                "commencementDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableOrRelativeDate"
                }
            },
            "required": [
                "$class",
                "id",
                "expirationDate",
                "relevantUnderlyingDate",
                "earliestExerciseTime",
                "expirationTime",
                "latestExerciseTime",
                "multipleExercise",
                "exerciseFeeSchedule",
                "commencementDate"
            ]
        },
        "org.isda.cdm.CouponTypeEnum": {
            "title": "CouponTypeEnum",
            "description": "An instance of org.isda.cdm.CouponTypeEnum",
            "enum": ["FIXED", "FLOAT", "STRUCTURED"]
        },
        "org.isda.cdm.SettlementTypeEnum": {
            "title": "SettlementTypeEnum",
            "description": "An instance of org.isda.cdm.SettlementTypeEnum",
            "enum": ["CASH", "PHYSICAL", "ELECTION", "CASH_OR_PHYSICAL"]
        },
        "org.isda.cdm.CreditEvents": {
            "title": "CreditEvents",
            "description": "An instance of org.isda.cdm.CreditEvents",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CreditEvents",
                    "pattern": "^org\\.isda\\.cdm\\.CreditEvents$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "creditEventNotice": {
                    "$ref": "#/definitions/org.isda.cdm.CreditEventNotice"
                },
                "restructuring": {
                    "$ref": "#/definitions/org.isda.cdm.Restructuring"
                },
                "failureToPayPrincipal": {
                    "type": "boolean"
                },
                "failureToPayInterest": {
                    "type": "boolean"
                },
                "distressedRatingsDowngrade": {
                    "type": "boolean"
                },
                "maturityExtension": {
                    "type": "boolean"
                },
                "writedown": {
                    "type": "boolean"
                },
                "impliedWritedown": {
                    "type": "boolean"
                },
                "bankruptcy": {
                    "type": "boolean"
                },
                "obligationDefault": {
                    "type": "boolean"
                },
                "obligationAcceleration": {
                    "type": "boolean"
                },
                "repudiationMoratorium": {
                    "type": "boolean"
                },
                "governmentalIntervention": {
                    "type": "boolean"
                },
                "failureToPay": {
                    "$ref": "#/definitions/org.isda.cdm.FailureToPay"
                },
                "defaultRequirement": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                }
            },
            "required": [
                "$class",
                "id",
                "creditEventNotice",
                "restructuring",
                "failureToPayPrincipal",
                "failureToPayInterest",
                "distressedRatingsDowngrade",
                "maturityExtension",
                "writedown",
                "impliedWritedown",
                "bankruptcy",
                "obligationDefault",
                "obligationAcceleration",
                "repudiationMoratorium",
                "governmentalIntervention",
                "failureToPay",
                "defaultRequirement"
            ]
        },
        "org.isda.cdm.CreditEventsBuilder": {
            "title": "CreditEventsBuilder",
            "description": "An instance of org.isda.cdm.CreditEventsBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CreditEventsBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CreditEventsBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "failureToPayPrincipal": {
                    "type": "boolean"
                },
                "failureToPayInterest": {
                    "type": "boolean"
                },
                "distressedRatingsDowngrade": {
                    "type": "boolean"
                },
                "maturityExtension": {
                    "type": "boolean"
                },
                "writedown": {
                    "type": "boolean"
                },
                "impliedWritedown": {
                    "type": "boolean"
                },
                "bankruptcy": {
                    "type": "boolean"
                },
                "obligationDefault": {
                    "type": "boolean"
                },
                "obligationAcceleration": {
                    "type": "boolean"
                },
                "repudiationMoratorium": {
                    "type": "boolean"
                },
                "governmentalIntervention": {
                    "type": "boolean"
                }
            },
            "required": [
                "$class",
                "id",
                "failureToPayPrincipal",
                "failureToPayInterest",
                "distressedRatingsDowngrade",
                "maturityExtension",
                "writedown",
                "impliedWritedown",
                "bankruptcy",
                "obligationDefault",
                "obligationAcceleration",
                "repudiationMoratorium",
                "governmentalIntervention"
            ]
        },
        "org.isda.cdm.NotifyingParty": {
            "title": "NotifyingParty",
            "description": "An instance of org.isda.cdm.NotifyingParty",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NotifyingParty",
                    "pattern": "^org\\.isda\\.cdm\\.NotifyingParty$",
                    "description": "The class identifier for this type"
                },
                "sellerPartyReference": {
                    "type": "string"
                },
                "buyerPartyReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "sellerPartyReference", "buyerPartyReference"]
        },
        "org.isda.cdm.NotifyingPartyBuilder": {
            "title": "NotifyingPartyBuilder",
            "description": "An instance of org.isda.cdm.NotifyingPartyBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NotifyingPartyBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.NotifyingPartyBuilder$",
                    "description": "The class identifier for this type"
                },
                "sellerPartyReference": {
                    "type": "string"
                },
                "buyerPartyReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "sellerPartyReference", "buyerPartyReference"]
        },
        "org.isda.cdm.IndependentAmount": {
            "title": "IndependentAmount",
            "description": "An instance of org.isda.cdm.IndependentAmount",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.IndependentAmount",
                    "pattern": "^org\\.isda\\.cdm\\.IndependentAmount$",
                    "description": "The class identifier for this type"
                },
                "paymentDetail": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.PaymentDetail"
                    }
                },
                "payerPartyReference": {
                    "type": "string"
                },
                "receiverPartyReference": {
                    "type": "string"
                },
                "payerAccountReference": {
                    "type": "string"
                },
                "receiverAccountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "paymentDetail", "payerPartyReference", "receiverPartyReference", "payerAccountReference", "receiverAccountReference"]
        },
        "org.isda.cdm.IndependentAmountBuilder": {
            "title": "IndependentAmountBuilder",
            "description": "An instance of org.isda.cdm.IndependentAmountBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.IndependentAmountBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.IndependentAmountBuilder$",
                    "description": "The class identifier for this type"
                },
                "payerPartyReference": {
                    "type": "string"
                },
                "receiverPartyReference": {
                    "type": "string"
                },
                "payerAccountReference": {
                    "type": "string"
                },
                "receiverAccountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "payerPartyReference", "receiverPartyReference", "payerAccountReference", "receiverAccountReference"]
        },
        "org.isda.cdm.ContractIdentifierBuilder": {
            "title": "ContractIdentifierBuilder",
            "description": "An instance of org.isda.cdm.ContractIdentifierBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractIdentifierBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ContractIdentifierBuilder$",
                    "description": "The class identifier for this type"
                },
                "accountReference": {
                    "type": "string"
                },
                "partyReference": {
                    "type": "string"
                },
                "issuer": {
                    "type": "string"
                },
                "issuerScheme": {
                    "type": "string"
                },
                "version": {
                    "type": "integer"
                }
            },
            "required": ["$class", "accountReference", "partyReference", "issuer", "issuerScheme", "version"]
        },
        "org.isda.cdm.ContractIdentifier": {
            "title": "ContractIdentifier",
            "description": "An instance of org.isda.cdm.ContractIdentifier",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractIdentifier",
                    "pattern": "^org\\.isda\\.cdm\\.ContractIdentifier$",
                    "description": "The class identifier for this type"
                },
                "accountReference": {
                    "type": "string"
                },
                "partyReference": {
                    "type": "string"
                },
                "identifierValue": {
                    "$ref": "#/definitions/org.isda.cdm.IdentifierValue"
                },
                "issuer": {
                    "type": "string"
                },
                "issuerScheme": {
                    "type": "string"
                },
                "version": {
                    "type": "integer"
                }
            },
            "required": ["$class", "accountReference", "partyReference", "identifierValue", "issuer", "issuerScheme", "version"]
        },
        "org.isda.cdm.ContractualQuantityBuilder": {
            "title": "ContractualQuantityBuilder",
            "description": "An instance of org.isda.cdm.ContractualQuantityBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractualQuantityBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ContractualQuantityBuilder$",
                    "description": "The class identifier for this type"
                },
                "notionalReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "notionalReference"]
        },
        "org.isda.cdm.ContractualQuantity": {
            "title": "ContractualQuantity",
            "description": "An instance of org.isda.cdm.ContractualQuantity",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractualQuantity",
                    "pattern": "^org\\.isda\\.cdm\\.ContractualQuantity$",
                    "description": "The class identifier for this type"
                },
                "notionalAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "notionalSchedule": {
                    "$ref": "#/definitions/org.isda.cdm.NotionalSchedule"
                },
                "fxLinkedNotional": {
                    "$ref": "#/definitions/org.isda.cdm.FxLinkedNotionalSchedule"
                },
                "notionalReference": {
                    "type": "string"
                },
                "quantity": {
                    "$ref": "#/definitions/org.isda.cdm.Quantity"
                },
                "futureValueNotional": {
                    "$ref": "#/definitions/org.isda.cdm.FutureValueAmount"
                }
            },
            "required": ["$class", "notionalAmount", "notionalSchedule", "fxLinkedNotional", "notionalReference", "quantity", "futureValueNotional"]
        },
        "org.isda.cdm.DateRelativeToPaymentDates": {
            "title": "DateRelativeToPaymentDates",
            "description": "An instance of org.isda.cdm.DateRelativeToPaymentDates",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DateRelativeToPaymentDates",
                    "pattern": "^org\\.isda\\.cdm\\.DateRelativeToPaymentDates$",
                    "description": "The class identifier for this type"
                },
                "paymentDatesReference": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "paymentDatesReference"]
        },
        "org.isda.cdm.DateRelativeToPaymentDatesBuilder": {
            "title": "DateRelativeToPaymentDatesBuilder",
            "description": "An instance of org.isda.cdm.DateRelativeToPaymentDatesBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DateRelativeToPaymentDatesBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.DateRelativeToPaymentDatesBuilder$",
                    "description": "The class identifier for this type"
                },
                "paymentDatesReference": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "paymentDatesReference"]
        },
        "org.isda.cdm.PaymentCalculationPeriod": {
            "title": "PaymentCalculationPeriod",
            "description": "An instance of org.isda.cdm.PaymentCalculationPeriod",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PaymentCalculationPeriod",
                    "pattern": "^org\\.isda\\.cdm\\.PaymentCalculationPeriod$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "unadjustedPaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedPaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "fixedPaymentAmount": {
                    "type": "number"
                },
                "discountFactor": {
                    "type": "number"
                },
                "forecastPaymentAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "presentValueAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "calculationPeriod": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.CalculationPeriod"
                    }
                }
            },
            "required": ["$class", "id", "unadjustedPaymentDate", "adjustedPaymentDate", "fixedPaymentAmount", "discountFactor", "forecastPaymentAmount", "presentValueAmount", "calculationPeriod"]
        },
        "org.isda.cdm.PaymentCalculationPeriodBuilder": {
            "title": "PaymentCalculationPeriodBuilder",
            "description": "An instance of org.isda.cdm.PaymentCalculationPeriodBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PaymentCalculationPeriodBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PaymentCalculationPeriodBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "unadjustedPaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedPaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "fixedPaymentAmount": {
                    "type": "number"
                },
                "discountFactor": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "unadjustedPaymentDate", "adjustedPaymentDate", "fixedPaymentAmount", "discountFactor"]
        },
        "org.isda.cdm.PartialExercise": {
            "title": "PartialExercise",
            "description": "An instance of org.isda.cdm.PartialExercise",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PartialExercise",
                    "pattern": "^org\\.isda\\.cdm\\.PartialExercise$",
                    "description": "The class identifier for this type"
                },
                "minimumNumberOfOptions": {
                    "type": "integer"
                },
                "notionaReference": {
                    "type": "string"
                },
                "integralMultipleAmount": {
                    "type": "number"
                },
                "minimumNotionalAmount": {
                    "type": "number"
                }
            },
            "required": ["$class", "minimumNumberOfOptions", "notionaReference", "integralMultipleAmount", "minimumNotionalAmount"]
        },
        "org.isda.cdm.PartialExerciseBuilder": {
            "title": "PartialExerciseBuilder",
            "description": "An instance of org.isda.cdm.PartialExerciseBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PartialExerciseBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PartialExerciseBuilder$",
                    "description": "The class identifier for this type"
                },
                "minimumNumberOfOptions": {
                    "type": "integer"
                },
                "notionaReference": {
                    "type": "string"
                },
                "integralMultipleAmount": {
                    "type": "number"
                },
                "minimumNotionalAmount": {
                    "type": "number"
                }
            },
            "required": ["$class", "minimumNumberOfOptions", "notionaReference", "integralMultipleAmount", "minimumNotionalAmount"]
        },
        "org.isda.cdm.MortgageSectorEnum": {
            "title": "MortgageSectorEnum",
            "description": "An instance of org.isda.cdm.MortgageSectorEnum",
            "enum": ["ABS", "CDO", "CMBS", "RMBS"]
        },
        "org.isda.cdm.CrossCurrencyTerms": {
            "title": "CrossCurrencyTerms",
            "description": "An instance of org.isda.cdm.CrossCurrencyTerms",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CrossCurrencyTerms",
                    "pattern": "^org\\.isda\\.cdm\\.CrossCurrencyTerms$",
                    "description": "The class identifier for this type"
                },
                "settlementProvision": {
                    "$ref": "#/definitions/org.isda.cdm.SettlementProvision"
                },
                "principalExchanges": {
                    "$ref": "#/definitions/org.isda.cdm.PrincipalExchanges"
                }
            },
            "required": ["$class", "settlementProvision", "principalExchanges"]
        },
        "org.isda.cdm.CrossCurrencyTermsBuilder": {
            "title": "CrossCurrencyTermsBuilder",
            "description": "An instance of org.isda.cdm.CrossCurrencyTermsBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CrossCurrencyTermsBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CrossCurrencyTermsBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.PartyIdSourceEnum": {
            "title": "PartyIdSourceEnum",
            "description": "An instance of org.isda.cdm.PartyIdSourceEnum",
            "enum": ["BIC", "LEI", "ARNU", "CCPT", "CUST", "DRLC", "EMPL", "NIDN", "SOSE", "TXID"]
        },
        "org.isda.cdm.IssuerTradeId": {
            "title": "IssuerTradeId",
            "description": "An instance of org.isda.cdm.IssuerTradeId",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.IssuerTradeId",
                    "pattern": "^org\\.isda\\.cdm\\.IssuerTradeId$",
                    "description": "The class identifier for this type"
                },
                "identifier": {
                    "type": "string"
                },
                "issuer": {
                    "type": "string"
                },
                "issuerScheme": {
                    "type": "string"
                },
                "identifierScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "identifier", "issuer", "issuerScheme", "identifierScheme"]
        },
        "org.isda.cdm.IssuerTradeIdBuilder": {
            "title": "IssuerTradeIdBuilder",
            "description": "An instance of org.isda.cdm.IssuerTradeIdBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.IssuerTradeIdBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.IssuerTradeIdBuilder$",
                    "description": "The class identifier for this type"
                },
                "identifier": {
                    "type": "string"
                },
                "issuer": {
                    "type": "string"
                },
                "issuerScheme": {
                    "type": "string"
                },
                "identifierScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "identifier", "issuer", "issuerScheme", "identifierScheme"]
        },
        "org.isda.cdm.IdentifierBuilder": {
            "title": "IdentifierBuilder",
            "description": "An instance of org.isda.cdm.IdentifierBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.IdentifierBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.IdentifierBuilder$",
                    "description": "The class identifier for this type"
                },
                "issuer": {
                    "type": "string"
                },
                "issuerScheme": {
                    "type": "string"
                },
                "version": {
                    "type": "integer"
                }
            },
            "required": ["$class", "issuer", "issuerScheme", "version"]
        },
        "org.isda.cdm.Identifier": {
            "title": "Identifier",
            "description": "An instance of org.isda.cdm.Identifier",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Identifier",
                    "pattern": "^org\\.isda\\.cdm\\.Identifier$",
                    "description": "The class identifier for this type"
                },
                "identifierValue": {
                    "$ref": "#/definitions/org.isda.cdm.IdentifierValue"
                },
                "issuer": {
                    "type": "string"
                },
                "issuerScheme": {
                    "type": "string"
                },
                "version": {
                    "type": "integer"
                }
            },
            "required": ["$class", "identifierValue", "issuer", "issuerScheme", "version"]
        },
        "org.isda.cdm.FrequencyBuilder": {
            "title": "FrequencyBuilder",
            "description": "An instance of org.isda.cdm.FrequencyBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FrequencyBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FrequencyBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodExtendedEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": ["$class", "id", "period", "periodMultiplier"]
        },
        "org.isda.cdm.Frequency": {
            "title": "Frequency",
            "description": "An instance of org.isda.cdm.Frequency",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Frequency",
                    "pattern": "^org\\.isda\\.cdm\\.Frequency$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodExtendedEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": ["$class", "id", "period", "periodMultiplier"]
        },
        "org.isda.cdm.PassThroughItem": {
            "title": "PassThroughItem",
            "description": "An instance of org.isda.cdm.PassThroughItem",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PassThroughItem",
                    "pattern": "^org\\.isda\\.cdm\\.PassThroughItem$",
                    "description": "The class identifier for this type"
                },
                "passThroughPercentage": {
                    "type": "number"
                },
                "payerReceiver": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiver"
                }
            },
            "required": ["$class", "passThroughPercentage", "payerReceiver"]
        },
        "org.isda.cdm.PassThroughItemBuilder": {
            "title": "PassThroughItemBuilder",
            "description": "An instance of org.isda.cdm.PassThroughItemBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PassThroughItemBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PassThroughItemBuilder$",
                    "description": "The class identifier for this type"
                },
                "passThroughPercentage": {
                    "type": "number"
                }
            },
            "required": ["$class", "passThroughPercentage"]
        },
        "org.isda.cdm.OtherAgreementBuilder": {
            "title": "OtherAgreementBuilder",
            "description": "An instance of org.isda.cdm.OtherAgreementBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OtherAgreementBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.OtherAgreementBuilder$",
                    "description": "The class identifier for this type"
                },
                "type": {
                    "type": "string"
                },
                "identifier": {
                    "type": "string"
                },
                "identifierScheme": {
                    "type": "string"
                },
                "date": {
                    "format": "date-time",
                    "type": "string"
                },
                "typeScheme": {
                    "type": "string"
                },
                "versionScheme": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            },
            "required": ["$class", "type", "identifier", "identifierScheme", "date", "typeScheme", "versionScheme", "version"]
        },
        "org.isda.cdm.OtherAgreement": {
            "title": "OtherAgreement",
            "description": "An instance of org.isda.cdm.OtherAgreement",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OtherAgreement",
                    "pattern": "^org\\.isda\\.cdm\\.OtherAgreement$",
                    "description": "The class identifier for this type"
                },
                "type": {
                    "type": "string"
                },
                "identifier": {
                    "type": "string"
                },
                "identifierScheme": {
                    "type": "string"
                },
                "date": {
                    "format": "date-time",
                    "type": "string"
                },
                "typeScheme": {
                    "type": "string"
                },
                "versionScheme": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            },
            "required": ["$class", "type", "identifier", "identifierScheme", "date", "typeScheme", "versionScheme", "version"]
        },
        "org.isda.cdm.ContractualSupplementEnum": {
            "title": "ContractualSupplementEnum",
            "description": "An instance of org.isda.cdm.ContractualSupplementEnum",
            "enum": [
                "ABX",
                "CD_SON_MBS",
                "ISDA_1999_CREDIT_CONVERTIBLE_EXCHANGEABLE_ACCRETING_OBLIGATIONS",
                "ISDA_1999_CREDIT_SUCCESSOR_AND_CREDIT_EVENTS",
                "ISDA_2003_CREDIT_MAY_2003",
                "I_TRAXX_EUROPE_DEALER",
                "STANDARD_LCDS"
            ]
        },
        "org.isda.cdm.TaxonomySourceEnum": {
            "title": "TaxonomySourceEnum",
            "description": "An instance of org.isda.cdm.TaxonomySourceEnum",
            "enum": ["CFI", "ISDA"]
        },
        "org.isda.cdm.FailureToPay": {
            "title": "FailureToPay",
            "description": "An instance of org.isda.cdm.FailureToPay",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FailureToPay",
                    "pattern": "^org\\.isda\\.cdm\\.FailureToPay$",
                    "description": "The class identifier for this type"
                },
                "applicable": {
                    "type": "boolean"
                },
                "gracePeriodExtension": {
                    "$ref": "#/definitions/org.isda.cdm.GracePeriodExtension"
                },
                "paymentRequirement": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                }
            },
            "required": ["$class", "applicable", "gracePeriodExtension", "paymentRequirement"]
        },
        "org.isda.cdm.FailureToPayBuilder": {
            "title": "FailureToPayBuilder",
            "description": "An instance of org.isda.cdm.FailureToPayBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FailureToPayBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FailureToPayBuilder$",
                    "description": "The class identifier for this type"
                },
                "applicable": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "applicable"]
        },
        "org.isda.cdm.PayRelativeToEnum": {
            "title": "PayRelativeToEnum",
            "description": "An instance of org.isda.cdm.PayRelativeToEnum",
            "enum": ["CALCULATION_PERIOD_START_DATE", "CALCULATION_PERIOD_END_DATE", "LAST_PRICING_DATE", "RESET_DATE", "VALUATION_DATE"]
        },
        "org.isda.cdm.ExerciseEventBuilder": {
            "title": "ExerciseEventBuilder",
            "description": "An instance of org.isda.cdm.ExerciseEventBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExerciseEventBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ExerciseEventBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "adjustedRelevantSwapEffectiveDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedExerciseFeePaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedCashSettlementValuationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedCashSettlementPaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedExerciseDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "id",
                "adjustedRelevantSwapEffectiveDate",
                "adjustedExerciseFeePaymentDate",
                "adjustedCashSettlementValuationDate",
                "adjustedCashSettlementPaymentDate",
                "adjustedExerciseDate"
            ]
        },
        "org.isda.cdm.ExerciseEvent": {
            "title": "ExerciseEvent",
            "description": "An instance of org.isda.cdm.ExerciseEvent",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExerciseEvent",
                    "pattern": "^org\\.isda\\.cdm\\.ExerciseEvent$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "adjustedRelevantSwapEffectiveDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedExerciseFeePaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedCashSettlementValuationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedCashSettlementPaymentDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedExerciseDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "id",
                "adjustedRelevantSwapEffectiveDate",
                "adjustedExerciseFeePaymentDate",
                "adjustedCashSettlementValuationDate",
                "adjustedCashSettlementPaymentDate",
                "adjustedExerciseDate"
            ]
        },
        "org.isda.cdm.SpreadSchedule": {
            "title": "SpreadSchedule",
            "description": "An instance of org.isda.cdm.SpreadSchedule",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SpreadSchedule",
                    "pattern": "^org\\.isda\\.cdm\\.SpreadSchedule$",
                    "description": "The class identifier for this type"
                },
                "type": {
                    "$ref": "#/definitions/org.isda.cdm.SpreadScheduleTypeEnum"
                },
                "typeScheme": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "initialValue": {
                    "type": "number"
                },
                "step": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Step"
                    }
                }
            },
            "required": ["$class", "type", "typeScheme", "id", "initialValue", "step"]
        },
        "org.isda.cdm.SpreadScheduleBuilder": {
            "title": "SpreadScheduleBuilder",
            "description": "An instance of org.isda.cdm.SpreadScheduleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SpreadScheduleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.SpreadScheduleBuilder$",
                    "description": "The class identifier for this type"
                },
                "type": {
                    "$ref": "#/definitions/org.isda.cdm.SpreadScheduleTypeEnum"
                },
                "typeScheme": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "initialValue": {
                    "type": "number"
                }
            },
            "required": ["$class", "type", "typeScheme", "id", "initialValue"]
        },
        "org.isda.cdm.LoanParticipation": {
            "title": "LoanParticipation",
            "description": "An instance of org.isda.cdm.LoanParticipation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.LoanParticipation",
                    "pattern": "^org\\.isda\\.cdm\\.LoanParticipation$",
                    "description": "The class identifier for this type"
                },
                "qualifyingParticipationSeller": {
                    "type": "string"
                },
                "applicable": {
                    "type": "boolean"
                },
                "partialCashSettlement": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "qualifyingParticipationSeller", "applicable", "partialCashSettlement"]
        },
        "org.isda.cdm.LoanParticipationBuilder": {
            "title": "LoanParticipationBuilder",
            "description": "An instance of org.isda.cdm.LoanParticipationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.LoanParticipationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.LoanParticipationBuilder$",
                    "description": "The class identifier for this type"
                },
                "qualifyingParticipationSeller": {
                    "type": "string"
                },
                "applicable": {
                    "type": "boolean"
                },
                "partialCashSettlement": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "qualifyingParticipationSeller", "applicable", "partialCashSettlement"]
        },
        "org.isda.cdm.IdentifierValueBuilder": {
            "title": "IdentifierValueBuilder",
            "description": "An instance of org.isda.cdm.IdentifierValueBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.IdentifierValueBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.IdentifierValueBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "identifier": {
                    "type": "string"
                },
                "identifierScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "identifier", "identifierScheme"]
        },
        "org.isda.cdm.IdentifierValue": {
            "title": "IdentifierValue",
            "description": "An instance of org.isda.cdm.IdentifierValue",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.IdentifierValue",
                    "pattern": "^org\\.isda\\.cdm\\.IdentifierValue$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "identifier": {
                    "type": "string"
                },
                "identifierScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "identifier", "identifierScheme"]
        },
        "org.isda.cdm.Loan": {
            "title": "Loan",
            "description": "An instance of org.isda.cdm.Loan",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Loan",
                    "pattern": "^org\\.isda\\.cdm\\.Loan$",
                    "description": "The class identifier for this type"
                },
                "facilityTypeScheme": {
                    "type": "string"
                },
                "lienScheme": {
                    "type": "string"
                },
                "trancheScheme": {
                    "type": "string"
                },
                "tranche": {
                    "type": "string"
                },
                "maturity": {
                    "format": "date-time",
                    "type": "string"
                },
                "borrower": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.LegalEntity"
                    }
                },
                "borrowerReference": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "lien": {
                    "type": "string"
                },
                "facilityType": {
                    "type": "string"
                },
                "creditAgreementDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "instrumentIdentifierScheme": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "instrumentIdentifier": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": [
                "$class",
                "facilityTypeScheme",
                "lienScheme",
                "trancheScheme",
                "tranche",
                "maturity",
                "borrower",
                "borrowerReference",
                "lien",
                "facilityType",
                "creditAgreementDate",
                "id",
                "instrumentIdentifierScheme",
                "description",
                "instrumentIdentifier"
            ]
        },
        "org.isda.cdm.LoanBuilder": {
            "title": "LoanBuilder",
            "description": "An instance of org.isda.cdm.LoanBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.LoanBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.LoanBuilder$",
                    "description": "The class identifier for this type"
                },
                "facilityTypeScheme": {
                    "type": "string"
                },
                "lienScheme": {
                    "type": "string"
                },
                "trancheScheme": {
                    "type": "string"
                },
                "tranche": {
                    "type": "string"
                },
                "maturity": {
                    "format": "date-time",
                    "type": "string"
                },
                "borrowerReference": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "lien": {
                    "type": "string"
                },
                "facilityType": {
                    "type": "string"
                },
                "creditAgreementDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "instrumentIdentifierScheme": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "instrumentIdentifier": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": [
                "$class",
                "facilityTypeScheme",
                "lienScheme",
                "trancheScheme",
                "tranche",
                "maturity",
                "borrowerReference",
                "lien",
                "facilityType",
                "creditAgreementDate",
                "id",
                "instrumentIdentifierScheme",
                "description",
                "instrumentIdentifier"
            ]
        },
        "org.isda.cdm.EventEffect": {
            "title": "EventEffect",
            "description": "An instance of org.isda.cdm.EventEffect",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EventEffect",
                    "pattern": "^org\\.isda\\.cdm\\.EventEffect$",
                    "description": "The class identifier for this type"
                },
                "listedProduct": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "payment": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "contractReference": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "effectedContract": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "effectedContractReference": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "effectedEvent": {
                    "type": "string"
                },
                "transfer": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "contract": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "listedProduct", "payment", "contractReference", "effectedContract", "effectedContractReference", "effectedEvent", "transfer", "contract"]
        },
        "org.isda.cdm.EventEffectBuilder": {
            "title": "EventEffectBuilder",
            "description": "An instance of org.isda.cdm.EventEffectBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EventEffectBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.EventEffectBuilder$",
                    "description": "The class identifier for this type"
                },
                "listedProduct": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "payment": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "contractReference": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "effectedContract": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "effectedContractReference": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "effectedEvent": {
                    "type": "string"
                },
                "transfer": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "contract": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "listedProduct", "payment", "contractReference", "effectedContract", "effectedContractReference", "effectedEvent", "transfer", "contract"]
        },
        "org.isda.cdm.BusinessCentersBuilder": {
            "title": "BusinessCentersBuilder",
            "description": "An instance of org.isda.cdm.BusinessCentersBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BusinessCentersBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.BusinessCentersBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "businessCenterScheme": {
                    "type": "string"
                },
                "businessCenter": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.BusinessCenterEnum"
                    }
                },
                "businessCentersReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "businessCenterScheme", "businessCenter", "businessCentersReference"]
        },
        "org.isda.cdm.BusinessCenters": {
            "title": "BusinessCenters",
            "description": "An instance of org.isda.cdm.BusinessCenters",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BusinessCenters",
                    "pattern": "^org\\.isda\\.cdm\\.BusinessCenters$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "businessCenterScheme": {
                    "type": "string"
                },
                "businessCenter": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.BusinessCenterEnum"
                    }
                },
                "businessCentersReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "businessCenterScheme", "businessCenter", "businessCentersReference"]
        },
        "org.isda.cdm.BondOptionStrikeBuilder": {
            "title": "BondOptionStrikeBuilder",
            "description": "An instance of org.isda.cdm.BondOptionStrikeBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BondOptionStrikeBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.BondOptionStrikeBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.BondOptionStrike": {
            "title": "BondOptionStrike",
            "description": "An instance of org.isda.cdm.BondOptionStrike",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BondOptionStrike",
                    "pattern": "^org\\.isda\\.cdm\\.BondOptionStrike$",
                    "description": "The class identifier for this type"
                },
                "referenceSwapCurve": {
                    "$ref": "#/definitions/org.isda.cdm.ReferenceSwapCurve"
                },
                "price": {
                    "$ref": "#/definitions/org.isda.cdm.OptionStrike"
                }
            },
            "required": ["$class", "referenceSwapCurve", "price"]
        },
        "org.isda.cdm.MandatoryEarlyTerminationBuilder": {
            "title": "MandatoryEarlyTerminationBuilder",
            "description": "An instance of org.isda.cdm.MandatoryEarlyTerminationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MandatoryEarlyTerminationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.MandatoryEarlyTerminationBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                }
            },
            "required": ["$class", "id"]
        },
        "org.isda.cdm.MandatoryEarlyTermination": {
            "title": "MandatoryEarlyTermination",
            "description": "An instance of org.isda.cdm.MandatoryEarlyTermination",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MandatoryEarlyTermination",
                    "pattern": "^org\\.isda\\.cdm\\.MandatoryEarlyTermination$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "cashSettlement": {
                    "$ref": "#/definitions/org.isda.cdm.OptionCashSettlement"
                },
                "calculationAgent": {
                    "$ref": "#/definitions/org.isda.cdm.CalculationAgent"
                },
                "mandatoryEarlyTerminationDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableDate"
                },
                "mandatoryEarlyTerminationAdjustedDates": {
                    "$ref": "#/definitions/org.isda.cdm.MandatoryEarlyTerminationAdjustedDates"
                }
            },
            "required": ["$class", "id", "cashSettlement", "calculationAgent", "mandatoryEarlyTerminationDate", "mandatoryEarlyTerminationAdjustedDates"]
        },
        "org.isda.cdm.OptionStyleBuilder": {
            "title": "OptionStyleBuilder",
            "description": "An instance of org.isda.cdm.OptionStyleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionStyleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.OptionStyleBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.OptionStyle": {
            "title": "OptionStyle",
            "description": "An instance of org.isda.cdm.OptionStyle",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionStyle",
                    "pattern": "^org\\.isda\\.cdm\\.OptionStyle$",
                    "description": "The class identifier for this type"
                },
                "americanExercise": {
                    "$ref": "#/definitions/org.isda.cdm.AmericanExercise"
                },
                "bermudaExercise": {
                    "$ref": "#/definitions/org.isda.cdm.BermudaExercise"
                },
                "europeanExercise": {
                    "$ref": "#/definitions/org.isda.cdm.EuropeanExercise"
                }
            },
            "required": ["$class", "americanExercise", "bermudaExercise", "europeanExercise"]
        },
        "org.isda.cdm.ProductIdentifierBuilder": {
            "title": "ProductIdentifierBuilder",
            "description": "An instance of org.isda.cdm.ProductIdentifierBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ProductIdentifierBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ProductIdentifierBuilder$",
                    "description": "The class identifier for this type"
                },
                "productId": {
                    "type": "string"
                },
                "productIdSource": {
                    "$ref": "#/definitions/org.isda.cdm.ProductIdSourceEnum"
                },
                "productIdScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "productId", "productIdSource", "productIdScheme"]
        },
        "org.isda.cdm.ProductIdentifier": {
            "title": "ProductIdentifier",
            "description": "An instance of org.isda.cdm.ProductIdentifier",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ProductIdentifier",
                    "pattern": "^org\\.isda\\.cdm\\.ProductIdentifier$",
                    "description": "The class identifier for this type"
                },
                "productId": {
                    "type": "string"
                },
                "productIdSource": {
                    "$ref": "#/definitions/org.isda.cdm.ProductIdSourceEnum"
                },
                "productIdScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "productId", "productIdSource", "productIdScheme"]
        },
        "org.isda.cdm.SpecifiedCurrencyBuilder": {
            "title": "SpecifiedCurrencyBuilder",
            "description": "An instance of org.isda.cdm.SpecifiedCurrencyBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SpecifiedCurrencyBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.SpecifiedCurrencyBuilder$",
                    "description": "The class identifier for this type"
                },
                "currency": {
                    "type": "string"
                },
                "applicable": {
                    "type": "boolean"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "currency", "applicable", "currencyScheme"]
        },
        "org.isda.cdm.SpecifiedCurrency": {
            "title": "SpecifiedCurrency",
            "description": "An instance of org.isda.cdm.SpecifiedCurrency",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SpecifiedCurrency",
                    "pattern": "^org\\.isda\\.cdm\\.SpecifiedCurrency$",
                    "description": "The class identifier for this type"
                },
                "currency": {
                    "type": "string"
                },
                "applicable": {
                    "type": "boolean"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "currency", "applicable", "currencyScheme"]
        },
        "org.isda.cdm.CalculationPeriodDates": {
            "title": "CalculationPeriodDates",
            "description": "An instance of org.isda.cdm.CalculationPeriodDates",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CalculationPeriodDates",
                    "pattern": "^org\\.isda\\.cdm\\.CalculationPeriodDates$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "calculationPeriodFrequency": {
                    "$ref": "#/definitions/org.isda.cdm.CalculationPeriodFrequency"
                },
                "effectiveDate": {
                    "$ref": "#/definitions/org.isda.cdm.DateInstances"
                },
                "terminationDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableDate"
                },
                "firstCompoundingPeriodEndDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "stubPeriodType": {
                    "$ref": "#/definitions/org.isda.cdm.StubPeriodTypeEnum"
                },
                "relativeEffectiveDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustedRelativeDateOffset"
                },
                "relativeTerminationDate": {
                    "$ref": "#/definitions/org.isda.cdm.RelativeDateOffset"
                },
                "firstPeriodStartDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableDate"
                },
                "firstRegularPeriodStartDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "calculationPeriodDatesAdjustments": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayAdjustments"
                },
                "lastRegularPeriodEndDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "id",
                "calculationPeriodFrequency",
                "effectiveDate",
                "terminationDate",
                "firstCompoundingPeriodEndDate",
                "stubPeriodType",
                "relativeEffectiveDate",
                "relativeTerminationDate",
                "firstPeriodStartDate",
                "firstRegularPeriodStartDate",
                "calculationPeriodDatesAdjustments",
                "lastRegularPeriodEndDate"
            ]
        },
        "org.isda.cdm.CalculationPeriodDatesBuilder": {
            "title": "CalculationPeriodDatesBuilder",
            "description": "An instance of org.isda.cdm.CalculationPeriodDatesBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CalculationPeriodDatesBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CalculationPeriodDatesBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "firstCompoundingPeriodEndDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "stubPeriodType": {
                    "$ref": "#/definitions/org.isda.cdm.StubPeriodTypeEnum"
                },
                "firstRegularPeriodStartDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "lastRegularPeriodEndDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "id", "firstCompoundingPeriodEndDate", "stubPeriodType", "firstRegularPeriodStartDate", "lastRegularPeriodEndDate"]
        },
        "org.isda.cdm.StubCalculationPeriodAmount": {
            "title": "StubCalculationPeriodAmount",
            "description": "An instance of org.isda.cdm.StubCalculationPeriodAmount",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StubCalculationPeriodAmount",
                    "pattern": "^org\\.isda\\.cdm\\.StubCalculationPeriodAmount$",
                    "description": "The class identifier for this type"
                },
                "calculationPeriodDatesReference": {
                    "type": "string"
                },
                "initialStub": {
                    "$ref": "#/definitions/org.isda.cdm.StubValue"
                },
                "finalStub": {
                    "$ref": "#/definitions/org.isda.cdm.StubValue"
                }
            },
            "required": ["$class", "calculationPeriodDatesReference", "initialStub", "finalStub"]
        },
        "org.isda.cdm.StubCalculationPeriodAmountBuilder": {
            "title": "StubCalculationPeriodAmountBuilder",
            "description": "An instance of org.isda.cdm.StubCalculationPeriodAmountBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StubCalculationPeriodAmountBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.StubCalculationPeriodAmountBuilder$",
                    "description": "The class identifier for this type"
                },
                "calculationPeriodDatesReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "calculationPeriodDatesReference"]
        },
        "org.isda.cdm.SettledEntityMatrixSourceEnum": {
            "title": "SettledEntityMatrixSourceEnum",
            "description": "An instance of org.isda.cdm.SettledEntityMatrixSourceEnum",
            "enum": ["CONFIRMATION_ANNEX", "NOT_APPLICABLE", "PUBLISHER"]
        },
        "org.isda.cdm.SwapCurveValuation": {
            "title": "SwapCurveValuation",
            "description": "An instance of org.isda.cdm.SwapCurveValuation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SwapCurveValuation",
                    "pattern": "^org\\.isda\\.cdm\\.SwapCurveValuation$",
                    "description": "The class identifier for this type"
                },
                "floatingRateIndex": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                },
                "indexTenor": {
                    "$ref": "#/definitions/org.isda.cdm.Period"
                },
                "spread": {
                    "type": "number"
                },
                "side": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationSideEnum"
                }
            },
            "required": ["$class", "floatingRateIndex", "indexTenor", "spread", "side"]
        },
        "org.isda.cdm.SwapCurveValuationBuilder": {
            "title": "SwapCurveValuationBuilder",
            "description": "An instance of org.isda.cdm.SwapCurveValuationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SwapCurveValuationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.SwapCurveValuationBuilder$",
                    "description": "The class identifier for this type"
                },
                "floatingRateIndex": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                },
                "spread": {
                    "type": "number"
                },
                "side": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationSideEnum"
                }
            },
            "required": ["$class", "floatingRateIndex", "spread", "side"]
        },
        "org.isda.cdm.PartyAndAccountReferenceBuilder": {
            "title": "PartyAndAccountReferenceBuilder",
            "description": "An instance of org.isda.cdm.PartyAndAccountReferenceBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PartyAndAccountReferenceBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PartyAndAccountReferenceBuilder$",
                    "description": "The class identifier for this type"
                },
                "accountReference": {
                    "type": "string"
                },
                "partyReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "accountReference", "partyReference"]
        },
        "org.isda.cdm.PartyAndAccountReference": {
            "title": "PartyAndAccountReference",
            "description": "An instance of org.isda.cdm.PartyAndAccountReference",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PartyAndAccountReference",
                    "pattern": "^org\\.isda\\.cdm\\.PartyAndAccountReference$",
                    "description": "The class identifier for this type"
                },
                "accountReference": {
                    "type": "string"
                },
                "partyReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "accountReference", "partyReference"]
        },
        "org.isda.cdm.ConstituentWeightBuilder": {
            "title": "ConstituentWeightBuilder",
            "description": "An instance of org.isda.cdm.ConstituentWeightBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ConstituentWeightBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ConstituentWeightBuilder$",
                    "description": "The class identifier for this type"
                },
                "openUnits": {
                    "type": "number"
                },
                "basketPercentage": {
                    "type": "number"
                }
            },
            "required": ["$class", "openUnits", "basketPercentage"]
        },
        "org.isda.cdm.ConstituentWeight": {
            "title": "ConstituentWeight",
            "description": "An instance of org.isda.cdm.ConstituentWeight",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ConstituentWeight",
                    "pattern": "^org\\.isda\\.cdm\\.ConstituentWeight$",
                    "description": "The class identifier for this type"
                },
                "openUnits": {
                    "type": "number"
                },
                "basketPercentage": {
                    "type": "number"
                }
            },
            "required": ["$class", "openUnits", "basketPercentage"]
        },
        "org.isda.cdm.InterestRatePayoutBuilder": {
            "title": "InterestRatePayoutBuilder",
            "description": "An instance of org.isda.cdm.InterestRatePayoutBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.InterestRatePayoutBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.InterestRatePayoutBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "dayCountFractionScheme": {
                    "type": "string"
                },
                "dayCountFraction": {
                    "$ref": "#/definitions/org.isda.cdm.DayCountFractionEnum"
                },
                "compoundingMethod": {
                    "$ref": "#/definitions/org.isda.cdm.CompoundingMethodEnum"
                }
            },
            "required": ["$class", "id", "dayCountFractionScheme", "dayCountFraction", "compoundingMethod"]
        },
        "org.isda.cdm.InterestRatePayout": {
            "title": "InterestRatePayout",
            "description": "An instance of org.isda.cdm.InterestRatePayout",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.InterestRatePayout",
                    "pattern": "^org\\.isda\\.cdm\\.InterestRatePayout$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "rosettaKeyValue": {
                    "type": "string"
                },
                "dayCountFractionScheme": {
                    "type": "string"
                },
                "crossCurrencyTerms": {
                    "$ref": "#/definitions/org.isda.cdm.CrossCurrencyTerms"
                },
                "discounting": {
                    "$ref": "#/definitions/org.isda.cdm.Discounting"
                },
                "cashflowRepresentation": {
                    "$ref": "#/definitions/org.isda.cdm.CashflowRepresentation"
                },
                "bondReference": {
                    "$ref": "#/definitions/org.isda.cdm.BondReference"
                },
                "dayCountFraction": {
                    "$ref": "#/definitions/org.isda.cdm.DayCountFractionEnum"
                },
                "compoundingMethod": {
                    "$ref": "#/definitions/org.isda.cdm.CompoundingMethodEnum"
                },
                "resetDates": {
                    "$ref": "#/definitions/org.isda.cdm.ResetDates"
                },
                "payerReceiver": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiver"
                },
                "calculationPeriodDates": {
                    "$ref": "#/definitions/org.isda.cdm.CalculationPeriodDates"
                },
                "quantity": {
                    "$ref": "#/definitions/org.isda.cdm.ContractualQuantity"
                },
                "interestRate": {
                    "$ref": "#/definitions/org.isda.cdm.InterestRate"
                },
                "stubPeriod": {
                    "$ref": "#/definitions/org.isda.cdm.StubPeriod"
                },
                "paymentDates": {
                    "$ref": "#/definitions/org.isda.cdm.PaymentDates"
                }
            },
            "required": [
                "$class",
                "id",
                "rosettaKeyValue",
                "dayCountFractionScheme",
                "crossCurrencyTerms",
                "discounting",
                "cashflowRepresentation",
                "bondReference",
                "dayCountFraction",
                "compoundingMethod",
                "resetDates",
                "payerReceiver",
                "calculationPeriodDates",
                "quantity",
                "interestRate",
                "stubPeriod",
                "paymentDates"
            ]
        },
        "org.isda.cdm.AdjustableOrAdjustedOrRelativeDateBuilder": {
            "title": "AdjustableOrAdjustedOrRelativeDateBuilder",
            "description": "An instance of org.isda.cdm.AdjustableOrAdjustedOrRelativeDateBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdjustableOrAdjustedOrRelativeDateBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AdjustableOrAdjustedOrRelativeDateBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "unadjustedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "id", "unadjustedDate", "adjustedDate"]
        },
        "org.isda.cdm.AdjustableOrAdjustedOrRelativeDate": {
            "title": "AdjustableOrAdjustedOrRelativeDate",
            "description": "An instance of org.isda.cdm.AdjustableOrAdjustedOrRelativeDate",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdjustableOrAdjustedOrRelativeDate",
                    "pattern": "^org\\.isda\\.cdm\\.AdjustableOrAdjustedOrRelativeDate$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "unadjustedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "relativeDate": {
                    "$ref": "#/definitions/org.isda.cdm.RelativeDateOffset"
                },
                "adjustedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "dateAdjustments": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayAdjustments"
                }
            },
            "required": ["$class", "id", "unadjustedDate", "relativeDate", "adjustedDate", "dateAdjustments"]
        },
        "org.isda.cdm.Obligations": {
            "title": "Obligations",
            "description": "An instance of org.isda.cdm.Obligations",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Obligations",
                    "pattern": "^org\\.isda\\.cdm\\.Obligations$",
                    "description": "The class identifier for this type"
                },
                "category": {
                    "$ref": "#/definitions/org.isda.cdm.ObligationCategoryEnum"
                },
                "excluded": {
                    "type": "string"
                },
                "fullFaithAndCreditObLiability": {
                    "type": "boolean"
                },
                "generalFundObligationLiability": {
                    "type": "boolean"
                },
                "listed": {
                    "type": "boolean"
                },
                "notContingent": {
                    "type": "boolean"
                },
                "notDomesticCurrency": {
                    "$ref": "#/definitions/org.isda.cdm.NotDomesticCurrency"
                },
                "notDomesticIssuance": {
                    "type": "boolean"
                },
                "notDomesticLaw": {
                    "type": "boolean"
                },
                "notSovereignLender": {
                    "type": "boolean"
                },
                "notSubordinated": {
                    "type": "boolean"
                },
                "othReferenceEntityObligations": {
                    "type": "string"
                },
                "revenueObligationLiability": {
                    "type": "boolean"
                },
                "specifiedCurrency": {
                    "$ref": "#/definitions/org.isda.cdm.SpecifiedCurrency"
                },
                "designatedPriority": {
                    "type": "string"
                },
                "cashSettlementOnly": {
                    "type": "boolean"
                },
                "deliveryOfCommitments": {
                    "type": "boolean"
                },
                "continuity": {
                    "type": "boolean"
                },
                "designatedPriorityScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "category",
                "excluded",
                "fullFaithAndCreditObLiability",
                "generalFundObligationLiability",
                "listed",
                "notContingent",
                "notDomesticCurrency",
                "notDomesticIssuance",
                "notDomesticLaw",
                "notSovereignLender",
                "notSubordinated",
                "othReferenceEntityObligations",
                "revenueObligationLiability",
                "specifiedCurrency",
                "designatedPriority",
                "cashSettlementOnly",
                "deliveryOfCommitments",
                "continuity",
                "designatedPriorityScheme"
            ]
        },
        "org.isda.cdm.ObligationsBuilder": {
            "title": "ObligationsBuilder",
            "description": "An instance of org.isda.cdm.ObligationsBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ObligationsBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ObligationsBuilder$",
                    "description": "The class identifier for this type"
                },
                "category": {
                    "$ref": "#/definitions/org.isda.cdm.ObligationCategoryEnum"
                },
                "excluded": {
                    "type": "string"
                },
                "fullFaithAndCreditObLiability": {
                    "type": "boolean"
                },
                "generalFundObligationLiability": {
                    "type": "boolean"
                },
                "listed": {
                    "type": "boolean"
                },
                "notContingent": {
                    "type": "boolean"
                },
                "notDomesticIssuance": {
                    "type": "boolean"
                },
                "notDomesticLaw": {
                    "type": "boolean"
                },
                "notSovereignLender": {
                    "type": "boolean"
                },
                "notSubordinated": {
                    "type": "boolean"
                },
                "othReferenceEntityObligations": {
                    "type": "string"
                },
                "revenueObligationLiability": {
                    "type": "boolean"
                },
                "designatedPriority": {
                    "type": "string"
                },
                "cashSettlementOnly": {
                    "type": "boolean"
                },
                "deliveryOfCommitments": {
                    "type": "boolean"
                },
                "continuity": {
                    "type": "boolean"
                },
                "designatedPriorityScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "category",
                "excluded",
                "fullFaithAndCreditObLiability",
                "generalFundObligationLiability",
                "listed",
                "notContingent",
                "notDomesticIssuance",
                "notDomesticLaw",
                "notSovereignLender",
                "notSubordinated",
                "othReferenceEntityObligations",
                "revenueObligationLiability",
                "designatedPriority",
                "cashSettlementOnly",
                "deliveryOfCommitments",
                "continuity",
                "designatedPriorityScheme"
            ]
        },
        "org.isda.cdm.ContractualTermsSupplement": {
            "title": "ContractualTermsSupplement",
            "description": "An instance of org.isda.cdm.ContractualTermsSupplement",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractualTermsSupplement",
                    "pattern": "^org\\.isda\\.cdm\\.ContractualTermsSupplement$",
                    "description": "The class identifier for this type"
                },
                "type": {
                    "$ref": "#/definitions/org.isda.cdm.ContractualSupplementEnum"
                },
                "publicationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "typeScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "type", "publicationDate", "typeScheme"]
        },
        "org.isda.cdm.ContractualTermsSupplementBuilder": {
            "title": "ContractualTermsSupplementBuilder",
            "description": "An instance of org.isda.cdm.ContractualTermsSupplementBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractualTermsSupplementBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ContractualTermsSupplementBuilder$",
                    "description": "The class identifier for this type"
                },
                "type": {
                    "$ref": "#/definitions/org.isda.cdm.ContractualSupplementEnum"
                },
                "publicationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "typeScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "type", "publicationDate", "typeScheme"]
        },
        "org.isda.cdm.Lineage": {
            "title": "Lineage",
            "description": "An instance of org.isda.cdm.Lineage",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Lineage",
                    "pattern": "^org\\.isda\\.cdm\\.Lineage$",
                    "description": "The class identifier for this type"
                },
                "contractReference": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Identifier"
                    }
                },
                "eventReference": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Identifier"
                    }
                },
                "contractReferenceScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "contractReference", "eventReference", "contractReferenceScheme"]
        },
        "org.isda.cdm.LineageBuilder": {
            "title": "LineageBuilder",
            "description": "An instance of org.isda.cdm.LineageBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.LineageBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.LineageBuilder$",
                    "description": "The class identifier for this type"
                },
                "contractReferenceScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "contractReferenceScheme"]
        },
        "org.isda.cdm.SettledEntityMatrix": {
            "title": "SettledEntityMatrix",
            "description": "An instance of org.isda.cdm.SettledEntityMatrix",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SettledEntityMatrix",
                    "pattern": "^org\\.isda\\.cdm\\.SettledEntityMatrix$",
                    "description": "The class identifier for this type"
                },
                "publicationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "matrixSourceScheme": {
                    "type": "string"
                },
                "matrixSource": {
                    "$ref": "#/definitions/org.isda.cdm.SettledEntityMatrixSourceEnum"
                }
            },
            "required": ["$class", "publicationDate", "matrixSourceScheme", "matrixSource"]
        },
        "org.isda.cdm.SettledEntityMatrixBuilder": {
            "title": "SettledEntityMatrixBuilder",
            "description": "An instance of org.isda.cdm.SettledEntityMatrixBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SettledEntityMatrixBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.SettledEntityMatrixBuilder$",
                    "description": "The class identifier for this type"
                },
                "publicationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "matrixSourceScheme": {
                    "type": "string"
                },
                "matrixSource": {
                    "$ref": "#/definitions/org.isda.cdm.SettledEntityMatrixSourceEnum"
                }
            },
            "required": ["$class", "publicationDate", "matrixSourceScheme", "matrixSource"]
        },
        "org.isda.cdm.ReferenceInformationBuilder": {
            "title": "ReferenceInformationBuilder",
            "description": "An instance of org.isda.cdm.ReferenceInformationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ReferenceInformationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ReferenceInformationBuilder$",
                    "description": "The class identifier for this type"
                },
                "referencePrice": {
                    "type": "number"
                },
                "allGuarantees": {
                    "type": "boolean"
                },
                "noReferenceObligation": {
                    "type": "boolean"
                },
                "unknownReferenceObligation": {
                    "type": "boolean"
                },
                "referencePolicy": {
                    "type": "boolean"
                },
                "securedList": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "referencePrice", "allGuarantees", "noReferenceObligation", "unknownReferenceObligation", "referencePolicy", "securedList"]
        },
        "org.isda.cdm.ReferenceInformation": {
            "title": "ReferenceInformation",
            "description": "An instance of org.isda.cdm.ReferenceInformation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ReferenceInformation",
                    "pattern": "^org\\.isda\\.cdm\\.ReferenceInformation$",
                    "description": "The class identifier for this type"
                },
                "referencePrice": {
                    "type": "number"
                },
                "allGuarantees": {
                    "type": "boolean"
                },
                "referenceObligation": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ReferenceObligation"
                    }
                },
                "referenceEntity": {
                    "$ref": "#/definitions/org.isda.cdm.LegalEntity"
                },
                "noReferenceObligation": {
                    "type": "boolean"
                },
                "unknownReferenceObligation": {
                    "type": "boolean"
                },
                "referencePolicy": {
                    "type": "boolean"
                },
                "securedList": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "referencePrice", "allGuarantees", "referenceObligation", "referenceEntity", "noReferenceObligation", "unknownReferenceObligation", "referencePolicy", "securedList"]
        },
        "org.isda.cdm.NonNegativeAmountScheduleBuilder": {
            "title": "NonNegativeAmountScheduleBuilder",
            "description": "An instance of org.isda.cdm.NonNegativeAmountScheduleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NonNegativeAmountScheduleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.NonNegativeAmountScheduleBuilder$",
                    "description": "The class identifier for this type"
                },
                "currency": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "initialValue": {
                    "type": "number"
                }
            },
            "required": ["$class", "currency", "currencyScheme", "id", "initialValue"]
        },
        "org.isda.cdm.NonNegativeAmountSchedule": {
            "title": "NonNegativeAmountSchedule",
            "description": "An instance of org.isda.cdm.NonNegativeAmountSchedule",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NonNegativeAmountSchedule",
                    "pattern": "^org\\.isda\\.cdm\\.NonNegativeAmountSchedule$",
                    "description": "The class identifier for this type"
                },
                "currency": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "initialValue": {
                    "type": "number"
                },
                "step": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.NonNegativeStep"
                    }
                }
            },
            "required": ["$class", "currency", "currencyScheme", "id", "initialValue", "step"]
        },
        "org.isda.cdm.CashflowTypeEnum": {
            "title": "CashflowTypeEnum",
            "description": "An instance of org.isda.cdm.CashflowTypeEnum",
            "enum": ["BROKERAGE_COMMISSION", "FEE", "INTEREST", "NET_INTEREST", "NOVATION_FEE", "PREMIUM", "TERMINATION_FEE"]
        },
        "org.isda.cdm.PayerReceiver": {
            "title": "PayerReceiver",
            "description": "An instance of org.isda.cdm.PayerReceiver",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PayerReceiver",
                    "pattern": "^org\\.isda\\.cdm\\.PayerReceiver$",
                    "description": "The class identifier for this type"
                },
                "payerPartyReference": {
                    "type": "string"
                },
                "receiverPartyReference": {
                    "type": "string"
                },
                "payerAccountReference": {
                    "type": "string"
                },
                "receiverAccountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "payerPartyReference", "receiverPartyReference", "payerAccountReference", "receiverAccountReference"]
        },
        "org.isda.cdm.PayerReceiverBuilder": {
            "title": "PayerReceiverBuilder",
            "description": "An instance of org.isda.cdm.PayerReceiverBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PayerReceiverBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PayerReceiverBuilder$",
                    "description": "The class identifier for this type"
                },
                "payerPartyReference": {
                    "type": "string"
                },
                "receiverPartyReference": {
                    "type": "string"
                },
                "payerAccountReference": {
                    "type": "string"
                },
                "receiverAccountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "payerPartyReference", "receiverPartyReference", "payerAccountReference", "receiverAccountReference"]
        },
        "org.isda.cdm.BusinessCenterEnum": {
            "title": "BusinessCenterEnum",
            "description": "An instance of org.isda.cdm.BusinessCenterEnum",
            "enum": ["AEAD", "AEDU", "AMYE", "BEBR", "BRBD", "CATO", "CHZU", "CNBE", "DEFR", "EUTA", "GBLO", "INMU", "JPTO", "KRSE", "USNY"]
        },
        "org.isda.cdm.BasketReferenceInformation": {
            "title": "BasketReferenceInformation",
            "description": "An instance of org.isda.cdm.BasketReferenceInformation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BasketReferenceInformation",
                    "pattern": "^org\\.isda\\.cdm\\.BasketReferenceInformation$",
                    "description": "The class identifier for this type"
                },
                "tranche": {
                    "$ref": "#/definitions/org.isda.cdm.Tranche"
                },
                "basketName": {
                    "$ref": "#/definitions/org.isda.cdm.BasketName"
                },
                "basketId": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "referencePool": {
                    "$ref": "#/definitions/org.isda.cdm.ReferencePool"
                },
                "nthToDefault": {
                    "type": "integer"
                },
                "mthToDefault": {
                    "type": "integer"
                },
                "basketIdScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "tranche", "basketName", "basketId", "referencePool", "nthToDefault", "mthToDefault", "basketIdScheme"]
        },
        "org.isda.cdm.BasketReferenceInformationBuilder": {
            "title": "BasketReferenceInformationBuilder",
            "description": "An instance of org.isda.cdm.BasketReferenceInformationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BasketReferenceInformationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.BasketReferenceInformationBuilder$",
                    "description": "The class identifier for this type"
                },
                "basketId": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "nthToDefault": {
                    "type": "integer"
                },
                "mthToDefault": {
                    "type": "integer"
                },
                "basketIdScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "basketId", "nthToDefault", "mthToDefault", "basketIdScheme"]
        },
        "org.isda.cdm.FeaturePayment": {
            "title": "FeaturePayment",
            "description": "An instance of org.isda.cdm.FeaturePayment",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FeaturePayment",
                    "pattern": "^org\\.isda\\.cdm\\.FeaturePayment$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "featurePaymentDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableOrAdjustedDate"
                },
                "currencyScheme": {
                    "type": "string"
                },
                "levelPercentage": {
                    "type": "number"
                },
                "payerReceiver": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiver"
                },
                "amount": {
                    "type": "number"
                },
                "time": {
                    "$ref": "#/definitions/org.isda.cdm.TimeTypeEnum"
                }
            },
            "required": ["$class", "id", "currency", "featurePaymentDate", "currencyScheme", "levelPercentage", "payerReceiver", "amount", "time"]
        },
        "org.isda.cdm.FeaturePaymentBuilder": {
            "title": "FeaturePaymentBuilder",
            "description": "An instance of org.isda.cdm.FeaturePaymentBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FeaturePaymentBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FeaturePaymentBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                },
                "levelPercentage": {
                    "type": "number"
                },
                "amount": {
                    "type": "number"
                },
                "time": {
                    "$ref": "#/definitions/org.isda.cdm.TimeTypeEnum"
                }
            },
            "required": ["$class", "id", "currency", "currencyScheme", "levelPercentage", "amount", "time"]
        },
        "org.isda.cdm.ReferencePool": {
            "title": "ReferencePool",
            "description": "An instance of org.isda.cdm.ReferencePool",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ReferencePool",
                    "pattern": "^org\\.isda\\.cdm\\.ReferencePool$",
                    "description": "The class identifier for this type"
                },
                "referencePoolItem": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ReferencePoolItem"
                    }
                }
            },
            "required": ["$class", "referencePoolItem"]
        },
        "org.isda.cdm.ReferencePoolBuilder": {
            "title": "ReferencePoolBuilder",
            "description": "An instance of org.isda.cdm.ReferencePoolBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ReferencePoolBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ReferencePoolBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.PhysicalSettlementPeriod": {
            "title": "PhysicalSettlementPeriod",
            "description": "An instance of org.isda.cdm.PhysicalSettlementPeriod",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PhysicalSettlementPeriod",
                    "pattern": "^org\\.isda\\.cdm\\.PhysicalSettlementPeriod$",
                    "description": "The class identifier for this type"
                },
                "businessDays": {
                    "type": "integer"
                },
                "maximumBusinessDays": {
                    "type": "integer"
                },
                "businessDaysNotSpecified": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "businessDays", "maximumBusinessDays", "businessDaysNotSpecified"]
        },
        "org.isda.cdm.PhysicalSettlementPeriodBuilder": {
            "title": "PhysicalSettlementPeriodBuilder",
            "description": "An instance of org.isda.cdm.PhysicalSettlementPeriodBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PhysicalSettlementPeriodBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PhysicalSettlementPeriodBuilder$",
                    "description": "The class identifier for this type"
                },
                "businessDays": {
                    "type": "integer"
                },
                "maximumBusinessDays": {
                    "type": "integer"
                },
                "businessDaysNotSpecified": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "businessDays", "maximumBusinessDays", "businessDaysNotSpecified"]
        },
        "org.isda.cdm.PackageTypeEnum": {
            "title": "PackageTypeEnum",
            "description": "An instance of org.isda.cdm.PackageTypeEnum",
            "enum": ["BUTTERFLY", "CALENDAR_ROLL", "CALENDAR_SPREAD", "CUSTOM", "INDEX_ROLL", "ONE_CANCELS_OTHERS", "SWAP_SPREAD", "SWITCH"]
        },
        "org.isda.cdm.EconomicTermsBuilder": {
            "title": "EconomicTermsBuilder",
            "description": "An instance of org.isda.cdm.EconomicTermsBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EconomicTermsBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.EconomicTermsBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.EconomicTerms": {
            "title": "EconomicTerms",
            "description": "An instance of org.isda.cdm.EconomicTerms",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EconomicTerms",
                    "pattern": "^org\\.isda\\.cdm\\.EconomicTerms$",
                    "description": "The class identifier for this type"
                },
                "rosettaKeyValue": {
                    "type": "string"
                },
                "payout": {
                    "$ref": "#/definitions/org.isda.cdm.Payout"
                },
                "earlyTerminationProvision": {
                    "$ref": "#/definitions/org.isda.cdm.EarlyTerminationProvision"
                },
                "cancelableProvision": {
                    "$ref": "#/definitions/org.isda.cdm.CancelableProvision"
                },
                "extendibleProvision": {
                    "$ref": "#/definitions/org.isda.cdm.ExtendibleProvision"
                }
            },
            "required": ["$class", "rosettaKeyValue", "payout", "earlyTerminationProvision", "cancelableProvision", "extendibleProvision"]
        },
        "org.isda.cdm.EquityAsset": {
            "title": "EquityAsset",
            "description": "An instance of org.isda.cdm.EquityAsset",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EquityAsset",
                    "pattern": "^org\\.isda\\.cdm\\.EquityAsset$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "clearanceSystemScheme": {
                    "type": "string"
                },
                "productIdentifierScheme": {
                    "type": "string"
                },
                "productIdentifier": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ProductIdentifier"
                    }
                },
                "productTaxonomy": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ProductTaxonomy"
                    }
                },
                "description": {
                    "type": "string"
                },
                "clearanceSystem": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "currency", "clearanceSystemScheme", "productIdentifierScheme", "productIdentifier", "productTaxonomy", "description", "clearanceSystem", "currencyScheme"]
        },
        "org.isda.cdm.EquityAssetBuilder": {
            "title": "EquityAssetBuilder",
            "description": "An instance of org.isda.cdm.EquityAssetBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EquityAssetBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.EquityAssetBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "clearanceSystemScheme": {
                    "type": "string"
                },
                "productIdentifierScheme": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "clearanceSystem": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "currency", "clearanceSystemScheme", "productIdentifierScheme", "description", "clearanceSystem", "currencyScheme"]
        },
        "org.isda.cdm.AdjustableOrRelativeDates": {
            "title": "AdjustableOrRelativeDates",
            "description": "An instance of org.isda.cdm.AdjustableOrRelativeDates",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdjustableOrRelativeDates",
                    "pattern": "^org\\.isda\\.cdm\\.AdjustableOrRelativeDates$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "adjustableDates": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableDates"
                },
                "relativeDates": {
                    "$ref": "#/definitions/org.isda.cdm.RelativeDates"
                }
            },
            "required": ["$class", "id", "adjustableDates", "relativeDates"]
        },
        "org.isda.cdm.AdjustableOrRelativeDatesBuilder": {
            "title": "AdjustableOrRelativeDatesBuilder",
            "description": "An instance of org.isda.cdm.AdjustableOrRelativeDatesBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdjustableOrRelativeDatesBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AdjustableOrRelativeDatesBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                }
            },
            "required": ["$class", "id"]
        },
        "org.isda.cdm.IndexAnnexSourceEnum": {
            "title": "IndexAnnexSourceEnum",
            "description": "An instance of org.isda.cdm.IndexAnnexSourceEnum",
            "enum": ["MASTER_CONFIRMATION", "PUBLISHER"]
        },
        "org.isda.cdm.Knock": {
            "title": "Knock",
            "description": "An instance of org.isda.cdm.Knock",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Knock",
                    "pattern": "^org\\.isda\\.cdm\\.Knock$",
                    "description": "The class identifier for this type"
                },
                "knockOut": {
                    "$ref": "#/definitions/org.isda.cdm.TriggerEvent"
                },
                "knockIn": {
                    "$ref": "#/definitions/org.isda.cdm.TriggerEvent"
                }
            },
            "required": ["$class", "knockOut", "knockIn"]
        },
        "org.isda.cdm.KnockBuilder": {
            "title": "KnockBuilder",
            "description": "An instance of org.isda.cdm.KnockBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.KnockBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.KnockBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.CalculationAgentModelBuilder": {
            "title": "CalculationAgentModelBuilder",
            "description": "An instance of org.isda.cdm.CalculationAgentModelBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CalculationAgentModelBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CalculationAgentModelBuilder$",
                    "description": "The class identifier for this type"
                },
                "calculationAgentBusinessCenter": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterEnum"
                }
            },
            "required": ["$class", "calculationAgentBusinessCenter"]
        },
        "org.isda.cdm.CalculationAgentModel": {
            "title": "CalculationAgentModel",
            "description": "An instance of org.isda.cdm.CalculationAgentModel",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CalculationAgentModel",
                    "pattern": "^org\\.isda\\.cdm\\.CalculationAgentModel$",
                    "description": "The class identifier for this type"
                },
                "calculationAgentBusinessCenter": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterEnum"
                },
                "calculationAgent": {
                    "$ref": "#/definitions/org.isda.cdm.CalculationAgent"
                }
            },
            "required": ["$class", "calculationAgentBusinessCenter", "calculationAgent"]
        },
        "org.isda.cdm.CalendarSpread": {
            "title": "CalendarSpread",
            "description": "An instance of org.isda.cdm.CalendarSpread",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CalendarSpread",
                    "pattern": "^org\\.isda\\.cdm\\.CalendarSpread$",
                    "description": "The class identifier for this type"
                },
                "expirationDateTwo": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableOrRelativeDate"
                }
            },
            "required": ["$class", "expirationDateTwo"]
        },
        "org.isda.cdm.CalendarSpreadBuilder": {
            "title": "CalendarSpreadBuilder",
            "description": "An instance of org.isda.cdm.CalendarSpreadBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CalendarSpreadBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CalendarSpreadBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.ProductTaxonomy": {
            "title": "ProductTaxonomy",
            "description": "An instance of org.isda.cdm.ProductTaxonomy",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ProductTaxonomy",
                    "pattern": "^org\\.isda\\.cdm\\.ProductTaxonomy$",
                    "description": "The class identifier for this type"
                },
                "taxonomyValue": {
                    "type": "string"
                },
                "taxonomySource": {
                    "$ref": "#/definitions/org.isda.cdm.TaxonomySourceEnum"
                }
            },
            "required": ["$class", "taxonomyValue", "taxonomySource"]
        },
        "org.isda.cdm.ProductTaxonomyBuilder": {
            "title": "ProductTaxonomyBuilder",
            "description": "An instance of org.isda.cdm.ProductTaxonomyBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ProductTaxonomyBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ProductTaxonomyBuilder$",
                    "description": "The class identifier for this type"
                },
                "taxonomyValue": {
                    "type": "string"
                },
                "taxonomySource": {
                    "$ref": "#/definitions/org.isda.cdm.TaxonomySourceEnum"
                }
            },
            "required": ["$class", "taxonomyValue", "taxonomySource"]
        },
        "org.isda.cdm.TransferTypeEnum": {
            "title": "TransferTypeEnum",
            "description": "An instance of org.isda.cdm.TransferTypeEnum",
            "enum": ["SECURITY_SETTLEMENT", "SECURITY_TRANSFER", "BROKERAGE_COMMISSION", "FEE", "INTEREST", "NET_INTEREST", "NOVATION_FEE", "PREMIUM", "TERMINATION_FEE"]
        },
        "org.isda.cdm.BrokerConfirmation": {
            "title": "BrokerConfirmation",
            "description": "An instance of org.isda.cdm.BrokerConfirmation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BrokerConfirmation",
                    "pattern": "^org\\.isda\\.cdm\\.BrokerConfirmation$",
                    "description": "The class identifier for this type"
                },
                "brokerConfirmationType": {
                    "$ref": "#/definitions/org.isda.cdm.BrokerConfirmationTypeEnum"
                },
                "brokerConfirmationTypeScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "brokerConfirmationType", "brokerConfirmationTypeScheme"]
        },
        "org.isda.cdm.BrokerConfirmationBuilder": {
            "title": "BrokerConfirmationBuilder",
            "description": "An instance of org.isda.cdm.BrokerConfirmationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BrokerConfirmationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.BrokerConfirmationBuilder$",
                    "description": "The class identifier for this type"
                },
                "brokerConfirmationType": {
                    "$ref": "#/definitions/org.isda.cdm.BrokerConfirmationTypeEnum"
                },
                "brokerConfirmationTypeScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "brokerConfirmationType", "brokerConfirmationTypeScheme"]
        },
        "org.isda.cdm.DeliverableObligations": {
            "title": "DeliverableObligations",
            "description": "An instance of org.isda.cdm.DeliverableObligations",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DeliverableObligations",
                    "pattern": "^org\\.isda\\.cdm\\.DeliverableObligations$",
                    "description": "The class identifier for this type"
                },
                "category": {
                    "$ref": "#/definitions/org.isda.cdm.ObligationCategoryEnum"
                },
                "acceleratedOrMatured": {
                    "type": "boolean"
                },
                "accruedInterest": {
                    "type": "boolean"
                },
                "assignableLoan": {
                    "$ref": "#/definitions/org.isda.cdm.PCDeliverableObligationCharac"
                },
                "consentRequiredLoan": {
                    "$ref": "#/definitions/org.isda.cdm.PCDeliverableObligationCharac"
                },
                "directLoanParticipation": {
                    "$ref": "#/definitions/org.isda.cdm.LoanParticipation"
                },
                "excluded": {
                    "type": "string"
                },
                "fullFaithAndCreditObLiability": {
                    "type": "boolean"
                },
                "generalFundObligationLiability": {
                    "type": "boolean"
                },
                "indirectLoanParticipation": {
                    "$ref": "#/definitions/org.isda.cdm.LoanParticipation"
                },
                "listed": {
                    "type": "boolean"
                },
                "maximumMaturity": {
                    "$ref": "#/definitions/org.isda.cdm.Period"
                },
                "notBearer": {
                    "type": "boolean"
                },
                "notContingent": {
                    "type": "boolean"
                },
                "notDomesticCurrency": {
                    "$ref": "#/definitions/org.isda.cdm.NotDomesticCurrency"
                },
                "notDomesticIssuance": {
                    "type": "boolean"
                },
                "notDomesticLaw": {
                    "type": "boolean"
                },
                "notSovereignLender": {
                    "type": "boolean"
                },
                "notSubordinated": {
                    "type": "boolean"
                },
                "othReferenceEntityObligations": {
                    "type": "string"
                },
                "revenueObligationLiability": {
                    "type": "boolean"
                },
                "specifiedCurrency": {
                    "$ref": "#/definitions/org.isda.cdm.SpecifiedCurrency"
                },
                "transferable": {
                    "type": "boolean"
                }
            },
            "required": [
                "$class",
                "category",
                "acceleratedOrMatured",
                "accruedInterest",
                "assignableLoan",
                "consentRequiredLoan",
                "directLoanParticipation",
                "excluded",
                "fullFaithAndCreditObLiability",
                "generalFundObligationLiability",
                "indirectLoanParticipation",
                "listed",
                "maximumMaturity",
                "notBearer",
                "notContingent",
                "notDomesticCurrency",
                "notDomesticIssuance",
                "notDomesticLaw",
                "notSovereignLender",
                "notSubordinated",
                "othReferenceEntityObligations",
                "revenueObligationLiability",
                "specifiedCurrency",
                "transferable"
            ]
        },
        "org.isda.cdm.DeliverableObligationsBuilder": {
            "title": "DeliverableObligationsBuilder",
            "description": "An instance of org.isda.cdm.DeliverableObligationsBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DeliverableObligationsBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.DeliverableObligationsBuilder$",
                    "description": "The class identifier for this type"
                },
                "category": {
                    "$ref": "#/definitions/org.isda.cdm.ObligationCategoryEnum"
                },
                "acceleratedOrMatured": {
                    "type": "boolean"
                },
                "accruedInterest": {
                    "type": "boolean"
                },
                "excluded": {
                    "type": "string"
                },
                "fullFaithAndCreditObLiability": {
                    "type": "boolean"
                },
                "generalFundObligationLiability": {
                    "type": "boolean"
                },
                "listed": {
                    "type": "boolean"
                },
                "notBearer": {
                    "type": "boolean"
                },
                "notContingent": {
                    "type": "boolean"
                },
                "notDomesticIssuance": {
                    "type": "boolean"
                },
                "notDomesticLaw": {
                    "type": "boolean"
                },
                "notSovereignLender": {
                    "type": "boolean"
                },
                "notSubordinated": {
                    "type": "boolean"
                },
                "othReferenceEntityObligations": {
                    "type": "string"
                },
                "revenueObligationLiability": {
                    "type": "boolean"
                },
                "transferable": {
                    "type": "boolean"
                }
            },
            "required": [
                "$class",
                "category",
                "acceleratedOrMatured",
                "accruedInterest",
                "excluded",
                "fullFaithAndCreditObLiability",
                "generalFundObligationLiability",
                "listed",
                "notBearer",
                "notContingent",
                "notDomesticIssuance",
                "notDomesticLaw",
                "notSovereignLender",
                "notSubordinated",
                "othReferenceEntityObligations",
                "revenueObligationLiability",
                "transferable"
            ]
        },
        "org.isda.cdm.DateInstancesBuilder": {
            "title": "DateInstancesBuilder",
            "description": "An instance of org.isda.cdm.DateInstancesBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DateInstancesBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.DateInstancesBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "date": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "id", "date"]
        },
        "org.isda.cdm.DateInstances": {
            "title": "DateInstances",
            "description": "An instance of org.isda.cdm.DateInstances",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DateInstances",
                    "pattern": "^org\\.isda\\.cdm\\.DateInstances$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "adjustableDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableDate"
                },
                "priorDateInstance": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.PriorDateInstance"
                    }
                },
                "date": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "id", "adjustableDate", "priorDateInstance", "date"]
        },
        "org.isda.cdm.ExerciseNoticeBuilder": {
            "title": "ExerciseNoticeBuilder",
            "description": "An instance of org.isda.cdm.ExerciseNoticeBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExerciseNoticeBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ExerciseNoticeBuilder$",
                    "description": "The class identifier for this type"
                },
                "businessCenterScheme": {
                    "type": "string"
                },
                "businessCenter": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterEnum"
                },
                "exerciseNoticePartyReference": {
                    "type": "string"
                },
                "partyReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "businessCenterScheme", "businessCenter", "exerciseNoticePartyReference", "partyReference"]
        },
        "org.isda.cdm.ExerciseNotice": {
            "title": "ExerciseNotice",
            "description": "An instance of org.isda.cdm.ExerciseNotice",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExerciseNotice",
                    "pattern": "^org\\.isda\\.cdm\\.ExerciseNotice$",
                    "description": "The class identifier for this type"
                },
                "businessCenterScheme": {
                    "type": "string"
                },
                "businessCenter": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterEnum"
                },
                "exerciseNoticePartyReference": {
                    "type": "string"
                },
                "partyReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "businessCenterScheme", "businessCenter", "exerciseNoticePartyReference", "partyReference"]
        },
        "org.isda.cdm.MasterAgreementTypeEnum": {
            "title": "MasterAgreementTypeEnum",
            "description": "An instance of org.isda.cdm.MasterAgreementTypeEnum",
            "enum": ["AFB", "ISDA"]
        },
        "org.isda.cdm.FloatingRate": {
            "title": "FloatingRate",
            "description": "An instance of org.isda.cdm.FloatingRate",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FloatingRate",
                    "pattern": "^org\\.isda\\.cdm\\.FloatingRate$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "spreadSchedule": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.SpreadSchedule"
                    }
                },
                "floatingRateIndexScheme": {
                    "type": "string"
                },
                "floatingRateMultiplierSchedule": {
                    "$ref": "#/definitions/org.isda.cdm.Schedule"
                },
                "floatingRateIndex": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                },
                "indexTenor": {
                    "$ref": "#/definitions/org.isda.cdm.Period"
                },
                "rateTreatment": {
                    "$ref": "#/definitions/org.isda.cdm.RateTreatmentEnum"
                },
                "capRateSchedule": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.StrikeSchedule"
                    }
                },
                "floorRateSchedule": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.StrikeSchedule"
                    }
                }
            },
            "required": [
                "$class",
                "id",
                "spreadSchedule",
                "floatingRateIndexScheme",
                "floatingRateMultiplierSchedule",
                "floatingRateIndex",
                "indexTenor",
                "rateTreatment",
                "capRateSchedule",
                "floorRateSchedule"
            ]
        },
        "org.isda.cdm.FloatingRateBuilder": {
            "title": "FloatingRateBuilder",
            "description": "An instance of org.isda.cdm.FloatingRateBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FloatingRateBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FloatingRateBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "floatingRateIndexScheme": {
                    "type": "string"
                },
                "floatingRateIndex": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                },
                "rateTreatment": {
                    "$ref": "#/definitions/org.isda.cdm.RateTreatmentEnum"
                }
            },
            "required": ["$class", "id", "floatingRateIndexScheme", "floatingRateIndex", "rateTreatment"]
        },
        "org.isda.cdm.CancellationEvent": {
            "title": "CancellationEvent",
            "description": "An instance of org.isda.cdm.CancellationEvent",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CancellationEvent",
                    "pattern": "^org\\.isda\\.cdm\\.CancellationEvent$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "adjustedEarlyTerminationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedExerciseDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "id", "adjustedEarlyTerminationDate", "adjustedExerciseDate"]
        },
        "org.isda.cdm.CancellationEventBuilder": {
            "title": "CancellationEventBuilder",
            "description": "An instance of org.isda.cdm.CancellationEventBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CancellationEventBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CancellationEventBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "adjustedEarlyTerminationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedExerciseDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "id", "adjustedEarlyTerminationDate", "adjustedExerciseDate"]
        },
        "org.isda.cdm.MultipleValuationDates": {
            "title": "MultipleValuationDates",
            "description": "An instance of org.isda.cdm.MultipleValuationDates",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MultipleValuationDates",
                    "pattern": "^org\\.isda\\.cdm\\.MultipleValuationDates$",
                    "description": "The class identifier for this type"
                },
                "businessDaysThereafter": {
                    "type": "integer"
                },
                "numberValuationDates": {
                    "type": "integer"
                },
                "businessDays": {
                    "type": "integer"
                }
            },
            "required": ["$class", "businessDaysThereafter", "numberValuationDates", "businessDays"]
        },
        "org.isda.cdm.MultipleValuationDatesBuilder": {
            "title": "MultipleValuationDatesBuilder",
            "description": "An instance of org.isda.cdm.MultipleValuationDatesBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MultipleValuationDatesBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.MultipleValuationDatesBuilder$",
                    "description": "The class identifier for this type"
                },
                "businessDaysThereafter": {
                    "type": "integer"
                },
                "numberValuationDates": {
                    "type": "integer"
                },
                "businessDays": {
                    "type": "integer"
                }
            },
            "required": ["$class", "businessDaysThereafter", "numberValuationDates", "businessDays"]
        },
        "org.isda.cdm.TriggerBuilder": {
            "title": "TriggerBuilder",
            "description": "An instance of org.isda.cdm.TriggerBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.TriggerBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.TriggerBuilder$",
                    "description": "The class identifier for this type"
                },
                "level": {
                    "type": "number"
                },
                "levelPercentage": {
                    "type": "number"
                },
                "creditEventsReference": {
                    "type": "string"
                },
                "triggerType": {
                    "$ref": "#/definitions/org.isda.cdm.TriggerTypeEnum"
                },
                "triggerTimeType": {
                    "$ref": "#/definitions/org.isda.cdm.TriggerTimeTypeEnum"
                }
            },
            "required": ["$class", "level", "levelPercentage", "creditEventsReference", "triggerType", "triggerTimeType"]
        },
        "org.isda.cdm.Trigger": {
            "title": "Trigger",
            "description": "An instance of org.isda.cdm.Trigger",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Trigger",
                    "pattern": "^org\\.isda\\.cdm\\.Trigger$",
                    "description": "The class identifier for this type"
                },
                "creditEvents": {
                    "$ref": "#/definitions/org.isda.cdm.CreditEvents"
                },
                "level": {
                    "type": "number"
                },
                "levelPercentage": {
                    "type": "number"
                },
                "creditEventsReference": {
                    "type": "string"
                },
                "triggerType": {
                    "$ref": "#/definitions/org.isda.cdm.TriggerTypeEnum"
                },
                "triggerTimeType": {
                    "$ref": "#/definitions/org.isda.cdm.TriggerTimeTypeEnum"
                }
            },
            "required": ["$class", "creditEvents", "level", "levelPercentage", "creditEventsReference", "triggerType", "triggerTimeType"]
        },
        "org.isda.cdm.ExerciseOutcome": {
            "title": "ExerciseOutcome",
            "description": "An instance of org.isda.cdm.ExerciseOutcome",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExerciseOutcome",
                    "pattern": "^org\\.isda\\.cdm\\.ExerciseOutcome$",
                    "description": "The class identifier for this type"
                },
                "physicalExercise": {
                    "$ref": "#/definitions/org.isda.cdm.PhysicalExercise"
                },
                "cashExercise": {
                    "$ref": "#/definitions/org.isda.cdm.Cashflow"
                },
                "contractReference": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ContractReference"
                    }
                },
                "contract": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Contract"
                    }
                }
            },
            "required": ["$class", "physicalExercise", "cashExercise", "contractReference", "contract"]
        },
        "org.isda.cdm.ExerciseOutcomeBuilder": {
            "title": "ExerciseOutcomeBuilder",
            "description": "An instance of org.isda.cdm.ExerciseOutcomeBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExerciseOutcomeBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ExerciseOutcomeBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.ExerciseFeeScheduleBuilder": {
            "title": "ExerciseFeeScheduleBuilder",
            "description": "An instance of org.isda.cdm.ExerciseFeeScheduleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExerciseFeeScheduleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ExerciseFeeScheduleBuilder$",
                    "description": "The class identifier for this type"
                },
                "notionalReference": {
                    "type": "string"
                },
                "payerPartyReference": {
                    "type": "string"
                },
                "receiverPartyReference": {
                    "type": "string"
                },
                "payerAccountReference": {
                    "type": "string"
                },
                "receiverAccountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "notionalReference", "payerPartyReference", "receiverPartyReference", "payerAccountReference", "receiverAccountReference"]
        },
        "org.isda.cdm.ExerciseFeeSchedule": {
            "title": "ExerciseFeeSchedule",
            "description": "An instance of org.isda.cdm.ExerciseFeeSchedule",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExerciseFeeSchedule",
                    "pattern": "^org\\.isda\\.cdm\\.ExerciseFeeSchedule$",
                    "description": "The class identifier for this type"
                },
                "notionalReference": {
                    "type": "string"
                },
                "feeAmountSchedule": {
                    "$ref": "#/definitions/org.isda.cdm.AmountSchedule"
                },
                "feeRateSchedule": {
                    "$ref": "#/definitions/org.isda.cdm.Schedule"
                },
                "feePaymentDate": {
                    "$ref": "#/definitions/org.isda.cdm.RelativeDateOffset"
                },
                "payerPartyReference": {
                    "type": "string"
                },
                "receiverPartyReference": {
                    "type": "string"
                },
                "payerAccountReference": {
                    "type": "string"
                },
                "receiverAccountReference": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "notionalReference",
                "feeAmountSchedule",
                "feeRateSchedule",
                "feePaymentDate",
                "payerPartyReference",
                "receiverPartyReference",
                "payerAccountReference",
                "receiverAccountReference"
            ]
        },
        "org.isda.cdm.MarketDisruptionEnum": {
            "title": "MarketDisruptionEnum",
            "description": "An instance of org.isda.cdm.MarketDisruptionEnum",
            "enum": ["MODIFIED_POSTPONEMENT", "OMISSION", "POSTPONEMENT"]
        },
        "org.isda.cdm.FloatingRateIndexEnum": {
            "title": "FloatingRateIndexEnum",
            "description": "An instance of org.isda.cdm.FloatingRateIndexEnum",
            "enum": [
                "AED_EBOR_REUTERS",
                "AUD_AONIA_OIS_COMPOUND",
                "AUD_AONIA_OIS_COMPOUND_SWAP_MARKER",
                "BRL_CDI",
                "CAD_BA_CDOR",
                "CNY_CNREPOFIX_CFXS_REUTERS",
                "EUR_EONIA_OIS_COMPOUND",
                "EUR_EURIBOR_REUTERS",
                "EUR_EURIBOR_TELERATE",
                "EUR_LIBOR_BBA",
                "GBP_LIBOR_BBA",
                "GBP_LIBOR_ISDA",
                "GBP_SONIA_COMPOUND",
                "INR_FBIL_MIBOR_OIS_COMPOUND",
                "KRW_CD_KSDA_BLOOMBERG",
                "UK_RPIX",
                "USA_CPI_U",
                "USD_FEDERAL_FUNDS_H_15_OIS_COMPOUND",
                "USD_LIBOR_BBA"
            ]
        },
        "org.isda.cdm.EventTimestamp": {
            "title": "EventTimestamp",
            "description": "An instance of org.isda.cdm.EventTimestamp",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EventTimestamp",
                    "pattern": "^org\\.isda\\.cdm\\.EventTimestamp$",
                    "description": "The class identifier for this type"
                },
                "expiryTimestamp": {
                    "format": "date-time",
                    "type": "string"
                },
                "creationTimestamp": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "expiryTimestamp", "creationTimestamp"]
        },
        "org.isda.cdm.EventTimestampBuilder": {
            "title": "EventTimestampBuilder",
            "description": "An instance of org.isda.cdm.EventTimestampBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EventTimestampBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.EventTimestampBuilder$",
                    "description": "The class identifier for this type"
                },
                "expiryTimestamp": {
                    "format": "date-time",
                    "type": "string"
                },
                "creationTimestamp": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "expiryTimestamp", "creationTimestamp"]
        },
        "org.isda.cdm.QuantoBuilder": {
            "title": "QuantoBuilder",
            "description": "An instance of org.isda.cdm.QuantoBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.QuantoBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.QuantoBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.Quanto": {
            "title": "Quanto",
            "description": "An instance of org.isda.cdm.Quanto",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Quanto",
                    "pattern": "^org\\.isda\\.cdm\\.Quanto$",
                    "description": "The class identifier for this type"
                },
                "fxRate": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.FxRate"
                    }
                },
                "fxSpotRateSource": {
                    "$ref": "#/definitions/org.isda.cdm.FxSpotRateSource"
                }
            },
            "required": ["$class", "fxRate", "fxSpotRateSource"]
        },
        "org.isda.cdm.UnitEnum": {
            "title": "UnitEnum",
            "description": "An instance of org.isda.cdm.UnitEnum",
            "enum": ["M_WH", "MMBTU", "BBL", "GAL", "BSH"]
        },
        "org.isda.cdm.DeterminationMethodEnum": {
            "title": "DeterminationMethodEnum",
            "description": "An instance of org.isda.cdm.DeterminationMethodEnum",
            "enum": [
                "AGREED_INITIAL_PRICE",
                "AS_SPECIFIED_IN_MASTER_CONFIRMATION",
                "CALCULATION_AGENT",
                "CLOSING_PRICE",
                "DIVIDEND_CURRENCY",
                "EXPIRING_CONTRACT_LEVEL",
                "HEDGE_EXECUTION",
                "ISSUER_PAYMENT_CURRENCY",
                "NAV",
                "OPEN_PRICE",
                "OSP_PRICE",
                "SETTLEMENT_CURRENCY",
                "STRIKE_DATE_DETERMINATION",
                "TWAP_PRICE",
                "VALUATION_TIME",
                "VWAP_PRICE"
            ]
        },
        "org.isda.cdm.NotionalSchedule": {
            "title": "NotionalSchedule",
            "description": "An instance of org.isda.cdm.NotionalSchedule",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NotionalSchedule",
                    "pattern": "^org\\.isda\\.cdm\\.NotionalSchedule$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "notionalStepSchedule": {
                    "$ref": "#/definitions/org.isda.cdm.NonNegativeAmountSchedule"
                },
                "notionalStepParameters": {
                    "$ref": "#/definitions/org.isda.cdm.NotionalStepRule"
                }
            },
            "required": ["$class", "id", "notionalStepSchedule", "notionalStepParameters"]
        },
        "org.isda.cdm.NotionalScheduleBuilder": {
            "title": "NotionalScheduleBuilder",
            "description": "An instance of org.isda.cdm.NotionalScheduleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NotionalScheduleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.NotionalScheduleBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                }
            },
            "required": ["$class", "id"]
        },
        "org.isda.cdm.PeriodEnum": {
            "title": "PeriodEnum",
            "description": "An instance of org.isda.cdm.PeriodEnum",
            "enum": ["D", "W", "M", "Y"]
        },
        "org.isda.cdm.InceptionBuilder": {
            "title": "InceptionBuilder",
            "description": "An instance of org.isda.cdm.InceptionBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.InceptionBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.InceptionBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.Inception": {
            "title": "Inception",
            "description": "An instance of org.isda.cdm.Inception",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Inception",
                    "pattern": "^org\\.isda\\.cdm\\.Inception$",
                    "description": "The class identifier for this type"
                },
                "before": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ContractOrContractReference"
                    }
                },
                "after": {
                    "$ref": "#/definitions/org.isda.cdm.ContractOrContractReference"
                }
            },
            "required": ["$class", "before", "after"]
        },
        "org.isda.cdm.ExerciseFeeBuilder": {
            "title": "ExerciseFeeBuilder",
            "description": "An instance of org.isda.cdm.ExerciseFeeBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExerciseFeeBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ExerciseFeeBuilder$",
                    "description": "The class identifier for this type"
                },
                "notionalReference": {
                    "type": "string"
                },
                "feeAmount": {
                    "type": "number"
                },
                "feeRate": {
                    "type": "number"
                },
                "sellerPartyReference": {
                    "type": "string"
                },
                "buyerPartyReference": {
                    "type": "string"
                },
                "buyerAccountReference": {
                    "type": "string"
                },
                "sellerAccountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "notionalReference", "feeAmount", "feeRate", "sellerPartyReference", "buyerPartyReference", "buyerAccountReference", "sellerAccountReference"]
        },
        "org.isda.cdm.ExerciseFee": {
            "title": "ExerciseFee",
            "description": "An instance of org.isda.cdm.ExerciseFee",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExerciseFee",
                    "pattern": "^org\\.isda\\.cdm\\.ExerciseFee$",
                    "description": "The class identifier for this type"
                },
                "notionalReference": {
                    "type": "string"
                },
                "feePaymentDate": {
                    "$ref": "#/definitions/org.isda.cdm.RelativeDateOffset"
                },
                "feeAmount": {
                    "type": "number"
                },
                "feeRate": {
                    "type": "number"
                },
                "sellerPartyReference": {
                    "type": "string"
                },
                "buyerPartyReference": {
                    "type": "string"
                },
                "buyerAccountReference": {
                    "type": "string"
                },
                "sellerAccountReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "notionalReference", "feePaymentDate", "feeAmount", "feeRate", "sellerPartyReference", "buyerPartyReference", "buyerAccountReference", "sellerAccountReference"]
        },
        "org.isda.cdm.BusinessDayConventionEnum": {
            "title": "BusinessDayConventionEnum",
            "description": "An instance of org.isda.cdm.BusinessDayConventionEnum",
            "enum": ["FOLLOWING", "FRN", "MODFOLLOWING", "PRECEDING", "MODPRECEDING", "NEAREST", "NONE", "NOT_APPLICABLE"]
        },
        "org.isda.cdm.CancelableProvisionAdjustedDatesBuilder": {
            "title": "CancelableProvisionAdjustedDatesBuilder",
            "description": "An instance of org.isda.cdm.CancelableProvisionAdjustedDatesBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CancelableProvisionAdjustedDatesBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CancelableProvisionAdjustedDatesBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.CancelableProvisionAdjustedDates": {
            "title": "CancelableProvisionAdjustedDates",
            "description": "An instance of org.isda.cdm.CancelableProvisionAdjustedDates",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CancelableProvisionAdjustedDates",
                    "pattern": "^org\\.isda\\.cdm\\.CancelableProvisionAdjustedDates$",
                    "description": "The class identifier for this type"
                },
                "cancellationEvent": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.CancellationEvent"
                    }
                }
            },
            "required": ["$class", "cancellationEvent"]
        },
        "org.isda.cdm.PremiumTypeEnum": {
            "title": "PremiumTypeEnum",
            "description": "An instance of org.isda.cdm.PremiumTypeEnum",
            "enum": ["PRE_PAID", "POST_PAID", "VARIABLE", "FIXED"]
        },
        "org.isda.cdm.Quantity": {
            "title": "Quantity",
            "description": "An instance of org.isda.cdm.Quantity",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Quantity",
                    "pattern": "^org\\.isda\\.cdm\\.Quantity$",
                    "description": "The class identifier for this type"
                },
                "unit": {
                    "$ref": "#/definitions/org.isda.cdm.UnitEnum"
                },
                "amount": {
                    "type": "number"
                }
            },
            "required": ["$class", "unit", "amount"]
        },
        "org.isda.cdm.QuantityBuilder": {
            "title": "QuantityBuilder",
            "description": "An instance of org.isda.cdm.QuantityBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.QuantityBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.QuantityBuilder$",
                    "description": "The class identifier for this type"
                },
                "unit": {
                    "$ref": "#/definitions/org.isda.cdm.UnitEnum"
                },
                "amount": {
                    "type": "number"
                }
            },
            "required": ["$class", "unit", "amount"]
        },
        "org.isda.cdm.FinalCalculationPeriodDateAdjustment": {
            "title": "FinalCalculationPeriodDateAdjustment",
            "description": "An instance of org.isda.cdm.FinalCalculationPeriodDateAdjustment",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FinalCalculationPeriodDateAdjustment",
                    "pattern": "^org\\.isda\\.cdm\\.FinalCalculationPeriodDateAdjustment$",
                    "description": "The class identifier for this type"
                },
                "businessDayConvention": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayConventionEnum"
                },
                "relevantUnderlyingDateReference": {
                    "type": "string"
                },
                "swapStreamReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "businessDayConvention", "relevantUnderlyingDateReference", "swapStreamReference"]
        },
        "org.isda.cdm.FinalCalculationPeriodDateAdjustmentBuilder": {
            "title": "FinalCalculationPeriodDateAdjustmentBuilder",
            "description": "An instance of org.isda.cdm.FinalCalculationPeriodDateAdjustmentBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FinalCalculationPeriodDateAdjustmentBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FinalCalculationPeriodDateAdjustmentBuilder$",
                    "description": "The class identifier for this type"
                },
                "businessDayConvention": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayConventionEnum"
                },
                "relevantUnderlyingDateReference": {
                    "type": "string"
                },
                "swapStreamReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "businessDayConvention", "relevantUnderlyingDateReference", "swapStreamReference"]
        },
        "org.isda.cdm.CalculationAmount": {
            "title": "CalculationAmount",
            "description": "An instance of org.isda.cdm.CalculationAmount",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CalculationAmount",
                    "pattern": "^org\\.isda\\.cdm\\.CalculationAmount$",
                    "description": "The class identifier for this type"
                },
                "step": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Step"
                    }
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                },
                "amount": {
                    "type": "number"
                }
            },
            "required": ["$class", "step", "id", "currency", "currencyScheme", "amount"]
        },
        "org.isda.cdm.CalculationAmountBuilder": {
            "title": "CalculationAmountBuilder",
            "description": "An instance of org.isda.cdm.CalculationAmountBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CalculationAmountBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CalculationAmountBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                },
                "amount": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "currency", "currencyScheme", "amount"]
        },
        "org.isda.cdm.TriggerTimeTypeEnum": {
            "title": "TriggerTimeTypeEnum",
            "description": "An instance of org.isda.cdm.TriggerTimeTypeEnum",
            "enum": ["CLOSING", "ANYTIME"]
        },
        "org.isda.cdm.EarlyTerminationProvision": {
            "title": "EarlyTerminationProvision",
            "description": "An instance of org.isda.cdm.EarlyTerminationProvision",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EarlyTerminationProvision",
                    "pattern": "^org\\.isda\\.cdm\\.EarlyTerminationProvision$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "mandatoryEarlyTerminationDateTenor": {
                    "$ref": "#/definitions/org.isda.cdm.Period"
                },
                "optionalEarlyTerminationParameters": {
                    "$ref": "#/definitions/org.isda.cdm.ExercisePeriod"
                },
                "mandatoryEarlyTermination": {
                    "$ref": "#/definitions/org.isda.cdm.MandatoryEarlyTermination"
                },
                "optionalEarlyTermination": {
                    "$ref": "#/definitions/org.isda.cdm.OptionalEarlyTermination"
                }
            },
            "required": ["$class", "id", "mandatoryEarlyTerminationDateTenor", "optionalEarlyTerminationParameters", "mandatoryEarlyTermination", "optionalEarlyTermination"]
        },
        "org.isda.cdm.EarlyTerminationProvisionBuilder": {
            "title": "EarlyTerminationProvisionBuilder",
            "description": "An instance of org.isda.cdm.EarlyTerminationProvisionBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.EarlyTerminationProvisionBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.EarlyTerminationProvisionBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                }
            },
            "required": ["$class", "id"]
        },
        "org.isda.cdm.PremiumExpression": {
            "title": "PremiumExpression",
            "description": "An instance of org.isda.cdm.PremiumExpression",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PremiumExpression",
                    "pattern": "^org\\.isda\\.cdm\\.PremiumExpression$",
                    "description": "The class identifier for this type"
                },
                "premiumType": {
                    "$ref": "#/definitions/org.isda.cdm.PremiumTypeEnum"
                },
                "pricePerOption": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "percentageOfNotional": {
                    "type": "number"
                }
            },
            "required": ["$class", "premiumType", "pricePerOption", "percentageOfNotional"]
        },
        "org.isda.cdm.PremiumExpressionBuilder": {
            "title": "PremiumExpressionBuilder",
            "description": "An instance of org.isda.cdm.PremiumExpressionBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PremiumExpressionBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PremiumExpressionBuilder$",
                    "description": "The class identifier for this type"
                },
                "premiumType": {
                    "$ref": "#/definitions/org.isda.cdm.PremiumTypeEnum"
                },
                "percentageOfNotional": {
                    "type": "number"
                }
            },
            "required": ["$class", "premiumType", "percentageOfNotional"]
        },
        "org.isda.cdm.FxFeatureBuilder": {
            "title": "FxFeatureBuilder",
            "description": "An instance of org.isda.cdm.FxFeatureBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FxFeatureBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.FxFeatureBuilder$",
                    "description": "The class identifier for this type"
                },
                "referenceCurrency": {
                    "type": "string"
                },
                "referenceCurrencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "referenceCurrency", "referenceCurrencyScheme"]
        },
        "org.isda.cdm.FxFeature": {
            "title": "FxFeature",
            "description": "An instance of org.isda.cdm.FxFeature",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.FxFeature",
                    "pattern": "^org\\.isda\\.cdm\\.FxFeature$",
                    "description": "The class identifier for this type"
                },
                "referenceCurrency": {
                    "type": "string"
                },
                "composite": {
                    "$ref": "#/definitions/org.isda.cdm.Composite"
                },
                "quanto": {
                    "$ref": "#/definitions/org.isda.cdm.Quanto"
                },
                "crossCurrency": {
                    "$ref": "#/definitions/org.isda.cdm.Composite"
                },
                "referenceCurrencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "referenceCurrency", "composite", "quanto", "crossCurrency", "referenceCurrencyScheme"]
        },
        "org.isda.cdm.WeeklyRollConventionEnum": {
            "title": "WeeklyRollConventionEnum",
            "description": "An instance of org.isda.cdm.WeeklyRollConventionEnum",
            "enum": ["TBILL", "MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"]
        },
        "org.isda.cdm.Rosetta": {
            "title": "Rosetta",
            "description": "An instance of org.isda.cdm.Rosetta",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Rosetta",
                    "pattern": "^org\\.isda\\.cdm\\.Rosetta$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.IdentifiedAssetBuilder": {
            "title": "IdentifiedAssetBuilder",
            "description": "An instance of org.isda.cdm.IdentifiedAssetBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.IdentifiedAssetBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.IdentifiedAssetBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "instrumentIdentifierScheme": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "instrumentIdentifier": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "id", "instrumentIdentifierScheme", "description", "instrumentIdentifier"]
        },
        "org.isda.cdm.IdentifiedAsset": {
            "title": "IdentifiedAsset",
            "description": "An instance of org.isda.cdm.IdentifiedAsset",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.IdentifiedAsset",
                    "pattern": "^org\\.isda\\.cdm\\.IdentifiedAsset$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "instrumentIdentifierScheme": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "instrumentIdentifier": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "id", "instrumentIdentifierScheme", "description", "instrumentIdentifier"]
        },
        "org.isda.cdm.CrossCurrencyMethodBuilder": {
            "title": "CrossCurrencyMethodBuilder",
            "description": "An instance of org.isda.cdm.CrossCurrencyMethodBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CrossCurrencyMethodBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CrossCurrencyMethodBuilder$",
                    "description": "The class identifier for this type"
                },
                "cashSettlementCurrencyScheme": {
                    "type": "string"
                },
                "cashSettlementCurrency": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "quotationRateType": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationRateTypeEnum"
                }
            },
            "required": ["$class", "cashSettlementCurrencyScheme", "cashSettlementCurrency", "quotationRateType"]
        },
        "org.isda.cdm.CrossCurrencyMethod": {
            "title": "CrossCurrencyMethod",
            "description": "An instance of org.isda.cdm.CrossCurrencyMethod",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CrossCurrencyMethod",
                    "pattern": "^org\\.isda\\.cdm\\.CrossCurrencyMethod$",
                    "description": "The class identifier for this type"
                },
                "cashSettlementCurrencyScheme": {
                    "type": "string"
                },
                "cashSettlementReferenceBanks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.CashSettlementReferenceBanks"
                    }
                },
                "cashSettlementCurrency": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "quotationRateType": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationRateTypeEnum"
                }
            },
            "required": ["$class", "cashSettlementCurrencyScheme", "cashSettlementReferenceBanks", "cashSettlementCurrency", "quotationRateType"]
        },
        "org.isda.cdm.ContractReferenceBuilder": {
            "title": "ContractReferenceBuilder",
            "description": "An instance of org.isda.cdm.ContractReferenceBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractReferenceBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ContractReferenceBuilder$",
                    "description": "The class identifier for this type"
                },
                "state": {
                    "$ref": "#/definitions/org.isda.cdm.StateEnum"
                },
                "accountReference": {
                    "type": "string"
                },
                "partyReference": {
                    "type": "string"
                },
                "issuer": {
                    "type": "string"
                },
                "issuerScheme": {
                    "type": "string"
                },
                "version": {
                    "type": "integer"
                }
            },
            "required": ["$class", "state", "accountReference", "partyReference", "issuer", "issuerScheme", "version"]
        },
        "org.isda.cdm.ContractReference": {
            "title": "ContractReference",
            "description": "An instance of org.isda.cdm.ContractReference",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ContractReference",
                    "pattern": "^org\\.isda\\.cdm\\.ContractReference$",
                    "description": "The class identifier for this type"
                },
                "state": {
                    "$ref": "#/definitions/org.isda.cdm.StateEnum"
                },
                "rosettaKey": {
                    "type": "string"
                },
                "accountReference": {
                    "type": "string"
                },
                "partyReference": {
                    "type": "string"
                },
                "identifierValue": {
                    "$ref": "#/definitions/org.isda.cdm.IdentifierValue"
                },
                "issuer": {
                    "type": "string"
                },
                "issuerScheme": {
                    "type": "string"
                },
                "version": {
                    "type": "integer"
                }
            },
            "required": ["$class", "state", "rosettaKey", "accountReference", "partyReference", "identifierValue", "issuer", "issuerScheme", "version"]
        },
        "org.isda.cdm.RestructuringEnum": {
            "title": "RestructuringEnum",
            "description": "An instance of org.isda.cdm.RestructuringEnum",
            "enum": ["MOD_MOD_R", "MOD_R", "R"]
        },
        "org.isda.cdm.OptionFeatureBuilder": {
            "title": "OptionFeatureBuilder",
            "description": "An instance of org.isda.cdm.OptionFeatureBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionFeatureBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.OptionFeatureBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.OptionFeature": {
            "title": "OptionFeature",
            "description": "An instance of org.isda.cdm.OptionFeature",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionFeature",
                    "pattern": "^org\\.isda\\.cdm\\.OptionFeature$",
                    "description": "The class identifier for this type"
                },
                "fxFeature": {
                    "$ref": "#/definitions/org.isda.cdm.FxFeature"
                },
                "strategyFeature": {
                    "$ref": "#/definitions/org.isda.cdm.StrategyFeature"
                },
                "asian": {
                    "$ref": "#/definitions/org.isda.cdm.Asian"
                },
                "barrier": {
                    "$ref": "#/definitions/org.isda.cdm.Barrier"
                },
                "knock": {
                    "$ref": "#/definitions/org.isda.cdm.Knock"
                },
                "passThrough": {
                    "$ref": "#/definitions/org.isda.cdm.PassThrough"
                }
            },
            "required": ["$class", "fxFeature", "strategyFeature", "asian", "barrier", "knock", "passThrough"]
        },
        "org.isda.cdm.LegalEntityBuilder": {
            "title": "LegalEntityBuilder",
            "description": "An instance of org.isda.cdm.LegalEntityBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.LegalEntityBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.LegalEntityBuilder$",
                    "description": "The class identifier for this type"
                },
                "name": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "entityId": {
                    "type": "string"
                },
                "entityIdScheme": {
                    "type": "string"
                },
                "nameScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "name", "id", "entityId", "entityIdScheme", "nameScheme"]
        },
        "org.isda.cdm.LegalEntity": {
            "title": "LegalEntity",
            "description": "An instance of org.isda.cdm.LegalEntity",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.LegalEntity",
                    "pattern": "^org\\.isda\\.cdm\\.LegalEntity$",
                    "description": "The class identifier for this type"
                },
                "name": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "entityId": {
                    "type": "string"
                },
                "entityIdScheme": {
                    "type": "string"
                },
                "nameScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "name", "id", "entityId", "entityIdScheme", "nameScheme"]
        },
        "org.isda.cdm.StateEnum": {
            "title": "StateEnum",
            "description": "An instance of org.isda.cdm.StateEnum",
            "enum": ["ALLOCATED", "EXERCISED", "NOVATED", "TERMINATED"]
        },
        "org.isda.cdm.MasterConfirmation": {
            "title": "MasterConfirmation",
            "description": "An instance of org.isda.cdm.MasterConfirmation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MasterConfirmation",
                    "pattern": "^org\\.isda\\.cdm\\.MasterConfirmation$",
                    "description": "The class identifier for this type"
                },
                "masterConfirmationType": {
                    "$ref": "#/definitions/org.isda.cdm.MasterConfirmationTypeEnum"
                },
                "masterConfirmationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "masterConfirmationAnnexDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "masterConfirmationAnnexType": {
                    "$ref": "#/definitions/org.isda.cdm.MasterConfirmationAnnexTypeEnum"
                },
                "masterConfirmationAnnexTypeScheme": {
                    "type": "string"
                },
                "masterConfirmationTypeScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "masterConfirmationType",
                "masterConfirmationDate",
                "masterConfirmationAnnexDate",
                "masterConfirmationAnnexType",
                "masterConfirmationAnnexTypeScheme",
                "masterConfirmationTypeScheme"
            ]
        },
        "org.isda.cdm.MasterConfirmationBuilder": {
            "title": "MasterConfirmationBuilder",
            "description": "An instance of org.isda.cdm.MasterConfirmationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MasterConfirmationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.MasterConfirmationBuilder$",
                    "description": "The class identifier for this type"
                },
                "masterConfirmationType": {
                    "$ref": "#/definitions/org.isda.cdm.MasterConfirmationTypeEnum"
                },
                "masterConfirmationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "masterConfirmationAnnexDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "masterConfirmationAnnexType": {
                    "$ref": "#/definitions/org.isda.cdm.MasterConfirmationAnnexTypeEnum"
                },
                "masterConfirmationAnnexTypeScheme": {
                    "type": "string"
                },
                "masterConfirmationTypeScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "masterConfirmationType",
                "masterConfirmationDate",
                "masterConfirmationAnnexDate",
                "masterConfirmationAnnexType",
                "masterConfirmationAnnexTypeScheme",
                "masterConfirmationTypeScheme"
            ]
        },
        "org.isda.cdm.Commodity": {
            "title": "Commodity",
            "description": "An instance of org.isda.cdm.Commodity",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Commodity",
                    "pattern": "^org\\.isda\\.cdm\\.Commodity$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.CommodityBuilder": {
            "title": "CommodityBuilder",
            "description": "An instance of org.isda.cdm.CommodityBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CommodityBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CommodityBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.BusinessCenterTime": {
            "title": "BusinessCenterTime",
            "description": "An instance of org.isda.cdm.BusinessCenterTime",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BusinessCenterTime",
                    "pattern": "^org\\.isda\\.cdm\\.BusinessCenterTime$",
                    "description": "The class identifier for this type"
                },
                "businessCenterScheme": {
                    "type": "string"
                },
                "businessCenter": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterEnum"
                },
                "hourMinuteTime": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "businessCenterScheme", "businessCenter", "hourMinuteTime"]
        },
        "org.isda.cdm.BusinessCenterTimeBuilder": {
            "title": "BusinessCenterTimeBuilder",
            "description": "An instance of org.isda.cdm.BusinessCenterTimeBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BusinessCenterTimeBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.BusinessCenterTimeBuilder$",
                    "description": "The class identifier for this type"
                },
                "businessCenterScheme": {
                    "type": "string"
                },
                "businessCenter": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterEnum"
                },
                "hourMinuteTime": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "businessCenterScheme", "businessCenter", "hourMinuteTime"]
        },
        "org.isda.cdm.NegativeInterestRateTreatmentEnum": {
            "title": "NegativeInterestRateTreatmentEnum",
            "description": "An instance of org.isda.cdm.NegativeInterestRateTreatmentEnum",
            "enum": ["NEGATIVE_INTEREST_RATE_METHOD", "ZERO_INTEREST_RATE_METHOD"]
        },
        "org.isda.cdm.GracePeriodExtensionBuilder": {
            "title": "GracePeriodExtensionBuilder",
            "description": "An instance of org.isda.cdm.GracePeriodExtensionBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.GracePeriodExtensionBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.GracePeriodExtensionBuilder$",
                    "description": "The class identifier for this type"
                },
                "applicable": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "applicable"]
        },
        "org.isda.cdm.GracePeriodExtension": {
            "title": "GracePeriodExtension",
            "description": "An instance of org.isda.cdm.GracePeriodExtension",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.GracePeriodExtension",
                    "pattern": "^org\\.isda\\.cdm\\.GracePeriodExtension$",
                    "description": "The class identifier for this type"
                },
                "applicable": {
                    "type": "boolean"
                },
                "gracePeriod": {
                    "$ref": "#/definitions/org.isda.cdm.Offset"
                }
            },
            "required": ["$class", "applicable", "gracePeriod"]
        },
        "org.isda.cdm.PrincipalExchangesBuilder": {
            "title": "PrincipalExchangesBuilder",
            "description": "An instance of org.isda.cdm.PrincipalExchangesBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PrincipalExchangesBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PrincipalExchangesBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "initialExchange": {
                    "type": "boolean"
                },
                "finalExchange": {
                    "type": "boolean"
                },
                "intermediateExchange": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "id", "initialExchange", "finalExchange", "intermediateExchange"]
        },
        "org.isda.cdm.PrincipalExchanges": {
            "title": "PrincipalExchanges",
            "description": "An instance of org.isda.cdm.PrincipalExchanges",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PrincipalExchanges",
                    "pattern": "^org\\.isda\\.cdm\\.PrincipalExchanges$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "initialExchange": {
                    "type": "boolean"
                },
                "finalExchange": {
                    "type": "boolean"
                },
                "intermediateExchange": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "id", "initialExchange", "finalExchange", "intermediateExchange"]
        },
        "org.isda.cdm.RateTreatmentEnum": {
            "title": "RateTreatmentEnum",
            "description": "An instance of org.isda.cdm.RateTreatmentEnum",
            "enum": ["BOND_EQUIVALENT_YIELD", "MONEY_MARKET_YIELD"]
        },
        "org.isda.cdm.Bond": {
            "title": "Bond",
            "description": "An instance of org.isda.cdm.Bond",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Bond",
                    "pattern": "^org\\.isda\\.cdm\\.Bond$",
                    "description": "The class identifier for this type"
                },
                "paymentFrequency": {
                    "$ref": "#/definitions/org.isda.cdm.Period"
                },
                "dayCountFractionScheme": {
                    "type": "string"
                },
                "parValue": {
                    "type": "number"
                },
                "issuanceFaceAmount": {
                    "type": "number"
                },
                "dayCountFraction": {
                    "$ref": "#/definitions/org.isda.cdm.DayCountFractionEnum"
                },
                "couponTypeScheme": {
                    "type": "string"
                },
                "seniorityScheme": {
                    "type": "string"
                },
                "issuerName": {
                    "type": "string"
                },
                "issuerReference": {
                    "type": "string"
                },
                "seniority": {
                    "$ref": "#/definitions/org.isda.cdm.CreditSeniorityEnum"
                },
                "couponType": {
                    "$ref": "#/definitions/org.isda.cdm.CouponTypeEnum"
                },
                "couponRate": {
                    "type": "number"
                },
                "maturity": {
                    "format": "date-time",
                    "type": "string"
                },
                "issueDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "clearanceSystemScheme": {
                    "type": "string"
                },
                "productIdentifierScheme": {
                    "type": "string"
                },
                "productIdentifier": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ProductIdentifier"
                    }
                },
                "productTaxonomy": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ProductTaxonomy"
                    }
                },
                "description": {
                    "type": "string"
                },
                "clearanceSystem": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "paymentFrequency",
                "dayCountFractionScheme",
                "parValue",
                "issuanceFaceAmount",
                "dayCountFraction",
                "couponTypeScheme",
                "seniorityScheme",
                "issuerName",
                "issuerReference",
                "seniority",
                "couponType",
                "couponRate",
                "maturity",
                "issueDate",
                "id",
                "currency",
                "clearanceSystemScheme",
                "productIdentifierScheme",
                "productIdentifier",
                "productTaxonomy",
                "description",
                "clearanceSystem",
                "currencyScheme"
            ]
        },
        "org.isda.cdm.BondBuilder": {
            "title": "BondBuilder",
            "description": "An instance of org.isda.cdm.BondBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BondBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.BondBuilder$",
                    "description": "The class identifier for this type"
                },
                "dayCountFractionScheme": {
                    "type": "string"
                },
                "parValue": {
                    "type": "number"
                },
                "issuanceFaceAmount": {
                    "type": "number"
                },
                "dayCountFraction": {
                    "$ref": "#/definitions/org.isda.cdm.DayCountFractionEnum"
                },
                "couponTypeScheme": {
                    "type": "string"
                },
                "seniorityScheme": {
                    "type": "string"
                },
                "issuerName": {
                    "type": "string"
                },
                "issuerReference": {
                    "type": "string"
                },
                "seniority": {
                    "$ref": "#/definitions/org.isda.cdm.CreditSeniorityEnum"
                },
                "couponType": {
                    "$ref": "#/definitions/org.isda.cdm.CouponTypeEnum"
                },
                "couponRate": {
                    "type": "number"
                },
                "maturity": {
                    "format": "date-time",
                    "type": "string"
                },
                "issueDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "clearanceSystemScheme": {
                    "type": "string"
                },
                "productIdentifierScheme": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "clearanceSystem": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "dayCountFractionScheme",
                "parValue",
                "issuanceFaceAmount",
                "dayCountFraction",
                "couponTypeScheme",
                "seniorityScheme",
                "issuerName",
                "issuerReference",
                "seniority",
                "couponType",
                "couponRate",
                "maturity",
                "issueDate",
                "id",
                "currency",
                "clearanceSystemScheme",
                "productIdentifierScheme",
                "description",
                "clearanceSystem",
                "currencyScheme"
            ]
        },
        "org.isda.cdm.MatrixTermEnum": {
            "title": "MatrixTermEnum",
            "description": "An instance of org.isda.cdm.MatrixTermEnum",
            "enum": ["IVS_1_OPEN_MARKETS"]
        },
        "org.isda.cdm.AveragingInOutEnum": {
            "title": "AveragingInOutEnum",
            "description": "An instance of org.isda.cdm.AveragingInOutEnum",
            "enum": ["IN", "OUT", "BOTH"]
        },
        "org.isda.cdm.PrincipalExchange": {
            "title": "PrincipalExchange",
            "description": "An instance of org.isda.cdm.PrincipalExchange",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PrincipalExchange",
                    "pattern": "^org\\.isda\\.cdm\\.PrincipalExchange$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "discountFactor": {
                    "type": "number"
                },
                "unadjustedPrincipalExchangeDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedPrincipalExchangeDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "principalExchangeAmount": {
                    "type": "number"
                },
                "presentValuePrincipalExchangeAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                }
            },
            "required": ["$class", "id", "discountFactor", "unadjustedPrincipalExchangeDate", "adjustedPrincipalExchangeDate", "principalExchangeAmount", "presentValuePrincipalExchangeAmount"]
        },
        "org.isda.cdm.PrincipalExchangeBuilder": {
            "title": "PrincipalExchangeBuilder",
            "description": "An instance of org.isda.cdm.PrincipalExchangeBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PrincipalExchangeBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PrincipalExchangeBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "discountFactor": {
                    "type": "number"
                },
                "unadjustedPrincipalExchangeDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedPrincipalExchangeDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "principalExchangeAmount": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "discountFactor", "unadjustedPrincipalExchangeDate", "adjustedPrincipalExchangeDate", "principalExchangeAmount"]
        },
        "org.isda.cdm.ReferencePair": {
            "title": "ReferencePair",
            "description": "An instance of org.isda.cdm.ReferencePair",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ReferencePair",
                    "pattern": "^org\\.isda\\.cdm\\.ReferencePair$",
                    "description": "The class identifier for this type"
                },
                "referenceObligation": {
                    "$ref": "#/definitions/org.isda.cdm.ReferenceObligation"
                },
                "referenceEntity": {
                    "$ref": "#/definitions/org.isda.cdm.LegalEntity"
                },
                "noReferenceObligation": {
                    "type": "boolean"
                },
                "entityType": {
                    "$ref": "#/definitions/org.isda.cdm.EntityTypeEnum"
                },
                "entityTypeScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "referenceObligation", "referenceEntity", "noReferenceObligation", "entityType", "entityTypeScheme"]
        },
        "org.isda.cdm.ReferencePairBuilder": {
            "title": "ReferencePairBuilder",
            "description": "An instance of org.isda.cdm.ReferencePairBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ReferencePairBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ReferencePairBuilder$",
                    "description": "The class identifier for this type"
                },
                "noReferenceObligation": {
                    "type": "boolean"
                },
                "entityType": {
                    "$ref": "#/definitions/org.isda.cdm.EntityTypeEnum"
                },
                "entityTypeScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "noReferenceObligation", "entityType", "entityTypeScheme"]
        },
        "org.isda.cdm.SettlementRateOptionEnum": {
            "title": "SettlementRateOptionEnum",
            "description": "An instance of org.isda.cdm.SettlementRateOptionEnum",
            "enum": ["ARS_BNAR_ARS01", "ARS_EMTA_INDICATIVE_SURVEY_RATE_ARS04", "BRL_PTAX_BRL09", "CNY_SAEC_CNY01", "KRW_KFTC18_KRW02", "INR_RBIB_INR01"]
        },
        "org.isda.cdm.TermsChangePrimitive": {
            "title": "TermsChangePrimitive",
            "description": "An instance of org.isda.cdm.TermsChangePrimitive",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.TermsChangePrimitive",
                    "pattern": "^org\\.isda\\.cdm\\.TermsChangePrimitive$",
                    "description": "The class identifier for this type"
                },
                "before": {
                    "$ref": "#/definitions/org.isda.cdm.ContractOrContractReference"
                },
                "after": {
                    "$ref": "#/definitions/org.isda.cdm.ContractOrContractReference"
                }
            },
            "required": ["$class", "before", "after"]
        },
        "org.isda.cdm.TermsChangePrimitiveBuilder": {
            "title": "TermsChangePrimitiveBuilder",
            "description": "An instance of org.isda.cdm.TermsChangePrimitiveBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.TermsChangePrimitiveBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.TermsChangePrimitiveBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.Rounding": {
            "title": "Rounding",
            "description": "An instance of org.isda.cdm.Rounding",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Rounding",
                    "pattern": "^org\\.isda\\.cdm\\.Rounding$",
                    "description": "The class identifier for this type"
                },
                "roundingDirection": {
                    "$ref": "#/definitions/org.isda.cdm.RoundingDirectionEnum"
                },
                "precision": {
                    "type": "integer"
                }
            },
            "required": ["$class", "roundingDirection", "precision"]
        },
        "org.isda.cdm.RoundingBuilder": {
            "title": "RoundingBuilder",
            "description": "An instance of org.isda.cdm.RoundingBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.RoundingBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.RoundingBuilder$",
                    "description": "The class identifier for this type"
                },
                "roundingDirection": {
                    "$ref": "#/definitions/org.isda.cdm.RoundingDirectionEnum"
                },
                "precision": {
                    "type": "integer"
                }
            },
            "required": ["$class", "roundingDirection", "precision"]
        },
        "org.isda.cdm.ProductIdentificationBuilder": {
            "title": "ProductIdentificationBuilder",
            "description": "An instance of org.isda.cdm.ProductIdentificationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ProductIdentificationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ProductIdentificationBuilder$",
                    "description": "The class identifier for this type"
                },
                "productQualifier": {
                    "type": "string"
                },
                "primaryAssetClass": {
                    "$ref": "#/definitions/org.isda.cdm.AssetClassEnum"
                },
                "secondaryAssetClass": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.AssetClassEnum"
                    }
                },
                "productType": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "productId": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "productIdScheme": {
                    "type": "string"
                },
                "primaryAssetClassScheme": {
                    "type": "string"
                },
                "productTypeScheme": {
                    "type": "string"
                },
                "secondaryAssetClassScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "productQualifier",
                "primaryAssetClass",
                "secondaryAssetClass",
                "productType",
                "productId",
                "productIdScheme",
                "primaryAssetClassScheme",
                "productTypeScheme",
                "secondaryAssetClassScheme"
            ]
        },
        "org.isda.cdm.ProductIdentification": {
            "title": "ProductIdentification",
            "description": "An instance of org.isda.cdm.ProductIdentification",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ProductIdentification",
                    "pattern": "^org\\.isda\\.cdm\\.ProductIdentification$",
                    "description": "The class identifier for this type"
                },
                "productQualifier": {
                    "type": "string"
                },
                "primaryAssetClass": {
                    "$ref": "#/definitions/org.isda.cdm.AssetClassEnum"
                },
                "secondaryAssetClass": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.AssetClassEnum"
                    }
                },
                "productType": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "productId": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "productIdScheme": {
                    "type": "string"
                },
                "primaryAssetClassScheme": {
                    "type": "string"
                },
                "productTypeScheme": {
                    "type": "string"
                },
                "secondaryAssetClassScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "productQualifier",
                "primaryAssetClass",
                "secondaryAssetClass",
                "productType",
                "productId",
                "productIdScheme",
                "primaryAssetClassScheme",
                "productTypeScheme",
                "secondaryAssetClassScheme"
            ]
        },
        "org.isda.cdm.AveragingSchedule": {
            "title": "AveragingSchedule",
            "description": "An instance of org.isda.cdm.AveragingSchedule",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AveragingSchedule",
                    "pattern": "^org\\.isda\\.cdm\\.AveragingSchedule$",
                    "description": "The class identifier for this type"
                },
                "endDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "startDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "averagingPeriodFrequency": {
                    "$ref": "#/definitions/org.isda.cdm.CalculationPeriodFrequency"
                }
            },
            "required": ["$class", "endDate", "startDate", "averagingPeriodFrequency"]
        },
        "org.isda.cdm.AveragingScheduleBuilder": {
            "title": "AveragingScheduleBuilder",
            "description": "An instance of org.isda.cdm.AveragingScheduleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AveragingScheduleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AveragingScheduleBuilder$",
                    "description": "The class identifier for this type"
                },
                "endDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "startDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "endDate", "startDate"]
        },
        "org.isda.cdm.DateTimeListBuilder": {
            "title": "DateTimeListBuilder",
            "description": "An instance of org.isda.cdm.DateTimeListBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DateTimeListBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.DateTimeListBuilder$",
                    "description": "The class identifier for this type"
                },
                "dateTime": {
                    "type": "array",
                    "items": {
                        "format": "date-time",
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "dateTime"]
        },
        "org.isda.cdm.DateTimeList": {
            "title": "DateTimeList",
            "description": "An instance of org.isda.cdm.DateTimeList",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DateTimeList",
                    "pattern": "^org\\.isda\\.cdm\\.DateTimeList$",
                    "description": "The class identifier for this type"
                },
                "dateTime": {
                    "type": "array",
                    "items": {
                        "format": "date-time",
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "dateTime"]
        },
        "org.isda.cdm.MakeWholeAmountBuilder": {
            "title": "MakeWholeAmountBuilder",
            "description": "An instance of org.isda.cdm.MakeWholeAmountBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MakeWholeAmountBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.MakeWholeAmountBuilder$",
                    "description": "The class identifier for this type"
                },
                "interpolationMethod": {
                    "$ref": "#/definitions/org.isda.cdm.InterpolationMethodEnum"
                },
                "earlyCallDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "floatingRateIndex": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                },
                "spread": {
                    "type": "number"
                },
                "side": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationSideEnum"
                }
            },
            "required": ["$class", "interpolationMethod", "earlyCallDate", "floatingRateIndex", "spread", "side"]
        },
        "org.isda.cdm.MakeWholeAmount": {
            "title": "MakeWholeAmount",
            "description": "An instance of org.isda.cdm.MakeWholeAmount",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MakeWholeAmount",
                    "pattern": "^org\\.isda\\.cdm\\.MakeWholeAmount$",
                    "description": "The class identifier for this type"
                },
                "interpolationMethod": {
                    "$ref": "#/definitions/org.isda.cdm.InterpolationMethodEnum"
                },
                "earlyCallDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "floatingRateIndex": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                },
                "indexTenor": {
                    "$ref": "#/definitions/org.isda.cdm.Period"
                },
                "spread": {
                    "type": "number"
                },
                "side": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationSideEnum"
                }
            },
            "required": ["$class", "interpolationMethod", "earlyCallDate", "floatingRateIndex", "indexTenor", "spread", "side"]
        },
        "org.isda.cdm.BondReferenceBuilder": {
            "title": "BondReferenceBuilder",
            "description": "An instance of org.isda.cdm.BondReferenceBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BondReferenceBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.BondReferenceBuilder$",
                    "description": "The class identifier for this type"
                },
                "conditionPrecedentBond": {
                    "type": "boolean"
                },
                "discrepancyClause": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "conditionPrecedentBond", "discrepancyClause"]
        },
        "org.isda.cdm.BondReference": {
            "title": "BondReference",
            "description": "An instance of org.isda.cdm.BondReference",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.BondReference",
                    "pattern": "^org\\.isda\\.cdm\\.BondReference$",
                    "description": "The class identifier for this type"
                },
                "bond": {
                    "$ref": "#/definitions/org.isda.cdm.Bond"
                },
                "conditionPrecedentBond": {
                    "type": "boolean"
                },
                "discrepancyClause": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "bond", "conditionPrecedentBond", "discrepancyClause"]
        },
        "org.isda.cdm.ValuationPostponement": {
            "title": "ValuationPostponement",
            "description": "An instance of org.isda.cdm.ValuationPostponement",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ValuationPostponement",
                    "pattern": "^org\\.isda\\.cdm\\.ValuationPostponement$",
                    "description": "The class identifier for this type"
                },
                "maximumDaysOfPostponement": {
                    "type": "integer"
                }
            },
            "required": ["$class", "maximumDaysOfPostponement"]
        },
        "org.isda.cdm.ValuationPostponementBuilder": {
            "title": "ValuationPostponementBuilder",
            "description": "An instance of org.isda.cdm.ValuationPostponementBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ValuationPostponementBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ValuationPostponementBuilder$",
                    "description": "The class identifier for this type"
                },
                "maximumDaysOfPostponement": {
                    "type": "integer"
                }
            },
            "required": ["$class", "maximumDaysOfPostponement"]
        },
        "org.isda.cdm.SettlementProvision": {
            "title": "SettlementProvision",
            "description": "An instance of org.isda.cdm.SettlementProvision",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SettlementProvision",
                    "pattern": "^org\\.isda\\.cdm\\.SettlementProvision$",
                    "description": "The class identifier for this type"
                },
                "settlementCurrency": {
                    "type": "string"
                },
                "nonDeliverableSettlement": {
                    "$ref": "#/definitions/org.isda.cdm.NonDeliverableSettlement"
                },
                "settlementCurrencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "settlementCurrency", "nonDeliverableSettlement", "settlementCurrencyScheme"]
        },
        "org.isda.cdm.SettlementProvisionBuilder": {
            "title": "SettlementProvisionBuilder",
            "description": "An instance of org.isda.cdm.SettlementProvisionBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.SettlementProvisionBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.SettlementProvisionBuilder$",
                    "description": "The class identifier for this type"
                },
                "settlementCurrency": {
                    "type": "string"
                },
                "settlementCurrencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "settlementCurrency", "settlementCurrencyScheme"]
        },
        "org.isda.cdm.CashflowBaseBuilder": {
            "title": "CashflowBaseBuilder",
            "description": "An instance of org.isda.cdm.CashflowBaseBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CashflowBaseBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CashflowBaseBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "discountFactor": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "discountFactor"]
        },
        "org.isda.cdm.CashflowBase": {
            "title": "CashflowBase",
            "description": "An instance of org.isda.cdm.CashflowBase",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CashflowBase",
                    "pattern": "^org\\.isda\\.cdm\\.CashflowBase$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "discountFactor": {
                    "type": "number"
                },
                "presentValueAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "premiumExpression": {
                    "$ref": "#/definitions/org.isda.cdm.PremiumExpression"
                },
                "paymentDiscounting": {
                    "$ref": "#/definitions/org.isda.cdm.PaymentDiscounting"
                },
                "payerReceiver": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiver"
                }
            },
            "required": ["$class", "id", "discountFactor", "presentValueAmount", "premiumExpression", "paymentDiscounting", "payerReceiver"]
        },
        "org.isda.cdm.Resource": {
            "title": "Resource",
            "description": "An instance of org.isda.cdm.Resource",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Resource",
                    "pattern": "^org\\.isda\\.cdm\\.Resource$",
                    "description": "The class identifier for this type"
                },
                "length": {
                    "$ref": "#/definitions/org.isda.cdm.ResourceLength"
                },
                "name": {
                    "type": "string"
                },
                "language": {
                    "type": "string"
                },
                "resourceId": {
                    "type": "string"
                },
                "resourceType": {
                    "$ref": "#/definitions/org.isda.cdm.ResourceTypeEnum"
                },
                "sizeInBytes": {
                    "type": "number"
                },
                "mimeType": {
                    "type": "string"
                },
                "comments": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                },
                "string": {
                    "type": "string"
                },
                "languageScheme": {
                    "type": "string"
                },
                "mimeTypeScheme": {
                    "type": "string"
                },
                "resourceIdScheme": {
                    "type": "string"
                },
                "resourceTypeScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "length",
                "name",
                "language",
                "resourceId",
                "resourceType",
                "sizeInBytes",
                "mimeType",
                "comments",
                "url",
                "string",
                "languageScheme",
                "mimeTypeScheme",
                "resourceIdScheme",
                "resourceTypeScheme"
            ]
        },
        "org.isda.cdm.ResourceBuilder": {
            "title": "ResourceBuilder",
            "description": "An instance of org.isda.cdm.ResourceBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ResourceBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ResourceBuilder$",
                    "description": "The class identifier for this type"
                },
                "name": {
                    "type": "string"
                },
                "language": {
                    "type": "string"
                },
                "resourceId": {
                    "type": "string"
                },
                "resourceType": {
                    "$ref": "#/definitions/org.isda.cdm.ResourceTypeEnum"
                },
                "sizeInBytes": {
                    "type": "number"
                },
                "mimeType": {
                    "type": "string"
                },
                "comments": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                },
                "string": {
                    "type": "string"
                },
                "languageScheme": {
                    "type": "string"
                },
                "mimeTypeScheme": {
                    "type": "string"
                },
                "resourceIdScheme": {
                    "type": "string"
                },
                "resourceTypeScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "name",
                "language",
                "resourceId",
                "resourceType",
                "sizeInBytes",
                "mimeType",
                "comments",
                "url",
                "string",
                "languageScheme",
                "mimeTypeScheme",
                "resourceIdScheme",
                "resourceTypeScheme"
            ]
        },
        "org.isda.cdm.ReferenceObligationBuilder": {
            "title": "ReferenceObligationBuilder",
            "description": "An instance of org.isda.cdm.ReferenceObligationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ReferenceObligationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ReferenceObligationBuilder$",
                    "description": "The class identifier for this type"
                },
                "primaryObligorReference": {
                    "type": "string"
                },
                "guarantorReference": {
                    "type": "string"
                },
                "standardReferenceObligation": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "primaryObligorReference", "guarantorReference", "standardReferenceObligation"]
        },
        "org.isda.cdm.ReferenceObligation": {
            "title": "ReferenceObligation",
            "description": "An instance of org.isda.cdm.ReferenceObligation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ReferenceObligation",
                    "pattern": "^org\\.isda\\.cdm\\.ReferenceObligation$",
                    "description": "The class identifier for this type"
                },
                "mortgage": {
                    "$ref": "#/definitions/org.isda.cdm.Mortgage"
                },
                "bond": {
                    "$ref": "#/definitions/org.isda.cdm.Bond"
                },
                "convertibleBond": {
                    "$ref": "#/definitions/org.isda.cdm.ConvertibleBond"
                },
                "loan": {
                    "$ref": "#/definitions/org.isda.cdm.Loan"
                },
                "primaryObligor": {
                    "$ref": "#/definitions/org.isda.cdm.LegalEntity"
                },
                "primaryObligorReference": {
                    "type": "string"
                },
                "guarantor": {
                    "$ref": "#/definitions/org.isda.cdm.LegalEntity"
                },
                "guarantorReference": {
                    "type": "string"
                },
                "standardReferenceObligation": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "mortgage", "bond", "convertibleBond", "loan", "primaryObligor", "primaryObligorReference", "guarantor", "guarantorReference", "standardReferenceObligation"]
        },
        "org.isda.cdm.ValuationMethodEnum": {
            "title": "ValuationMethodEnum",
            "description": "An instance of org.isda.cdm.ValuationMethodEnum",
            "enum": ["MARKET", "HIGHEST", "AVERAGE_MARKET", "AVERAGE_HIGHEST", "BLENDED_MARKET", "BLENDED_HIGHEST", "AVERAGE_BLENDED_MARKET", "AVERAGE_BLENDED_HIGHEST"]
        },
        "org.isda.cdm.ExecutionBuilder": {
            "title": "ExecutionBuilder",
            "description": "An instance of org.isda.cdm.ExecutionBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExecutionBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ExecutionBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.Execution": {
            "title": "Execution",
            "description": "An instance of org.isda.cdm.Execution",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Execution",
                    "pattern": "^org\\.isda\\.cdm\\.Execution$",
                    "description": "The class identifier for this type"
                },
                "tradeHeader": {
                    "$ref": "#/definitions/org.isda.cdm.TradeHeader"
                },
                "contractualProduct": {
                    "$ref": "#/definitions/org.isda.cdm.ContractualProduct"
                },
                "party": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Party"
                    }
                }
            },
            "required": ["$class", "tradeHeader", "contractualProduct", "party"]
        },
        "org.isda.cdm.InformationSource": {
            "title": "InformationSource",
            "description": "An instance of org.isda.cdm.InformationSource",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.InformationSource",
                    "pattern": "^org\\.isda\\.cdm\\.InformationSource$",
                    "description": "The class identifier for this type"
                },
                "sourceProvider": {
                    "$ref": "#/definitions/org.isda.cdm.InformationProviderEnum"
                },
                "sourcePage": {
                    "type": "string"
                },
                "sourcePageHeading": {
                    "type": "string"
                },
                "sourcePageScheme": {
                    "type": "string"
                },
                "sourceProviderScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "sourceProvider", "sourcePage", "sourcePageHeading", "sourcePageScheme", "sourceProviderScheme"]
        },
        "org.isda.cdm.InformationSourceBuilder": {
            "title": "InformationSourceBuilder",
            "description": "An instance of org.isda.cdm.InformationSourceBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.InformationSourceBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.InformationSourceBuilder$",
                    "description": "The class identifier for this type"
                },
                "sourceProvider": {
                    "$ref": "#/definitions/org.isda.cdm.InformationProviderEnum"
                },
                "sourcePage": {
                    "type": "string"
                },
                "sourcePageHeading": {
                    "type": "string"
                },
                "sourcePageScheme": {
                    "type": "string"
                },
                "sourceProviderScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "sourceProvider", "sourcePage", "sourcePageHeading", "sourcePageScheme", "sourceProviderScheme"]
        },
        "org.isda.cdm.MandatoryEarlyTerminationAdjustedDates": {
            "title": "MandatoryEarlyTerminationAdjustedDates",
            "description": "An instance of org.isda.cdm.MandatoryEarlyTerminationAdjustedDates",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MandatoryEarlyTerminationAdjustedDates",
                    "pattern": "^org\\.isda\\.cdm\\.MandatoryEarlyTerminationAdjustedDates$",
                    "description": "The class identifier for this type"
                },
                "adjustedEarlyTerminationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedCashSettlementValuationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedCashSettlementPaymentDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "adjustedEarlyTerminationDate", "adjustedCashSettlementValuationDate", "adjustedCashSettlementPaymentDate"]
        },
        "org.isda.cdm.MandatoryEarlyTerminationAdjustedDatesBuilder": {
            "title": "MandatoryEarlyTerminationAdjustedDatesBuilder",
            "description": "An instance of org.isda.cdm.MandatoryEarlyTerminationAdjustedDatesBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MandatoryEarlyTerminationAdjustedDatesBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.MandatoryEarlyTerminationAdjustedDatesBuilder$",
                    "description": "The class identifier for this type"
                },
                "adjustedEarlyTerminationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedCashSettlementValuationDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedCashSettlementPaymentDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "adjustedEarlyTerminationDate", "adjustedCashSettlementValuationDate", "adjustedCashSettlementPaymentDate"]
        },
        "org.isda.cdm.InitialFixingDateBuilder": {
            "title": "InitialFixingDateBuilder",
            "description": "An instance of org.isda.cdm.InitialFixingDateBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.InitialFixingDateBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.InitialFixingDateBuilder$",
                    "description": "The class identifier for this type"
                },
                "initialFixingDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "initialFixingDate"]
        },
        "org.isda.cdm.Period": {
            "title": "Period",
            "description": "An instance of org.isda.cdm.Period",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Period",
                    "pattern": "^org\\.isda\\.cdm\\.Period$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": ["$class", "id", "period", "periodMultiplier"]
        },
        "org.isda.cdm.InitialFixingDate": {
            "title": "InitialFixingDate",
            "description": "An instance of org.isda.cdm.InitialFixingDate",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.InitialFixingDate",
                    "pattern": "^org\\.isda\\.cdm\\.InitialFixingDate$",
                    "description": "The class identifier for this type"
                },
                "initialFixingDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "relativeDateOffset": {
                    "$ref": "#/definitions/org.isda.cdm.RelativeDateOffset"
                }
            },
            "required": ["$class", "initialFixingDate", "relativeDateOffset"]
        },
        "org.isda.cdm.OptionCashSettlement": {
            "title": "OptionCashSettlement",
            "description": "An instance of org.isda.cdm.OptionCashSettlement",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionCashSettlement",
                    "pattern": "^org\\.isda\\.cdm\\.OptionCashSettlement$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "cashSettlementPaymentDate": {
                    "$ref": "#/definitions/org.isda.cdm.CashSettlementPaymentDate"
                },
                "cashSettlementValuationTime": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterTime"
                },
                "cashSettlementValuationDate": {
                    "$ref": "#/definitions/org.isda.cdm.RelativeDateOffset"
                },
                "cashPriceMethod": {
                    "$ref": "#/definitions/org.isda.cdm.CashPriceMethod"
                },
                "cashPriceAlternateMethod": {
                    "$ref": "#/definitions/org.isda.cdm.CashPriceMethod"
                },
                "parYieldCurveAdjustedMethod": {
                    "$ref": "#/definitions/org.isda.cdm.YieldCurveMethod"
                },
                "zeroCouponYieldAdjustedMethod": {
                    "$ref": "#/definitions/org.isda.cdm.YieldCurveMethod"
                },
                "parYieldCurveUnadjustedMethod": {
                    "$ref": "#/definitions/org.isda.cdm.YieldCurveMethod"
                },
                "crossCurrencyMethod": {
                    "$ref": "#/definitions/org.isda.cdm.CrossCurrencyMethod"
                },
                "collateralizedCashPriceMethod": {
                    "$ref": "#/definitions/org.isda.cdm.YieldCurveMethod"
                }
            },
            "required": [
                "$class",
                "id",
                "cashSettlementPaymentDate",
                "cashSettlementValuationTime",
                "cashSettlementValuationDate",
                "cashPriceMethod",
                "cashPriceAlternateMethod",
                "parYieldCurveAdjustedMethod",
                "zeroCouponYieldAdjustedMethod",
                "parYieldCurveUnadjustedMethod",
                "crossCurrencyMethod",
                "collateralizedCashPriceMethod"
            ]
        },
        "org.isda.cdm.OptionCashSettlementBuilder": {
            "title": "OptionCashSettlementBuilder",
            "description": "An instance of org.isda.cdm.OptionCashSettlementBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionCashSettlementBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.OptionCashSettlementBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                }
            },
            "required": ["$class", "id"]
        },
        "org.isda.cdm.NotionalStepRuleBuilder": {
            "title": "NotionalStepRuleBuilder",
            "description": "An instance of org.isda.cdm.NotionalStepRuleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NotionalStepRuleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.NotionalStepRuleBuilder$",
                    "description": "The class identifier for this type"
                },
                "notionalStepAmount": {
                    "type": "number"
                },
                "notionalStepRate": {
                    "type": "number"
                },
                "stepRelativeTo": {
                    "$ref": "#/definitions/org.isda.cdm.StepRelativeToEnum"
                },
                "firstNotionalStepDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "lastNotionalStepDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "calculationPeriodDatesReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "notionalStepAmount", "notionalStepRate", "stepRelativeTo", "firstNotionalStepDate", "lastNotionalStepDate", "calculationPeriodDatesReference"]
        },
        "org.isda.cdm.NotionalStepRule": {
            "title": "NotionalStepRule",
            "description": "An instance of org.isda.cdm.NotionalStepRule",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.NotionalStepRule",
                    "pattern": "^org\\.isda\\.cdm\\.NotionalStepRule$",
                    "description": "The class identifier for this type"
                },
                "notionalStepAmount": {
                    "type": "number"
                },
                "notionalStepRate": {
                    "type": "number"
                },
                "stepRelativeTo": {
                    "$ref": "#/definitions/org.isda.cdm.StepRelativeToEnum"
                },
                "stepFrequency": {
                    "$ref": "#/definitions/org.isda.cdm.Frequency"
                },
                "firstNotionalStepDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "lastNotionalStepDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "calculationPeriodDatesReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "notionalStepAmount", "notionalStepRate", "stepRelativeTo", "stepFrequency", "firstNotionalStepDate", "lastNotionalStepDate", "calculationPeriodDatesReference"]
        },
        "org.isda.cdm.InflationRateCalculation": {
            "title": "InflationRateCalculation",
            "description": "An instance of org.isda.cdm.InflationRateCalculation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.InflationRateCalculation",
                    "pattern": "^org\\.isda\\.cdm\\.InflationRateCalculation$",
                    "description": "The class identifier for this type"
                },
                "inflationLag": {
                    "$ref": "#/definitions/org.isda.cdm.Offset"
                },
                "indexSource": {
                    "type": "string"
                },
                "mainPublication": {
                    "type": "string"
                },
                "interpolationMethod": {
                    "$ref": "#/definitions/org.isda.cdm.InterpolationMethodEnum"
                },
                "initialIndexLevel": {
                    "type": "number"
                },
                "fallbackBondApplicable": {
                    "type": "boolean"
                },
                "indexSourceScheme": {
                    "type": "string"
                },
                "interpolationMethodScheme": {
                    "type": "string"
                },
                "mainPublicationScheme": {
                    "type": "string"
                },
                "initialRate": {
                    "type": "number"
                },
                "finalRateRounding": {
                    "$ref": "#/definitions/org.isda.cdm.Rounding"
                },
                "averagingMethod": {
                    "$ref": "#/definitions/org.isda.cdm.AveragingMethodEnum"
                },
                "negativeInterestRateTreatment": {
                    "$ref": "#/definitions/org.isda.cdm.NegativeInterestRateTreatmentEnum"
                },
                "id": {
                    "type": "string"
                },
                "spreadSchedule": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.SpreadSchedule"
                    }
                },
                "floatingRateIndexScheme": {
                    "type": "string"
                },
                "floatingRateMultiplierSchedule": {
                    "$ref": "#/definitions/org.isda.cdm.Schedule"
                },
                "floatingRateIndex": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                },
                "indexTenor": {
                    "$ref": "#/definitions/org.isda.cdm.Period"
                },
                "rateTreatment": {
                    "$ref": "#/definitions/org.isda.cdm.RateTreatmentEnum"
                },
                "capRateSchedule": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.StrikeSchedule"
                    }
                },
                "floorRateSchedule": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.StrikeSchedule"
                    }
                }
            },
            "required": [
                "$class",
                "inflationLag",
                "indexSource",
                "mainPublication",
                "interpolationMethod",
                "initialIndexLevel",
                "fallbackBondApplicable",
                "indexSourceScheme",
                "interpolationMethodScheme",
                "mainPublicationScheme",
                "initialRate",
                "finalRateRounding",
                "averagingMethod",
                "negativeInterestRateTreatment",
                "id",
                "spreadSchedule",
                "floatingRateIndexScheme",
                "floatingRateMultiplierSchedule",
                "floatingRateIndex",
                "indexTenor",
                "rateTreatment",
                "capRateSchedule",
                "floorRateSchedule"
            ]
        },
        "org.isda.cdm.InflationRateCalculationBuilder": {
            "title": "InflationRateCalculationBuilder",
            "description": "An instance of org.isda.cdm.InflationRateCalculationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.InflationRateCalculationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.InflationRateCalculationBuilder$",
                    "description": "The class identifier for this type"
                },
                "indexSource": {
                    "type": "string"
                },
                "mainPublication": {
                    "type": "string"
                },
                "interpolationMethod": {
                    "$ref": "#/definitions/org.isda.cdm.InterpolationMethodEnum"
                },
                "initialIndexLevel": {
                    "type": "number"
                },
                "fallbackBondApplicable": {
                    "type": "boolean"
                },
                "indexSourceScheme": {
                    "type": "string"
                },
                "interpolationMethodScheme": {
                    "type": "string"
                },
                "mainPublicationScheme": {
                    "type": "string"
                },
                "initialRate": {
                    "type": "number"
                },
                "averagingMethod": {
                    "$ref": "#/definitions/org.isda.cdm.AveragingMethodEnum"
                },
                "negativeInterestRateTreatment": {
                    "$ref": "#/definitions/org.isda.cdm.NegativeInterestRateTreatmentEnum"
                },
                "id": {
                    "type": "string"
                },
                "floatingRateIndexScheme": {
                    "type": "string"
                },
                "floatingRateIndex": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                },
                "rateTreatment": {
                    "$ref": "#/definitions/org.isda.cdm.RateTreatmentEnum"
                }
            },
            "required": [
                "$class",
                "indexSource",
                "mainPublication",
                "interpolationMethod",
                "initialIndexLevel",
                "fallbackBondApplicable",
                "indexSourceScheme",
                "interpolationMethodScheme",
                "mainPublicationScheme",
                "initialRate",
                "averagingMethod",
                "negativeInterestRateTreatment",
                "id",
                "floatingRateIndexScheme",
                "floatingRateIndex",
                "rateTreatment"
            ]
        },
        "org.isda.cdm.QuantityChangePrimitiveBuilder": {
            "title": "QuantityChangePrimitiveBuilder",
            "description": "An instance of org.isda.cdm.QuantityChangePrimitiveBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.QuantityChangePrimitiveBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.QuantityChangePrimitiveBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.QuantityChangePrimitive": {
            "title": "QuantityChangePrimitive",
            "description": "An instance of org.isda.cdm.QuantityChangePrimitive",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.QuantityChangePrimitive",
                    "pattern": "^org\\.isda\\.cdm\\.QuantityChangePrimitive$",
                    "description": "The class identifier for this type"
                },
                "before": {
                    "$ref": "#/definitions/org.isda.cdm.ContractOrContractReference"
                },
                "change": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ContractualQuantity"
                    }
                },
                "after": {
                    "$ref": "#/definitions/org.isda.cdm.ContractOrContractReference"
                }
            },
            "required": ["$class", "before", "change", "after"]
        },
        "org.isda.cdm.Documentation": {
            "title": "Documentation",
            "description": "An instance of org.isda.cdm.Documentation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Documentation",
                    "pattern": "^org\\.isda\\.cdm\\.Documentation$",
                    "description": "The class identifier for this type"
                },
                "contractualDefinitions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ContractualDefinitionsEnum"
                    }
                },
                "contractualTermsSupplement": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ContractualTermsSupplement"
                    }
                },
                "masterAgreement": {
                    "$ref": "#/definitions/org.isda.cdm.MasterAgreement"
                },
                "brokerConfirmation": {
                    "$ref": "#/definitions/org.isda.cdm.BrokerConfirmation"
                },
                "creditSupportAgreement": {
                    "$ref": "#/definitions/org.isda.cdm.CreditSupportAgreement"
                },
                "otherAgreement": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.OtherAgreement"
                    }
                },
                "attachment": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Resource"
                    }
                },
                "masterConfirmation": {
                    "$ref": "#/definitions/org.isda.cdm.MasterConfirmation"
                },
                "contractualMatrix": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ContractualMatrix"
                    }
                },
                "contractualDefinitionsScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "contractualDefinitions",
                "contractualTermsSupplement",
                "masterAgreement",
                "brokerConfirmation",
                "creditSupportAgreement",
                "otherAgreement",
                "attachment",
                "masterConfirmation",
                "contractualMatrix",
                "contractualDefinitionsScheme"
            ]
        },
        "org.isda.cdm.DocumentationBuilder": {
            "title": "DocumentationBuilder",
            "description": "An instance of org.isda.cdm.DocumentationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DocumentationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.DocumentationBuilder$",
                    "description": "The class identifier for this type"
                },
                "contractualDefinitions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ContractualDefinitionsEnum"
                    }
                },
                "contractualDefinitionsScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "contractualDefinitions", "contractualDefinitionsScheme"]
        },
        "org.isda.cdm.CompoundingMethodEnum": {
            "title": "CompoundingMethodEnum",
            "description": "An instance of org.isda.cdm.CompoundingMethodEnum",
            "enum": ["FLAT", "NONE", "STRAIGHT", "SPREAD_EXCLUSIVE"]
        },
        "org.isda.cdm.ExercisePeriod": {
            "title": "ExercisePeriod",
            "description": "An instance of org.isda.cdm.ExercisePeriod",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExercisePeriod",
                    "pattern": "^org\\.isda\\.cdm\\.ExercisePeriod$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "earliestExerciseDateTenor": {
                    "$ref": "#/definitions/org.isda.cdm.Period"
                },
                "exerciseFrequency": {
                    "$ref": "#/definitions/org.isda.cdm.Period"
                }
            },
            "required": ["$class", "id", "earliestExerciseDateTenor", "exerciseFrequency"]
        },
        "org.isda.cdm.ExercisePeriodBuilder": {
            "title": "ExercisePeriodBuilder",
            "description": "An instance of org.isda.cdm.ExercisePeriodBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ExercisePeriodBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ExercisePeriodBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                }
            },
            "required": ["$class", "id"]
        },
        "org.isda.cdm.AdjustableDate": {
            "title": "AdjustableDate",
            "description": "An instance of org.isda.cdm.AdjustableDate",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdjustableDate",
                    "pattern": "^org\\.isda\\.cdm\\.AdjustableDate$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "unadjustedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "dateAdjustmentsReference": {
                    "type": "string"
                },
                "adjustedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "dateAdjustments": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessDayAdjustments"
                }
            },
            "required": ["$class", "id", "unadjustedDate", "dateAdjustmentsReference", "adjustedDate", "dateAdjustments"]
        },
        "org.isda.cdm.AdjustableDateBuilder": {
            "title": "AdjustableDateBuilder",
            "description": "An instance of org.isda.cdm.AdjustableDateBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AdjustableDateBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AdjustableDateBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "unadjustedDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "dateAdjustmentsReference": {
                    "type": "string"
                },
                "adjustedDate": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "id", "unadjustedDate", "dateAdjustmentsReference", "adjustedDate"]
        },
        "org.isda.cdm.StubFloatingRate": {
            "title": "StubFloatingRate",
            "description": "An instance of org.isda.cdm.StubFloatingRate",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StubFloatingRate",
                    "pattern": "^org\\.isda\\.cdm\\.StubFloatingRate$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "spreadSchedule": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.SpreadSchedule"
                    }
                },
                "floatingRateMultiplierSchedule": {
                    "$ref": "#/definitions/org.isda.cdm.Schedule"
                },
                "floatingRateIndex": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                },
                "indexTenor": {
                    "$ref": "#/definitions/org.isda.cdm.Period"
                },
                "rateTreatment": {
                    "$ref": "#/definitions/org.isda.cdm.RateTreatmentEnum"
                },
                "capRateSchedule": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.StrikeSchedule"
                    }
                },
                "floorRateSchedule": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.StrikeSchedule"
                    }
                }
            },
            "required": ["$class", "id", "spreadSchedule", "floatingRateMultiplierSchedule", "floatingRateIndex", "indexTenor", "rateTreatment", "capRateSchedule", "floorRateSchedule"]
        },
        "org.isda.cdm.StubFloatingRateBuilder": {
            "title": "StubFloatingRateBuilder",
            "description": "An instance of org.isda.cdm.StubFloatingRateBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.StubFloatingRateBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.StubFloatingRateBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "floatingRateIndex": {
                    "$ref": "#/definitions/org.isda.cdm.FloatingRateIndexEnum"
                },
                "rateTreatment": {
                    "$ref": "#/definitions/org.isda.cdm.RateTreatmentEnum"
                }
            },
            "required": ["$class", "id", "floatingRateIndex", "rateTreatment"]
        },
        "org.isda.cdm.DayCountFractionEnum": {
            "title": "DayCountFractionEnum",
            "description": "An instance of org.isda.cdm.DayCountFractionEnum",
            "enum": ["_1_1", "_30_360", "_30E_360", "_30E_360_ISDA", "ACT_360", "ACT_365_FIXED", "ACT_365L", "ACT_ACT_AFB", "ACT_ACT_ICMA", "ACT_ACT_ISDA", "ACT_ACT_ISMA", "BUS_252"]
        },
        "org.isda.cdm.PriorDateInstanceBuilder": {
            "title": "PriorDateInstanceBuilder",
            "description": "An instance of org.isda.cdm.PriorDateInstanceBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PriorDateInstanceBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PriorDateInstanceBuilder$",
                    "description": "The class identifier for this type"
                },
                "date": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "date"]
        },
        "org.isda.cdm.PriorDateInstance": {
            "title": "PriorDateInstance",
            "description": "An instance of org.isda.cdm.PriorDateInstance",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PriorDateInstance",
                    "pattern": "^org\\.isda\\.cdm\\.PriorDateInstance$",
                    "description": "The class identifier for this type"
                },
                "contractReference": {
                    "$ref": "#/definitions/org.isda.cdm.Identifier"
                },
                "date": {
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": ["$class", "contractReference", "date"]
        },
        "org.isda.cdm.DateRelativeToCalculationPeriodDates": {
            "title": "DateRelativeToCalculationPeriodDates",
            "description": "An instance of org.isda.cdm.DateRelativeToCalculationPeriodDates",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DateRelativeToCalculationPeriodDates",
                    "pattern": "^org\\.isda\\.cdm\\.DateRelativeToCalculationPeriodDates$",
                    "description": "The class identifier for this type"
                },
                "calculationPeriodDatesReference": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "calculationPeriodDatesReference"]
        },
        "org.isda.cdm.DateRelativeToCalculationPeriodDatesBuilder": {
            "title": "DateRelativeToCalculationPeriodDatesBuilder",
            "description": "An instance of org.isda.cdm.DateRelativeToCalculationPeriodDatesBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.DateRelativeToCalculationPeriodDatesBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.DateRelativeToCalculationPeriodDatesBuilder$",
                    "description": "The class identifier for this type"
                },
                "calculationPeriodDatesReference": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": ["$class", "calculationPeriodDatesReference"]
        },
        "org.isda.cdm.NaturalPersonRoleEnum": {
            "title": "NaturalPersonRoleEnum",
            "description": "An instance of org.isda.cdm.NaturalPersonRoleEnum",
            "enum": ["TRADER"]
        },
        "org.isda.cdm.CompositeBuilder": {
            "title": "CompositeBuilder",
            "description": "An instance of org.isda.cdm.CompositeBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CompositeBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CompositeBuilder$",
                    "description": "The class identifier for this type"
                },
                "determinationMethod": {
                    "$ref": "#/definitions/org.isda.cdm.DeterminationMethodEnum"
                }
            },
            "required": ["$class", "determinationMethod"]
        },
        "org.isda.cdm.Composite": {
            "title": "Composite",
            "description": "An instance of org.isda.cdm.Composite",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Composite",
                    "pattern": "^org\\.isda\\.cdm\\.Composite$",
                    "description": "The class identifier for this type"
                },
                "fxSpotRateSource": {
                    "$ref": "#/definitions/org.isda.cdm.FxSpotRateSource"
                },
                "determinationMethod": {
                    "$ref": "#/definitions/org.isda.cdm.DeterminationMethodEnum"
                },
                "relativeDate": {
                    "$ref": "#/definitions/org.isda.cdm.RelativeDateOffset"
                }
            },
            "required": ["$class", "fxSpotRateSource", "determinationMethod", "relativeDate"]
        },
        "org.isda.cdm.AveragingObservationListBuilder": {
            "title": "AveragingObservationListBuilder",
            "description": "An instance of org.isda.cdm.AveragingObservationListBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AveragingObservationListBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.AveragingObservationListBuilder$",
                    "description": "The class identifier for this type"
                }
            },
            "required": ["$class"]
        },
        "org.isda.cdm.AveragingObservationList": {
            "title": "AveragingObservationList",
            "description": "An instance of org.isda.cdm.AveragingObservationList",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.AveragingObservationList",
                    "pattern": "^org\\.isda\\.cdm\\.AveragingObservationList$",
                    "description": "The class identifier for this type"
                },
                "averagingObservation": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.WeightedAveragingObservation"
                    }
                }
            },
            "required": ["$class", "averagingObservation"]
        },
        "org.isda.cdm.TransferStatusEnum": {
            "title": "TransferStatusEnum",
            "description": "An instance of org.isda.cdm.TransferStatusEnum",
            "enum": ["DISPUTED", "INSTRUCTED", "PENDING", "SETTLED"]
        },
        "org.isda.cdm.ListedHeader": {
            "title": "ListedHeader",
            "description": "An instance of org.isda.cdm.ListedHeader",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ListedHeader",
                    "pattern": "^org\\.isda\\.cdm\\.ListedHeader$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "clearanceSystemScheme": {
                    "type": "string"
                },
                "productIdentifierScheme": {
                    "type": "string"
                },
                "productIdentifier": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ProductIdentifier"
                    }
                },
                "productTaxonomy": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.ProductTaxonomy"
                    }
                },
                "description": {
                    "type": "string"
                },
                "clearanceSystem": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "currency", "clearanceSystemScheme", "productIdentifierScheme", "productIdentifier", "productTaxonomy", "description", "clearanceSystem", "currencyScheme"]
        },
        "org.isda.cdm.ListedHeaderBuilder": {
            "title": "ListedHeaderBuilder",
            "description": "An instance of org.isda.cdm.ListedHeaderBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ListedHeaderBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ListedHeaderBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "clearanceSystemScheme": {
                    "type": "string"
                },
                "productIdentifierScheme": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "clearanceSystem": {
                    "type": "string"
                },
                "currencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "id", "currency", "clearanceSystemScheme", "productIdentifierScheme", "description", "clearanceSystem", "currencyScheme"]
        },
        "org.isda.cdm.OptionPhysicalSettlementBuilder": {
            "title": "OptionPhysicalSettlementBuilder",
            "description": "An instance of org.isda.cdm.OptionPhysicalSettlementBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionPhysicalSettlementBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.OptionPhysicalSettlementBuilder$",
                    "description": "The class identifier for this type"
                },
                "clearedPhysicalSettlement": {
                    "type": "boolean"
                },
                "predeterminedClearingOrganizationPartyReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "clearedPhysicalSettlement", "predeterminedClearingOrganizationPartyReference"]
        },
        "org.isda.cdm.OptionPhysicalSettlement": {
            "title": "OptionPhysicalSettlement",
            "description": "An instance of org.isda.cdm.OptionPhysicalSettlement",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionPhysicalSettlement",
                    "pattern": "^org\\.isda\\.cdm\\.OptionPhysicalSettlement$",
                    "description": "The class identifier for this type"
                },
                "clearedPhysicalSettlement": {
                    "type": "boolean"
                },
                "predeterminedClearingOrganizationPartyReference": {
                    "type": "string"
                }
            },
            "required": ["$class", "clearedPhysicalSettlement", "predeterminedClearingOrganizationPartyReference"]
        },
        "org.isda.cdm.PackageInformation": {
            "title": "PackageInformation",
            "description": "An instance of org.isda.cdm.PackageInformation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PackageInformation",
                    "pattern": "^org\\.isda\\.cdm\\.PackageInformation$",
                    "description": "The class identifier for this type"
                },
                "category": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.CategoryEnum"
                    }
                },
                "relatedParty": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.RelatedParty"
                    }
                },
                "intentToAllocate": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "category", "relatedParty", "intentToAllocate"]
        },
        "org.isda.cdm.PackageInformationBuilder": {
            "title": "PackageInformationBuilder",
            "description": "An instance of org.isda.cdm.PackageInformationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PackageInformationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PackageInformationBuilder$",
                    "description": "The class identifier for this type"
                },
                "category": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.CategoryEnum"
                    }
                },
                "intentToAllocate": {
                    "type": "boolean"
                }
            },
            "required": ["$class", "category", "intentToAllocate"]
        },
        "org.isda.cdm.Cashflow": {
            "title": "Cashflow",
            "description": "An instance of org.isda.cdm.Cashflow",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Cashflow",
                    "pattern": "^org\\.isda\\.cdm\\.Cashflow$",
                    "description": "The class identifier for this type"
                },
                "cashflowDate": {
                    "$ref": "#/definitions/org.isda.cdm.AdjustableOrAdjustedOrRelativeDate"
                },
                "rosettaKeyValue": {
                    "type": "string"
                },
                "cashflowCalculation": {
                    "type": "string"
                },
                "cashflowType": {
                    "$ref": "#/definitions/org.isda.cdm.CashflowTypeEnum"
                },
                "cashflowAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "id": {
                    "type": "string"
                },
                "discountFactor": {
                    "type": "number"
                },
                "presentValueAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "premiumExpression": {
                    "$ref": "#/definitions/org.isda.cdm.PremiumExpression"
                },
                "paymentDiscounting": {
                    "$ref": "#/definitions/org.isda.cdm.PaymentDiscounting"
                },
                "payerReceiver": {
                    "$ref": "#/definitions/org.isda.cdm.PayerReceiver"
                }
            },
            "required": [
                "$class",
                "cashflowDate",
                "rosettaKeyValue",
                "cashflowCalculation",
                "cashflowType",
                "cashflowAmount",
                "id",
                "discountFactor",
                "presentValueAmount",
                "premiumExpression",
                "paymentDiscounting",
                "payerReceiver"
            ]
        },
        "org.isda.cdm.CashflowBuilder": {
            "title": "CashflowBuilder",
            "description": "An instance of org.isda.cdm.CashflowBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CashflowBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CashflowBuilder$",
                    "description": "The class identifier for this type"
                },
                "cashflowCalculation": {
                    "type": "string"
                },
                "cashflowType": {
                    "$ref": "#/definitions/org.isda.cdm.CashflowTypeEnum"
                },
                "id": {
                    "type": "string"
                },
                "discountFactor": {
                    "type": "number"
                }
            },
            "required": ["$class", "cashflowCalculation", "cashflowType", "id", "discountFactor"]
        },
        "org.isda.cdm.CommodityReferencePriceEnum": {
            "title": "CommodityReferencePriceEnum",
            "description": "An instance of org.isda.cdm.CommodityReferencePriceEnum",
            "enum": ["ALUMINIUM_ALLOY_LME_15_MONTH"]
        },
        "org.isda.cdm.PeriodBuilder": {
            "title": "PeriodBuilder",
            "description": "An instance of org.isda.cdm.PeriodBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.PeriodBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.PeriodBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "period": {
                    "$ref": "#/definitions/org.isda.cdm.PeriodEnum"
                },
                "periodMultiplier": {
                    "type": "integer"
                }
            },
            "required": ["$class", "id", "period", "periodMultiplier"]
        },
        "org.isda.cdm.CashSettlementTerms": {
            "title": "CashSettlementTerms",
            "description": "An instance of org.isda.cdm.CashSettlementTerms",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CashSettlementTerms",
                    "pattern": "^org\\.isda\\.cdm\\.CashSettlementTerms$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "quotationAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "minimumQuotationAmout": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "accruedInterest": {
                    "type": "boolean"
                },
                "settlementCurrency": {
                    "type": "string"
                },
                "cashSettlementBusinessDays": {
                    "type": "integer"
                },
                "valuationDate": {
                    "$ref": "#/definitions/org.isda.cdm.ValuationDate"
                },
                "valuationTime": {
                    "$ref": "#/definitions/org.isda.cdm.BusinessCenterTime"
                },
                "quotationMethod": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationRateTypeEnum"
                },
                "dealer": {
                    "type": "string"
                },
                "cashSettlementAmount": {
                    "$ref": "#/definitions/org.isda.cdm.Money"
                },
                "fixedSettlement": {
                    "type": "boolean"
                },
                "valuationMethod": {
                    "$ref": "#/definitions/org.isda.cdm.ValuationMethodEnum"
                },
                "recoveryFactor": {
                    "type": "number"
                },
                "settlementCurrencyScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "id",
                "quotationAmount",
                "minimumQuotationAmout",
                "accruedInterest",
                "settlementCurrency",
                "cashSettlementBusinessDays",
                "valuationDate",
                "valuationTime",
                "quotationMethod",
                "dealer",
                "cashSettlementAmount",
                "fixedSettlement",
                "valuationMethod",
                "recoveryFactor",
                "settlementCurrencyScheme"
            ]
        },
        "org.isda.cdm.CashSettlementTermsBuilder": {
            "title": "CashSettlementTermsBuilder",
            "description": "An instance of org.isda.cdm.CashSettlementTermsBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.CashSettlementTermsBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.CashSettlementTermsBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "accruedInterest": {
                    "type": "boolean"
                },
                "settlementCurrency": {
                    "type": "string"
                },
                "cashSettlementBusinessDays": {
                    "type": "integer"
                },
                "quotationMethod": {
                    "$ref": "#/definitions/org.isda.cdm.QuotationRateTypeEnum"
                },
                "dealer": {
                    "type": "string"
                },
                "fixedSettlement": {
                    "type": "boolean"
                },
                "valuationMethod": {
                    "$ref": "#/definitions/org.isda.cdm.ValuationMethodEnum"
                },
                "recoveryFactor": {
                    "type": "number"
                },
                "settlementCurrencyScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "id",
                "accruedInterest",
                "settlementCurrency",
                "cashSettlementBusinessDays",
                "quotationMethod",
                "dealer",
                "fixedSettlement",
                "valuationMethod",
                "recoveryFactor",
                "settlementCurrencyScheme"
            ]
        },
        "org.isda.cdm.RateObservationBuilder": {
            "title": "RateObservationBuilder",
            "description": "An instance of org.isda.cdm.RateObservationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.RateObservationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.RateObservationBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "observationWeight": {
                    "type": "integer"
                },
                "resetDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedFixingDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "observedRate": {
                    "type": "number"
                },
                "treatedRate": {
                    "type": "number"
                },
                "rateReference": {
                    "type": "string"
                },
                "forecastRate": {
                    "type": "number"
                },
                "treatedForecastRate": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "observationWeight", "resetDate", "adjustedFixingDate", "observedRate", "treatedRate", "rateReference", "forecastRate", "treatedForecastRate"]
        },
        "org.isda.cdm.RateObservation": {
            "title": "RateObservation",
            "description": "An instance of org.isda.cdm.RateObservation",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.RateObservation",
                    "pattern": "^org\\.isda\\.cdm\\.RateObservation$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "observationWeight": {
                    "type": "integer"
                },
                "resetDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "adjustedFixingDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "observedRate": {
                    "type": "number"
                },
                "treatedRate": {
                    "type": "number"
                },
                "rateReference": {
                    "type": "string"
                },
                "forecastRate": {
                    "type": "number"
                },
                "treatedForecastRate": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "observationWeight", "resetDate", "adjustedFixingDate", "observedRate", "treatedRate", "rateReference", "forecastRate", "treatedForecastRate"]
        },
        "org.isda.cdm.MasterAgreement": {
            "title": "MasterAgreement",
            "description": "An instance of org.isda.cdm.MasterAgreement",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MasterAgreement",
                    "pattern": "^org\\.isda\\.cdm\\.MasterAgreement$",
                    "description": "The class identifier for this type"
                },
                "masterAgreementId": {
                    "type": "string"
                },
                "masterAgreementType": {
                    "$ref": "#/definitions/org.isda.cdm.MasterAgreementTypeEnum"
                },
                "masterAgreementVersion": {
                    "type": "string"
                },
                "masterAgreementDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "masterAgreementIdScheme": {
                    "type": "string"
                },
                "masterAgreementTypeScheme": {
                    "type": "string"
                },
                "masterAgreementVersionScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "masterAgreementId",
                "masterAgreementType",
                "masterAgreementVersion",
                "masterAgreementDate",
                "masterAgreementIdScheme",
                "masterAgreementTypeScheme",
                "masterAgreementVersionScheme"
            ]
        },
        "org.isda.cdm.MasterAgreementBuilder": {
            "title": "MasterAgreementBuilder",
            "description": "An instance of org.isda.cdm.MasterAgreementBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.MasterAgreementBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.MasterAgreementBuilder$",
                    "description": "The class identifier for this type"
                },
                "masterAgreementId": {
                    "type": "string"
                },
                "masterAgreementType": {
                    "$ref": "#/definitions/org.isda.cdm.MasterAgreementTypeEnum"
                },
                "masterAgreementVersion": {
                    "type": "string"
                },
                "masterAgreementDate": {
                    "format": "date-time",
                    "type": "string"
                },
                "masterAgreementIdScheme": {
                    "type": "string"
                },
                "masterAgreementTypeScheme": {
                    "type": "string"
                },
                "masterAgreementVersionScheme": {
                    "type": "string"
                }
            },
            "required": [
                "$class",
                "masterAgreementId",
                "masterAgreementType",
                "masterAgreementVersion",
                "masterAgreementDate",
                "masterAgreementIdScheme",
                "masterAgreementTypeScheme",
                "masterAgreementVersionScheme"
            ]
        },
        "org.isda.cdm.ScheduleBuilder": {
            "title": "ScheduleBuilder",
            "description": "An instance of org.isda.cdm.ScheduleBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.ScheduleBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.ScheduleBuilder$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "initialValue": {
                    "type": "number"
                }
            },
            "required": ["$class", "id", "initialValue"]
        },
        "org.isda.cdm.Schedule": {
            "title": "Schedule",
            "description": "An instance of org.isda.cdm.Schedule",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.Schedule",
                    "pattern": "^org\\.isda\\.cdm\\.Schedule$",
                    "description": "The class identifier for this type"
                },
                "id": {
                    "type": "string"
                },
                "initialValue": {
                    "type": "number"
                },
                "step": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/org.isda.cdm.Step"
                    }
                }
            },
            "required": ["$class", "id", "initialValue", "step"]
        },
        "org.isda.cdm.OptionDenomination": {
            "title": "OptionDenomination",
            "description": "An instance of org.isda.cdm.OptionDenomination",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionDenomination",
                    "pattern": "^org\\.isda\\.cdm\\.OptionDenomination$",
                    "description": "The class identifier for this type"
                },
                "optionEntitlement": {
                    "type": "number"
                },
                "numberOfOptions": {
                    "type": "number"
                },
                "entitlementCurrency": {
                    "type": "string"
                },
                "entitlementCurrencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "optionEntitlement", "numberOfOptions", "entitlementCurrency", "entitlementCurrencyScheme"]
        },
        "org.isda.cdm.OptionDenominationBuilder": {
            "title": "OptionDenominationBuilder",
            "description": "An instance of org.isda.cdm.OptionDenominationBuilder",
            "type": "object",
            "properties": {
                "$class": {
                    "type": "string",
                    "default": "org.isda.cdm.OptionDenominationBuilder",
                    "pattern": "^org\\.isda\\.cdm\\.OptionDenominationBuilder$",
                    "description": "The class identifier for this type"
                },
                "optionEntitlement": {
                    "type": "number"
                },
                "numberOfOptions": {
                    "type": "number"
                },
                "entitlementCurrency": {
                    "type": "string"
                },
                "entitlementCurrencyScheme": {
                    "type": "string"
                }
            },
            "required": ["$class", "optionEntitlement", "numberOfOptions", "entitlementCurrency", "entitlementCurrencyScheme"]
        }
    }
}
