diff --git a/RELEASE.md b/RELEASE.md index c2f9a93d81..99eee60159 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,3 +1,29 @@ +# *CDM - A CDM user can access a contract's closed status component* + +_Background_ + +The ISDA Foundations project is a model extension built on top of the CDM that contains legal IP (contained in legal documentation references) only available to ISDA members. Additions or updates to the ISDA Foundations project can cause it to go out of sync with the CDM. + +The issue [#3348](https://github.com/finos/common-domain-model/issues/3348) proposes to migrate the ISDA Foundations project to the CDM, without the ISDA legal documentation IP + +Preparation must be first be done in the CDM to synchronise it with the ISDA Foundations project and simplify the migration of any ISDA Foundations components. + +_What is being released?_ + +As part of the preparation for the migration of any ISDA Foundations components to the CDM, this release allows CDM users to access a contract’s closed status component in the event namespace. + +1. Moved `ClosedStateEnum` to `event.common.enum` +2. Moved `ClosedState` to `event.common.type` + + +_Backward-incompatible changes_ + +None. + +_Review Directions_ + +The change can be reviewed in PR: [#3386](https://github.com/finos/common-domain-model/pull/3386). + # *CDM - Addition of changedCriteria to outputSpecification when using the CloneEligibleCollateralWithChangedTreatment function* _Background_ @@ -52,4 +78,4 @@ This release fixes usage of GitHub Actions APIs that have been deprecated, as pe _Review directions_ -The changes can be reviewed in PR: [#3379](https://github.com/finos/common-domain-model/pull/3379) \ No newline at end of file +The changes can be reviewed in PR: [#3379](https://github.com/finos/common-domain-model/pull/3379) diff --git a/examples/src/test/java/org/finos/cdm/example/functions/CreateNovationEventTest.java b/examples/src/test/java/org/finos/cdm/example/functions/CreateNovationEventTest.java index f6b49ccda7..57b8a18101 100644 --- a/examples/src/test/java/org/finos/cdm/example/functions/CreateNovationEventTest.java +++ b/examples/src/test/java/org/finos/cdm/example/functions/CreateNovationEventTest.java @@ -13,7 +13,6 @@ import cdm.event.workflow.EventTimestampQualificationEnum; import cdm.event.workflow.WorkflowStep; import cdm.event.workflow.functions.Create_AcceptedWorkflowStepFromInstruction; -import cdm.legaldocumentation.common.ClosedStateEnum; import cdm.observable.asset.PriceQuantity; import com.google.common.collect.Lists; import com.google.inject.Inject; diff --git a/rosetta-source/src/main/rosetta/event-common-enum.rosetta b/rosetta-source/src/main/rosetta/event-common-enum.rosetta index 159faa0271..c79ab64639 100644 --- a/rosetta-source/src/main/rosetta/event-common-enum.rosetta +++ b/rosetta-source/src/main/rosetta/event-common-enum.rosetta @@ -164,3 +164,12 @@ enum ValuationSourceEnum: <"Source for the valuation of the transaction by the v enum PriceTimingEnum: ClosingPrice <"The last price anyone paid for a share of a product during the business hours of the exchange where the product is traded on a business day."> OpeningPrice <"The first price anyone paid for a share of a product during the business hours of the exchange where the product is traded on a business day."> + +enum ClosedStateEnum: <"The enumerated values to specify what led to the contract or execution closure."> + Allocated <"The execution or contract has been allocated."> + Cancelled <"The execution or contract has been cancelled."> + Exercised <"The (option) contract has been exercised."> + Expired <"The (option) contract has expired without being exercised."> + Matured <"The contract has reached its contractual termination date."> + Novated <"The contract has been novated. This state applies to the stepped-out contract component of the novation event."> + Terminated <"The contract has been subject of an early termination event."> diff --git a/rosetta-source/src/main/rosetta/event-common-type.rosetta b/rosetta-source/src/main/rosetta/event-common-type.rosetta index 7b1f222be5..c8d56afff2 100644 --- a/rosetta-source/src/main/rosetta/event-common-type.rosetta +++ b/rosetta-source/src/main/rosetta/event-common-type.rosetta @@ -679,3 +679,10 @@ type MarginCallResponse extends MarginCallBase: <"Represents common attributes r marginCallResponseAction MarginCallResponseAction (1..*) <"Specifies the margin call action details, including collateral to be moved and direction."> marginResponseType MarginCallResponseTypeEnum (1..1) <"Indicates the response type, such as, is the margin call response a 'full' 'part' agreement or 'dispute'."> agreedAmountBaseCurrency Money (1..1) <"Indicates the amount that posting entity agrees to remit in response to margin call (in base currency)."> + +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."> diff --git a/rosetta-source/src/main/rosetta/legaldocumentation-common-enum.rosetta b/rosetta-source/src/main/rosetta/legaldocumentation-common-enum.rosetta index aa4c12746a..647583274c 100644 --- a/rosetta-source/src/main/rosetta/legaldocumentation-common-enum.rosetta +++ b/rosetta-source/src/main/rosetta/legaldocumentation-common-enum.rosetta @@ -280,12 +280,3 @@ enum TerminationCurrencyConditionEnum: FreelyAvailable <"A currency that is freely available."> PaymentsDueAndFreelyAvailable <"A currency in which payments would be due under one or more Transactions and that is freely available."> Specified <"Termination Currency Conditions are specified."> - -enum ClosedStateEnum: <"The enumerated values to specify what led to the contract or execution closure."> - Allocated <"The execution or contract has been allocated."> - Cancelled <"The execution or contract has been cancelled."> - Exercised <"The (option) contract has been exercised."> - Expired <"The (option) contract has expired without being exercised."> - Matured <"The contract has reached its contractual termination date."> - Novated <"The contract has been novated. This state applies to the stepped-out contract component of the novation event."> - Terminated <"The contract has been subject of an early termination event."> diff --git a/rosetta-source/src/main/rosetta/legaldocumentation-common-type.rosetta b/rosetta-source/src/main/rosetta/legaldocumentation-common-type.rosetta index f760afe654..d53625af68 100644 --- a/rosetta-source/src/main/rosetta/legaldocumentation-common-type.rosetta +++ b/rosetta-source/src/main/rosetta/legaldocumentation-common-type.rosetta @@ -178,10 +178,3 @@ type OtherAgreementTerms: <"A class to specify a related legal agreement. For ex 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.">