openapi: 3.0.1
info:
  title: FFB Performance Hub API
  description: >-
    Swagger Documentation for FFB to access Performance Hub API. This API provides endpoints to retrieve model data and performance returns.
  version: "1.0.0"
  termsOfService: 'https://developer.fil.com/legal'
  contact:
    name: API Support
    email: support@fil.com
    url: https://fil.com/contact

  license:
    name: FIL API License
    url: http://www.fil.com/licenses/LICENSE-2.0.html
  
  x-api-template: TMPL_Book
  x-filter: {{
    status: ENV_Development,
    business-unit: BU_Publishing testing, 
    business-domain: Test,
    visibility: <Server2Server>
  }}
  x-discovery-enhancers: {{
    string1: domain-Publishing,
    string2: team-<teamname>
  }}

servers:
- url: https://api.fil.com/partner/perfhub/model/v1
- url: https://stage.api.fil.com/partner/perfhub/model/v1

security:
  - OAuth2ClientCredentials: [read]

paths:
  /performance:
    get:
      summary: Cumulative Model Return Tabular View
      description: Retrieve cumulative model returns in a tabular format.
      parameters:
        - name: data
          in: query
          required: false
          schema:
            type: object
            additionalProperties:
              type: array
              items:
                type: string
          description: An object where keys are dates and values are arrays of return types.
        - name: filterColumns
          in: query
          required: true
          schema:
            type: object
            properties:
              fundIdType:
                type: string
                description: Type of fund ID.
              fundIds:
                type: array
                items:
                  type: string
                description: IDs of the funds to retrieve data for.
              expenseMethodologies:
                type: string
                description: Methodologies used for expense calculation.
              benchmarkAssociationType:
                type: string
                description: Type of association with benchmarks.
          description: Filter columns with various parameters for data retrieval.
      responses:
        "200":
          description: Successful response with Cumulative Model Return Tabular View.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TabularResponse'

        '400':
          description: 'Bad request. Refer to the more info section for details. Please check that you have entered the correct information.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
              example:
                moreInfo:
                  code: 400.01.001
                  developerMessages:
                    - invalid_request
                    - ''
                  userMessage: Invalid request data or missing mandatory parameters
                  moreInfo: ''
          headers:
            requestId:
              schema:
                type: string
                maxLength: 36
                pattern: '[a-zA-Z0-9\-_]+'
              description:
                requestId is supplied by the caller and should be a unique identifier for this call only.
        '401':
          description: Unauthorised access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
              example:
                moreInfo:
                  code: 401.01.001
                  developerMessage:
                    - access_token_expired
                    - ''
                  userMessage: The token you've supplied has expired, please supply a new token
                  moreInfo: ''
          headers:
            requestId:
              schema:
                type: string
                maxLength: 36
                pattern: '[a-zA-Z0-9\-_]+'
                description:
                  requestId is supplied by the caller and should be a unique identifier for this call only.
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
              example:
                moreInfo:
                  code: 404.01.001
                  developerMessage:
                    - RaiseFault
                    - ''
                  userMessage: Not Found
                  moreInfo: ''
          headers:
            requestId:
              schema:
                type: string
                maxLength: 36
                pattern: '[a-zA-Z0-9\-_]+'
                description:
                  requestId is supplied by the caller and should be a unique identifier for this call only.
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
              example:
                moreInfo:
                  code: 404.01.001
                  developerMessage:
                    - RaiseFault
                    - ''
                  userMessage: Exceeded configured rate limit for the API, please try again later
                  moreInfo: ''
          headers:
            requestId:
              schema:
                type: string
                maxLength: 36
                pattern: '[a-zA-Z0-9\-_]+'
                description:
                  requestId is supplied by the caller and should be a unique identifier for this call only.
        '500':
          description: There was an internal issue calling the service. This is likely to be a permanent error. Please contact FIL for support.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
              example:
                moreInfo:
                  code: 500.01.001
                  developerMessage:
                    - ExecutionFailed
                    - 1145501d-f824-465d-a0de-45ce11020fa3
                  userMessage: Internal Server Error
                  moreInfo: ''
          headers:
            requestId:
              schema:
                type: string
                maxLength: 36
                pattern: '[a-zA-Z0-9\-_]+'
                description:
                  requestId is supplied by the caller and should be a unique identifier for this call only.

  /returns:
    get:
      summary: Retrieve Target Model Data
      description: Retrieve cumulative model returns in a graphical format.
      parameters:
        - name: edges
          in: query
          required: false
          schema:
            type: object
            properties:
              totalReturns:
                type: array
                items:
                  type: number
          description: Edges containing total returns.
        - name: filterColumns
          in: query
          required: false
          schema:
            type: object
            properties:
              fundIdType:
                type: string
                description: Type of fund ID.
              fundIds:
                type: array
                items:
                  type: string
                description: IDs of the funds to retrieve data for.
              benchmarkIds:
                type: array
                items:
                  type: string
                description: IDs of the benchmarks associated with the funds.
              startDate:
                type: string
                description: The start date for retrieving performance data.
              effectiveDate:
                type: string
                description: The effective date for the data.
              currency:
                type: string
                description: Currency for the performance data.
              fundDataProvider:
                type: string
                description: Provider of the fund data.
              expenseMethodologies:
                type: string
                description: Methodologies used for expense calculation.
              fundValuationPoint:
                type: string
                description: Valuation point of the fund.
              fundTaxTreatment:
                type: string
                description: Tax treatment of the fund.
              segmentName:
                type: string
                description: Name of the segment.
              computationEngine:
                type: string
                description: Engine used for computation.
              benchmarkAssociationType:
                type: string
                description: Type of association with benchmarks.
              dateFrequency:
                type: string
                description: Frequency of the dates for the data.
              noOfPeriods:
                type: integer
                description: Number of periods for the data.
              appType:
                type: string
                description: Type of application.
              mode:
                type: string
                description: Mode of operation.
          description: Filter columns with various parameters for data retrieval.
      responses:
        "200":
          description: Successful response with target model data in graphical View.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReferenceResponse'

        '400':
          description: 'Bad request. Refer to the more info section for details. Please check that you have entered the correct information.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
              example:
                moreInfo:
                  code: 400.01.001
                  developerMessages:
                    - invalid_request
                    - ''
                  userMessage: Invalid request data or missing mandatory parameters
                  moreInfo: ''
          headers:
            requestId:
              schema:
                type: string
                maxLength: 36
                pattern: '[a-zA-Z0-9\-_]+'
              description:
                requestId is supplied by the caller and should be a unique identifier for this call only.
        '401':
          description: Unauthorised access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
              example:
                moreInfo:
                  code: 401.01.001
                  developerMessage:
                    - access_token_expired
                    - ''
                  userMessage: The token you've supplied has expired, please supply a new token
                  moreInfo: ''
          headers:
            requestId:
              schema:
                type: string
                maxLength: 36
                pattern: '[a-zA-Z0-9\-_]+'
                description:
                  requestId is supplied by the caller and should be a unique identifier for this call only.
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
              example:
                moreInfo:
                  code: 404.01.001
                  developerMessage:
                    - RaiseFault
                    - ''
                  userMessage: Not Found
                  moreInfo: ''
          headers:
            requestId:
              schema:
                type: string
                maxLength: 36
                pattern: '[a-zA-Z0-9\-_]+'
                description:
                  requestId is supplied by the caller and should be a unique identifier for this call only.
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
              example:
                moreInfo:
                  code: 404.01.001
                  developerMessage:
                    - RaiseFault
                    - ''
                  userMessage: Exceeded configured rate limit for the API, please try again later
                  moreInfo: ''
          headers:
            requestId:
              schema:
                type: string
                maxLength: 36
                pattern: '[a-zA-Z0-9\-_]+'
                description:
                  requestId is supplied by the caller and should be a unique identifier for this call only.
        '500':
          description: There was an internal issue calling the service. This is likely to be a permanent error. Please contact FIL for support.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
              example:
                moreInfo:
                  code: 500.01.001
                  developerMessage:
                    - ExecutionFailed
                    - 1145501d-f824-465d-a0de-45ce11020fa3
                  userMessage: Internal Server Error
                  moreInfo: ''
          headers:
            requestId:
              schema:
                type: string
                maxLength: 36
                pattern: '[a-zA-Z0-9\-_]+'
                description:
                  requestId is supplied by the caller and should be a unique identifier for this call only.

  /performance/returns:
    get:
      summary: Retrieve Performance Returns
      description: Endpoint to retrieve performance returns data.
      parameters:
        - name: startDate
          in: query
          required: false
          schema:
            type: string
          description: The start date for retrieving performance data.
        - name: effectiveDate
          in: query
          required: false
          schema:
            type: string
          description: The effective date for the data.
        - name: fundIdType
          in: query
          required: false
          schema:
            type: string
          description: Type of fund ID.
        - name: fundIds
          in: query
          required: false
          schema:
            type: string
          description: IDs of the funds to retrieve data for.
        - name: benchmarkIds
          in: query
          required: false
          schema:
            type: string
          description: IDs of the benchmarks associated with the funds.
        - name: currency
          in: query
          required: false
          schema:
            type: string
          description: Currency for the performance data.
        - name: fundDataProvider
          in: query
          required: false
          schema:
            type: string
          description: Provider of the fund data.
        - name: expenseMethodologies
          in: query
          required: false
          schema:
            type: string
          description: Methodologies used for expense calculation.
        - name: fundValuationPoint
          in: query
          required: false
          schema:
            type: string
          description: Valuation point of the fund.
        - name: fundTaxTreatment
          in: query
          required: false
          schema:
            type: string
          description: Tax treatment of the fund.
        - name: segmentName
          in: query
          required: false
          schema:
            type: string
          description: Name of the segment.
        - name: computationEngine
          in: query
          required: false
          schema:
            type: string
          description: Engine used for computation.
        - name: dateFrequency
          in: query
          required: false
          schema:
            type: string
          description: Frequency of the dates for the data.
        - name: benchmarkAssociationType
          in: query
          required: false
          schema:
            type: string
          description: Type of association with benchmarks.
        - name: noOfPeriods
          in: query
          required: false
          schema:
            type: integer
          description: Number of periods for the data.
        - name: appType
          in: query
          required: false
          schema:
            type: string
          description: Type of application.
        - name: mode
          in: query
          required: false
          schema:
            type: string
          description: Mode of operation.
      responses:
        "200":
          description: Successful response with performance returns data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PerformanceReturnsResponse'

        '400':
          description: 'Bad request. Refer to the more info section for details. Please check that you have entered the correct information.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
              example:
                moreInfo:
                  code: 400.01.001
                  developerMessages:
                    - invalid_request
                    - ''
                  userMessage: Invalid request data or missing mandatory parameters
                  moreInfo: ''
          headers:
            requestId:
              schema:
                type: string
                maxLength: 36
                pattern: '[a-zA-Z0-9\-_]+'
              description:
                requestId is supplied by the caller and should be a unique identifier for this call only.
        '401':
          description: Unauthorised access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
              example:
                moreInfo:
                  code: 401.01.001
                  developerMessage:
                    - access_token_expired
                    - ''
                  userMessage: The token you've supplied has expired, please supply a new token
                  moreInfo: ''
          headers:
            requestId:
              schema:
                type: string
                maxLength: 36
                pattern: '[a-zA-Z0-9\-_]+'
                description:
                  requestId is supplied by the caller and should be a unique identifier for this call only.
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
              example:
                moreInfo:
                  code: 404.01.001
                  developerMessage:
                    - RaiseFault
                    - ''
                  userMessage: Not Found
                  moreInfo: ''
          headers:
            requestId:
              schema:
                type: string
                maxLength: 36
                pattern: '[a-zA-Z0-9\-_]+'
                description:
                  requestId is supplied by the caller and should be a unique identifier for this call only.
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
              example:
                moreInfo:
                  code: 404.01.001
                  developerMessage:
                    - RaiseFault
                    - ''
                  userMessage: Exceeded configured rate limit for the API, please try again later
                  moreInfo: ''
          headers:
            requestId:
              schema:
                type: string
                maxLength: 36
                pattern: '[a-zA-Z0-9\-_]+'
                description:
                  requestId is supplied by the caller and should be a unique identifier for this call only.
        '500':
          description: There was an internal issue calling the service. This is likely to be a permanent error. Please contact FIL for support.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
              example:
                moreInfo:
                  code: 500.01.001
                  developerMessage:
                    - ExecutionFailed
                    - 1145501d-f824-465d-a0de-45ce11020fa3
                  userMessage: Internal Server Error
                  moreInfo: ''
          headers:
            requestId:
              schema:
                type: string
                maxLength: 36
                pattern: '[a-zA-Z0-9\-_]+'
                description:
                  requestId is supplied by the caller and should be a unique identifier for this call only.
components:
  securitySchemes:
    OAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://sandbox.api.fil.com/identity/v1/tokens?grant_type=client_credentials
          scopes:
            read: Grants read access

  schemas:
    TabularResponse:
      type: object
      properties:
        fundPerformance:
          type: object
          properties:
            returns:
              type: object
              properties:
                totalReturns:
                  type: array
                  items:
                    type: object
                    properties:
                      returnIndicator:
                        type: string
                        description: Return indicator.
                      taxTreatment:
                        type: string
                        nullable: true
                        description: Tax treatment.
                      returnCurrency:
                        type: string
                        description: Currency of return.
                      returnCurrencyValuationPoint:
                        type: string
                        description: Valuation point of return currency.
                      eomsId:
                        type: string
                        description: EOMS ID.
                      miasId:
                        type: string
                        description: MIAS ID.
                      data:
                        type: array
                        items:
                          type: object
                          properties:
                            effectiveDate:
                              type: string
                              format: date
                              description: Effective date of the data.
                            fund:
                              type: array
                              items:
                                type: object
                                properties:
                                  idType:
                                    type: string
                                    description: Type of ID.
                                  value:
                                    type: number
                                    nullable: true
                                    description: Value associated with the ID.
                            benchmark:
                              type: array
                              items:
                                type: object
                                properties:
                                  idType:
                                    type: string
                                    description: Type of ID.
                                  value:
                                    type: number
                                    nullable: true
                                    description: Value associated with the ID.

    PerformanceReturnsResponse:
      type: array
      items:
        type: object
        properties:
          effectiveDate:
            type: string
            format: date
            description: Effective date of the performance data.
          fundClassAcronym:
            type: string
            nullable: true
            description: Acronym of the fund class.
          indicativeFund:
            type: string
            nullable: true
            description: Indicative fund information.
          parentFundType:
            type: string
            nullable: true
            description: Type of the parent fund.
          dataProvider:
            type: string
            nullable: true
            description: Data provider information.
          returnInd:
            type: string
            nullable: true
            description: Return indicator.
          currId:
            type: string
            description: Currency identifier.
          valPnt:
            type: string
            description: Valuation point.
          recordType:
            type: string
            nullable: true
            description: Record type.
          taxTreatment:
            type: string
            nullable: true
            description: Tax treatment.
          returnComponentCode:
            type: string
            nullable: true
            description: Return component code.
          cumRet1mPct:
            type: number
            nullable: true
            description: Cumulative return for 1 month percentage.
          cumRet3mPct:
            type: number
            nullable: true
            description: Cumulative return for 3 months percentage.
          cumRet6mPct:
            type: number
            nullable: true
            description: Cumulative return for 6 months percentage.
          cumRet9mPct:
            type: number
            nullable: true
            description: Cumulative return for 9 months percentage.
          cumRet1yrPct:
            type: number
            nullable: true
            description: Cumulative return for 1 year percentage.
          cumRet2yrPct:
            type: number
            nullable: true
            description: Cumulative return for 2 years percentage.
          cumRet3yrPct:
            type: number
            nullable: true
            description: Cumulative return for 3 years percentage.
          cumRet4yrPct:
            type: number
            nullable: true
            description: Cumulative return for 4 years percentage.
          cumRet5yrPct:
            type: number
            nullable: true
            description: Cumulative return for 5 years percentage.
          cumRet7yrPct:
            type: number
            nullable: true
            description: Cumulative return for 7 years percentage.
          cumRet10YrPct:
            type: number
            nullable: true
            description: Cumulative return for 10 years percentage.
          cumRet15yrPct:
            type: number
            nullable: true
            description: Cumulative return for 15 years percentage.
          annRet1yrPct:
            type: number
            nullable: true
            description: Annualized return for 1 year percentage.
          annRet2yrPct:
            type: number
            nullable: true
            description: Annualized return for 2 years percentage.
          annRet3yrPct:
            type: number
            nullable: true
            description: Annualized return for 3 years percentage.
          annRet4yrPct:
            type: number
            nullable: true
            description: Annualized return for 4 years percentage.
          annRet5yrPct:
            type: number
            nullable: true
            description: Annualized return for 5 years percentage.
          annRet7yrPct:
            type: number
            nullable: true
            description: Annualized return for 7 years percentage.
          annRet10yrPct:
            type: number
            nullable: true
            description: Annualized return for 10 years percentage.
          annRet15yrPct:
            type: number
            nullable: true
            description: Annualized return for 15 years percentage.
          parentId:
            type: string
            description: Parent ID of the fund.
          groupingId:
            type: string
            description: Grouping ID.
          perfhEntityId:
            type: string
            description: Performance entity ID.
          entityLegalName:
            type: string
            description: Legal name of the entity.
          updateSrc:
            type: string
            description: Update source.
          bonusYTD:
            type: number
            nullable: true
            description: Year-to-date bonus.
          bonusYTDBM:
            type: number
            nullable: true
            description: Year-to-date bonus benchmark.
          excessBonusYTD:
            type: number
            nullable: true
            description: Excess bonus year-to-date.
          cumRet1dPct:
            type: number
            description: Cumulative return for 1 day percentage.
          cumRet1wPct:
            type: number
            description: Cumulative return for 1 week percentage.
          cumRet20yrPct:
            type: number
            nullable: true
            description: Cumulative return for 20 years percentage.
          cumRetMtdPct:
            type: number
            nullable: true
            description: Cumulative return month-to-date percentage.
          cumRetQtdPct:
            type: number
            nullable: true
            description: Cumulative return quarter-to-date percentage.
          cumRetYtdPct:
            type: number
            nullable: true
            description: Cumulative return year-to-date percentage.
          cumRet6yrPct:
            type: number
            nullable: true
            description: Cumulative return for 6 years percentage.
          cumRet8yrPct:
            type: number
            nullable: true
            description: Cumulative return for 8 years percentage.
          cumRet9yrPct:
            type: number
            nullable: true
            description: Cumulative return for 9 years percentage.
          annRet6yrPct:
            type: number
            nullable: true
            description: Annualized return for 6 years percentage.
          annRet8yrPct:
            type: number
            nullable: true
            description: Annualized return for 8 years percentage.
          annRet9yrPct:
            type: number
            nullable: true
            description: Annualized return for 9 years percentage.
          annRet20yrPct:
            type: number
            nullable: true
            description: Annualized return for 20 years percentage.
          managerName:
            type: string
            nullable: true
            description: Name of the manager.
          managerRole:
            type: string
            nullable: true
            description: Role of the manager.
          tenureTrueDate:
            type: string
            format: date
            nullable: true
            description: True date of tenure.
          tenureMEDate:
            type: string
            format: date
            nullable: true
            description: ME date of tenure.
          cumRetTrueTenure:
            type: number
            nullable: true
            description: Cumulative return for true tenure.
          annRetTrueTenure:
            type: number
            nullable: true
            description: Annualized return for true tenure.
          cumRetAltTenure:
            type: number
            nullable: true
            description: Cumulative return for alternative tenure.
          annRetAltTenure:
            type: number
            nullable: true
            description: Annualized return for alternative tenure.  
          currencyType:
            type: string
            description: Type of currency.
          entityBasecurrency:
            type: string
            description: Base currency of the entity.
          relAnnRet10yrPct:
            type: number
            nullable: true
            description: Relative annualized return for 10 years percentage.
          relAnnRet15yrPct:
            type: number
            nullable: true
            description: Relative annualized return for 15 years percentage.
          relAnnRet1yrPct:
            type: number
            nullable: true
            description: Relative annualized return for 1 year percentage.

    ReferenceResponse:
      type: object
      properties:
        fundPerformance:
          type: object
          properties:
            returns:
              type: object
              properties:
                totalReturns:
                  type: array
                  items:
                    type: object
                    properties:
                      annualized10YearReturn:
                        type: number
                        nullable: true
                        description: Annualized return for 10 years percentage.
                      annualized15YearReturn:
                        type: number
                        nullable: true
                        description: Annualized return for 15 years percentage.
                      annualized1YearReturn:
                        type: number
                        nullable: true
                        description: Annualized return for 1 year percentage.
                      annualized2YearReturn:
                        type: number
                        nullable: true
                        description: Annualized return for 2 years percentage.
                      annualized3YearReturn:
                        type: number
                        nullable: true
                        description: Annualized return for 3 years percentage.
                      annualizedSinceInceptionReturn:
                        type: string
                        description: Annualized return since inception percentage.
                      annualized4YearReturn:
                        type: number
                        nullable: true
                        description: Annualized return for 4 years percentage.
                      annualized5YearReturn:
                        type: number
                        nullable: true
                        description: Annualized return for 5 years percentage.
                      annualized7YearReturn:
                        type: number
                        nullable: true
                        description: Annualized return for 7 years percentage.
                      cumulative10YearReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 10 years percentage.
                      cumulative15YearReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 15 years percentage.
                      cumulative1MonthReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 1 month percentage.
                      cumulative1YearReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 1 year percentage.
                      cumulative2YearReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 2 years percentage.
                      cumulative3MonthReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 3 months percentage.
                      cumulative3YearReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 3 years percentage.
                      cumulative4YearReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 4 years percentage.
                      cumulative5YearReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 5 years percentage.
                      cumulative6MonthReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 6 months percentage.
                      cumulative7YearReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 7 years percentage.
                      cumulative9MonthReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 9 months percentage.
                      returnCurrency:
                        type: string
                        description: Currency of return.
                      cumulativeSinceInceptionReturn:
                        type: number
                        nullable: true
                        description: Cumulative return since inception percentage.
                      dataProvider:
                        type: string
                        nullable: true
                        description: Data provider information.
                      effectiveDate:
                        type: string
                        format: date
                        description: Effective date of the performance data.
                      bloombergTicker:
                        type: string
                        nullable: true
                        description: Bloomberg ticker information.
                      eomsId:
                        type: string
                        nullable: true
                        description: EOMS ID.
                      gfasId:
                        type: string
                        nullable: true
                        description: GFAS ID.
                      isin:
                        type: string
                        nullable: true
                        description: ISIN code.
                      miasId:
                        type: string
                        nullable: true
                        description: MIAS ID.
                      sedol:
                        type: string
                        nullable: true
                        description: SEDOL code.
                      fundClassAcronym:
                        type: string
                        nullable: true
                        description: Fund class acronym.
                      indicativeFund:
                        type: string
                        nullable: true
                        description: Indicative fund information.
                      parentFundType:
                        type: string
                        nullable: true
                        description: Type of the parent fund.
                      recordType:
                        type: string
                        nullable: true
                        description: Record type.
                      returnComponentCode:
                        type: string
                        nullable: true
                        description: Return component code.
                      returnIndicator:
                        type: string
                        nullable: true
                        description: Return indicator.
                      taxTreatment:
                        type: string
                        nullable: true
                        description: Tax treatment.
                      returnCurrencyValuationPoint:
                        type: string
                        description: Valuation point of return currency.
                      source:
                        type: string
                        description: Source information.
                      legalName:
                        type: string
                        description: Legal name of the entity.
                      perfhEntityId:
                        type: string
                        description: Performance entity ID.
                      cumulative1DayReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 1 day percentage.
                      cumulative1WeekReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 1 week percentage.
                      cumulative20YearReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 20 years percentage.
                      cumulativeLaunchOfFundReturn:
                        type: number
                        nullable: true
                        description: Cumulative return from launch of fund.
                      cumulativeMonthToDateReturn:
                        type: number
                        nullable: true
                        description: Cumulative return month-to-date percentage.
                      cumulativeQuaterToDateReturn:
                        type: number
                        nullable: true
                        description: Cumulative return quarter-to-date percentage.
                      cumulativeYearToDateReturn:
                        type: number
                        nullable: true
                        description: Cumulative return year-to-date percentage.
                      annualizedLaunchOfFundReturn:
                        type: number
                        nullable: true
                        description: Annualized return from launch of fund.
                      cumulative6YearReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 6 years percentage.
                      cumulative8YearReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 8 years percentage.
                      cumulative9YearReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for 9 years percentage.
                      annualized6YearReturn:
                        type: number
                        nullable: true
                        description: Annualized return for 6 years percentage.
                      annualized8YearReturn:
                        type: number
                        nullable: true
                        description: Annualized return for 8 years percentage.
                      annualized9YearReturn:
                        type: number
                        nullable: true
                        description: Annualized return for 9 years percentage.
                      annualized20YearReturn:
                        type: number
                        nullable: true
                        description: Annualized return for 20 years percentage.
                      entityBasecurrency:
                        type: string
                        description: Base currency of the entity.
                      relativeAnnualized10YearReturn:
                        type: number
                        nullable: true
                        description: Relative annualized return for 10 years percentage.
                      relativeAnnualized15YearReturn:
                        type: number
                        nullable: true
                        description: Relative annualized return for 15 years percentage.
                      relativeAnnualized1YearReturn:
                        type: number
                        nullable: true
                        description: Relative annualized return for 1 year percentage.
                      relativeAnnualized20YearReturn:
                        type: number
                        nullable: true
                        description: Relative annualized return for 20 years percentage.
                      relativeAnnualized2YearReturn:
                        type: number
                        nullable: true
                        description: Relative annualized return for 2 years percentage.
                      relativeAnnualized3YearReturn:
                        type: number
                        nullable: true
                        description: Relative annualized return for 3 years percentage.
                      relativeAnnualized4YearReturn:
                        type: number
                        nullable: true
                        description: Relative annualized return for 4 years percentage.
                      relativeAnnualized5YearReturn:
                        type: number
                        nullable: true
                        description: Relative annualized return for 5 years percentage.
                      relativeAnnualized6YearReturn:
                        type: number
                        nullable: true
                        description: Relative annualized return for 6 years percentage.
                      relativeAnnualized7YearReturn:
                        type: number
                        nullable: true
                        description: Relative annualized return for 7 years percentage.
                      relativeAnnualized8YearReturn:
                        type: number
                        nullable: true
                        description: Relative annualized return for 8 years percentage.
                      relativeAnnualized9YearReturn:
                        type: number
                        nullable: true
                        description: Relative annualized return for 9 years percentage.
                      relativeAnnualizedSinceInceptionReturn:
                        type: number
                        nullable: true
                        description: Relative annualized return since inception percentage.
                      relativeAnnualizedLaunchOfFundReturn:
                        type: number
                        nullable: true
                        description: Relative annualized return from launch of fund.
                      relativeCumulative10YearReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 10 years percentage.
                      relativeCumulative15YearReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 15 years percentage.
                      relativeCumulative1MonthReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 1 month percentage.
                      relativeCumulative1YearReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 1 year percentage.
                      relativeCumulative20YearReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 20 years percentage.
                      relativeCumulative2YearReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 2 years percentage.
                      relativeCumulative3MonthReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 3 months percentage.
                      relativeCumulative3YearReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 3 years percentage.
                      relativeCumulative4YearReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 4 years percentage.
                      relativeCumulative5YearReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 5 years percentage.
                      relativeCumulative6MonthReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 6 months percentage.
                      relativeCumulative6YearReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 6 years percentage.
                      relativeCumulative7YearReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 7 years percentage.
                      relativeCumulative8YearReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 8 years percentage.
                      relativeCumulative9MonthReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 9 months percentage.
                      relativeCumulative9YearReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 9 years percentage.
                      relativeCumulativeSinceInceptionReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return since inception percentage.
                      relativeCumulativeMonthToDateReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return month-to-date percentage.
                      relativeCumulativeQuaterToDateReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return quarter-to-date percentage.
                      relativeCumulativeYearToDateReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return year-to-date percentage.
                      relativeCumulativeLaunchOfFundReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return from launch of fund.
                      relativeCumulative1DayReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 1 day percentage.
                      relativeCumulative1WeekReturn:
                        type: number
                        nullable: true
                        description: Relative cumulative return for 1 week percentage.
                      parentId:
                        type: string
                        description: Parent ID of the fund.
                      managerName:
                        type: string
                        nullable: true
                        description: Name of the manager.
                      managerRole:
                        type: string
                        nullable: true
                        description: Role of the manager.
                      tenureTrueDate:
                        type: string
                        format: date
                        nullable: true
                        description: True date of tenure.
                      tenureMEDate:
                        type: string
                        format: date
                        nullable: true
                        description: ME date of tenure.
                      cumulativeTrueTenureReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for true tenure.
                      annualizedTrueTenureReturn:
                        type: number
                        nullable: true
                        description: Annualized return for true tenure.
                      cumulativeAltTenureReturn:
                        type: number
                        nullable: true
                        description: Cumulative return for alternative tenure.
                      annualizedAltTenureReturn:
                        type: number
                        nullable: true
                        description: Annualized return for alternative tenure.
                      currencyType:
                        type: string
                        description: Type of currency.
                      groupingId:
                        type: string
                        description: Grouping ID.
                        
    Message:
      required:
        - moreInfo
      type: object
      description: "Schema of Message object"
      properties:
        moreInfo:
          $ref: '#/components/schemas/MoreInfo'
      example:
        moreInfo:
          code: "400"
          developerMessage:
            -  "memberCode cannot be missing or empty;"
          userMessage:  "memberCode cannot be missing or empty;"
          moreInfo: ""
          errorMessages:
            - arguement:
                key: ""
                value: ""
    MoreInfo:
      description: "Schema of MoreInfo object"
      required:
        - code
        - userMessage
      type: object
      properties:
        code:
          type: string
          maxLength: 50
          example: BR400
        developerMessage:
          type: array
          items:
            type: string
          description: message details.
          example: Missing fields
        userMessage:
          type: string
          maxLength: 100
          example: Mandatory fields Missing
        moreInfo:
          type: string
        errorMessages:
          type: array
          items:
            $ref: '#/components/schemas/ErrorMessages'
      example:
        code: 400
        developerMessage:
          -  "memberCode cannot be missing or empty;"
        userMessage:  "memberCode cannot be missing or empty;"
        moreInfo: ""
    ErrorMessages:
      type: object
      description: "Schema of errorMessage object"
      required:
        - code
        - message
      properties:
        argument:
          $ref: '#/components/schemas/Argument'
        code:
          type: string
          maxLength: 50
        userMessage:
          type: string
          maxLength: 100
    Argument:
      type: object
      description: "schema of Arguement object"
      required:
        - key
      properties:
        key:
          type: string
          description: Field name for the returned message.
          maxLength: 50
        value:
          type: string
          description: >-
            Erroneous value passed in request. Value will be sanitized for any
            HTML code before being returned.
          maxLength: 200

