Last active
November 4, 2019 11:56
-
-
Save kosmakoff/f833181e487008b13f9f092a11527a97 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
openapi: 3.0.0 | |
info: | |
title: Holdings API | |
version: 1.0.0 | |
description: Holdings API | |
contact: | |
name: Oleg Kosmakov | |
email: [email protected] | |
paths: | |
"/v1/holdings/{id}": | |
get: | |
parameters: | |
- example: INV-123456 | |
name: id | |
schema: | |
type: string | |
in: path | |
required: true | |
responses: | |
"200": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/GetHoldingResponse" | |
description: Holding details. | |
"400": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Error" | |
description: Request validation failed | |
"404": | |
description: No holding with such ID. | |
security: | |
- BearerAuth: [] | |
operationId: getHolding | |
summary: Get Holding details. | |
parameters: | |
- examples: | |
Generic Investment ID: | |
value: INV-123456 | |
name: id | |
description: Investment ID | |
schema: | |
type: string | |
in: path | |
required: true | |
/v1/holdings: | |
get: | |
parameters: | |
- name: page.index | |
description: >- | |
The index of the requested page. If this parameter is not specified the default value | |
is used (0). | |
schema: | |
type: integer | |
in: query | |
- name: page.size | |
description: >- | |
The size of the requested page. If this parameter is not specified the default value | |
is used (10). | |
schema: | |
type: integer | |
in: query | |
responses: | |
"200": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/GetHoldingsResponse" | |
description: List of holdings. | |
"400": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Error" | |
description: Malformed request. | |
security: | |
- BearerAuth: [] | |
operationId: getHoldings | |
summary: Returns a subset of Holdings related to a specified Client. | |
/v1/assets: | |
post: | |
requestBody: | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostAssetRequest" | |
required: true | |
responses: | |
"201": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostAssetResponse" | |
description: New Asset was created. | |
"400": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Error" | |
description: Request validation failed | |
security: | |
- BearerAuth: [] | |
operationId: postAsset | |
summary: Creates new Asset. | |
"/v1/assets/{id}": | |
get: | |
responses: | |
"200": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/GetAssetResponse" | |
description: Asset corresponding to given ID. | |
"400": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Error" | |
description: Request validation failed | |
"404": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Empty" | |
description: Asset with given ID was not found. | |
security: | |
- BearerAuth: [] | |
operationId: getAsset | |
summary: Get Asset by ID. | |
patch: | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/JsonPatch" | |
examples: | |
Change Assets Sponsor: | |
value: | |
- op: replace | |
path: /sponsor | |
value: FFR | |
required: true | |
responses: | |
"204": | |
description: Asset was successfully updated. | |
"400": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Error" | |
description: Request validation failed | |
"404": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Empty" | |
description: Asset with given ID was not found. | |
security: | |
- BearerAuth: [] | |
operationId: patchAsset | |
summary: Updates Asset's properties. | |
parameters: | |
- examples: | |
Asset ID: | |
value: AST-123456 | |
name: id | |
description: Asset ID. | |
schema: | |
type: string | |
in: path | |
required: true | |
/v1/investments: | |
post: | |
requestBody: | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostInvestmentRequest" | |
required: true | |
responses: | |
"201": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostInvestmentResponse" | |
description: New Investment was created. | |
"400": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Error" | |
description: Request validation failed | |
security: | |
- BearerAuth: [] | |
operationId: postInvestment | |
summary: Creates new Investment. | |
"/v1/investments/{id}": | |
get: | |
responses: | |
"200": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/GetInvestmentResponse" | |
description: Investment corresponding to given ID. | |
"400": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Error" | |
description: Request validation failed | |
"404": | |
description: Investment with given ID was not found. | |
security: | |
- BearerAuth: [] | |
operationId: getInvestment | |
summary: Get Investment by ID. | |
patch: | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/JsonPatch" | |
examples: | |
Change Asset ID: | |
value: | |
- op: replace | |
path: /asset_id | |
value: AST-987654 | |
required: true | |
responses: | |
"204": | |
description: Investment was successfully updated. | |
"400": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Error" | |
description: Request validation failed | |
"404": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Empty" | |
description: Investment with given ID was not found. | |
security: | |
- BearerAuth: [] | |
operationId: patchInvestment | |
summary: Updates Investment's properties. | |
parameters: | |
- examples: | |
Generic Investment ID: | |
value: INV-123456 | |
name: id | |
schema: | |
type: string | |
in: path | |
required: true | |
"/v1/liquidity_requests/{id}": | |
get: | |
responses: | |
"200": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/GetLiquidityRequestResponseBody" | |
description: Liquidity Request exist with given ID. | |
"404": | |
description: Liquidity Request with given ID not found. | |
operationId: getLiquidityRequest | |
summary: Get Liquidity Request by its ID | |
patch: | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/JsonPatch" | |
required: true | |
responses: | |
"204": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Empty" | |
description: Update succeeded. | |
"400": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Error" | |
description: Request body is malformed. | |
"404": | |
description: Liquidity Request with given ID not found. | |
operationId: updateLiquidityRequest | |
summary: Update Liquidity Request properties | |
parameters: | |
- examples: | |
Generic Liquidity Request ID: | |
value: LIQ-123456 | |
name: id | |
description: Liquidity Request ID. | |
schema: | |
type: string | |
in: path | |
required: true | |
/v1/liquidity_requests: | |
get: | |
parameters: | |
- name: asdf | |
description: "" | |
schema: {} | |
in: query | |
- name: "page[index]" | |
description: >- | |
The index of the requested page. If this parameter is not specified the default value | |
is used (0). | |
schema: | |
type: integer | |
in: query | |
- name: "page[size]" | |
description: >- | |
The size of the requested page. If this parameter is not specified the default value | |
is used (10). | |
schema: | |
type: integer | |
in: query | |
- name: "sort[field]" | |
description: Specifies the field for sorting. | |
schema: | |
enum: | |
- investment_id | |
- status | |
- is_active | |
- bottom_up_pricing | |
- barq_pricing | |
- top_down_pricing | |
type: string | |
in: query | |
- name: "sort[direction]" | |
description: >- | |
Specifies the order of sorting. If this parameter is not specified the default value | |
is used (asc). | |
schema: | |
enum: | |
- asc | |
- desc | |
type: string | |
in: query | |
- name: "filter[0][field]" | |
description: Specifies the field for filtering. | |
schema: | |
enum: | |
- investment_id | |
- status | |
- is_active | |
- bottom_up_pricing | |
- barq_pricing | |
- top_down_pricing | |
type: string | |
in: query | |
- name: "filter[0][operator]" | |
schema: | |
description: Specifies the operator for filtering. | |
enum: | |
- equal | |
- not_equal | |
- greater_than | |
- greater_than_or_equal | |
- less_than | |
- less_than_or_equal | |
- starts_with | |
type: string | |
in: query | |
- name: "filter[0][value]" | |
description: Specifies the value for filtering. | |
schema: | |
type: string | |
in: query | |
responses: | |
"200": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/GetLiquidityRequestsResponseBody" | |
examples: | |
Typical response: | |
value: | |
total: 83 | |
page: | |
index: 4 | |
size: 2 | |
items: | |
- id: LIQ-000237 | |
investment_id: INV-897654 | |
status: commitment | |
is_active: true | |
account-id: ACC-854952 | |
created_at: "2019-09-17T13:45:00" | |
- id: LIQ-000222 | |
investment_id: INV-456789 | |
status: proposal | |
is_active: false | |
account-id: ACC-285639 | |
created_at: "2019-09-27T11:15:00" | |
description: List of Liquidity Requests matching the query conditions. | |
operationId: getLiquidityRequests | |
summary: List Liquidity Requests | |
description: Common filtering is supported. | |
post: | |
requestBody: | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostLiquidityRequestRequestBody" | |
required: true | |
responses: | |
"201": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostLiquidityRequestResponseBody" | |
description: Liquidity Request successfully created. | |
"400": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Error" | |
description: Request body is malformed. | |
operationId: createLiquidityRequest | |
summary: Create new Liquidity Request | |
/v1/liquidity_request_counts: | |
get: | |
parameters: | |
- examples: | |
Account IDs list: | |
value: "ACC-014824,ACC-876120" | |
name: accounts | |
description: List coma separated list of account IDs | |
schema: {} | |
in: query | |
required: true | |
responses: | |
"200": | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/GetLiquidityRequestCountsResponse" | |
description: Liquidity Requests counts mapped to account IDs | |
operationId: getLiquidityRequestCounts | |
summary: Get count of Liquidity Requests for given accounts | |
components: | |
schemas: | |
PostLiquidityRequestResponseBody: | |
title: Root Type for PostLiquidityRequestResponseBody | |
description: "" | |
type: object | |
properties: | |
id: | |
type: string | |
example: | |
id: LIQ-123456 | |
Error: | |
type: object | |
properties: | |
code: | |
type: string | |
example: VALIDATION_CODE | |
message: | |
type: string | |
example: Validation message | |
fields: | |
minProperties: 1 | |
type: object | |
additionalProperties: {} | |
example: | |
field1: Error in field 1 | |
field2: Error in Field 2 | |
GetLiquidityRequestsItem: | |
description: "" | |
required: | |
- id | |
- is_active | |
- investment_id | |
- status | |
- client_id | |
- created_at | |
type: object | |
properties: | |
id: | |
type: string | |
investment_id: | |
type: string | |
status: | |
enum: | |
- verification | |
- valuation | |
- commitment | |
- proposal | |
- funded | |
type: string | |
is_active: | |
type: boolean | |
client_id: | |
description: "" | |
type: string | |
created_at: | |
format: date-time | |
description: "" | |
type: string | |
example: | |
id: LIQ-001987 | |
investment_id: INV-000123 | |
client_id: 9c4b91b9-15fe-45f9-a0d9-232350f01687 | |
status: verification | |
is_active: true | |
GetLiquidityRequestsResponseBody: | |
description: "" | |
required: | |
- total | |
- page | |
- items | |
type: object | |
properties: | |
total: | |
description: "" | |
type: integer | |
page: | |
$ref: "#/components/schemas/Page" | |
description: "" | |
items: | |
description: "" | |
type: array | |
items: | |
$ref: "#/components/schemas/GetLiquidityRequestsItem" | |
GetHoldingResponse: | |
title: Existing holding details. | |
required: | |
- asset | |
- investment | |
type: object | |
properties: | |
asset: | |
$ref: "#/components/schemas/HoldingAssetProjection" | |
investment: | |
$ref: "#/components/schemas/HoldingInvestmentProjection" | |
Page: | |
title: Page Info | |
type: object | |
properties: | |
index: | |
type: integer | |
size: | |
type: integer | |
GetHoldingsResponse: | |
title: GetHoldingsResponse | |
required: | |
- page | |
- total | |
- items | |
type: object | |
properties: | |
total: | |
type: integer | |
page: | |
$ref: "#/components/schemas/Page" | |
items: | |
type: array | |
items: | |
$ref: "#/components/schemas/HoldingGridProjection" | |
HoldingGridProjection: | |
title: A high-level description of the holding. | |
required: | |
- account_id | |
type: object | |
properties: | |
investment_id: | |
description: "Format: INV-XXXXXX." | |
type: string | |
example: INV-123456 | |
asset_id: | |
description: "Format: AST-XXXXXX." | |
type: string | |
example: AST-123456 | |
sponsor: | |
type: string | |
example: KKR | |
fund_name: | |
type: string | |
example: KKR8 | |
status: | |
enum: | |
- in_portfolio | |
- in_trust | |
- prior_investment | |
type: string | |
account_id: | |
description: "" | |
type: string | |
example: | |
investment_id: INV-049857 | |
asset_id: AST-852147 | |
account_id: ACC-753951 | |
sponsor: Sponsor Name | |
fund_name: Fund Name | |
status: prior_investment | |
PostAssetRequest: | |
description: "" | |
required: | |
- sponsor | |
- fund_name | |
type: object | |
properties: | |
parent_type: | |
description: "" | |
enum: | |
- private_equity | |
- venture_capital | |
- leveraged_buyouts | |
- mezzanine | |
- special_situations_and_distressed | |
- hedge_funds | |
- private_real_estate | |
- not_tradable_bdc | |
- natural_resources | |
- life_settlements | |
type: string | |
sub_type: | |
description: "" | |
enum: | |
- fund | |
- fund_of_funds | |
- not_tradable_reit | |
- private_fund | |
type: string | |
sponsor: | |
description: "" | |
type: string | |
fund_name: | |
description: "" | |
type: string | |
vintage: | |
description: "A year, 4 digit string." | |
type: string | |
fund_size: | |
format: double | |
description: "" | |
type: number | |
currency: | |
description: "" | |
type: string | |
stated_fund_life: | |
description: "" | |
type: integer | |
PostAssetResponse: | |
title: Root Type for PostAssetResponseBody | |
description: "" | |
type: object | |
properties: | |
id: | |
description: Asset ID | |
type: string | |
example: | |
id: AST-123456 | |
PostInvestmentRequest: | |
description: "" | |
required: | |
- client_id | |
- asset_id | |
- status | |
- is_active | |
type: object | |
properties: | |
client_id: | |
description: "" | |
type: string | |
asset_id: | |
description: "" | |
type: string | |
commitment_investment_amount: | |
format: double | |
description: "" | |
type: number | |
investment_share_amount: | |
description: "" | |
type: integer | |
nav_available: | |
format: double | |
description: "" | |
type: number | |
as_of_date: | |
format: date-time | |
description: "" | |
type: string | |
capital_calls_to_date: | |
format: double | |
description: "" | |
type: number | |
distributions_received_to_date: | |
format: double | |
description: "" | |
type: number | |
status: | |
description: "" | |
enum: | |
- in_portfolio | |
- in_trust | |
- prior_investment | |
type: string | |
is_active: | |
description: "" | |
type: boolean | |
PostInvestmentResponse: | |
title: Root Type for PostInvestmentResponseBody | |
description: "" | |
type: object | |
properties: | |
id: | |
description: Investment ID | |
type: string | |
example: | |
id: INV-123456 | |
GetAssetResponse: | |
description: "" | |
required: | |
- sponsor | |
- fund_name | |
- id | |
type: object | |
properties: | |
parent_type: | |
description: "" | |
enum: | |
- private_equity | |
- venture_capital | |
- leveraged_buyouts | |
- mezzanine | |
- special_situations_and_distressed | |
- hedge_funds | |
- private_real_estate | |
- not_tradable_bdc | |
- natural_resources | |
- life_settlements | |
type: string | |
sub_type: | |
description: "" | |
enum: | |
- fund | |
- fund_of_funds | |
- not_tradable_reit | |
- private_fund | |
type: string | |
sponsor: | |
description: "" | |
type: string | |
fund_name: | |
description: "" | |
type: string | |
vintage: | |
description: "A year, 4 digit string." | |
type: string | |
fund_size: | |
format: double | |
description: "" | |
type: number | |
currency: | |
description: "" | |
type: string | |
stated_fund_life: | |
description: "" | |
type: integer | |
id: | |
description: Asset ID | |
type: integer | |
Empty: | |
title: Root Type for Ampty | |
description: "" | |
type: object | |
example: {} | |
JsonPatch: | |
title: Root Type for JsonPatch | |
description: "" | |
required: | |
- op | |
- path | |
type: object | |
properties: | |
op: | |
enum: | |
- replace | |
- add | |
- remove | |
type: string | |
path: | |
type: string | |
value: | |
type: string | |
example: | |
op: replace | |
path: /name | |
value: New Title | |
GetInvestmentResponse: | |
description: "" | |
required: | |
- account_id | |
- asset_id | |
- status | |
- is_active | |
- id | |
type: object | |
properties: | |
asset_id: | |
description: "" | |
type: string | |
example: AST-123456 | |
commitment_investment_amount: | |
format: double | |
description: "" | |
type: number | |
investment_share_amount: | |
description: "" | |
type: integer | |
nav_available: | |
format: double | |
description: "" | |
type: number | |
as_of_date: | |
format: date-time | |
description: "" | |
type: string | |
capital_calls_to_date: | |
format: double | |
description: "" | |
type: number | |
distributions_received_to_date: | |
format: double | |
description: "" | |
type: number | |
status: | |
description: "" | |
enum: | |
- in_portfolio | |
- in_trust | |
- prior_investment | |
type: string | |
is_active: | |
description: "" | |
type: boolean | |
id: | |
description: Investment ID. | |
type: string | |
account_id: | |
description: "" | |
type: string | |
example: | |
id: INV-012874 | |
asset_id: AST-001234 | |
commitment_investment_amount: 9.73 | |
investment_share_amount: 96 | |
nav_available: 26.11 | |
as_of_date: "2018-02-10T09:30Z" | |
capital_calls_to_date: 58.81 | |
distributions_received_to_date: 50.23 | |
status: prior_investment | |
is_active: true | |
account_id: ACC-000321 | |
HoldingAssetProjection: | |
title: Asset details | |
required: | |
- name | |
- id | |
type: object | |
properties: | |
id: | |
description: Asset ID with prefix. | |
type: string | |
parent_type: | |
enum: | |
- private_equity | |
- venture_capital | |
- leveraged_buyouts | |
- mezzanine | |
- special_situations_and_distressed | |
- hedge_funds | |
- private_real_estate | |
- ntbdc | |
- natural_resources | |
- life_settlements | |
type: string | |
sub_type: | |
enum: | |
- fund | |
- fund_of_funds | |
- nt_reit | |
- private_fund | |
type: string | |
sponsor: | |
type: string | |
example: KKR | |
fund_name: | |
type: string | |
example: KKR8 | |
vintage: | |
type: string | |
example: "2014" | |
fund_size: | |
format: double | |
type: number | |
example: "1234567890123.00" | |
currency: | |
type: string | |
example: USD | |
stated_fund_life: | |
type: integer | |
example: 10 | |
HoldingInvestmentProjection: | |
title: Investment details | |
type: object | |
properties: | |
id: | |
description: Investment ID with prefix. | |
type: string | |
example: INV-123456 | |
client_id: | |
format: uuid | |
description: Id of the Client that owns the Investment | |
type: string | |
example: 388b1e6e-ba3e-4bf5-b165-0a6354dfe271 | |
commitment_investment_amount: | |
format: double | |
type: number | |
example: "1234567890123.00" | |
investment_share_amount: | |
type: integer | |
example: 20 | |
nav_available: | |
format: double | |
type: number | |
example: "3000.21" | |
as_of_date: | |
format: date | |
type: string | |
example: "2006-07-24T00:00:00.000Z" | |
capital_calls_to_date: | |
format: double | |
type: number | |
example: "1234567890123.00" | |
distributions_received_to_date: | |
format: double | |
type: number | |
example: "1234567890123.00" | |
distributions_received_total: | |
format: double | |
type: number | |
example: "1234567890123.00" | |
status: | |
enum: | |
- in_portfolio | |
- in_trust | |
- prior_investment | |
type: string | |
is_active: | |
type: boolean | |
GetLiquidityRequestResponseBody: | |
description: "" | |
required: | |
- id | |
- is_active | |
- status | |
- created_at | |
- holdings | |
type: object | |
properties: | |
id: | |
type: string | |
status: | |
enum: | |
- verification | |
- valuation | |
- commitment | |
- proposal | |
- funded | |
type: string | |
is_active: | |
type: boolean | |
created_at: | |
format: date-time | |
description: "" | |
type: string | |
bottom_up_pricing: | |
format: double | |
description: "" | |
type: number | |
barq_pricing: | |
format: double | |
description: "" | |
type: number | |
top_down_pricing: | |
format: double | |
description: "" | |
type: number | |
final_advance_rate: | |
format: double | |
description: "" | |
type: number | |
holdings: | |
description: "" | |
type: array | |
items: | |
$ref: "#/components/schemas/HoldingGridProjection" | |
example: | |
id: LIQ-001987 | |
created_at: "2019-10-10T16:53:46" | |
status: verification | |
is_active: true | |
bottom_up_pricing: 123.45 | |
barq_pricing: 100500 | |
top_down_pricing: 42.99 | |
final_advance_rate: 45 | |
holdings: | |
- investment_id: INV-049857 | |
asset_id: AST-852147 | |
account_id: ACC-753951 | |
sponsor: Sponsor Name | |
fund_name: Fund Name | |
status: prior_investment | |
PostLiquidityRequestRequestBody: | |
title: Root Type for PostLiquidityRequestBody | |
description: "" | |
required: | |
- is_active | |
- investment_ids | |
- status | |
type: object | |
properties: | |
status: | |
enum: | |
- verification | |
- valuation | |
- commitment | |
- proposal | |
- funded | |
type: string | |
is_active: | |
type: boolean | |
bottom_up_pricing: | |
format: double | |
type: number | |
barq_pricing: | |
format: double | |
type: number | |
top_down_pricing: | |
format: double | |
type: number | |
final_advance_rate: | |
format: double | |
type: number | |
investment_ids: | |
description: List of investment IDs. | |
type: array | |
items: | |
type: string | |
example: | |
investment_ids: | |
- INV-000123 | |
- INV-000125 | |
status: verification | |
is_active: true | |
bottom_up_pricing: 123.45 | |
barq_pricing: 100500 | |
top_down_pricing: 42.99 | |
final_advance_rate: 45 | |
GetLiquidityRequestCountsResponse: | |
title: Root Type for GetLiquidityRequestCountsResponse | |
description: "" | |
type: object | |
properties: | |
counts: | |
type: object | |
properties: | |
ACC-012345: | |
format: int32 | |
type: integer | |
ACC-948528: | |
format: int32 | |
type: integer | |
example: | |
counts: | |
ACC-012345: 4 | |
ACC-948528: 21 | |
securitySchemes: | |
BearerAuth: | |
scheme: bearer | |
type: http | |
security: | |
- BearerAuth: [] | |
tags: | |
- name: Requirements documents | |
externalDocs: | |
description: Find relevant requirement documents here | |
url: "https://conf.dataart.com/display/BEN/FG02+Client+Portal+-+Portfolio+Management" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment