Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save thelfensdrfer/a3097e9540fdbf10cbfe5e46d2826ac3 to your computer and use it in GitHub Desktop.
Save thelfensdrfer/a3097e9540fdbf10cbfe5e46d2826ac3 to your computer and use it in GitHub Desktop.
eq test.yaml
openapi: 3.0.3
info:
title: equation API
version: 1.0.0
paths:
/benchmark/:
get:
operationId: benchmark_retrieve
tags:
- benchmark
security:
- cookieAuth: []
- {}
responses:
'200':
description: No response body
/benchmark/eq_autocomplete/investment_firm:
get:
operationId: benchmark_eq_autocomplete_investment_firm_retrieve
tags:
- benchmark
security:
- cookieAuth: []
- {}
responses:
'200':
description: No response body
/benchmark/eq_autocomplete/organization:
get:
operationId: benchmark_eq_autocomplete_organization_retrieve
tags:
- benchmark
security:
- cookieAuth: []
- {}
responses:
'200':
description: No response body
/benchmark/eq_autocomplete/person:
get:
operationId: benchmark_eq_autocomplete_person_retrieve
tags:
- benchmark
security:
- cookieAuth: []
- {}
responses:
'200':
description: No response body
/benchmark/organization_investments_by_industry_cleaned:
get:
operationId: benchmark_organization_investments_by_industry_cleaned_retrieve
tags:
- benchmark
security:
- cookieAuth: []
- {}
responses:
'200':
description: No response body
/benchmark/person_investments_by_industry_cleaned:
get:
operationId: benchmark_person_investments_by_industry_cleaned_retrieve
tags:
- benchmark
security:
- cookieAuth: []
- {}
responses:
'200':
description: No response body
/benchmark/valuations:
get:
operationId: benchmark_valuations_retrieve
tags:
- benchmark
security:
- cookieAuth: []
- {}
responses:
'200':
description: No response body
/clickup/list/{list_id}:
get:
operationId: clickup_list_retrieve
parameters:
- in: path
name: list_id
schema:
type: string
required: true
tags:
- clickup
security:
- cookieAuth: []
responses:
'200':
description: No response body
/clickup/list/{list_id}/investment_firms:
get:
operationId: clickup_list_investment_firms_retrieve
parameters:
- in: path
name: list_id
schema:
type: string
required: true
tags:
- clickup
security:
- cookieAuth: []
responses:
'200':
description: No response body
/clickup/lists:
get:
operationId: clickup_lists_retrieve
tags:
- clickup
security:
- cookieAuth: []
responses:
'200':
description: No response body
/clickup/task/{uuid}:
get:
operationId: clickup_task_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- clickup
security:
- cookieAuth: []
responses:
'200':
description: No response body
post:
operationId: clickup_task_create
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- clickup
security:
- cookieAuth: []
responses:
'200':
description: No response body
/clickup/token:
post:
operationId: clickup_token_create
tags:
- clickup
security:
- cookieAuth: []
responses:
'200':
description: No response body
/clients:
get:
operationId: clients_retrieve
tags:
- clients
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Client'
description: ''
post:
operationId: clients_create
tags:
- clients
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Client'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Client'
multipart/form-data:
schema:
$ref: '#/components/schemas/Client'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Client'
description: ''
/clients/{id}:
get:
operationId: clients_retrieve_2
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- clients
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Client'
description: ''
put:
operationId: clients_update
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- clients
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Client'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Client'
multipart/form-data:
schema:
$ref: '#/components/schemas/Client'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Client'
description: ''
delete:
operationId: clients_destroy
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- clients
security:
- cookieAuth: []
responses:
'204':
description: No response body
/csrf:
get:
operationId: csrf_retrieve
tags:
- csrf
security:
- cookieAuth: []
- {}
responses:
'200':
description: No response body
/dashboard_favorites/{id}:
get:
operationId: dashboard_favorites_retrieve
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- dashboard_favorites
security:
- cookieAuth: []
responses:
'200':
description: No response body
delete:
operationId: dashboard_favorites_destroy
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- dashboard_favorites
security:
- cookieAuth: []
responses:
'204':
description: No response body
/data/{model}:
post:
operationId: data_create
parameters:
- in: path
name: model
schema:
type: string
required: true
tags:
- data
security:
- cookieAuth: []
responses:
'200':
description: No response body
/data/{model}/{uuid}/{attribute}:
get:
operationId: data_retrieve
parameters:
- in: path
name: attribute
schema:
type: string
required: true
- in: path
name: model
schema:
type: string
required: true
- in: path
name: uuid
schema:
type: string
required: true
tags:
- data
security:
- cookieAuth: []
responses:
'200':
description: No response body
put:
operationId: data_update
parameters:
- in: path
name: attribute
schema:
type: string
required: true
- in: path
name: model
schema:
type: string
required: true
- in: path
name: uuid
schema:
type: string
required: true
tags:
- data
security:
- cookieAuth: []
responses:
'200':
description: No response body
/data/{model}/{uuid}/{attribute}/source/{autocomplete}:
get:
operationId: data_source_retrieve
parameters:
- in: path
name: attribute
schema:
type: string
required: true
- in: path
name: autocomplete
schema:
type: string
required: true
- in: path
name: model
schema:
type: string
required: true
- in: path
name: uuid
schema:
type: string
required: true
tags:
- data
security:
- cookieAuth: []
responses:
'200':
description: No response body
/deals:
get:
operationId: deals_retrieve
tags:
- deals
security:
- cookieAuth: []
responses:
'200':
description: No response body
/deals/activity:
get:
operationId: deals_activity_retrieve
tags:
- deals
security:
- cookieAuth: []
responses:
'200':
description: No response body
/deals/filters:
get:
operationId: deals_filters_retrieve
tags:
- deals
security:
- cookieAuth: []
responses:
'200':
description: No response body
/deals/industries:
get:
operationId: deals_industries_retrieve
tags:
- deals
security:
- cookieAuth: []
responses:
'200':
description: No response body
/deals/investors:
get:
operationId: deals_investors_retrieve
tags:
- deals
security:
- cookieAuth: []
responses:
'200':
description: No response body
/deals/markers:
get:
operationId: deals_markers_retrieve
tags:
- deals
security:
- cookieAuth: []
responses:
'200':
description: No response body
/deals/regions:
get:
operationId: deals_regions_retrieve
tags:
- deals
security:
- cookieAuth: []
responses:
'200':
description: No response body
/deals/technologies:
get:
operationId: deals_technologies_retrieve
tags:
- deals
security:
- cookieAuth: []
responses:
'200':
description: No response body
/feed/{feed}:
get:
operationId: feed_retrieve
parameters:
- in: path
name: feed
schema:
type: string
required: true
tags:
- feed
security:
- cookieAuth: []
responses:
'200':
description: No response body
/fund:
get:
operationId: fund_list
description: A viewset for getting funds.
parameters:
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
tags:
- fund
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedFundList'
description: ''
/funding_rounds/{uuid}:
get:
operationId: funding_rounds_retrieve
description: A viewset for viewing funding rounds for a specific organization.
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- funding_rounds
security:
- cookieAuth: []
responses:
'200':
description: No response body
/invalidate-cache:
get:
operationId: invalidate_cache_retrieve
tags:
- invalidate-cache
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm:
get:
operationId: investment_firm_retrieve
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/{permalink}:
get:
operationId: investment_firm_retrieve_2
description: Returns all data from elastic search for a given investment firm
+ additional fields from database
parameters:
- in: path
name: permalink
schema:
type: string
required: true
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/{permalink}/peer_group:
get:
operationId: investment_firm_peer_group_retrieve
description: returns the peer group / benchmark for a given investment firm
parameters:
- in: path
name: permalink
schema:
type: string
required: true
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/{uuid}/funds:
get:
operationId: investment_firm_funds_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/{uuid}/graduation_rates:
get:
operationId: investment_firm_graduation_rates_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/{uuid}/investor_network:
get:
operationId: investment_firm_investor_network_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/{uuid}/investors:
get:
operationId: investment_firm_investors_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/{uuid}/lists:
put:
operationId: investment_firm_lists_update
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/{uuid}/market_index:
get:
operationId: investment_firm_market_index_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/{uuid}/metrics:
get:
operationId: investment_firm_metrics_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/{uuid}/portfolio:
get:
operationId: investment_firm_portfolio_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/{uuid}/press_references:
get:
operationId: investment_firm_press_references_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/{uuid}/similar:
get:
operationId: investment_firm_similar_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/{uuid}/summary:
get:
operationId: investment_firm_summary_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/{uuid}/team:
get:
operationId: investment_firm_team_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/{uuid}/valuations:
get:
operationId: investment_firm_valuations_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/search_filter:
get:
operationId: investment_firm_search_filter_retrieve
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/investment_firm/top_gainers:
get:
operationId: investment_firm_top_gainers_retrieve
tags:
- investment_firm
security:
- cookieAuth: []
responses:
'200':
description: No response body
/list:
get:
operationId: list_list
description: A viewset for viewing lists.
parameters:
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
tags:
- list
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedListList'
description: ''
/list/{permalink}:
get:
operationId: list_retrieve
description: A viewset for viewing lists.
parameters:
- in: path
name: permalink
schema:
type: string
required: true
tags:
- list
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/List'
description: ''
delete:
operationId: list_destroy
description: A viewset for viewing lists.
parameters:
- in: path
name: permalink
schema:
type: string
required: true
tags:
- list
security:
- cookieAuth: []
responses:
'204':
description: No response body
/list/{uuid}/color:
patch:
operationId: list_color_partial_update
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- list
security:
- cookieAuth: []
responses:
'200':
description: No response body
/list/{uuid}/data_updates:
get:
operationId: list_data_updates_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- list
security:
- cookieAuth: []
responses:
'200':
description: No response body
/list/{uuid}/items/add/{model_type}/{model_uuid}:
post:
operationId: list_items_add_create
parameters:
- in: path
name: model_type
schema:
type: string
required: true
- in: path
name: model_uuid
schema:
type: string
required: true
- in: path
name: uuid
schema:
type: string
required: true
tags:
- list
security:
- cookieAuth: []
responses:
'200':
description: No response body
/list/{uuid}/permission/{email}:
put:
operationId: list_permission_update
parameters:
- in: path
name: email
schema:
type: string
required: true
- in: path
name: uuid
schema:
type: string
required: true
tags:
- list
security:
- cookieAuth: []
responses:
'200':
description: No response body
delete:
operationId: list_permission_destroy
parameters:
- in: path
name: email
schema:
type: string
required: true
- in: path
name: uuid
schema:
type: string
required: true
tags:
- list
security:
- cookieAuth: []
responses:
'204':
description: No response body
/list/funding_rounds:
get:
operationId: list_funding_rounds_retrieve
tags:
- list
security:
- cookieAuth: []
responses:
'200':
description: No response body
/list/funds:
get:
operationId: list_funds_retrieve
tags:
- list
security:
- cookieAuth: []
responses:
'200':
description: No response body
/list/item/{uuid}:
delete:
operationId: list_item_destroy
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- list
security:
- cookieAuth: []
responses:
'204':
description: No response body
/list/press_references:
get:
operationId: list_press_references_retrieve
tags:
- list
security:
- cookieAuth: []
responses:
'200':
description: No response body
/login:
post:
operationId: login_create
tags:
- login
security:
- cookieAuth: []
- {}
responses:
'200':
description: No response body
/logout:
post:
operationId: logout_create
tags:
- logout
security:
- cookieAuth: []
responses:
'200':
description: No response body
/market_trends/indices:
get:
operationId: market_trends_indices_retrieve
tags:
- market_trends
security:
- cookieAuth: []
responses:
'200':
description: No response body
/organization:
get:
operationId: organization_list
description: A viewset for all details concerning companies.
parameters:
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
tags:
- organization
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Organization'
description: ''
/organization/{permalink}:
get:
operationId: organization_retrieve
description: A viewset for all details concerning companies.
parameters:
- in: path
name: permalink
schema:
type: string
required: true
tags:
- organization
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
description: ''
/organization/{uuid}/acquirees:
get:
operationId: organization_acquirees_retrieve
description: A viewset for all details concerning companies.
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- organization
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
description: ''
/organization/{uuid}/cap_table:
get:
operationId: organization_cap_table_retrieve
description: A viewset for all details concerning companies.
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- organization
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
description: ''
/organization/{uuid}/details:
get:
operationId: organization_details_retrieve
description: A viewset for all details concerning companies.
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- organization
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
description: ''
/organization/{uuid}/fundings:
get:
operationId: organization_fundings_retrieve
description: A viewset for all details concerning companies.
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- organization
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
description: ''
/organization/{uuid}/ipo:
get:
operationId: organization_ipo_retrieve
description: A viewset for all details concerning companies.
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- organization
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
description: ''
/organization/{uuid}/locations:
get:
operationId: organization_locations_retrieve
description: A viewset for all details concerning companies.
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- organization
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
description: ''
/organization/{uuid}/similar:
get:
operationId: organization_similar_retrieve
description: A viewset for all details concerning companies.
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- organization
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
description: ''
/organization/{uuid}/team:
get:
operationId: organization_team_retrieve
description: A viewset for all details concerning companies.
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- organization
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
description: ''
/organization/search_filter:
get:
operationId: organization_search_filter_retrieve
description: A viewset for all details concerning companies.
tags:
- organization
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
description: ''
/people:
get:
operationId: people_retrieve
tags:
- people
security:
- cookieAuth: []
responses:
'200':
description: No response body
/people/{permalink}:
get:
operationId: people_retrieve_2
description: A viewset for viewing people.
parameters:
- in: path
name: permalink
schema:
type: string
required: true
tags:
- people
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PersonIndex'
description: ''
/people/{uuid}/jobs:
get:
operationId: people_jobs_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- people
security:
- cookieAuth: []
responses:
'200':
description: No response body
/people/{uuid}/lists:
put:
operationId: people_lists_update
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- people
security:
- cookieAuth: []
responses:
'200':
description: No response body
/people/{uuid}/metrics:
get:
operationId: people_metrics_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- people
security:
- cookieAuth: []
responses:
'200':
description: No response body
/people/{uuid}/network:
get:
operationId: people_network_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- people
security:
- cookieAuth: []
responses:
'200':
description: No response body
/people/{uuid}/partner_investments:
get:
operationId: people_partner_investments_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- people
security:
- cookieAuth: []
responses:
'200':
description: No response body
/people/{uuid}/portfolio:
get:
operationId: people_portfolio_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- people
security:
- cookieAuth: []
responses:
'200':
description: No response body
/people/{uuid}/similar:
get:
operationId: people_similar_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- people
security:
- cookieAuth: []
responses:
'200':
description: No response body
/people/{uuid}/track_record:
get:
operationId: people_track_record_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- people
security:
- cookieAuth: []
responses:
'200':
description: No response body
/people/search_filter:
get:
operationId: people_search_filter_retrieve
tags:
- people
security:
- cookieAuth: []
responses:
'200':
description: No response body
/portfolio_analytics:
get:
operationId: portfolio_analytics_retrieve
tags:
- portfolio_analytics
security:
- cookieAuth: []
responses:
'200':
description: No response body
post:
operationId: portfolio_analytics_create
tags:
- portfolio_analytics
security:
- cookieAuth: []
responses:
'200':
description: No response body
/portfolio_analytics/firms-base-info:
get:
operationId: portfolio_analytics_firms_base_info_retrieve
description: Given a set of firm uuids, returns the base information of the
firms from elastic, primarily name and image url
tags:
- portfolio_analytics
security:
- cookieAuth: []
responses:
'200':
description: No response body
/profile/{type}:
put:
operationId: profile_update
parameters:
- in: path
name: type
schema:
type: string
required: true
tags:
- profile
security:
- cookieAuth: []
responses:
'200':
description: No response body
/report:
get:
operationId: report_retrieve
description: A viewset for viewing reports.
tags:
- report
security:
- cookieAuth: []
responses:
'200':
description: No response body
post:
operationId: report_create
description: A viewset for viewing reports.
tags:
- report
security:
- cookieAuth: []
responses:
'201':
description: No response body
/report/{id}:
get:
operationId: report_retrieve_2
description: A viewset for viewing reports.
parameters:
- in: path
name: id
schema:
type: string
required: true
tags:
- report
security:
- cookieAuth: []
responses:
'200':
description: No response body
patch:
operationId: report_partial_update
description: A viewset for viewing reports.
parameters:
- in: path
name: id
schema:
type: string
required: true
tags:
- report
security:
- cookieAuth: []
responses:
'200':
description: No response body
delete:
operationId: report_destroy
description: A viewset for viewing reports.
parameters:
- in: path
name: id
schema:
type: string
required: true
tags:
- report
security:
- cookieAuth: []
responses:
'204':
description: No response body
/report/{uuid}/analytics:
get:
operationId: report_analytics_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
description: A UUID string identifying this report.
required: true
tags:
- report
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
description: ''
/report/{uuid}/clone:
post:
operationId: report_clone_create
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
description: A UUID string identifying this report.
required: true
tags:
- report
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Report'
multipart/form-data:
schema:
$ref: '#/components/schemas/Report'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
description: ''
/report/{uuid}/notify:
post:
operationId: report_notify_create
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
description: A UUID string identifying this report.
required: true
tags:
- report
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Report'
multipart/form-data:
schema:
$ref: '#/components/schemas/Report'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
description: ''
/report/{uuid}/portfolio:
get:
operationId: report_portfolio_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
description: A UUID string identifying this report.
required: true
tags:
- report
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
description: ''
/report/{uuid}/publish:
put:
operationId: report_publish_update
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
description: A UUID string identifying this report.
required: true
tags:
- report
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Report'
multipart/form-data:
schema:
$ref: '#/components/schemas/Report'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
description: ''
/report/{id}/restore:
put:
operationId: report_restore_update
description: A viewset for viewing reports.
parameters:
- in: path
name: id
schema:
type: string
required: true
tags:
- report
security:
- cookieAuth: []
responses:
'200':
description: No response body
/report/{uuid}/unpublish:
put:
operationId: report_unpublish_update
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
description: A UUID string identifying this report.
required: true
tags:
- report
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Report'
multipart/form-data:
schema:
$ref: '#/components/schemas/Report'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
description: ''
/report/{uuid}/updates/funding_rounds:
get:
operationId: report_updates_funding_rounds_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
description: A UUID string identifying this report.
required: true
tags:
- report
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
description: ''
/report/{uuid}/updates/organizations:
get:
operationId: report_updates_organizations_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
description: A UUID string identifying this report.
required: true
tags:
- report
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
description: ''
/report/{uuid}/updates/press_references:
get:
operationId: report_updates_press_references_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
description: A UUID string identifying this report.
required: true
tags:
- report
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
description: ''
/search:
get:
operationId: search_retrieve
tags:
- search
security:
- cookieAuth: []
responses:
'200':
description: No response body
/search/kpi:
get:
operationId: search_kpi_retrieve
tags:
- search
security:
- cookieAuth: []
responses:
'200':
description: No response body
/status/:
get:
operationId: status_retrieve
tags:
- status
security:
- cookieAuth: []
- {}
responses:
'200':
description: No response body
/team/{uuid}/alumni:
get:
operationId: team_alumni_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- team
security:
- cookieAuth: []
responses:
'200':
description: No response body
/team/{uuid}/average:
get:
operationId: team_average_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- team
security:
- cookieAuth: []
responses:
'200':
description: No response body
/team/{uuid}/skills:
get:
operationId: team_skills_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- team
security:
- cookieAuth: []
responses:
'200':
description: No response body
/team/{uuid}/team:
get:
operationId: team_team_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- team
security:
- cookieAuth: []
responses:
'200':
description: No response body
/team/{uuid}/track-record:
get:
operationId: team_track_record_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- team
security:
- cookieAuth: []
responses:
'200':
description: No response body
/template_group/:
get:
operationId: template_group_retrieve
tags:
- template_group
security:
- cookieAuth: []
responses:
'200':
description: No response body
/users:
get:
operationId: users_retrieve
tags:
- users
security:
- cookieAuth: []
responses:
'200':
description: No response body
post:
operationId: users_create
tags:
- users
security:
- cookieAuth: []
responses:
'200':
description: No response body
/users/{id}:
get:
operationId: users_retrieve_2
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- users
security:
- cookieAuth: []
responses:
'200':
description: No response body
delete:
operationId: users_destroy
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- users
security:
- cookieAuth: []
responses:
'204':
description: No response body
/users/{id}/{type}:
put:
operationId: users_update
parameters:
- in: path
name: id
schema:
type: integer
required: true
- in: path
name: type
schema:
type: string
required: true
tags:
- users
security:
- cookieAuth: []
responses:
'200':
description: No response body
/users/{id}/dashboard_favorites:
get:
operationId: users_dashboard_favorites_retrieve
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- users
security:
- cookieAuth: []
responses:
'200':
description: No response body
post:
operationId: users_dashboard_favorites_create
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- users
security:
- cookieAuth: []
responses:
'200':
description: No response body
/users/{id}/dashboard_tiles:
get:
operationId: users_dashboard_tiles_retrieve
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- users
security:
- cookieAuth: []
responses:
'200':
description: No response body
/users/search_filter:
get:
operationId: users_search_filter_retrieve
tags:
- users
security:
- cookieAuth: []
responses:
'200':
description: No response body
/v2/csrf:
get:
operationId: v2_csrf_retrieve
tags:
- v2
security:
- cookieAuth: []
- {}
responses:
'200':
description: No response body
/v2/filter/details/{permalink}:
get:
operationId: v2_filter_details_retrieve
parameters:
- in: path
name: permalink
schema:
type: string
required: true
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
/v2/filter/details/{uuid}/portfolio-companies:
get:
operationId: v2_filter_details_portfolio_companies_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
/v2/filter/filter:
get:
operationId: v2_filter_filter_retrieve
description: |2-
Returns a paginated list of investment firms based on the provided filters
Returns:
_type_: List of base data for investment firms
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
/v2/filter/options:
get:
operationId: v2_filter_options_retrieve
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
/v2/login:
post:
operationId: v2_login_create
tags:
- v2
security:
- cookieAuth: []
- {}
responses:
'200':
description: No response body
/v2/logout:
post:
operationId: v2_logout_create
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
/v2/search:
get:
operationId: v2_search_retrieve
description: |2-
Autocomplete search for investment firms
Returns:
_type_: List of base data for investment firms
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
/v2/search/{permalink}:
get:
operationId: v2_search_retrieve_2
parameters:
- in: path
name: permalink
schema:
type: string
required: true
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
/v2/search/{uuid}/portfolio-companies:
get:
operationId: v2_search_portfolio_companies_retrieve
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
/v2/settings/{type}:
put:
operationId: v2_settings_update
description: View exposing endpoints that allow users editing their account
settings.
parameters:
- in: path
name: type
schema:
type: string
required: true
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
/v2/teamadmin/client:
get:
operationId: v2_teamadmin_client_retrieve
description: |-
Get the client object of the team that the authenticated user is part of, if available.
The client object also contains all the users in the team.
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
/v2/teamadmin/users:
get:
operationId: v2_teamadmin_users_retrieve
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
post:
operationId: v2_teamadmin_users_create
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
put:
operationId: v2_teamadmin_users_update
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
delete:
operationId: v2_teamadmin_users_destroy
tags:
- v2
security:
- cookieAuth: []
responses:
'204':
description: No response body
/v2/teamadmin/users/{id}:
get:
operationId: v2_teamadmin_users_retrieve_2
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
post:
operationId: v2_teamadmin_users_create_2
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
put:
operationId: v2_teamadmin_users_update_2
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
delete:
operationId: v2_teamadmin_users_destroy_2
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- v2
security:
- cookieAuth: []
responses:
'204':
description: No response body
/v2/teamadmin/users/{id}/{type}:
get:
operationId: v2_teamadmin_users_retrieve_3
parameters:
- in: path
name: id
schema:
type: integer
required: true
- in: path
name: type
schema:
type: string
required: true
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
post:
operationId: v2_teamadmin_users_create_3
parameters:
- in: path
name: id
schema:
type: integer
required: true
- in: path
name: type
schema:
type: string
required: true
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
put:
operationId: v2_teamadmin_users_update_3
parameters:
- in: path
name: id
schema:
type: integer
required: true
- in: path
name: type
schema:
type: string
required: true
tags:
- v2
security:
- cookieAuth: []
responses:
'200':
description: No response body
delete:
operationId: v2_teamadmin_users_destroy_3
parameters:
- in: path
name: id
schema:
type: integer
required: true
- in: path
name: type
schema:
type: string
required: true
tags:
- v2
security:
- cookieAuth: []
responses:
'204':
description: No response body
components:
schemas:
BlankEnum:
enum:
- ''
CategoryGroup:
type: object
properties:
uuid:
type: string
format: uuid
value:
type: string
nullable: true
maxLength: 8192
required:
- uuid
Client:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
maxLength: 255
start_date:
type: string
format: date
readOnly: true
nullable: true
groups:
type: array
items:
type: string
maxLength: 40
nullable: true
users:
type: string
readOnly: true
required:
- id
- name
- start_date
- users
Fund:
type: object
description: |-
Moves `UniqueValidator`'s from the validation stage to the save stage.
It solves the problem with nested validation for unique fields on update.
If you want more details, you can read related issues and articles:
https://github.com/beda-software/drf-writable-nested/issues/1
http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers
Example of usage:
```
class Child(models.Model):
field = models.CharField(unique=True)
class Parent(models.Model):
child = models.ForeignKey('Child')
class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer):
class Meta:
model = Child
class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer):
child = ChildSerializer()
class Meta:
model = Parent
```
Note: `UniqueFieldsMixin` must be applied only on the serializer
which has unique fields.
Note: When you are using both mixins
(`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`)
you should put `UniqueFieldsMixin` ahead.
properties:
uuid:
type: string
format: uuid
permalink:
type: string
nullable: true
maxLength: 255
rank:
type: integer
maximum: 9223372036854775807
minimum: 0
format: int64
nullable: true
value:
type: string
nullable: true
maxLength: 8192
announced_on:
type: string
format: date
nullable: true
image_url:
type: string
readOnly: true
money_raised:
type: number
format: double
nullable: true
money_raised_currency_code:
type: string
nullable: true
maxLength: 15
money_raised_usd:
type: number
format: double
nullable: true
num_investors:
type: integer
maximum: 2147483647
minimum: 0
nullable: true
short_description:
type: string
nullable: true
maxLength: 8192
started_on:
type: string
format: date
nullable: true
owner:
allOf:
- $ref: '#/components/schemas/InvestmentFirmFundOwner'
readOnly: true
press_references:
type: string
readOnly: true
required:
- image_url
- owner
- press_references
- uuid
InstrumentEnum:
enum:
- equity
- convertible_debt
- non_convertible_debt
type: string
description: |-
* `equity` - Equity
* `convertible_debt` - Convertible Debt
* `non_convertible_debt` - Non Convertible Debt
InvestmentFirmFundOwner:
type: object
description: |-
Moves `UniqueValidator`'s from the validation stage to the save stage.
It solves the problem with nested validation for unique fields on update.
If you want more details, you can read related issues and articles:
https://github.com/beda-software/drf-writable-nested/issues/1
http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers
Example of usage:
```
class Child(models.Model):
field = models.CharField(unique=True)
class Parent(models.Model):
child = models.ForeignKey('Child')
class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer):
class Meta:
model = Child
class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer):
child = ChildSerializer()
class Meta:
model = Parent
```
Note: `UniqueFieldsMixin` must be applied only on the serializer
which has unique fields.
Note: When you are using both mixins
(`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`)
you should put `UniqueFieldsMixin` ahead.
properties:
uuid:
type: string
format: uuid
name:
type: string
nullable: true
maxLength: 8192
value:
type: string
nullable: true
maxLength: 8192
permalink:
type: string
nullable: true
maxLength: 255
image_url:
type: string
nullable: true
maxLength: 8192
founded_on:
type: string
format: date
nullable: true
website:
type: string
nullable: true
maxLength: 8192
twitter:
type: string
nullable: true
maxLength: 8192
linkedin:
type: string
nullable: true
maxLength: 8192
facebook:
type: string
format: uri
nullable: true
maxLength: 8192
city:
allOf:
- $ref: '#/components/schemas/Location'
readOnly: true
short_description:
type: string
nullable: true
maxLength: 8192
description:
type: string
nullable: true
maxLength: 8192
founding_partner:
type: string
readOnly: true
managing_partner:
type: string
readOnly: true
required:
- city
- founding_partner
- managing_partner
- uuid
LayoutIdEnum:
enum:
- investor
type: string
description: '* `investor` - Investor'
List:
type: object
properties:
uuid:
type: string
format: uuid
readOnly: true
permalink:
type: string
maxLength: 511
name:
type: string
maxLength: 255
items:
type: array
items:
$ref: '#/components/schemas/ListItem'
background_color:
type: string
nullable: true
maxLength: 7
text_color:
type: string
nullable: true
maxLength: 7
deleted_at:
type: string
format: date-time
nullable: true
created_by:
allOf:
- $ref: '#/components/schemas/UserShort'
readOnly: true
required:
- created_by
- items
- name
- permalink
- uuid
ListItem:
type: object
properties:
uuid:
type: string
format: uuid
readOnly: true
comment:
type: string
nullable: true
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
nullable: true
model:
type: string
readOnly: true
model_type:
type: string
readOnly: true
required:
- created_at
- model
- model_type
- updated_at
- uuid
Location:
type: object
properties:
uuid:
type: string
format: uuid
value:
type: string
nullable: true
maxLength: 8192
short_description:
type: string
nullable: true
maxLength: 8192
required:
- uuid
LocationCountry:
type: object
properties:
uuid:
type: string
format: uuid
value:
type: string
nullable: true
maxLength: 8192
country_code:
type: string
nullable: true
maxLength: 8192
country_code_ext:
type: string
nullable: true
maxLength: 8192
required:
- uuid
NullEnum:
enum:
- null
Organization:
type: object
properties:
uuid:
type: string
format: uuid
name:
type: string
nullable: true
maxLength: 8192
permalink:
type: string
nullable: true
maxLength: 255
image_url:
type: string
nullable: true
maxLength: 8192
is_vc:
type: boolean
readOnly: true
categories:
type: string
readOnly: true
category_groups:
type: array
items:
$ref: '#/components/schemas/CategoryGroup'
team_has_serial_founder:
type: array
items:
type: object
additionalProperties: {}
minLength: 2
maxLength: 2
readOnly: true
details_l:
type: string
format: uri
readOnly: true
cap_table_l:
type: string
format: uri
readOnly: true
team_l:
type: string
format: uri
readOnly: true
similar_l:
type: string
format: uri
readOnly: true
fundings_l:
type: string
format: uri
readOnly: true
acquirees_l:
type: string
format: uri
readOnly: true
founders_l:
type: string
format: uri
readOnly: true
investors_l:
type: string
format: uri
readOnly: true
locations_l:
type: string
format: uri
readOnly: true
ipo_l:
type: string
format: uri
readOnly: true
required:
- acquirees_l
- cap_table_l
- categories
- category_groups
- details_l
- founders_l
- fundings_l
- investors_l
- ipo_l
- is_vc
- locations_l
- similar_l
- team_has_serial_founder
- team_l
- uuid
OrganizationShort:
type: object
description: |-
Moves `UniqueValidator`'s from the validation stage to the save stage.
It solves the problem with nested validation for unique fields on update.
If you want more details, you can read related issues and articles:
https://github.com/beda-software/drf-writable-nested/issues/1
http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers
Example of usage:
```
class Child(models.Model):
field = models.CharField(unique=True)
class Parent(models.Model):
child = models.ForeignKey('Child')
class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer):
class Meta:
model = Child
class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer):
child = ChildSerializer()
class Meta:
model = Parent
```
Note: `UniqueFieldsMixin` must be applied only on the serializer
which has unique fields.
Note: When you are using both mixins
(`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`)
you should put `UniqueFieldsMixin` ahead.
properties:
uuid:
type: string
format: uuid
name:
type: string
nullable: true
maxLength: 8192
value:
type: string
readOnly: true
permalink:
type: string
nullable: true
maxLength: 255
website:
type: string
nullable: true
maxLength: 8192
image_url:
type: string
nullable: true
maxLength: 8192
founded_on:
type: string
format: date
nullable: true
short_description:
type: string
nullable: true
maxLength: 8192
required:
- uuid
- value
PaginatedFundList:
type: object
properties:
next:
type: string
nullable: true
previous:
type: string
nullable: true
results:
type: array
items:
$ref: '#/components/schemas/Fund'
PaginatedListList:
type: object
properties:
next:
type: string
nullable: true
previous:
type: string
nullable: true
results:
type: array
items:
$ref: '#/components/schemas/List'
PatchedReportFund:
type: object
description: Adds nested create feature
properties:
uuid:
type: string
format: uuid
readOnly: true
created_by:
allOf:
- $ref: '#/components/schemas/UserShort'
nullable: true
companies:
type: array
items:
$ref: '#/components/schemas/ReportCompany'
default: []
fund:
$ref: '#/components/schemas/Fund'
portfolio_unrealized_current_nav:
type: number
format: double
readOnly: true
portfolio_realized_current_nav:
type: number
format: double
readOnly: true
deleted_at:
type: string
format: date-time
nullable: true
created_at:
type: string
format: date-time
readOnly: true
date_subscription:
type: string
format: date
nullable: true
portfolio_fair_value:
type: number
format: double
nullable: true
other_assets:
type: number
format: double
nullable: true
cash_at_bank:
type: number
format: double
nullable: true
portfolio_nav:
type: number
format: double
nullable: true
provision_carried_interesets:
type: number
format: double
nullable: true
portfolio_nav_net:
type: number
format: double
nullable: true
total_committed:
type: number
format: double
nullable: true
total_capital_calls:
type: number
format: double
nullable: true
uncalled_capital:
type: number
format: double
nullable: true
total_distributions:
type: number
format: double
nullable: true
investment_count:
type: integer
maximum: 2147483647
minimum: 0
nullable: true
total_capital_invested:
type: number
format: double
nullable: true
total_capital_additional:
type: number
format: double
nullable: true
gross_irr:
type: number
format: double
nullable: true
net_irr:
type: number
format: double
nullable: true
dpi:
type: number
format: double
nullable: true
rvpi:
type: number
format: double
nullable: true
tvpi:
type: number
format: double
nullable: true
moic:
type: number
format: double
nullable: true
picc:
type: number
format: double
nullable: true
PersonIndex:
type: object
properties:
uuid:
type: string
format: uuid
permalink:
type: string
nullable: true
maxLength: 255
value:
type: string
nullable: true
maxLength: 8192
first_name:
type: string
nullable: true
maxLength: 255
last_name:
type: string
nullable: true
maxLength: 255
country:
allOf:
- $ref: '#/components/schemas/LocationCountry'
readOnly: true
image_url:
type: string
nullable: true
maxLength: 8192
layout_id:
nullable: true
oneOf:
- $ref: '#/components/schemas/LayoutIdEnum'
- $ref: '#/components/schemas/BlankEnum'
- $ref: '#/components/schemas/NullEnum'
num_exits:
type: integer
maximum: 2147483647
minimum: 0
nullable: true
short_description:
type: string
nullable: true
maxLength: 8192
most_recent_job_change:
type: string
readOnly: true
required:
- country
- most_recent_job_change
- uuid
Report:
type: object
description: |-
Moves `UniqueValidator`'s from the validation stage to the save stage.
It solves the problem with nested validation for unique fields on update.
If you want more details, you can read related issues and articles:
https://github.com/beda-software/drf-writable-nested/issues/1
http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers
Example of usage:
```
class Child(models.Model):
field = models.CharField(unique=True)
class Parent(models.Model):
child = models.ForeignKey('Child')
class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer):
class Meta:
model = Child
class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer):
child = ChildSerializer()
class Meta:
model = Parent
```
Note: `UniqueFieldsMixin` must be applied only on the serializer
which has unique fields.
Note: When you are using both mixins
(`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`)
you should put `UniqueFieldsMixin` ahead.
properties:
uuid:
type: string
format: uuid
readOnly: true
created_by:
allOf:
- $ref: '#/components/schemas/UserShort'
readOnly: true
nullable: true
published_by:
allOf:
- $ref: '#/components/schemas/UserShort'
readOnly: true
nullable: true
fund:
allOf:
- $ref: '#/components/schemas/Fund'
nullable: true
is_published:
type: boolean
readOnly: true
value:
type: string
readOnly: true
funds:
type: array
items:
$ref: '#/components/schemas/PatchedReportFund'
default: []
deleted_at:
type: string
format: date-time
nullable: true
quarter:
type: integer
maximum: 4
minimum: 1
nullable: true
year:
type: integer
maximum: 2100
minimum: 1900
nullable: true
created_at:
type: string
format: date-time
readOnly: true
nullable: true
published_at:
type: string
format: date-time
nullable: true
required:
- created_at
- created_by
- fund
- is_published
- published_by
- uuid
- value
ReportCompany:
type: object
description: Adds nested create feature
properties:
uuid:
type: string
format: uuid
readOnly: true
created_by:
allOf:
- $ref: '#/components/schemas/UserShort'
readOnly: true
nullable: true
organization:
$ref: '#/components/schemas/OrganizationShort'
holding_period:
type: number
format: double
readOnly: true
deleted_at:
type: string
format: date-time
nullable: true
created_at:
type: string
format: date-time
readOnly: true
date_investment:
type: string
format: date
nullable: true
instrument:
nullable: true
oneOf:
- $ref: '#/components/schemas/InstrumentEnum'
- $ref: '#/components/schemas/BlankEnum'
- $ref: '#/components/schemas/NullEnum'
initial_investment:
type: number
format: double
nullable: true
initial_ownership:
type: number
format: double
nullable: true
additional_equity_investment:
type: number
format: double
nullable: true
additional_ownership:
type: number
format: double
nullable: true
total_cumulative_investment:
type: number
format: double
nullable: true
date_exit:
type: string
format: date
nullable: true
cumulative_proceeds:
type: number
format: double
nullable: true
ownership_stake:
type: number
format: double
nullable: true
cumulative_dividends:
type: number
format: double
nullable: true
period_payed:
type: number
format: double
nullable: true
diluted_stake:
type: number
format: double
nullable: true
fmv_unrealised_stake:
type: number
format: double
nullable: true
fmv_stake:
type: number
format: double
nullable: true
irr:
type: number
format: double
nullable: true
multiple:
type: number
format: double
nullable: true
valuation_t_0:
type: number
format: double
nullable: true
valuation_t_n:
type: number
format: double
nullable: true
initial_total_investment:
type: number
format: double
nullable: true
required:
- created_at
- created_by
- holding_period
- uuid
UserShort:
type: object
description: |-
Moves `UniqueValidator`'s from the validation stage to the save stage.
It solves the problem with nested validation for unique fields on update.
If you want more details, you can read related issues and articles:
https://github.com/beda-software/drf-writable-nested/issues/1
http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers
Example of usage:
```
class Child(models.Model):
field = models.CharField(unique=True)
class Parent(models.Model):
child = models.ForeignKey('Child')
class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer):
class Meta:
model = Child
class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer):
child = ChildSerializer()
class Meta:
model = Parent
```
Note: `UniqueFieldsMixin` must be applied only on the serializer
which has unique fields.
Note: When you are using both mixins
(`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`)
you should put `UniqueFieldsMixin` ahead.
properties:
id:
type: integer
readOnly: true
email:
type: string
format: email
title: Email address
maxLength: 254
first_name:
type: string
maxLength: 150
last_name:
type: string
maxLength: 150
full_name:
type: string
readOnly: true
label:
type: string
readOnly: true
avatar_url:
type: string
readOnly: true
required:
- avatar_url
- email
- full_name
- id
- label
securitySchemes:
cookieAuth:
type: apiKey
in: cookie
name: sessionid
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment