diff --git a/s2tQuicktypeUtil.js b/s2tQuicktypeUtil.js index 6f5672328..cb63b51b8 100644 --- a/s2tQuicktypeUtil.js +++ b/s2tQuicktypeUtil.js @@ -44,7 +44,7 @@ while (dirIndex < inputs.length) { //const quicktypeExec = "node " + ["..","quicktype","dist","index.js"].join(path.sep); const quicktypeExec = ['.', 'node_modules', '.bin', 'quicktype'].join(path.sep); -const command = `${quicktypeExec} --prefer-const-values --prefer-unions -s schema -o ${outputFile} ${sources}`; +const command = `${quicktypeExec} --prefer-const-values --prefer-unions --no-combine-classes -s schema -o ${outputFile} ${sources}`; console.log('command to run: ' + command); exec(command, function(error, stdout, stderr) { diff --git a/schemas/context/chatSearchCriteria.schema.json b/schemas/context/chatSearchCriteria.schema.json index e6210ae82..afe1a9b4b 100644 --- a/schemas/context/chatSearchCriteria.schema.json +++ b/schemas/context/chatSearchCriteria.schema.json @@ -16,22 +16,7 @@ "description": "An array of criteria that should match chats returned from by a search.\n\n⚠️ Operators (and/or/not) are not defined in `fdc3.chat.searchCriteria`. It is up to the application that processes the FDC3 Intent to choose and apply the operators between the criteria.\n\nEmpty search criteria can be supported to allow resetting of filters.", "type": "array", "items": { - "anyOf": [ - { - "$ref": "instrument.schema.json#" - }, - { - "$ref": "organization.schema.json#" - }, - { - "$ref": "contact.schema.json#" - }, - { - "type": "string", - "title": "Free text", - "description": "Free text to be used for a keyword search" - } - ] + "$ref": "#/$defs/SearchCriteria" } } }, @@ -41,6 +26,29 @@ }, { "$ref": "context.schema.json#/definitions/BaseContext" } ], + "$defs": { + "SearchCriteria": { + "type": "object", + "title": "Search Criteria", + "description": "An individual criteria against which to match chat messages, based on an FDC3 context or free-text string.", + "oneOf": [ + { + "$ref": "instrument.schema.json#" + }, + { + "$ref": "contact.schema.json#" + }, + { + "$ref": "organization.schema.json#" + }, + { + "type": "string", + "title": "Free text", + "description": "Free text to be used for a keyword search" + } + ] + } + }, "examples": [ { "type": "fdc3.chat.searchCriteria", diff --git a/schemas/context/contact.schema.json b/schemas/context/contact.schema.json index e2066b58c..1b88ceb3b 100644 --- a/schemas/context/contact.schema.json +++ b/schemas/context/contact.schema.json @@ -28,6 +28,10 @@ "description": "FactSet Permanent Identifier representing the contact" } } + }, + "name": { + "type": "string", + "description": "An optional human-readable name for the contact" } }, "required": [ diff --git a/schemas/context/contactList.schema.json b/schemas/context/contactList.schema.json index ed571f38c..4b7e2dd5e 100644 --- a/schemas/context/contactList.schema.json +++ b/schemas/context/contactList.schema.json @@ -11,6 +11,18 @@ "type": { "const": "fdc3.contactList" }, + "id": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Contact List Identifiers", + "description": "One or more identifiers that refer to the contact list in an OMS, EMS or related system. Specific key names for systems are expected to be standardized in future." + }, + "name": { + "type": "string", + "description": "An optional human-readable summary of the contact list" + }, "contacts": { "type": "array", "title": "List of Contacts", @@ -47,4 +59,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/schemas/context/country.schema.json b/schemas/context/country.schema.json index 66bb354e6..4cab154e2 100644 --- a/schemas/context/country.schema.json +++ b/schemas/context/country.schema.json @@ -37,6 +37,10 @@ "deprecated": true } } + }, + "name": { + "type": "string", + "description": "An optional human-readable name for the country" } }, "required": [ @@ -54,4 +58,4 @@ } } ] -} \ No newline at end of file +} diff --git a/schemas/context/instrument.schema.json b/schemas/context/instrument.schema.json index 7ea8435d8..0a7df0876 100644 --- a/schemas/context/instrument.schema.json +++ b/schemas/context/instrument.schema.json @@ -63,6 +63,11 @@ } } }, + "name": { + "type": "string", + "title": "Name", + "description": "An optional human-readable name for the instrument" + }, "market": { "description": "The `market` map can be used to further specify the instrument and help achieve interoperability between disparate data sources. This is especially useful when using an `id` field that is not globally unique.", "type": "object", diff --git a/schemas/context/instrumentList.schema.json b/schemas/context/instrumentList.schema.json index 4fb2627ea..ae366bea8 100644 --- a/schemas/context/instrumentList.schema.json +++ b/schemas/context/instrumentList.schema.json @@ -11,6 +11,18 @@ "type": { "const": "fdc3.instrumentList" }, + "id": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Instrument List Identifiers", + "description": "One or more identifiers that refer to the instrument list in an OMS, EMS or related system. Specific key names for systems are expected to be standardized in future." + }, + "name": { + "type": "string", + "description": "An optional human-readable summary of the instrument list" + }, "instruments": { "type": "array", "title": "List of instruments", @@ -48,4 +60,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/schemas/context/orderList.schema.json b/schemas/context/orderList.schema.json index b282ce3e0..325324991 100644 --- a/schemas/context/orderList.schema.json +++ b/schemas/context/orderList.schema.json @@ -11,6 +11,18 @@ "type": { "const": "fdc3.orderList" }, + "id": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Order List Identifiers", + "description": "One or more identifiers that refer to the order list in an OMS, EMS or related system. Specific key names for systems are expected to be standardized in future." + }, + "name": { + "type": "string", + "description": "An optional human-readable summary of the order list" + }, "orders": { "type": "array", "items": { @@ -46,4 +58,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/schemas/context/organization.schema.json b/schemas/context/organization.schema.json index 84716863c..39994b19e 100644 --- a/schemas/context/organization.schema.json +++ b/schemas/context/organization.schema.json @@ -33,6 +33,10 @@ "description": "FactSet Permanent Identifier representing the organization" } } + }, + "name": { + "type": "string", + "description": "An optional human-readable name for the organization" } }, "required": [ diff --git a/schemas/context/portfolio.schema.json b/schemas/context/portfolio.schema.json index c2a69a194..68cc3ea97 100644 --- a/schemas/context/portfolio.schema.json +++ b/schemas/context/portfolio.schema.json @@ -18,6 +18,18 @@ }, "title": "Portfolio positions", "description": "The List of Positions which make up the Portfolio" + }, + "id": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Portfolio Identifiers", + "description": "One or more identifiers that refer to the portfolio in an OMS, EMS or related system. Specific key names for systems are expected to be standardized in future." + }, + "name": { + "type": "string", + "description": "An optional human-readable name for the portfolio" } }, "required": [ @@ -63,4 +75,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/schemas/context/position.schema.json b/schemas/context/position.schema.json index 4e90bcec5..f9e52c75d 100644 --- a/schemas/context/position.schema.json +++ b/schemas/context/position.schema.json @@ -20,6 +20,18 @@ "type": "number", "title": "The size of the holding represented by this position", "description": "The amount of the holding, e.g. a number of shares" + }, + "id": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Position Identifiers", + "description": "One or more identifiers that refer to the position in an OMS, EMS or related system. Specific key names for systems are expected to be standardized in future." + }, + "name": { + "type": "string", + "description": "An optional human-readable name for the position" } }, "required": [ @@ -41,4 +53,4 @@ "holding": 2000000 } ] -} \ No newline at end of file +} diff --git a/schemas/context/tradeList.schema.json b/schemas/context/tradeList.schema.json index dee810127..fab024e92 100644 --- a/schemas/context/tradeList.schema.json +++ b/schemas/context/tradeList.schema.json @@ -18,7 +18,20 @@ }, "title": "List of Trades", "description": "An array of trade contexts that forms the list." + }, + "id": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Trade List Identifiers", + "description": "One or more identifiers that refer to the trade list in an OMS, EMS or related system. Specific key names for systems are expected to be standardized in future." + }, + "name": { + "type": "string", + "description": "An optional human-readable name for the trade list" } + }, "required": [ "type", @@ -71,4 +84,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/context/ContextTypes.ts b/src/context/ContextTypes.ts index 9b8e98568..e9330e971 100644 --- a/src/context/ContextTypes.ts +++ b/src/context/ContextTypes.ts @@ -235,9 +235,12 @@ export interface InstrumentElement { * interoperability between disparate data sources. This is especially useful when using an * `id` field that is not globally unique. */ - market?: OrganizationMarket; - type: "fdc3.instrument"; - name?: string; + market?: SearchCriteriaMarket; + /** + * An optional human-readable name for the instrument + */ + name?: string; + type: "fdc3.instrument"; [property: string]: any; } @@ -301,7 +304,7 @@ export interface PurpleInstrumentIdentifiers { * interoperability between disparate data sources. This is especially useful when using an * `id` field that is not globally unique. */ -export interface OrganizationMarket { +export interface SearchCriteriaMarket { /** * */ @@ -442,9 +445,16 @@ export interface ContactListObject { * An array of contact contexts that forms the list. */ contacts: ContactElement[]; - type: "fdc3.contactList"; - id?: { [key: string]: any }; - name?: string; + /** + * One or more identifiers that refer to the contact list in an OMS, EMS or related system. + * Specific key names for systems are expected to be standardized in future. + */ + id?: { [key: string]: string }; + /** + * An optional human-readable summary of the contact list + */ + name?: string; + type: "fdc3.contactList"; [property: string]: any; } @@ -457,9 +467,12 @@ export interface ContactElement { /** * Identifiers that relate to the Contact represented by this context */ - id: PurpleContactIdentifiers; - type: "fdc3.contact"; + id: PurpleContactIdentifiers; + /** + * An optional human-readable name for the contact + */ name?: string; + type: "fdc3.contact"; [property: string]: any; } @@ -721,7 +734,7 @@ export interface ChatSearchCriteria { * * Empty search criteria can be supported to allow resetting of filters. */ - criteria: Array; + criteria: SearchCriteria[]; type: "fdc3.chat.searchCriteria"; id?: { [key: string]: any }; name?: string; @@ -729,23 +742,26 @@ export interface ChatSearchCriteria { } /** + * An individual criteria against which to match chat messages, based on an FDC3 context or + * free-text string. + * * financial instrument that relates to the definition of this product * * * * A financial instrument from any asset class. * + * The contact that initiated the interaction + * + * A person contact that can be engaged with through email, calling, messaging, CMS, etc. + * * An entity that can be used when referencing private companies and other organizations * where a specific instrument is not available or desired e.g. CRM and News workflows. * * It is valid to include extra properties and metadata as part of the organization payload, * but the minimum requirement is for at least one specified identifier to be provided. - * - * The contact that initiated the interaction - * - * A person contact that can be engaged with through email, calling, messaging, CMS, etc. */ -export interface OrganizationObject { +export interface SearchCriteria { /** * Any combination of instrument identifiers can be used together to resolve ambiguity, or * for a better match. Not all applications will use the same instrument identifiers, which @@ -761,9 +777,9 @@ export interface OrganizationObject { * fields, define a property that makes it clear what the value represents. Doing so will * make interpretation easier for the developers of target applications. * - * Identifiers for the organization, at least one must be provided. - * * Identifiers that relate to the Contact represented by this context + * + * Identifiers for the organization, at least one must be provided. */ id: Identifiers; /** @@ -771,9 +787,16 @@ export interface OrganizationObject { * interoperability between disparate data sources. This is especially useful when using an * `id` field that is not globally unique. */ - market?: OrganizationMarket; - type: TentacledInteractionType; - name?: string; + market?: SearchCriteriaMarket; + /** + * An optional human-readable name for the instrument + * + * An optional human-readable name for the contact + * + * An optional human-readable name for the organization + */ + name?: string; + type: SearchCriteriaType; [property: string]: any; } @@ -792,9 +815,9 @@ export interface OrganizationObject { * fields, define a property that makes it clear what the value represents. Doing so will * make interpretation easier for the developers of target applications. * - * Identifiers for the organization, at least one must be provided. - * * Identifiers that relate to the Contact represented by this context + * + * Identifiers for the organization, at least one must be provided. */ export interface Identifiers { /** @@ -808,9 +831,9 @@ export interface Identifiers { /** * * - * FactSet Permanent Identifier representing the organization - * * FactSet Permanent Identifier representing the contact + * + * FactSet Permanent Identifier representing the organization */ FDS_ID?: string; /** @@ -839,6 +862,10 @@ export interface Identifiers { * Unstandardized stock tickers */ ticker?: string; + /** + * The email address for the contact + */ + email?: string; /** * The Legal Entity Identifier (LEI) is a 20-character, alpha-numeric code based on the ISO * 17442 standard developed by the International Organization for Standardization (ISO). It @@ -846,10 +873,6 @@ export interface Identifiers { * legal entities participating in financial transactions. */ LEI?: string; - /** - * The email address for the contact - */ - email?: string; [property: string]: any; } @@ -859,7 +882,7 @@ export interface Identifiers { * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or * `'Meeting'` although other string values are permitted. */ -export type TentacledInteractionType = "fdc3.instrument" | "fdc3.organization" | "fdc3.contact"; +export type SearchCriteriaType = "fdc3.instrument" | "fdc3.contact" | "fdc3.organization"; /** * Free text to be used for a keyword search @@ -875,9 +898,12 @@ export interface Contact { /** * Identifiers that relate to the Contact represented by this context */ - id: FluffyContactIdentifiers; - type: "fdc3.contact"; + id: FluffyContactIdentifiers; + /** + * An optional human-readable name for the contact + */ name?: string; + type: "fdc3.contact"; [property: string]: any; } @@ -908,9 +934,16 @@ export interface ContactList { * An array of contact contexts that forms the list. */ contacts: ContactElement[]; - type: "fdc3.contactList"; - id?: { [key: string]: any }; - name?: string; + /** + * One or more identifiers that refer to the contact list in an OMS, EMS or related system. + * Specific key names for systems are expected to be standardized in future. + */ + id?: { [key: string]: string }; + /** + * An optional human-readable summary of the contact list + */ + name?: string; + type: "fdc3.contactList"; [property: string]: any; } @@ -986,9 +1019,12 @@ export interface Context { * applications. */ export interface Country { - id: CountryID; - type: "fdc3.country"; + id: CountryID; + /** + * An optional human-readable name for the country + */ name?: string; + type: "fdc3.country"; [property: string]: any; } @@ -1092,10 +1128,18 @@ export interface Email { export interface EmailRecipients { /** * Identifiers that relate to the Contact represented by this context + * + * One or more identifiers that refer to the contact list in an OMS, EMS or related system. + * Specific key names for systems are expected to be standardized in future. + */ + id?: ContactTIdentifiers; + /** + * An optional human-readable name for the contact + * + * An optional human-readable summary of the contact list */ - id?: EmailRecipientsID; - type: EmailRecipientsType; name?: string; + type: EmailRecipientsType; /** * An array of contact contexts that forms the list. */ @@ -1105,8 +1149,11 @@ export interface EmailRecipients { /** * Identifiers that relate to the Contact represented by this context + * + * One or more identifiers that refer to the contact list in an OMS, EMS or related system. + * Specific key names for systems are expected to be standardized in future. */ -export interface EmailRecipientsID { +export interface ContactTIdentifiers { /** * The email address for the contact */ @@ -1159,8 +1206,11 @@ export interface Instrument { * `id` field that is not globally unique. */ market?: PurpleMarket; - type: "fdc3.instrument"; - name?: string; + /** + * An optional human-readable name for the instrument + */ + name?: string; + type: "fdc3.instrument"; [property: string]: any; } @@ -1255,13 +1305,20 @@ export interface PurpleMarket { * populate this part of the contract with custom identifiers if so desired. */ export interface InstrumentList { + /** + * One or more identifiers that refer to the instrument list in an OMS, EMS or related + * system. Specific key names for systems are expected to be standardized in future. + */ + id?: { [key: string]: string }; /** * An array of instrument contexts that forms the list. */ instruments: InstrumentElement[]; - type: "fdc3.instrumentList"; - id?: { [key: string]: any }; - name?: string; + /** + * An optional human-readable summary of the instrument list + */ + name?: string; + type: "fdc3.instrumentList"; [property: string]: any; } @@ -1560,13 +1617,20 @@ export interface ProductObject { * part of the contract with custom identifiers if so desired. */ export interface OrderList { + /** + * One or more identifiers that refer to the order list in an OMS, EMS or related system. + * Specific key names for systems are expected to be standardized in future. + */ + id?: { [key: string]: string }; + /** + * An optional human-readable summary of the order list + */ + name?: string; /** * An array of order contexts that forms the list. */ orders: OrderElement[]; type: "fdc3.orderList"; - id?: { [key: string]: any }; - name?: string; [property: string]: any; } @@ -1627,9 +1691,12 @@ export interface Organization { /** * Identifiers for the organization, at least one must be provided. */ - id: OrganizationIdentifiers; - type: "fdc3.organization"; + id: OrganizationIdentifiers; + /** + * An optional human-readable name for the organization + */ name?: string; + type: "fdc3.organization"; [property: string]: any; } @@ -1678,13 +1745,20 @@ export interface OrganizationIdentifiers { * this part of the contract with custom identifiers if so desired. */ export interface Portfolio { + /** + * One or more identifiers that refer to the portfolio in an OMS, EMS or related system. + * Specific key names for systems are expected to be standardized in future. + */ + id?: { [key: string]: string }; + /** + * An optional human-readable name for the portfolio + */ + name?: string; /** * The List of Positions which make up the Portfolio */ positions: PositionElement[]; type: "fdc3.portfolio"; - id?: { [key: string]: any }; - name?: string; [property: string]: any; } @@ -1706,11 +1780,18 @@ export interface PositionElement { /** * The amount of the holding, e.g. a number of shares */ - holding: number; + holding: number; + /** + * One or more identifiers that refer to the position in an OMS, EMS or related system. + * Specific key names for systems are expected to be standardized in future. + */ + id?: { [key: string]: string }; instrument: InstrumentElement; - type: "fdc3.position"; - id?: { [key: string]: any }; - name?: string; + /** + * An optional human-readable name for the position + */ + name?: string; + type: "fdc3.position"; [property: string]: any; } @@ -1746,11 +1827,18 @@ export interface Position { /** * The amount of the holding, e.g. a number of shares */ - holding: number; + holding: number; + /** + * One or more identifiers that refer to the position in an OMS, EMS or related system. + * Specific key names for systems are expected to be standardized in future. + */ + id?: { [key: string]: string }; instrument: InstrumentElement; - type: "fdc3.position"; - id?: { [key: string]: any }; - name?: string; + /** + * An optional human-readable name for the position + */ + name?: string; + type: "fdc3.position"; [property: string]: any; } @@ -1879,13 +1967,20 @@ export interface Trade { * part of the contract with custom identifiers if so desired. */ export interface TradeList { + /** + * One or more identifiers that refer to the trade list in an OMS, EMS or related system. + * Specific key names for systems are expected to be standardized in future. + */ + id?: { [key: string]: string }; + /** + * An optional human-readable name for the trade list + */ + name?: string; /** * An array of trade contexts that forms the list. */ trades: TradeElement[]; type: "fdc3.tradeList"; - id?: { [key: string]: any }; - name?: string; [property: string]: any; } @@ -2411,9 +2506,9 @@ const typeMap: any = { ], "any"), "InstrumentElement": o([ { json: "id", js: "id", typ: r("PurpleInstrumentIdentifiers") }, - { json: "market", js: "market", typ: u(undefined, r("OrganizationMarket")) }, - { json: "type", js: "type", typ: r("PurpleInteractionType") }, + { json: "market", js: "market", typ: u(undefined, r("SearchCriteriaMarket")) }, { json: "name", js: "name", typ: u(undefined, "") }, + { json: "type", js: "type", typ: r("InstrumentType") }, ], "any"), "PurpleInstrumentIdentifiers": o([ { json: "BBG", js: "BBG", typ: u(undefined, "") }, @@ -2426,7 +2521,7 @@ const typeMap: any = { { json: "SEDOL", js: "SEDOL", typ: u(undefined, "") }, { json: "ticker", js: "ticker", typ: u(undefined, "") }, ], "any"), - "OrganizationMarket": o([ + "SearchCriteriaMarket": o([ { json: "BBG", js: "BBG", typ: u(undefined, "") }, { json: "COUNTRY_ISOALPHA2", js: "COUNTRY_ISOALPHA2", typ: u(undefined, "") }, { json: "MIC", js: "MIC", typ: u(undefined, "") }, @@ -2450,14 +2545,14 @@ const typeMap: any = { ], "any"), "ContactListObject": o([ { json: "contacts", js: "contacts", typ: a(r("ContactElement")) }, - { json: "type", js: "type", typ: r("ContactListType") }, - { json: "id", js: "id", typ: u(undefined, m("any")) }, + { json: "id", js: "id", typ: u(undefined, m("")) }, { json: "name", js: "name", typ: u(undefined, "") }, + { json: "type", js: "type", typ: r("ContactListType") }, ], "any"), "ContactElement": o([ { json: "id", js: "id", typ: r("PurpleContactIdentifiers") }, - { json: "type", js: "type", typ: r("FluffyInteractionType") }, { json: "name", js: "name", typ: u(undefined, "") }, + { json: "type", js: "type", typ: r("ContactType") }, ], "any"), "PurpleContactIdentifiers": o([ { json: "email", js: "email", typ: u(undefined, "") }, @@ -2517,16 +2612,16 @@ const typeMap: any = { { json: "url", js: "url", typ: u(undefined, "") }, ], "any"), "ChatSearchCriteria": o([ - { json: "criteria", js: "criteria", typ: a(u(r("OrganizationObject"), "")) }, + { json: "criteria", js: "criteria", typ: a(r("SearchCriteria")) }, { json: "type", js: "type", typ: r("ChatSearchCriteriaType") }, { json: "id", js: "id", typ: u(undefined, m("any")) }, { json: "name", js: "name", typ: u(undefined, "") }, ], "any"), - "OrganizationObject": o([ + "SearchCriteria": o([ { json: "id", js: "id", typ: r("Identifiers") }, - { json: "market", js: "market", typ: u(undefined, r("OrganizationMarket")) }, - { json: "type", js: "type", typ: r("TentacledInteractionType") }, + { json: "market", js: "market", typ: u(undefined, r("SearchCriteriaMarket")) }, { json: "name", js: "name", typ: u(undefined, "") }, + { json: "type", js: "type", typ: r("SearchCriteriaType") }, ], "any"), "Identifiers": o([ { json: "BBG", js: "BBG", typ: u(undefined, "") }, @@ -2538,13 +2633,13 @@ const typeMap: any = { { json: "RIC", js: "RIC", typ: u(undefined, "") }, { json: "SEDOL", js: "SEDOL", typ: u(undefined, "") }, { json: "ticker", js: "ticker", typ: u(undefined, "") }, - { json: "LEI", js: "LEI", typ: u(undefined, "") }, { json: "email", js: "email", typ: u(undefined, "") }, + { json: "LEI", js: "LEI", typ: u(undefined, "") }, ], "any"), "Contact": o([ { json: "id", js: "id", typ: r("FluffyContactIdentifiers") }, - { json: "type", js: "type", typ: r("FluffyInteractionType") }, { json: "name", js: "name", typ: u(undefined, "") }, + { json: "type", js: "type", typ: r("ContactType") }, ], "any"), "FluffyContactIdentifiers": o([ { json: "email", js: "email", typ: u(undefined, "") }, @@ -2552,9 +2647,9 @@ const typeMap: any = { ], "any"), "ContactList": o([ { json: "contacts", js: "contacts", typ: a(r("ContactElement")) }, - { json: "type", js: "type", typ: r("ContactListType") }, - { json: "id", js: "id", typ: u(undefined, m("any")) }, + { json: "id", js: "id", typ: u(undefined, m("")) }, { json: "name", js: "name", typ: u(undefined, "") }, + { json: "type", js: "type", typ: r("ContactListType") }, ], "any"), "Context": o([ { json: "id", js: "id", typ: u(undefined, m("any")) }, @@ -2563,8 +2658,8 @@ const typeMap: any = { ], "any"), "Country": o([ { json: "id", js: "id", typ: r("CountryID") }, - { json: "type", js: "type", typ: r("CountryType") }, { json: "name", js: "name", typ: u(undefined, "") }, + { json: "type", js: "type", typ: r("CountryType") }, ], "any"), "CountryID": o([ { json: "COUNTRY_ISOALPHA2", js: "COUNTRY_ISOALPHA2", typ: u(undefined, "") }, @@ -2589,20 +2684,20 @@ const typeMap: any = { { json: "name", js: "name", typ: u(undefined, "") }, ], "any"), "EmailRecipients": o([ - { json: "id", js: "id", typ: u(undefined, r("EmailRecipientsID")) }, - { json: "type", js: "type", typ: r("EmailRecipientsType") }, + { json: "id", js: "id", typ: u(undefined, r("ContactTIdentifiers")) }, { json: "name", js: "name", typ: u(undefined, "") }, + { json: "type", js: "type", typ: r("EmailRecipientsType") }, { json: "contacts", js: "contacts", typ: u(undefined, a(r("ContactElement"))) }, ], "any"), - "EmailRecipientsID": o([ + "ContactTIdentifiers": o([ { json: "email", js: "email", typ: u(undefined, "") }, { json: "FDS_ID", js: "FDS_ID", typ: u(undefined, "") }, ], "any"), "Instrument": o([ { json: "id", js: "id", typ: r("FluffyInstrumentIdentifiers") }, { json: "market", js: "market", typ: u(undefined, r("PurpleMarket")) }, - { json: "type", js: "type", typ: r("PurpleInteractionType") }, { json: "name", js: "name", typ: u(undefined, "") }, + { json: "type", js: "type", typ: r("InstrumentType") }, ], "any"), "FluffyInstrumentIdentifiers": o([ { json: "BBG", js: "BBG", typ: u(undefined, "") }, @@ -2622,10 +2717,10 @@ const typeMap: any = { { json: "name", js: "name", typ: u(undefined, "") }, ], "any"), "InstrumentList": o([ + { json: "id", js: "id", typ: u(undefined, m("")) }, { json: "instruments", js: "instruments", typ: a(r("InstrumentElement")) }, - { json: "type", js: "type", typ: r("InstrumentListType") }, - { json: "id", js: "id", typ: u(undefined, m("any")) }, { json: "name", js: "name", typ: u(undefined, "") }, + { json: "type", js: "type", typ: r("InstrumentListType") }, ], "any"), "Interaction": o([ { json: "description", js: "description", typ: "" }, @@ -2689,10 +2784,10 @@ const typeMap: any = { { json: "type", js: "type", typ: r("ProductType") }, ], "any"), "OrderList": o([ + { json: "id", js: "id", typ: u(undefined, m("")) }, + { json: "name", js: "name", typ: u(undefined, "") }, { json: "orders", js: "orders", typ: a(r("OrderElement")) }, { json: "type", js: "type", typ: r("OrderListType") }, - { json: "id", js: "id", typ: u(undefined, m("any")) }, - { json: "name", js: "name", typ: u(undefined, "") }, ], "any"), "OrderElement": o([ { json: "details", js: "details", typ: u(undefined, r("FluffyOrderDetails")) }, @@ -2705,8 +2800,8 @@ const typeMap: any = { ], "any"), "Organization": o([ { json: "id", js: "id", typ: r("OrganizationIdentifiers") }, - { json: "type", js: "type", typ: r("StickyInteractionType") }, { json: "name", js: "name", typ: u(undefined, "") }, + { json: "type", js: "type", typ: r("OrganizationType") }, ], "any"), "OrganizationIdentifiers": o([ { json: "FDS_ID", js: "FDS_ID", typ: u(undefined, "") }, @@ -2714,24 +2809,24 @@ const typeMap: any = { { json: "PERMID", js: "PERMID", typ: u(undefined, "") }, ], "any"), "Portfolio": o([ + { json: "id", js: "id", typ: u(undefined, m("")) }, + { json: "name", js: "name", typ: u(undefined, "") }, { json: "positions", js: "positions", typ: a(r("PositionElement")) }, { json: "type", js: "type", typ: r("PortfolioType") }, - { json: "id", js: "id", typ: u(undefined, m("any")) }, - { json: "name", js: "name", typ: u(undefined, "") }, ], "any"), "PositionElement": o([ { json: "holding", js: "holding", typ: 3.14 }, + { json: "id", js: "id", typ: u(undefined, m("")) }, { json: "instrument", js: "instrument", typ: r("InstrumentElement") }, - { json: "type", js: "type", typ: r("PositionType") }, - { json: "id", js: "id", typ: u(undefined, m("any")) }, { json: "name", js: "name", typ: u(undefined, "") }, + { json: "type", js: "type", typ: r("PositionType") }, ], "any"), "Position": o([ { json: "holding", js: "holding", typ: 3.14 }, + { json: "id", js: "id", typ: u(undefined, m("")) }, { json: "instrument", js: "instrument", typ: r("InstrumentElement") }, - { json: "type", js: "type", typ: r("PositionType") }, - { json: "id", js: "id", typ: u(undefined, m("any")) }, { json: "name", js: "name", typ: u(undefined, "") }, + { json: "type", js: "type", typ: r("PositionType") }, ], "any"), "Product": o([ { json: "id", js: "id", typ: m("") }, @@ -2753,10 +2848,10 @@ const typeMap: any = { { json: "type", js: "type", typ: r("TradeType") }, ], "any"), "TradeList": o([ + { json: "id", js: "id", typ: u(undefined, m("")) }, + { json: "name", js: "name", typ: u(undefined, "") }, { json: "trades", js: "trades", typ: a(r("TradeElement")) }, { json: "type", js: "type", typ: r("TradeListType") }, - { json: "id", js: "id", typ: u(undefined, m("any")) }, - { json: "name", js: "name", typ: u(undefined, "") }, ], "any"), "TradeElement": o([ { json: "id", js: "id", typ: m("") }, @@ -2784,7 +2879,7 @@ const typeMap: any = { "ActionType": [ "fdc3.action", ], - "PurpleInteractionType": [ + "InstrumentType": [ "fdc3.instrument", ], "TimeRangeType": [ @@ -2805,7 +2900,7 @@ const typeMap: any = { "ChartType": [ "fdc3.chart", ], - "FluffyInteractionType": [ + "ContactType": [ "fdc3.contact", ], "ContactListType": [ @@ -2827,7 +2922,7 @@ const typeMap: any = { "ChatMessageType": [ "fdc3.chat.message", ], - "TentacledInteractionType": [ + "SearchCriteriaType": [ "fdc3.contact", "fdc3.instrument", "fdc3.organization", @@ -2866,7 +2961,7 @@ const typeMap: any = { "OrderListType": [ "fdc3.orderList", ], - "StickyInteractionType": [ + "OrganizationType": [ "fdc3.organization", ], "PositionType": [