
.cdm-java.6.0.0-dev.63.source-code.legaldocumentation-common-type.rosetta Maven / Gradle / Ivy
namespace cdm.legaldocumentation.common : <"Common legal agreement concepts.">
version "${project.version}"
import cdm.base.staticdata.party.*
import cdm.base.staticdata.identifier.*
import cdm.legaldocumentation.contract.*
import cdm.legaldocumentation.master.*
import cdm.product.collateral.*
import cdm.mapping.config.*
type ContractualMatrix:
matrixType MatrixTypeEnum (1..1) <"Identifies the form of applicable matrix.">
[metadata scheme]
matrixTerm MatrixTermEnum (0..1) <"Defines any applicable key into the relevant matrix. For example, the Transaction Type would be the single term required for the Credit Derivatives Physical Settlement Matrix. This element should be omitted in the case of the 2000 ISDA Definitions Settlement Matrix for Early Termination and Swaptions.">
[metadata scheme]
type ContractualTermsSupplement: <"A contractual supplement (such as those published by ISDA) and its publication date that will apply to the trade.">
contractualTermsSupplementType ContractualSupplementTypeEnum (1..1) <"Identifies the form of applicable contractual supplement.">
[metadata scheme]
publicationDate date (0..1) <"Specifies the publication date of the applicable version of the contractual supplement.">
type OtherAgreement: <"A class for defining an agreement executed between parties.">
identifier string (0..1) <"An identifier that has been created to identify the agreement.">
[metadata scheme]
otherAgreementType string (1..1) <"The agreement executed between the parties and intended to govern product-specific derivatives transactions between those parties.">
[metadata scheme]
version string (0..1) <"The version of the agreement.">
[metadata scheme]
date date (0..1) <"The date on which the agreement was signed.">
type Resource: <"Describes the resource that contains the media representation of a business event (i.e used for stating the Publicly Available Information). For example, can describe a file or a URL that represents the event. This type is an extended version of a type defined by RIXML (www.rixml.org). Rosetta restricts the FpML implementation by not providing the ability to associated a document in hexadecimalBinary or base64Binary until such time that actual use cases will come up.">
resourceId string (1..1) <"The unique identifier of the resource within the event. FpML specifies this element of type resourceIdScheme but with no specified value.">
[metadata scheme]
resourceType ResourceTypeEnum (0..1) <"A description of the type of the resource, e.g. a confirmation.">
[metadata scheme]
language string (0..1) <"Indicates the language of the resource, described using the ISO 639-2/T Code.">
[metadata scheme]
sizeInBytes number (0..1) <"Indicates the size of the resource in bytes. It could be used by the end user to estimate the download time and storage needs.">
length ResourceLength (0..1) <"Indicates the length of the resource. For example, if the resource were a PDF file, the length would be in pages.">
mimeType string (0..1) <"Indicates the type of media used to store the content. mimeType is used to determine the software product(s) that can read the content. MIME Types are described in RFC 2046.">
[metadata scheme]
name string (0..1) <"The name of the resource. It is specified as a NormalizedString in FpML.">
comments string (0..1) <"Any additional comments that are deemed necessary. For example, which software version is required to open the document? Or, how does this resource relate to the others for this event?">
string string (0..1) <"Provides extra information as string. In case the extra information is in XML format, a CDATA section must be placed around the source message to prevent its interpretation as XML content.">
url string (0..1) <"Indicates where the resource can be found, as a URL that references the information on a web server accessible to the message recipient.">
condition ResourceChoice: <"Choice rule to represent an FpML choice construct. Note that FpML also provides the ability to have hexadecimalBinary or base64Binary, which have not been implemented in Rosetta until we see actual use cases.">
optional choice string, url
type ResourceLength: <"A class to indicate the length of the resource.">
lengthUnit LengthUnitEnum (1..1) <"The length unit of the resource. For example, pages (pdf, text documents) or time (audio, video files).">
lengthValue number (1..1) <"The length value of the resource.">
type AgreementTerms: <"Specification of the content of a legal agreement.">
agreement Agreement (1..1) <"Specification of the standard set of terms that define a legal agreement.">
clauseLibrary boolean (0..1) <"Specification of whether the agreement terms have been negotiated using the clause library methodology.">
counterparty Counterparty (2..2) <"Specification of the roles of the counterparties to the agreement.">
type LegalAgreement extends LegalAgreementBase: <"The specification of a legal agreement between two parties, being negotiated or having been executed. This includes the baseline information and the optional specialised elections">
[metadata key]
[rootType]
agreementTerms AgreementTerms (0..1) <"Specification of the content of the legal agreement.">
relatedAgreements LegalAgreement (0..*) <"Specifies the agreement(s) that govern the agreement, either as a reference to such agreements when specified as part of the CDM, or through identification of some of the key terms of those agreements, such as the type of agreement, the publisher, the vintage, the agreement identifier and the agreement date.">
umbrellaAgreement UmbrellaAgreement (0..1) <"The determination of whether Umbrella Agreement terms are applicable (True) or Not Applicable (False).">
condition ConsistentlyExecutedAgreements: <"An executed agreement can only point to executed related agreements if any.">
if relatedAgreements exists and agreementDate exists
then relatedAgreements -> agreementDate exists
condition AgreementVerification: <"A validation rule to ensure that the agreement elections are associated with the correct legal agreement type as specified.">
if agreementTerms -> agreement -> securityAgreementElections exists
then legalAgreementIdentification -> agreementName -> agreementType = LegalAgreementTypeEnum -> SecurityAgreement
else if agreementTerms -> agreement -> creditSupportAgreementElections exists
then legalAgreementIdentification -> agreementName -> creditSupportAgreementType = CreditSupportAgreementTypeEnum -> CreditSupportAnnex
or legalAgreementIdentification -> agreementName -> creditSupportAgreementType = CreditSupportAgreementTypeEnum -> CreditSupportDeed
else if agreementTerms -> agreement -> collateralTransferAgreementElections exists
then legalAgreementIdentification -> agreementName -> creditSupportAgreementType = CreditSupportAgreementTypeEnum -> CollateralTransferAgreement
else if agreementTerms -> agreement -> masterAgreementSchedule exists
then legalAgreementIdentification -> agreementName -> agreementType = LegalAgreementTypeEnum -> MasterAgreement
type LegalAgreementBase: <"Specifies the legal agreement baseline information, being negotiated or having been executed. It excludes specialized elections">
agreementDate date (0..1) <"The date on which the legal agreement has been agreed between the parties. This corresponds to the Date of Deed in an English Law document.">
effectiveDate date (0..1) <"The date on which, or as of which, the agreement is effective, if different from the agreement date. It is expected that it will most often correspond to the agreement date, although there could be situations where the parties will explicitly agree on a distinct effective date.">
identifier Identifier (0..*) <"The legal agreement identifier. Several identifiers can be specified.">
legalAgreementIdentification LegalAgreementIdentification (1..1) <"The type of legal agreement, identified via a set of composable attributes: agreementName, publisher, governing law and version, e.g. ISDA 2013 Standard Credit Support Annex English Law.">
contractualParty Party (2..2) <"The two contractual parties to the legal agreement, which reference information is positioned as part of the partyInformation attribute.">
[metadata reference]
otherParty PartyRole (0..*) <"The role(s) that other party(ies) may have in relation to the legal agreement, further to the contractual parties.">
attachment Resource (0..*) <"A human readable document, for example a confirmation.">
type LegalAgreementIdentification: <"Specifies the type of legal agreement, identified via a set of composable attributes: agreementName, publisher, governing law and version, e.g. ISDA 2013 Standard Credit Support Annex English Law.">
governingLaw GoverningLawEnum (0..1) <"The law governing the legal agreement, e.g. English Law, New York Law or Japanese Law.">
[synonym AcadiaSoft_AM_1_0 value "governingLaw"]
agreementName AgreementName (1..1) <"The legal agreement name, e.g. Credit Support Annex for Variation Margin.">
[synonym AcadiaSoft_AM_1_0 value "documentName"]
publisher LegalAgreementPublisherEnum (0..1) <"The legal agreement publisher, e.g. ISDA.">
[synonym AcadiaSoft_AM_1_0 value "publisher"]
vintage int (0..1) <"In the case where successive definitions of the legal agreement have been developed, the vintage identification. This is typically (but not necessarily) done by referencing the year, e.g. 2013 in the case of the ISDA 2013 Standard Credit Support Annex.">
[synonym AcadiaSoft_AM_1_0 value "csaVersion"]
condition CSAMarginType: <"A condition to ensure that CSA margin type is only specified if a credit support agreemnt type is specified and its published vintage year is equal to or after 2016.">
if agreementName -> creditSupportAgreementMarginType exists
then agreementName -> creditSupportAgreementType exists and vintage >= 2016
type AgreementName: <"Specifies the agreement name through an agreement type and optional detailed sub agreement type.">
agreementType LegalAgreementTypeEnum (1..1) <"Specification of the legal agreement type.">
creditSupportAgreementType CreditSupportAgreementTypeEnum (0..1) <"Specification of the credit support agreement type.">
[metadata scheme]
creditSupportAgreementMarginType CollateralMarginTypeEnum (0..1) <"specifies the type of margin for which a legal agreement is named.">
contractualDefinitionsType ContractualDefinitionsEnum (0..*) <"The definitions such as those published by ISDA that will define the terms of the trade.">
[metadata scheme]
contractualTermsSupplement ContractualTermsSupplement (0..*) <"A contractual supplement (such as those published by ISDA) that will apply to the trade.">
contractualMatrix ContractualMatrix (0..*) <"A reference to a contractual matrix of elected terms/values (such as those published by ISDA) that shall be deemed to apply to the trade. The applicable matrix is identified by reference to a name and optionally a publication date. Depending on the structure of the matrix, an additional term (specified in the matrixTerm element) may be required to further identify a subset of applicable terms/values within the matrix.">
masterAgreementType MasterAgreementTypeEnum (0..1) <"Specification of the master agreement type.">
[metadata scheme]
masterConfirmationType MasterConfirmationTypeEnum (0..1) <"The type of master confirmation executed between the parties.">
[metadata scheme]
masterConfirmationAnnexType MasterConfirmationAnnexTypeEnum (0..1) <"The type of master confirmation annex executed between the parties.">
[metadata scheme]
otherAgreement string (0..1) <"Definition of an agreement that is not enumerated in the CDM.">
condition AgreementType: <"A condition to ensure that the agreement type specified is consistent with the detailed documentation identified.">
if agreementType <> LegalAgreementTypeEnum -> Other
then otherAgreement is absent
else if agreementType <> LegalAgreementTypeEnum -> MasterAgreement
then masterAgreementType is absent
else if agreementType <> LegalAgreementTypeEnum -> MasterConfirmation
then masterConfirmationType is absent and masterConfirmationAnnexType is absent
else if agreementType <> LegalAgreementTypeEnum -> Confirmation
then contractualDefinitionsType is absent
and contractualTermsSupplement is absent
and contractualMatrix is absent
condition CreditSupportAgreement: <"A condition to ensure that the credit supoort agreement type is specified when required.">
if agreementType = LegalAgreementTypeEnum -> CreditSupportAgreement
then creditSupportAgreementType exists
condition MasterConfirmation: <"If a master confirmation annex type is specified a master confirmation type must exist.">
if masterConfirmationAnnexType exists
then masterConfirmationType exists
condition CSAMarginType: <"A condition to ensure that CSA margin type is only specified if a credit support agreemnt type is specified.">
if creditSupportAgreementMarginType exists
then creditSupportAgreementType exists
type UmbrellaAgreement: <"A class to specify a set of legal entities which are part of a legal agreement beyond the two contracting parties to that agreement. This data representation reflects the ISDA Create representation.">
isApplicable boolean (1..1) <"The determination of whether Umbrella Agreement terms are Applicable (True), or Not Applicable (False)">
language string (0..1) <"The language associated with the umbrella agreement, and which applies to all the parties to the umbrella agreement.">
parties UmbrellaAgreementEntity (0..*) <"Underlying principals to the umbrella agreement.">
condition UmbrellaAgreementExists: <"Umbrella Agreement language and parties should not exist when Umbrella Agreement terms are Not Applicable.">
if isApplicable = True then language exists and parties exists
type UmbrellaAgreementEntity extends LegalEntity: <"A class to specify the legal entities that are part of the umbrella agreement.">
terms string (0..1) <"The terms that might be associated with each party to the umbrella agreement.">
type AddressForNotices: <"Specification of the address and other details for notices.">
primaryNotices ContactElection (1..1) <"Specification of primary notice details">
additionalNotices PartyContactInformation (0..*) <"The optional specification of additional information when a party requires notices to be delivered to more than one address.">
type OtherAgreementTerms: <"A class to specify a related legal agreement. For example, ISDA 2016 Credit Support Annex for Initial Margin, paragraph 13, General Principles, (s): Other CSA and Japanese Law CSA (VM). | ISDA 2016 Credit Support Annex for Variation Margin, paragraph 13, (o): Other CSA.">
isSpecified boolean (1..1) <"The qualification of whether some other related agreement is specified (True) or not (False).">
legalDocument string (0..1) <"The specification of this other agreement, when the qualification is True.">
condition LegalDocumentNotSpecified: <"A data rule to enforce that the related legal agreement should not be referenced if it is deemed as not specified as part of the boolean attribute.">
if isSpecified = False then legalDocument is absent
condition LegalDocumentSpecified: <"A data rule to enforce that the related legal agreement should be referenced if it is deemed as specified as part of the boolean attribute.">
if isSpecified = True then legalDocument exists
type ClosedState: <" A class to qualify the closed state of an execution or a contract through the combination or a state (e.g. terminated, novated) and a set of dates: activity date, effective date and, when relevant, last payment date.">
state ClosedStateEnum (1..1) <"The qualification of what gave way to the contract or execution closure, e.g. allocation, termination, ...">
activityDate date (1..1) <"The activity date on which the closing state took place, i.e. either the event date of the closing event (e.g. option exercise, contract early termination) or the contractual termination date.">
effectiveDate date (0..1) <"The date on which the closing event contractually takes effect, when different from the activity date. When an explicit event effective date attribute is associated with the closing event, it will be that date. In the case of a cancellation event, it will be the date on which the cancelled event took place.">
lastPaymentDate date (0..1) <"The date associated with the last payment in relation to the artefact (e.g. contract) to which this closed state applies. As an example, in the case of an early termination event, it would be the settlement date of the associated fee, if applicable.">
© 2015 - 2025 Weber Informatics LLC | Privacy Policy