Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into rvincent-qualify_Co…
Browse files Browse the repository at this point in the history
…ntractFormation_Enhancement_for_transfer
  • Loading branch information
JayasriR committed Nov 22, 2023
2 parents 83ed7b4 + 2791826 commit 17cae35
Show file tree
Hide file tree
Showing 9 changed files with 153 additions and 64 deletions.
32 changes: 24 additions & 8 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,30 @@
# *Infrastructure - Dependency Update*
# _Event Model - CounterpartyPositionBusinessEvent - Cardinality of the After state_

_Background_

Following the release of counterparty position in the Common Domain Model, a modelling update is required. The cardinality of the attribute `after` of type `CounterpartyPositionBusinessEvent` has been relaxed to unbounded list `(0..*)`. This change will support the cases when multiple `after` position states are generated as a result of a _partial option exercise_ event being applied to the position.


_What is being released?_

This release updates the `rosetta-dsl` and `rosetta-bundle` dependency.
- The cardinality of the `after` position state within `CounterpartyPositionBusinessEvent`is relaxed to unbounded list.

_Data types_

- `after` attribute of type `CounterpartyPositionState` updated to multiple cardinality.

_Review directions_

In the CDM Portal, select the Textual Browser and inspect each of the changes listed above.

Changes can be reviewed in PR: https://github.com/finos/common-domain-model/pull/2539

# *Event / Product Model - FpML 5.13 Schema*

_What is being released?_

Version updates include:
- `rosetta-dsl` 9.0.3: DSL performance and stability improvements. For further details see DSL release notes: https://github.com/REGnosys/rosetta-dsl/releases/tag/9.0.3.
- `rosetta-dsl` 9.0.2: improved DSL error messages. For further details see DSL release notes: https://github.com/REGnosys/rosetta-dsl/releases/tag/9.0.2.
- Updated FpML schemas to latest, updating the corresponding enumerations.
This release updates the FpML schema used for FpML to CDM ingestion. The version has been updated from `5.13 Second Working Draft` to `5.13 Third Working Draft`. For further details, visit https://www.fpml.org/spec/fpml-5-13-3-wd-3/.

There are no changes to the model, and test expectations remain the same.
_Review Directions_

The changes can be reviewed in PR https://github.com/finos/common-domain-model/pull/2528.
This change has no impact on the model or test expectations. The changes can be reviewed in PR [2542](https://github.com/finos/common-domain-model/pull/2542).
2 changes: 2 additions & 0 deletions docs/event-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -841,8 +841,10 @@ enum EventIntentEnum:
OptionExercise
OptionalExtension
OptionalCancellation
PortfolioRebalancing
PrincipalExchange
Reallocation
Repurchase
```

## Lineage
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
== Financial Products Markup Language is subject to the FpML public license.
== A copy of this license is available at http://www.fpml.org/license/license.html
-->
<xsd:schema xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns="http://www.fpml.org/FpML-5/confirmation" xmlns:fpml-annotation="http://www.fpml.org/annotation" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.fpml.org/FpML-5/confirmation" ecore:documentRoot="FpML" ecore:nsPrefix="conf" ecore:package="org.fpml.confirmation" version="$Revision: 14153 $" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:schema xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns="http://www.fpml.org/FpML-5/confirmation" xmlns:fpml-annotation="http://www.fpml.org/annotation" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.fpml.org/FpML-5/confirmation" ecore:documentRoot="FpML" ecore:nsPrefix="conf" ecore:package="org.fpml.confirmation" version="$Revision: 14811 $" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:include schemaLocation="fpml-shared-5-13.xsd" />
<xsd:complexType name="ActualPrice">
<xsd:sequence>
Expand Down Expand Up @@ -310,6 +310,28 @@
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="CommodityClassification">
<xsd:annotation>
<xsd:documentation xml:lang="en">A type containing all commodity classification codes belonging to a specific commodity classification system.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="code" type="CommodityClassificationLayer" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation xml:lang="en">Specifies a commodity classification code. The layer and classification system the code belongs to are specified in the coding scheme's URI.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CommodityClassificationLayer">
<xsd:annotation>
<xsd:documentation xml:lang="en">A type used to identify commodities. It can be used with several schemes in order to specify different classification layers or different classification systems or jurisdictions.</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="Scheme">
<xsd:attribute name="commodityClassificationScheme" type="NonEmptyURI" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="CommodityDetails">
<xsd:simpleContent>
<xsd:extension base="Scheme">
Expand Down Expand Up @@ -1504,16 +1526,25 @@
<xsd:documentation xml:lang="en">A group used to specify the commodity underlyer in the event that no ISDA Commofity Reference Price exists.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="commodityBase" type="CommodityBase">
<xsd:annotation>
<xsd:documentation xml:lang="en">A coding scheme value to identify the base type of the commodity being traded. Where possible, this should follow the naming convention used in the 2005 ISDA Commodity Definitions. For example, 'Oil'.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="commodityDetails" type="CommodityDetails">
<xsd:annotation>
<xsd:documentation xml:lang="en">A coding scheme value to identify the commodity being traded more specifically. Where possible, this should follow the naming convention used in the 2005 ISDA Commodity Definitions. For example, 'Brent'.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:choice>
<xsd:sequence>
<xsd:element name="commodityBase" type="CommodityBase">
<xsd:annotation>
<xsd:documentation xml:lang="en">A coding scheme value to identify the base type of the commodity being traded. Where possible, this should follow the naming convention used in the 2005 ISDA Commodity Definitions. For example, 'Oil'.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="commodityDetails" type="CommodityDetails">
<xsd:annotation>
<xsd:documentation xml:lang="en">A coding scheme value to identify the commodity being traded more specifically. Where possible, this should follow the naming convention used in the 2005 ISDA Commodity Definitions. For example, 'Brent'.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:element name="commodityClassification" type="CommodityClassification" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation xml:lang="en">Specifies the classification of a commodity in the context of an n-layer classification system such as 2005 ISDA Commodity Definitions Sub Annex A or that in Table 4 of the Annex of the Comission Implementing Regulation (EU)laying down implementing technical standards for the application of Regulation (EU) No 648/2012 of the European Parliament and of the Council with regard to the standards, formats, frequency and methods and arrangements for reporting for EMIR Refit.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:element name="unit" type="QuantityUnit">
<xsd:annotation>
<xsd:documentation xml:lang="en">A coding scheme value to identify the unit of measure (e.g. Therms) in which the undelryer is denominated. Where possible, this should follow the naming convention used in the 2005 ISDA Commodity Definitions.</xsd:documentation>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
== Financial Products Markup Language is subject to the FpML public license.
== A copy of this license is available at http://www.fpml.org/license/license.html
-->
<xsd:schema xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns="http://www.fpml.org/FpML-5/confirmation" xmlns:fpml-annotation="http://www.fpml.org/annotation" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.fpml.org/FpML-5/confirmation" ecore:documentRoot="FpML" ecore:nsPrefix="conf" ecore:package="org.fpml.confirmation" version="$Revision: 14139 $" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:schema xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns="http://www.fpml.org/FpML-5/confirmation" xmlns:fpml-annotation="http://www.fpml.org/annotation" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.fpml.org/FpML-5/confirmation" ecore:documentRoot="FpML" ecore:nsPrefix="conf" ecore:package="org.fpml.confirmation" version="$Revision: 14803 $" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:include schemaLocation="fpml-option-shared-5-13.xsd" />
<xsd:complexType name="AbsoluteTolerance">
<xsd:annotation>
Expand Down Expand Up @@ -38,7 +38,7 @@
<xsd:documentation xml:lang="en">The average price leg of an average price commodity bullion or non-precious metal forward transaction.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="CommoditySwapLeg">
<xsd:extension base="CommodityLeg">
<xsd:sequence>
<xsd:group ref="PayerReceiver.model">
<xsd:annotation>
Expand Down Expand Up @@ -938,20 +938,12 @@
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:element ref="commodityForwardLeg" />
<xsd:element ref="physicalCommodityForwardLeg" />
<xsd:group ref="CommodityContent.model" minOccurs="0"></xsd:group>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="CommodityForwardLeg" abstract="true">
<xsd:annotation>
<xsd:documentation xml:lang="en">Abstract base class for all commodity forward legs.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="Leg" />
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="CommodityFrequencyType">
<xsd:annotation>
<xsd:documentation xml:lang="en">Frequency Type for use in Pricing Date specifications.</xsd:documentation>
Expand Down Expand Up @@ -1084,6 +1076,14 @@
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="CommodityLeg" abstract="true">
<xsd:annotation>
<xsd:documentation xml:lang="en">Abstract base class for all commodity legs</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="Leg" />
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="CommodityMarketDisruption">
<xsd:annotation>
<xsd:documentation xml:lang="en">ISDA 1993 or 2005 commodity market disruption elements.</xsd:documentation>
Expand Down Expand Up @@ -1880,14 +1880,6 @@
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="CommoditySwapLeg" abstract="true">
<xsd:annotation>
<xsd:documentation xml:lang="en">Abstract base class for all commodity swap legs</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="Leg" />
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="CommoditySwaption">
<xsd:annotation>
<xsd:documentation xml:lang="en">Commodity Swaption.</xsd:documentation>
Expand Down Expand Up @@ -2524,7 +2516,7 @@
<xsd:documentation xml:lang="en">The common components of a financially settled leg of a Commodity Swap. This is an abstract type and should be extended by commodity-specific types.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="CommoditySwapLeg">
<xsd:extension base="CommodityLeg">
<xsd:sequence>
<xsd:group ref="PayerReceiver.model" />
</xsd:sequence>
Expand Down Expand Up @@ -2966,7 +2958,7 @@
<xsd:documentation xml:lang="en">The details of a fixed payment. Can be used for a forward transaction or as the base for a more complex fixed leg component such as the fixed leg of a swap.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="CommoditySwapLeg">
<xsd:extension base="CommodityLeg">
<xsd:sequence>
<xsd:group ref="PayerReceiver.model">
<xsd:annotation>
Expand Down Expand Up @@ -3168,19 +3160,28 @@
<xsd:documentation xml:lang="en">The common components of a physically settled leg of a Commodity Forward. This is an abstract type and should be extended by commodity-specific types.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="CommodityForwardLeg">
<xsd:extension base="PhysicalLegBase">
<xsd:sequence>
<xsd:group ref="PayerReceiver.model" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PhysicalLegBase" abstract="true">
<xsd:complexContent>
<xsd:extension base="CommodityLeg">
<xsd:sequence>
<xsd:element name="commodityClassification" type="CommodityClassification" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PhysicalSwapLeg" abstract="true">
<xsd:annotation>
<xsd:documentation xml:lang="en">The common components of a physically settled leg of a Commodity Swap. This is an abstract type and should be extended by commodity-specific types.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="CommoditySwapLeg">
<xsd:extension base="PhysicalLegBase">
<xsd:sequence>
<xsd:group ref="PayerReceiver.model" />
</xsd:sequence>
Expand Down Expand Up @@ -3592,12 +3593,12 @@
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:element name="bullionPhysicalLeg" type="BullionPhysicalLeg" substitutionGroup="commodityForwardLeg">
<xsd:element name="bullionPhysicalLeg" type="BullionPhysicalLeg" substitutionGroup="physicalCommodityForwardLeg">
<xsd:annotation>
<xsd:documentation xml:lang="en">The physical leg of a Commodity Forward Transaction for which the underlyer is Bullion.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="coalPhysicalLeg" type="CoalPhysicalLeg" substitutionGroup="commoditySwapLeg">
<xsd:element name="coalPhysicalLeg" type="CoalPhysicalLeg" substitutionGroup="physicalLeg">
<xsd:annotation>
<xsd:documentation xml:lang="en">Physically settled coal leg.</xsd:documentation>
</xsd:annotation>
Expand All @@ -3617,7 +3618,7 @@
<xsd:documentation xml:lang="en">Defines a commodity forward product.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="commodityForwardLeg" type="CommodityForwardLeg" abstract="true">
<xsd:element name="physicalCommodityForwardLeg" type="PhysicalLegBase" abstract="true">
<xsd:annotation>
<xsd:documentation xml:lang="en">Defines the substitutable commodity forward leg.</xsd:documentation>
</xsd:annotation>
Expand Down Expand Up @@ -3647,12 +3648,22 @@
<xsd:documentation xml:lang="en">Specifies the return payments of a commodity return swap. There can be one or two return legs. In simple return swaps there is a return leg and an interest (a.k.a. 'fee') leg. In the case of a outperformance swap there are two return legs: the return performance of two commodity underlyers are swapped. In the case of a fully-funded return swap there is no financing component and, therefore, only a single return leg is specified.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="commodityPhysicalLeg" type="PhysicalLegBase" abstract="true">
<xsd:annotation>
<xsd:documentation xml:lang="en">Defines the substitutable physical leg</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="physicalLeg" type="PhysicalLegBase" abstract="true" substitutionGroup="commoditySwapLeg">
<xsd:annotation>
<xsd:documentation xml:lang="en">Physical Commodity Leg.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="commoditySwap" type="CommoditySwap" substitutionGroup="product">
<xsd:annotation>
<xsd:documentation xml:lang="en">Defines a commodity swap product.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="commoditySwapLeg" type="CommoditySwapLeg" abstract="true">
<xsd:element name="commoditySwapLeg" type="CommodityLeg" abstract="true">
<xsd:annotation>
<xsd:documentation xml:lang="en">Defines the substitutable commodity swap leg</xsd:documentation>
</xsd:annotation>
Expand All @@ -3667,12 +3678,12 @@
<xsd:documentation xml:lang="en">Specifies the variance payments of a commodity variance swap.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="electricityPhysicalLeg" type="ElectricityPhysicalLeg" substitutionGroup="commoditySwapLeg">
<xsd:element name="electricityPhysicalLeg" type="ElectricityPhysicalLeg" substitutionGroup="physicalLeg">
<xsd:annotation>
<xsd:documentation xml:lang="en">Physically settled electricity leg.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="environmentalPhysicalLeg" type="EnvironmentalPhysicalLeg" substitutionGroup="commoditySwapLeg">
<xsd:element name="environmentalPhysicalLeg" type="EnvironmentalPhysicalLeg" substitutionGroup="physicalLeg">
<xsd:annotation>
<xsd:documentation xml:lang="en">Physically settled environmental leg.</xsd:documentation>
</xsd:annotation>
Expand All @@ -3687,17 +3698,17 @@
<xsd:documentation xml:lang="en">Floating Price leg.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="gasPhysicalLeg" type="GasPhysicalLeg" substitutionGroup="commoditySwapLeg">
<xsd:element name="gasPhysicalLeg" type="GasPhysicalLeg" substitutionGroup="physicalLeg">
<xsd:annotation>
<xsd:documentation xml:lang="en">Physically settled natural gas leg.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="metalPhysicalLeg" type="MetalPhysicalLeg" substitutionGroup="commodityForwardLeg">
<xsd:element name="metalPhysicalLeg" type="MetalPhysicalLeg" substitutionGroup="physicalCommodityForwardLeg">
<xsd:annotation>
<xsd:documentation xml:lang="en">Physically settled metal products leg.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="oilPhysicalLeg" type="OilPhysicalLeg" substitutionGroup="commoditySwapLeg">
<xsd:element name="oilPhysicalLeg" type="OilPhysicalLeg" substitutionGroup="physicalLeg">
<xsd:annotation>
<xsd:documentation xml:lang="en">Physically settled oil or refined products leg.</xsd:documentation>
</xsd:annotation>
Expand Down
Loading

0 comments on commit 17cae35

Please sign in to comment.