Skip to content

Commit

Permalink
Update event-position-type.rosetta based upon feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisisla authored Oct 5, 2023
1 parent 3cdffeb commit bc05367
Showing 1 changed file with 21 additions and 22 deletions.
43 changes: 21 additions & 22 deletions rosetta-source/src/main/rosetta/event-position-type.rosetta
Original file line number Diff line number Diff line change
Expand Up @@ -49,35 +49,34 @@ type Portfolio: <" A Portfolio represents an aggregation of multiple Positions,
aggregationParameters AggregationParameters (1..1) <"Describes the portfolio by describing how to aggregate all its relevant Events.">
portfolioState PortfolioState (1..1) <"Describes the state of the Portfolio as a list of Positions resulting from the aggregation.">

type InventoryBase: <"A data type that can be used to describe the inventory of securities that a party holds. ">
party Party (0..*) <"Defines all parties involved for the list of inventory records in this set of inventory. For example, when used to describe securities lending availability, this could hold the sender of the availability, the intended recipient, the beneficial owner(s), the lender (which may differ from the sender as the lender may have the same piece of availability going through multiple agents), an agent or a venue.">
partyRole PartyRole (0..*) <"Defines the role(s) that party(ies) may have in relation to the inventory.">
type InventoryBase: <"A data type that can be used to describe an inventory of securities.">
inventoryRecord InventoryRecord (0..*) <"An array holding the list of inventory being described. Each element in the inventoryRecord array represents an individual piece of inventory i.e. a security.">

type Inventory extends InventoryBase: <"Describes the inventory of securities that a party holds.">

type InventoryRecordBase: <"An individual piece of inventory. This represents a single security.">
identifer AssignedIdentifier (1..1) <"Unique identifier for this record. This can be used as a reference by a party when they want to uniquely identify a specific piece of inventory.">
identifer AssignedIdentifier (1..1) <"Unique identifier for this record. This can be used to uniquely identify a specific piece of inventory.">
security Security (1..1) <"The security details.">

type InventoryRecord extends InventoryRecordBase: <"Describes an individual piece of inventory.">
type Inventory extends InventoryBase: <"Describes an inventory of securities.">

type SecurityAvailability extends InventoryBase: <"Availability describes a list of availability records, with each record being an individual security and its associated criteria. Criteria can include the quantity available, the rate at which the security is available to borrow at, as well as other details that can affect the decision as to whether a party wants to borrow the securities being offered.">
messageInformation MessageInformation (0..1) <"Allows details related to the availability messaging to be defined">
securityAvailabilityRecord SecurityAvailabilityRecord (0..*) <"The availability being described. Each element in the array represents an individual piece of availability.">
type InventoryRecord extends InventoryRecordBase: <"Describes an individual piece of inventory.">

type SecurityAvailabilityRecord extends InventoryRecordBase: <"An individual piece of availability. This represents a single security and its associated criteria. The criteria are used by the borrower to decide whether they want to borrow the securities offered for this security.">
expirationDateTime zonedDateTime (0..1) <"The security may only be available for a specific period of time.">
collateral CollateralProvisions (0..*) <"The collateralType under CollateralPositions can often be required when determining if the piece of availability being described is suitable for the party to make an offer on.">
partyRole PartyRole (0..*) <"An individual piece of availability may be held by several agents/LEIs. Including the party role at this level allows us to reference the party holding this specific record.">
type AvailableInventory: <"A data type that can be used to describe the inventory of securities that a party holds. ">
party Party (0..*) <"Defines all parties involved for the list of inventory records in this set of inventory. For example, when used to describe securities lending availability, this could hold the sender of the availability, the intended recipient, the beneficial owner(s), the lender (which may differ from the sender as the lender may have the same piece of availability going through multiple agents), an agent or a venue.">
partyRole PartyRole (0..*) <"Defines the role(s) that party(ies) may have in relation to the inventory.">
availableInventoryRecord AvailableInventoryRecord (0..*) <"An array holding the list of inventory being described. Each element in the inventoryRecord array represents an individual piece of inventory i.e. a security.">

type AvailableInventoryRecord extends InventoryRecord: <"An individual piece of available inventory. This represents a single security and its associated criteria. The criteria are used to describe any restrictions on the securities.">
expirationDateTime zonedDateTime (0..1) <"There may be a set period/time restriction associated to the security.">
collateral CollateralProvisions (0..*) <"The type of collateral can often be required when determining if the piece of availability being described is suitable for a party.">
partyRole PartyRole (0..*) <"An individual security may be held by several agents. Including the party role at this level allows us to reference the party holding this specific item.">
priceQuantity PriceQuantity (0..*) <"Primarily used to hold the quantity of the security. An additional element can be used to hold an optional rate associated to this piece of availability.">

type SecurityLocate extends InventoryBase: <"A locate is an approval from a broker that needs to be obtained prior to effecting a short sale in an equity security.">
messageInformation MessageInformation (0..1) <"Allows details related to the locate messaging to be defined">
securityLocateRecord SecurityLocateRecord (1..*) <"Describes the security that is being located. Each element in the array represents an individual security request.">
type SecurityAvailability extends AvailableInventory: <"SecurityAvailability describes a list of availability records, with each record being an individual security and its associated criteria. Criteria can include the quantity available, the rate at which the security is available to borrow at, as well as other details that can affect the decision as to whether a party wants to borrow the securities being offered.">
messageInformation MessageInformation (0..1) <"Allows details related to the availability messaging to be defined">

type SecurityLocateRecord extends InventoryRecordBase: <"Details of an individual security that needs to be located.">
expirationDateTime zonedDateTime (0..1) <"The request may have a set period within which the security is required.">
collateral CollateralProvisions (0..*) <"The type of collateral can often be required by the lender when deciding if they want to provide the security to the party requesting it.">
partyRole PartyRole (0..*) <"An individual security may be held by an agent. Including the party role at this level allows us to reference the party holding this specific item.">
priceQuantity PriceQuantity (0..*) <"The quantity of the security being requested.">
type SecurityLocate extends AvailableInventory: <"A locate is an approval from a broker that needs to be obtained prior to effecting a short sale in an equity security. Similar to SecurityAvailability, a borrower can request a single or multiple securities, but at least one must be requested.">
messageInformation MessageInformation (0..1) <"Allows details related to the locate messaging to be defined">

condition RequestOneSecurityMinimum: <"A locate must request the availability of at least one security.">
availableInventoryRecord exists

0 comments on commit bc05367

Please sign in to comment.