Skip to content

Instantly share code, notes, and snippets.

@rizwansaeed
Created June 5, 2019 08:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rizwansaeed/a8413c9dd55715b1a6e71fce93f2f89c to your computer and use it in GitHub Desktop.
Save rizwansaeed/a8413c9dd55715b1a6e71fce93f2f89c to your computer and use it in GitHub Desktop.
{
"swagger": "2.0",
"info": {
"version": "0.10.190",
"title": "LUSID API"
},
"paths": {
"/api/instruments": {
"post": {
"tags": [
"Instruments"
],
"summary": "Upsert instruments",
"description": "Upsert instruments",
"operationId": "UpsertInstruments",
"consumes": [],
"produces": [
"text/plain",
"application/json",
"text/json"
],
"parameters": [
{
"name": "requests",
"in": "body",
"description": "The instrument definitions",
"required": false,
"schema": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/InstrumentDefinition"
}
}
}
],
"responses": {
"201": {
"description": "Success",
"schema": {
"$ref": "#/definitions/UpsertInstrumentsResponse"
}
},
"400": {
"description": "The details of the input related failure",
"schema": {
"$ref": "#/definitions/LusidValidationProblemDetails"
}
},
"default": {
"description": "Error response",
"schema": {
"$ref": "#/definitions/LusidProblemDetails"
}
}
}
}
}
},
"definitions": {
"Link": {
"required": [
"relation",
"href",
"method"
],
"type": "object",
"properties": {
"relation": {
"enum": [
"Root",
"Properties",
"Transactions",
"Details",
"Constituents",
"Holdings",
"Commands",
"HoldingsAdjustments",
"Parent",
"PropertySchema",
"EntitySchema",
"NextPage",
"PreviousPage",
"Quote",
"ConstituentsAdjustments",
"Values"
],
"type": "string"
},
"href": {
"type": "string"
},
"description": {
"type": "string"
},
"method": {
"enum": [
"POST",
"GET",
"PATCH",
"DELETE"
],
"type": "string"
}
}
},
"LusidValidationProblemDetails": {
"required": [
"name",
"code"
],
"type": "object",
"properties": {
"name": {
"type": "string"
},
"errorDetails": {
"uniqueItems": false,
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"code": {
"format": "int32",
"type": "integer"
},
"errors": {
"type": "object",
"additionalProperties": {
"uniqueItems": false,
"type": "array",
"items": {
"type": "string"
}
},
"readOnly": true
},
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"format": "int32",
"type": "integer"
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
}
}
},
"LusidProblemDetails": {
"required": [
"name",
"code"
],
"type": "object",
"properties": {
"name": {
"type": "string"
},
"errorDetails": {
"uniqueItems": false,
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"code": {
"format": "int32",
"type": "integer"
},
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"format": "int32",
"type": "integer"
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
}
}
},
"ResourceId": {
"type": "object",
"properties": {
"scope": {
"type": "string"
},
"code": {
"type": "string"
}
}
},
"Version": {
"description": "Describes the version metadata of an entity.",
"type": "object",
"properties": {
"effectiveFrom": {
"format": "date-time",
"description": "",
"type": "string"
},
"asAtDate": {
"format": "date-time",
"description": "",
"type": "string"
}
}
},
"ErrorDetail": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string"
},
"detail": {
"type": "string"
}
}
},
"InstrumentDefinition": {
"required": [
"name",
"identifiers"
],
"type": "object",
"properties": {
"name": {
"description": "Required. The name of the instrument",
"type": "string"
},
"identifiers": {
"description": "Required. A set of identifiers that identify this instrument",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/InstrumentIdValue"
}
},
"properties": {
"description": "Optional. A collection of properties to upsert on the instrument.",
"uniqueItems": false,
"type": "array",
"items": {
"$ref": "#/definitions/InstrumentProperty"
}
},
"lookThroughPortfolioId": {
"$ref": "#/definitions/ResourceId",
"description": "Optional. The identifier of the portfolio that represents this instrument."
},
"definition": {
"$ref": "#/definitions/InstrumentEconomicDefinition",
"description": "Expanded instrument definition"
}
}
},
"InstrumentIdValue": {
"required": [
"value"
],
"type": "object",
"properties": {
"value": {
"description": "The value of the instrument id, which must not be empty or null. e.g, 'BBG123456'",
"type": "string"
},
"effectiveAt": {
"format": "date-time",
"description": "The effective at date of the instrument id, which is optional. The default value in the null case\r\nis DateTimeOffset.MinValue.",
"type": "string"
}
}
},
"InstrumentProperty": {
"type": "object",
"properties": {
"key": {
"description": "The property key of the property, e.g, 'Instrument/default/Isin'",
"type": "string"
},
"value": {
"$ref": "#/definitions/PropertyValue",
"description": "The value of the property, which must not be empty or null. e.g, 'US0378331005'"
}
}
},
"InstrumentEconomicDefinition": {
"description": "Expanded instrument definition",
"required": [
"instrumentFormat",
"content"
],
"type": "object",
"properties": {
"instrumentFormat": {
"type": "string"
},
"content": {
"type": "string"
}
}
},
"PropertyValue": {
"type": "object",
"properties": {
"labelValue": {
"description": "",
"type": "string"
},
"metricValue": {
"$ref": "#/definitions/MetricValue",
"description": ""
},
"effectiveFrom": {
"format": "date-time",
"description": "Date for which the property is effective from",
"type": "string"
}
}
},
"MetricValue": {
"type": "object",
"properties": {
"value": {
"format": "double",
"type": "number"
},
"unit": {
"type": "string"
}
}
},
"UpsertInstrumentsResponse": {
"type": "object",
"properties": {
"href": {
"type": "string"
},
"values": {
"description": "The collection of upserted instruments with their latest parameters.",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/Instrument"
}
},
"failed": {
"description": "If any instruments failed to be upserted, they will be listed in 'Failed', along\r\nwith a reason why.",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/ErrorDetail"
}
},
"links": {
"uniqueItems": false,
"type": "array",
"items": {
"$ref": "#/definitions/Link"
}
}
}
},
"Instrument": {
"required": [
"state"
],
"type": "object",
"properties": {
"href": {
"type": "string"
},
"lusidInstrumentId": {
"description": "The lusid instrument id (LUID) of the instrument",
"type": "string"
},
"version": {
"$ref": "#/definitions/Version",
"description": "The version of the instrument"
},
"name": {
"description": "The name of the instrument",
"type": "string"
},
"identifiers": {
"description": "The set of identifiers that can be used to uniquely identify the instrument",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"properties": {
"description": "Any requested instrument properties. If no property can be found for the instrument, then\r\na value of 'Unknown' will be returned",
"uniqueItems": false,
"type": "array",
"items": {
"$ref": "#/definitions/Property"
}
},
"lookthroughPortfolio": {
"$ref": "#/definitions/ResourceId",
"description": "The lookthrough portfolio of the instrument (if any)."
},
"instrumentDefinition": {
"$ref": "#/definitions/InstrumentEconomicDefinition",
"description": "The economic definition of the instrument for an OTC or instrument where an expanded definition exists."
},
"state": {
"enum": [
"Active",
"Inactive"
],
"type": "string"
},
"links": {
"uniqueItems": false,
"type": "array",
"items": {
"$ref": "#/definitions/Link"
}
}
}
},
"Property": {
"required": [
"key",
"value"
],
"type": "object",
"properties": {
"key": {
"description": "",
"type": "string"
},
"value": {
"description": "",
"type": "object"
},
"unit": {
"description": "",
"type": "string"
},
"effectiveFrom": {
"format": "date-time",
"description": "Date for which the property is effective from",
"type": "string"
}
}
}
},
"securityDefinitions": {
"oauth2": {
"flow": "implicit",
"authorizationUrl": "https://lusid.okta.com/oauth2/aus5al5yopbHW2wJn2p6/v1/authorize",
"type": "oauth2",
"description": "OAuth2 Implicit Grant"
}
},
"security": [
{
"oauth2": []
}
],
"tags": [
{
"name": "Instruments",
"description": "Methods for interacting with instruments"
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment