openapi: 3.0.1 info: version: 1.0.0 title: Authorization Tokens Accounts decomposition API description: 'Use the `oauth` endpoint to generate the secure, time-limited JSON Web Tokens (JWTs) used to authorize access to APIs and components.

To request a token, click Authorize and enter the following credentials: * Username - Your Client ID. * Password - Your Client Secret.' servers: - url: https://www.us-api.morningstar.com/token description: PROD US - url: https://www.emea-api.morningstar.com/token description: PROD EMEA - url: https://www.apac-api.morningstar.com/token description: PROD APAC security: - BasicAuth: [] tags: - name: decomposition paths: /decomposition/calculate-by-factors: post: responses: '200': description: OK '401': description: Authentication required. '403': description: You do not have access permission.. '404': description: Not found. '500': description: Internal server error. summary: Calculate risk attribution for a portfolio over a defined time period description: Based on a specific risk model, calculate risk attribution for a specific portfolio over a time period of between 3 months and 15 years. The response enables you to attribute portfolio risk to specific factors. operationId: post_decomposition_by_factors requestBody: content: application/json: schema: $ref: '#/components/schemas/CalculateByFactors' required: true tags: - decomposition /decomposition/calculate-by-holdings: post: responses: '200': description: OK '401': description: Authentication required. '403': description: You do not have access permission.. '404': description: Not found. '500': description: Internal server error. summary: Calculate risk attribution for the individual holdings in a portfolio over a defined time period description: Based on a specific risk model, calculate risk attribution for a specific portfolio over a time period of between 3 months and 15 years. The response enables you to attribute portfolio risk to specific holdings. operationId: post_decomposition_by_holdings requestBody: content: application/json: schema: $ref: '#/components/schemas/CalculateByHoldings' required: true tags: - decomposition components: schemas: idType: properties: id: type: string type: type: string type: object holding: properties: identifier: type: string weight: type: number type: object Holdings: required: - id properties: holdings: type: array items: $ref: '#/components/schemas/holding' id: type: string type: object CalculateByFactors: required: - benchmark - endDate - investment - riskModelId - startDate properties: riskModelId: type: string example: morn-glb-eq-usd startDate: type: string description: The start date of the time period to perform the attribution analysis. example: '2018-01-01T00:00:00.000Z' endDate: type: string description: The end date of the time period to perform the attribution analysis. example: '2018-06-30T00:00:00.000Z' assetClass: type: string description: 'Options of Risk Assets: allHoldings, allEquityHoldings, equityHoldingsWithRiskExposure.' example: allHoldings investment: description: '' example: id: model-portfolio1 type: portfolio allOf: - $ref: '#/components/schemas/idType' benchmark: description: '' example: id: model-portfolio2 type: portfolio allOf: - $ref: '#/components/schemas/idType' portfolios: type: array example: - id: model-portfolio1 holdings: - identifier: 0P0000058R identifierType: PerformanceId weight: 60 - identifier: 0P000001RB identifierType: PerformanceId weight: 40 - id: model-portfolio2 holdings: - identifier: 0P0000058R identifierType: PerformanceId weight: 50 - identifier: 0P000001RB identifierType: PerformanceId weight: 50 items: $ref: '#/components/schemas/Holdings' type: object CalculateByHoldings: required: - benchmark - endDate - investment - startDate properties: startDate: type: string description: The start date of the time period to perform the attribution analysis. example: '2018-01-01T00:00:00.000Z' endDate: type: string description: The end date of the time period to perform the attribution analysis. example: '2018-06-30T00:00:00.000Z' currency: type: string description: Currency of holdings example: USD investment: description: '' example: id: model-portfolio1 type: portfolio allOf: - $ref: '#/components/schemas/idType' benchmark: description: '' example: id: model-portfolio2 type: portfolio allOf: - $ref: '#/components/schemas/idType' portfolios: type: array example: - id: model-portfolio1 holdings: - identifier: 0P0000058R identifierType: PerformanceId weight: 60 - identifier: 0P000001RB identifierType: PerformanceId weight: 40 - id: model-portfolio2 holdings: - identifier: 0P0000058R identifierType: PerformanceId weight: 50 - identifier: 0P000001RB identifierType: PerformanceId weight: 50 items: $ref: '#/components/schemas/Holdings' type: object securitySchemes: BasicAuth: type: http scheme: basic