openapi: 3.0.1
info:
  x-metadata:
    tags:
      - Class Partner
  title: Investment Reports
  version: '1.0'
  description: >-
    Investment Reports is designed to deliver comprehensive financial reporting 

    for investment funds, focusing on trust income, asset positions, 

    investment performance, and related financial metrics. This API enables 

    users to retrieve detailed data for specific funds within a business,
    supporting 

    tax reporting, portfolio analysis, and investment performance tracking.



    <div class="env-panel" data-component-name="EnvPanel"><div
    class="env-panel__header">Servers</div><div class="env-panel__body"><div
    class="env-row"><div class="env-name">Partner Integration Environment
    (Sandbox)</div><div class="env-url-row"><span
    class="env-url">https://apigateway.class-pie.com.au/api/1.0</span><button
    type="button" class="copy-btn"
    data-copy="https://apigateway.class-pie.com.au/api/1.0"
    aria-label="Copy"><svg viewBox="0 0 16 16" fill="none"
    xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path
    fill-rule="evenodd" clip-rule="evenodd" d="M5.16667 2.66667C5.16667 2.57462
    5.24129 2.5 5.33333 2.5H12C12.092 2.5 12.1667 2.57462 12.1667
    2.66667V10.6667C12.1667 10.7587 12.092 10.8333 12 10.8333H10H5.33333C5.24129
    10.8333 5.16667 10.7587 5.16667 10.6667V4.66667V2.66667ZM4.16667
    4.16667V2.66667C4.16667 2.02233 4.689 1.5 5.33333 1.5H12C12.6443 1.5 13.1667
    2.02233 13.1667 2.66667V10.6667C13.1667 11.311 12.6443 11.8333 12
    11.8333H10.5V13.3333C10.5 13.6428 10.3771 13.9395 10.1583 14.1583C9.9395
    14.3771 9.64275 14.5 9.33333 14.5H2.66667C2.35725 14.5 2.0605 14.3771
    1.84171 14.1583C1.62292 13.9395 1.5 13.6428 1.5 13.3333V5.33333C1.5 5.02391
    1.62292 4.72717 1.84171 4.50838C2.0605 4.28958 2.35725 4.16667 2.66667
    4.16667H4.16667ZM9.5 11.8333V13.3333C9.5 13.3775 9.48244 13.4199 9.45118
    13.4512C9.41993 13.4824 9.37754 13.5 9.33333 13.5H2.66667C2.62246 13.5
    2.58007 13.4824 2.54882 13.4512C2.51756 13.4199 2.5 13.3775 2.5
    13.3333V5.33333C2.5 5.28913 2.51756 5.24674 2.54882 5.21548C2.58007 5.18423
    2.62246 5.16667 2.66667 5.16667H4.16667V10.6667C4.16667 11.311 4.689 11.8333
    5.33333 11.8333H9.5Z" fill="currentColor"/></svg></button></div></div><div
    class="env-row"><div class="env-name">Production Environment</div><div
    class="env-url-row"><span
    class="env-url">https://apigateway.class.com.au/api/1.0</span><button
    type="button" class="copy-btn"
    data-copy="https://apigateway.class.com.au/api/1.0" aria-label="Copy"><svg
    viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"
    aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.16667
    2.66667C5.16667 2.57462 5.24129 2.5 5.33333 2.5H12C12.092 2.5 12.1667
    2.57462 12.1667 2.66667V10.6667C12.1667 10.7587 12.092 10.8333 12
    10.8333H10H5.33333C5.24129 10.8333 5.16667 10.7587 5.16667
    10.6667V4.66667V2.66667ZM4.16667 4.16667V2.66667C4.16667 2.02233 4.689 1.5
    5.33333 1.5H12C12.6443 1.5 13.1667 2.02233 13.1667 2.66667V10.6667C13.1667
    11.311 12.6443 11.8333 12 11.8333H10.5V13.3333C10.5 13.6428 10.3771 13.9395
    10.1583 14.1583C9.9395 14.3771 9.64275 14.5 9.33333 14.5H2.66667C2.35725
    14.5 2.0605 14.3771 1.84171 14.1583C1.62292 13.9395 1.5 13.6428 1.5
    13.3333V5.33333C1.5 5.02391 1.62292 4.72717 1.84171 4.50838C2.0605 4.28958
    2.35725 4.16667 2.66667 4.16667H4.16667ZM9.5 11.8333V13.3333C9.5 13.3775
    9.48244 13.4199 9.45118 13.4512C9.41993 13.4824 9.37754 13.5 9.33333
    13.5H2.66667C2.62246 13.5 2.58007 13.4824 2.54882 13.4512C2.51756 13.4199
    2.5 13.3775 2.5 13.3333V5.33333C2.5 5.28913 2.51756 5.24674 2.54882
    5.21548C2.58007 5.18423 2.62246 5.16667 2.66667
    5.16667H4.16667V10.6667C4.16667 11.311 4.689 11.8333 5.33333 11.8333H9.5Z"
    fill="currentColor"/></svg></button></div></div></div></div>
servers:
  - url: https://apigateway.class-pie.com.au/api/1.0
    description: Partner Integration Environment (Sandbox)
  - url: https://apigateway.class.com.au/api/1.0
    description: Production Environment
paths:
  /f/{businessCode}/{fundCode}/report-data/investment-reports/trust-income-schedule-reconciliation:
    get:
      operationId: TrustIncomeDistributionReconciliationReportData
      summary: Trust income distribution reconciliation report data
      description: >-
        Returns the Trust Income Schedule's details in a given Trust for a
        particular financial year. This endpoint provides specific information
        on reconciliation items that is related to Tax Return purposes for
        individual and non-individual entities, where they are benficiaries
        entitlted to Trust Income and distribution.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - $ref: '#/components/parameters/groupByParam'
        - $ref: '#/components/parameters/yearParam'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/TrustIncomeScheduleReconciliationReportGetResponse
            application/xml:
              schema:
                $ref: >-
                  #/components/schemas/TrustIncomeScheduleReconciliationReportGetResponse
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/report-data/investment-reports/detailed-fund-asset-position:
    get:
      operationId: detailedFundAssetPosition
      summary: detailedFundAssetPosition
      description: A breakdown of the asset classes for the fund's holdings.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: atDate
          in: query
          required: true
          schema:
            type: string
            format: date
            example: '2024-07-01'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/InvestmentReports_DetailedFundAssetPosition
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/report-data/investment-reports/investment-income-by-period:
    get:
      operationId: investmentIncomeByPeriod
      summary: investmentIncomeByPeriod
      description: A summary of the income received by the fund
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: startDate
          in: query
          required: true
          schema:
            type: string
            format: date
            example: '2024-07-01'
        - name: endDate
          in: query
          required: true
          schema:
            type: string
            format: date
            example: '2025-06-30'
        - $ref: '#/components/parameters/groupByParam'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: '#/components/schemas/InvestmentReports_InvestmentIncome'
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/report-data/investment-reports/daily-investment-performance:
    get:
      operationId: dailyInvestmentPerformance
      summary: dailyInvestmentPerformance
      description: >-
        Provides a daily investment performance which consists of the total
        return (capital growth and income) for all investments.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: startDate
          in: query
          description: The start date for the report period.
          required: true
          schema:
            type: string
            format: date
          example: '2024-07-01'
        - name: endDate
          in: query
          description: The end date for the report period.
          required: true
          schema:
            type: string
            format: date
          example: '2025-06-30'
        - name: groupBy
          in: query
          description: The grouping method to use on the investment accounts.
          required: true
          schema:
            $ref: '#/components/schemas/HoldingAccountGrouping'
        - name: benchmarkId
          in: query
          description: benchmarkId
          required: false
          schema:
            type: string
        - name: useCachedData
          in: query
          description: Specifies whether to use cached data for the report.
          required: true
          schema:
            type: boolean
          example: true
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    type: array
                    items:
                      $ref: '#/components/schemas/PortfolioPerformanceData'
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/report-data/investment-reports/distribution-reconciliation:
    get:
      operationId: distributionReconciliation
      summary: distributionReconciliation
      description: The Distribution Reconciliation Report data
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - $ref: '#/components/parameters/yearParam'
        - $ref: '#/components/parameters/groupByParam'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/InvestmentReports_DistributionReconciliationReport
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/report-data/investment-reports/fund-asset-position:
    get:
      operationId: fundAssetPosition
      summary: fundAssetPosition
      description: A summary of the fund's asset positions
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: atDate
          in: query
          description: The date at which the report should be generated for
          required: true
          schema:
            type: string
            format: date
          example: '2024-07-01'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: '#/components/schemas/InvestmentReports_FundAssetPosition'
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/report-data/investment-reports/investment-income-details:
    get:
      operationId: investmentIncomeDetails
      summary: investmentIncomeDetails
      description: >-
        Details of all investment income received by the fund within the
        supplied date range.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: startDate
          in: query
          required: true
          schema:
            type: string
            format: date
          example: '2024-07-01'
        - name: endDate
          in: query
          required: true
          schema:
            type: string
            format: date
          example: '2025-06-30'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/InvestmentReports_InvestmentIncomeDetails
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/report-data/investment-reports/investment-movement-and-returns:
    post:
      operationId: investmentMovementAndReturnsReport
      summary: investmentMovementAndReturnsReport
      description: Data source for the investment movement and returns report.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: startDate
          in: query
          description: The start date of the period to show movements for
          required: false
          schema:
            type: string
            format: date
            example: '2024-07-01'
        - name: endDate
          in: query
          description: The end date of the period to show movements for
          required: false
          schema:
            type: string
            format: date
            example: '2025-06-30'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/InvestmentReports_InvestmentMovementAndReturnsReport
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/InvestmentReports_InvestmentMovementAndReturnsReportApiParameters
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/report-data/investment-reports/investment-movement:
    get:
      operationId: investmentMovementSummary
      summary: investmentMovementSummary
      description: >-
        Provides a detailed list of transactions in a particular bank account or
        group of bank accounts for a period.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: startDate
          in: query
          required: true
          schema:
            type: string
            format: date
            example: '2024-07-01'
        - name: endDate
          in: query
          required: true
          schema:
            type: string
            format: date
            example: '2025-06-30'
        - $ref: '#/components/parameters/groupByParam'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/InvestmentReports_InvestmentMovementSummary
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/report-data/investment-reports/official-holding-valuation-details:
    get:
      operationId: investmentRevaluation
      summary: investmentRevaluation
      description: The official holding valuation for a fund.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - $ref: '#/components/parameters/yearParam'
        - $ref: '#/components/parameters/groupByParam'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/InvestmentReports_HoldingValuationDetailsSummary
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/report-data/investment-reports/rental-statement:
    get:
      operationId: rentalStatementReport
      summary: rentalStatementReport
      description: The rental propery schedule for a fund.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - $ref: '#/components/parameters/yearParam'
        - name: includeComparatives
          in: query
          description: Defalut value is False
          required: false
          schema:
            type: boolean
            example: true
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/InvestmentReports_RentalStatementReport
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
            application/xml:
              schema:
                xml:
                  wrapped: false
                  name: >-
                    ApiResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
                      wrapped: true
                      name: Errors
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
            application/xml:
              schema:
                xml:
                  wrapped: false
                  name: >-
                    ApiResponse
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance"
                type: object
                properties:
                  Errors:
                    type: object
                    properties:
                      ApiError:
                        type: array
                        items:
                          $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
            application/xml:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
                    xml:
                      wrapped: true
                      name: Errors
                xml:
                  wrapped: false
                  name: >-
                    ApiResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
            application/xml:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
                    xml:
                      wrapped: true
                      name: Errors
                xml:
                  wrapped: false
                  name: >-
                    ApiResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
            application/xml:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
                    xml:
                      wrapped: true
                      name: Errors
                xml:
                  wrapped: false
                  name: >-
                    ApiResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
            application/xml:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
                    xml:
                      wrapped: true
                      name: Errors
                xml:
                  wrapped: false
                  name: >-
                    ApiResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/report-data/investment-reports/investment-summary:
    get:
      operationId: investmentSummary
      summary: investmentSummary
      description: >-
        Statement of investments held by the fund and their unrealised gains to
        date.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: atDate
          in: query
          required: true
          schema:
            type: string
            format: date
          example: '2024-07-01'
        - name: groupBy
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/InvestmentGroupingType'
        - name: includeIncomeExpected
          in: query
          required: false
          schema:
            type: boolean
            example: true
        - name: costBaseType
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/CostbaseType'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: '#/components/schemas/InvestmentReports_InvestmentSummary'
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
components:
  parameters:
    fundCodeParam:
      name: fundCode
      description: Class entity code
      in: path
      required: true
      schema:
        type: string
        example: demo-fund
    groupByParam:
      name: groupBy
      in: query
      description: The grouping method to use on the investment accounts
      required: false
      schema:
        $ref: '#/components/schemas/InvestmentGroupingType'
    businessCodeParam:
      name: businessCode
      in: path
      description: Class business code
      required: true
      schema:
        type: string
        example: demo-business
    yearParam:
      name: year
      description: The financial year to retrieve information
      in: query
      required: true
      schema:
        type: integer
        example: 2024
  schemas:
    AddressSummary:
      type: object
      description: Postal address with three address lines and location details.
      properties:
        AddressLine1:
          type: string
          description: Primary street address line.
          example: Level 12, 1 Market Street
        AddressLine2:
          type: string
          description: Secondary address details such as building or suite.
          example: Tower A
        AddressLine3:
          type: string
          description: Additional address information (optional line).
          example: Barangaroo
        PostCode:
          type: string
          description: Postal or ZIP code.
          example: '2000'
        Locality:
          type: string
          description: City or suburb.
          example: Sydney
        State:
          type: string
          description: State or region.
          example: NSW
        Country:
          type: string
          description: Country name in full.
          example: Australia
    ApiError:
      type: object
      properties:
        Code:
          type: string
        Message:
          type: string
    ApiResponseBase:
      type: object
      properties:
        Errors:
          type: array
          items:
            $ref: '#/components/schemas/ApiError'
    CostbaseType:
      type: string
      description: Cost base calculation method used for reporting.
      enum:
        - AccountingCostbase
        - CGTCostbase
      example: AccountingCostbase
    DateRange:
      type: object
      description: Inclusive reporting window and derived details.
      properties:
        StartPeriodDate:
          type: string
          format: date
          description: Start date of the period (ISO 8601).
          example: '2024-07-01'
        EndPeriodDate:
          type: string
          format: date
          description: End date of the period (ISO 8601).
          example: '2025-06-30'
        IsEmpty:
          type: boolean
          description: True if the date range has no span (e.g., missing dates).
          example: false
        IsPopulated:
          type: boolean
          description: True if both start and end dates are present.
          example: true
        NumberOfDaysContained:
          type: integer
          format: int32
          description: Total number of days included in the period.
          example: 365
        EpochStart:
          type: string
          format: date
          description: Minimum permissible start date for the dataset.
          example: '2000-01-01'
        EpochEnd:
          type: string
          format: date
          description: Maximum permissible end date for the dataset.
          example: '2099-12-31'
        MinDatePeriodUpdate:
          type: string
          format: date
          description: Earliest date from which updates may apply.
          example: '2024-07-01'
    DetailedFundAssetPosition_AssetClassBreakdown:
      type: object
      description: Breakdown of a holding across asset classes by market/unsettled values.
      properties:
        Id:
          type: string
          description: Internal identifier for the breakdown item.
          example: bf5ef273-ea6d-46c2-83fb-9b9a6326ff0a
        Description:
          type: string
          description: Text description of the breakdown component.
          example: Australian Equity Allocation
        AssetClassDescription:
          type: string
          description: Name of the asset class represented.
          example: Equities
        MarketValueOfAssetsHeld:
          type: number
          format: decimal
          description: Current market value for assets in this class.
          example: 1250000.45
        UnsettledPositionOnAssetsHeld:
          type: number
          format: decimal
          description: Value of trades pending settlement for this class.
          example: 25000
        TotalValueOfAssetsHeld:
          type: number
          format: decimal
          description: Market value plus unsettled position value.
          example: 1275000.45
    DetailedFundAssetPosition_AssetClassDesc:
      type: object
      description: Target strategy constraints for an asset class.
      properties:
        Id:
          type: string
          description: Unique asset class identifier.
          example: 2426b645-1bdc-4943-890e-bf47b4d05339
        Name:
          type: string
          description: Display name of the asset class.
          example: Australian Equities
        StrategyMinPercent:
          type: number
          format: decimal
          description: Minimum allocation percentage.
          example: 20
        StrategyMaxPercent:
          type: number
          format: decimal
          description: Maximum allocation percentage.
          example: 40
        StrategyTargetPercent:
          type: number
          format: decimal
          description: Target allocation percentage.
          example: 30
    DetailedFundAssetPosition_DetailedPortfolioAssetPosition:
      type: object
      description: Portfolio-level asset positions and strategy details.
      properties:
        AssetClassDescs:
          type: array
          description: Strategy constraints per asset class.
          items:
            $ref: '#/components/schemas/DetailedFundAssetPosition_AssetClassDesc'
        HoldingAssetPositionList:
          type: array
          description: Detailed asset positions held by the portfolio.
          items:
            $ref: >-
              #/components/schemas/DetailedFundAssetPosition_HoldingAssetPosition
        StrategyEffectiveDate:
          type: string
          format: date
          description: Date from which the strategy percentages apply.
          example: '2025-07-01'
        StrategyEffectiveDateSpecified:
          type: boolean
          description: True if the effective date is explicitly set.
          example: true
        PortfolioId:
          type: string
          description: Unique portfolio identifier.
          example: 34d86f3a-445d-4bb1-a8cd-10735560eaac
        PortfolioName:
          type: string
          description: Human-friendly portfolio name.
          example: Balanced Growth
    DetailedFundAssetPosition_HoldingAssetPosition:
      type: object
      description: >-
        Single holding position including quantities, pricing, and
        classification.
      properties:
        Units:
          type: number
          format: decimal
          description: Number of units/shares held.
          example: 10000
        MarketPrice:
          type: number
          format: decimal
          description: Latest market price per unit.
          example: 12.34
        MarketPriceSpecified:
          type: boolean
          description: True if MarketPrice is present and up-to-date.
          example: true
        AssetClassBreakdownList:
          type: array
          description: Breakdown of the holding across asset classes.
          items:
            $ref: '#/components/schemas/DetailedFundAssetPosition_AssetClassBreakdown'
        MarketAndSecurityInfo:
          $ref: '#/components/schemas/MarketAndSecurityInfo'
        Description:
          type: string
          description: Holding description.
          example: BHP Group Ltd
        ProductName:
          type: string
          description: Product or instrument name.
          example: BHP
        Code:
          type: string
          description: Security code or ticker.
          example: BHP
        MarketType:
          type: string
          description: Market category of the security.
          example: ASX
        MarketTypeCode:
          type: string
          description: Internal market type code.
          example: EQUITY
        Reference:
          type: string
          description: External identifier such as ISIN.
          example: ISIN AU000000BHP4
    DistributionReconciliationReport_DistHoldingSummary:
      type: object
      description: Distribution reconciliation values per holding account.
      properties:
        HoldingAccountName:
          type: string
          description: Name of the holding account.
          example: Colonial First State Wholesale Property Securities
        HoldingAccountCode:
          type: string
          description: Internal code of the holding account.
          example: BFL0019AU
        SecurityCode:
          type: string
          description: Security code if applicable.
          example: CFS-WPS
        ManagedAccountCode:
          type: string
          description: Managed account reference if applicable.
          example: MA-001
        Grouping:
          $ref: '#/components/schemas/HoldingGroupingDetails'
        NetTrustDistribution:
          type: number
          format: decimal
          description: Net trust distribution amount for the period.
          example: 0
        NonPrimaryProductionIncome:
          type: number
          format: decimal
          description: Income not related to primary production.
          example: 0
        FrankingCredits:
          type: number
          format: decimal
          description: Franking credits attributed to distributions.
          example: 0
        WithholdingTax:
          type: number
          format: decimal
          description: Tax withheld from trust distributions.
          example: 0
        TaxExempt:
          type: number
          format: decimal
          description: Tax-exempt portion of distributions.
          example: 0
        TaxFree:
          type: number
          format: decimal
          description: Tax-free portion of distributions.
          example: 0
        TaxDeferred:
          type: number
          format: decimal
          description: Tax-deferred amount carried forward.
          example: 0
        CapitalReturns:
          type: number
          format: decimal
          description: Return of capital distributions.
          example: 0
        AssessableAmounts:
          type: number
          format: decimal
          description: Amounts assessable for tax.
          example: 0
        ForeignTaxCredits:
          type: number
          format: decimal
          description: Foreign tax offset amount.
          example: 0
        DiscountedCapGains:
          type: number
          format: decimal
          description: Capital gains subject to discount.
          example: 0
        CGTConcessionAmount:
          type: number
          format: decimal
          description: CGT concession applied.
          example: 0
        IndexedCapGains:
          type: number
          format: decimal
          description: Capital gains indexed portion.
          example: 0
        OtherCapGains:
          type: number
          format: decimal
          description: Capital gains (other).
          example: 0
        GrossTrustAccounting:
          type: number
          format: decimal
          description: Gross trust amount per accounting records.
          example: 0
        GrossTrustTax:
          type: number
          format: decimal
          description: Gross trust amount per tax statement.
          example: 0
        MarketAndSecurityInfo:
          $ref: '#/components/schemas/MarketAndSecurityInfo'
        AmitAmount:
          type: number
          format: decimal
          description: Attribution Managed Investment Trust (AMIT) adjustment.
          example: 0
    DistributionReconciliationReport_InvestmentGroup:
      type: object
      description: Grouping of holdings for reconciliation with subtotals.
      required:
        - Name
        - HoldingReconciliationSummaries
        - Totals
      properties:
        Name:
          type: string
          description: Group name used for presentation.
          example: Managed Fund Markets
        HoldingReconciliationSummaries:
          type: array
          description: List of holding summaries within the group.
          items:
            $ref: >-
              #/components/schemas/DistributionReconciliationReport_DistHoldingSummary
        Totals:
          $ref: >-
            #/components/schemas/DistributionReconciliationReport_DistHoldingSummary
    DistributionReconciliationReport_ReconciliationBlock:
      type: object
      description: Aggregated reconciliation amounts across categories.
      properties:
        GrossTrustNonPrimaryProduction:
          type: number
          format: decimal
          description: Gross non-primary production trust income.
          example: 0
        GrossTrustFrankingCredits:
          type: number
          format: decimal
          description: Gross franking credits from trusts.
          example: 0
        GrossTrustWithholdingTax:
          type: number
          format: decimal
          description: Gross withholding tax from trusts.
          example: 0
        GrossTrustTotal:
          type: number
          format: decimal
          description: Total of all gross trust amounts.
          example: 0
        ForeignAssessable:
          type: number
          format: decimal
          description: Assessable foreign income.
          example: 0
        ForeignTaxCredits:
          type: number
          format: decimal
          description: Foreign tax credits.
          example: 0
        ForeignTotal:
          type: number
          format: decimal
          description: Total foreign income and credits.
          example: 0
        CapGainsDiscountable:
          type: number
          format: decimal
          description: Discountable capital gains amount.
          example: 0
        CapGainsIndexed:
          type: number
          format: decimal
          description: Indexed capital gains amount.
          example: 0
        CapGainsOther:
          type: number
          format: decimal
          description: Other capital gains amount.
          example: 0
        CapGainsTotal:
          type: number
          format: decimal
          description: Total capital gains.
          example: 0
    FundAssetPosition_AssetClassDetails:
      type: object
      description: Asset class summary values and strategy percentages.
      properties:
        AssetClassId:
          type: string
          description: Unique identifier for the asset class.
          example: 5fc0ea27-7585-438f-a197-6cfd2145783d
        AssetClassName:
          type: string
          description: Asset class display name.
          example: Global Equities
        ValueOfAssetsHeld:
          type: number
          format: decimal
          description: Total value of assets held in the class.
          example: 2000000
        MarketValueOfAssetsHeld:
          type: number
          format: decimal
          description: Current market value in the class.
          example: 1985000
        UnsettledPositionOnAssetsHeld:
          type: number
          format: decimal
          description: Value pending settlement for the class.
          example: 15000
        AssetStrategyMinPercent:
          type: number
          format: decimal
          description: Minimum allocation per strategy.
          example: 15
        AssetStrategyMaxPercent:
          type: number
          format: decimal
          description: Maximum allocation per strategy.
          example: 55
        AssetStrategyTargetPercent:
          type: number
          format: decimal
          description: Target allocation per strategy.
          example: 35
        AssetStrategyOverallPercent:
          type: number
          format: decimal
          description: Actual allocation percentage.
          example: 32.7
    FundAssetPosition_PortfolioAssetPosition:
      type: object
      description: Portfolio-level position summary by asset class.
      properties:
        AssetClassDetailList:
          type: array
          description: List of asset class details for the portfolio.
          items:
            $ref: '#/components/schemas/FundAssetPosition_AssetClassDetails'
        PortfolioId:
          type: string
          description: Portfolio unique identifier.
          example: 0872f336-84d5-4cde-bee8-63b5dbc4fb24
        PortfolioName:
          type: string
          description: Portfolio display name.
          example: High Growth
        OverallValue:
          type: number
          format: decimal
          description: Total portfolio value.
          example: 4500000
        AssetPercentagesInvalid:
          type: boolean
          description: True if strategy percentages are out of bounds or incomplete.
          example: false
        AssetStrategyEffectiveDate:
          type: string
          format: date
          description: Effective date of the asset strategy.
          example: '2025-07-01'
    HoldingAccountGrouping:
      type: string
      description: Grouping dimension for holding accounts.
      enum:
        - Fund
        - MarketType
        - AssetClass
        - AssetPool
        - Feed
        - None
        - GLClassification
      example: MarketType
    HoldingAccountType:
      type: string
      description: Type/category of the holding account.
      enum:
        - BankAccount
        - ForeignBankAccount
        - InvestmentAccount
        - PropertyAccount
        - CollectibleAccount
        - PlatformAccount
        - TermDepositAccount
      example: InvestmentAccount
    HoldingDailyAccountFlowDetails:
      type: object
      description: Daily movement amounts for a holding account.
      required:
        - FlowAmount
        - Acquisitions
        - Disposals
      properties:
        FlowAmount:
          type: number
          format: decimal
          description: Net cash flow for the day (positive inflow, negative outflow).
          example: 1500
        Acquisitions:
          type: number
          format: decimal
          description: Total acquisition amount recorded for the day.
          example: 1000
        Disposals:
          type: number
          format: decimal
          description: Total disposal amount recorded for the day.
          example: 500
    HoldingDailyValuation:
      type: object
      description: Daily valuation snapshot for a holding account.
      properties:
        HoldingAccountId:
          type: string
          description: Unique identifier of the holding account.
          example: e8af114a-a54d-4171-a1cf-60988a6a235d
        HoldingAccountCode:
          type: string
          description: Internal code of the holding account.
          example: BFL0019AU
        Date:
          type: string
          format: date
          description: Valuation date.
          example: '2025-11-10'
        Quantity:
          type: number
          format: decimal
          description: Units held on the valuation date.
          example: 10000
        QuantityChange:
          type: number
          format: decimal
          description: Change in units since previous valuation.
          example: 250
        MarketValue:
          type: number
          format: decimal
          description: Gross market value.
          example: 123400
        MarketValueChange:
          type: number
          format: decimal
          description: Change in market value since previous valuation.
          example: 2400
        WeightInPortfolio:
          type: number
          format: decimal
          description: Percentage weight of the holding in the portfolio.
          example: 2.75
        NetMarketValue:
          type: number
          format: decimal
          description: Market value net of fees and unsettled trades.
          example: 122900
        NetMarketValueChange:
          type: number
          format: decimal
          description: Change in net market value since previous valuation.
          example: 2300
        PriceDate:
          type: string
          format: date
          description: Date of the price used for valuation.
          example: '2025-11-10'
    HoldingGroupingDetails:
      type: object
      description: Grouping metadata and tags used for reporting.
      properties:
        NO_FHR_CAPTION:
          type: string
          description: Optional caption displayed when grouping is not applicable.
          example: No grouping applied
        Tags:
          type: array
          description: Key-value tags that define group membership.
          items:
            $ref: '#/components/schemas/HoldingGroupingDetails_Tag'
    HoldingGroupingDetails_Tag:
      type: object
      description: Single grouping tag.
      properties:
        Type:
          $ref: '#/components/schemas/InvestmentGroupingType'
        Value:
          type: string
          description: Value of the tag.
          example: Default Pool
    HoldingValuationDetailsSummary_HoldingDetails:
      type: object
      description: Summary valuation details for a single holding.
      properties:
        MarketAndSecurityInfo:
          $ref: '#/components/schemas/MarketAndSecurityInfo'
        HoldingAccountId:
          type: string
          description: Unique identifier of the holding account.
          example: 849f4f5f-7966-4395-9840-ed46ac9096e7
        Code:
          type: string
          description: Account or instrument code.
          example: BHP
        HoldingAccountDescription:
          type: string
          description: Display name of the holding account.
          example: BHP Group Ltd
        Grouping:
          $ref: '#/components/schemas/HoldingGroupingDetails'
        PriceDate:
          type: string
          format: date
          description: Date of the price used.
          example: '2025-11-10'
        Price:
          type: number
          format: decimal
          description: Unit price used in valuation.
          example: 12.34
        Quantity:
          type: number
          format: decimal
          description: Units held.
          example: 10000
        MarketValue:
          type: number
          format: decimal
          description: Gross market value.
          example: 123400
        BookCost:
          type: number
          format: decimal
          description: Cost base recorded for the holding.
          example: 110000
        UnsettledAmount:
          type: number
          format: decimal
          description: Value of trades not yet settled.
          example: 2500
        UnrealisedAccountingGainSpecified:
          type: boolean
          description: True if unrealised gain has been computed.
          example: true
        UnrealisedAccountingGain:
          type: number
          format: decimal
          description: Unrealised accounting gain.
          example: 13400
        ValuationDate:
          type: string
          format: date
          description: Date of this valuation record.
          example: '2025-11-10'
    HoldingValuationDetailsSummary_MarketTypeDetails_:
      type: object
      description: Collection of holding details for a given market type.
      properties:
        HoldingDetailList:
          type: array
          description: Holdings within the market type.
          items:
            $ref: '#/components/schemas/HoldingValuationDetailsSummary_HoldingDetails'
        MarketTypeId:
          type: string
          description: Identifier of the market type.
          example: ASX
        MarketTypeName:
          type: string
          description: Name of the market type.
          example: Australian Securities Exchange
    HoldingValuationDetailsSummary_PortfolioDetails:
      type: object
      description: Portfolio breakdown by market type.
      properties:
        MarketTypeDetailList:
          type: array
          description: List of market type details.
          items:
            $ref: >-
              #/components/schemas/HoldingValuationDetailsSummary_MarketTypeDetails_
        PortfolioId:
          type: string
          description: Portfolio identifier.
          example: 4bc1b3db-67ac-4eab-ab75-a087c72aa16a
    InvestmentGroupingType:
      type: string
      description: Grouping dimension used across reports.
      enum:
        - MarketType
        - Reference
        - AssetPool
        - GL
      example: MarketType
    InvestmentIncomeDetails_IncomeHoldingAccountItem:
      type: object
      description: Income transactions associated with an investment holding.
      required:
        - InvestmentName
        - TransactionItems
      properties:
        InvestmentName:
          type: string
          description: Name of the investment.
          example: Vanguard Australian Shares Index ETF
        TransactionItems:
          type: array
          description: List of income transactions for the holding.
          items:
            $ref: '#/components/schemas/InvestmentIncomeDetails_IncomeTransactionItem'
          example:
            - Date: '2025-09-15'
              Description: Distribution Q3
              NetIncome: 450.75
    InvestmentIncomeDetails_IncomeTransactionItem:
      type: object
      description: Single income transaction item.
      properties:
        Date:
          type: string
          format: date
          description: Transaction date.
          example: '2025-09-15'
        Description:
          type: string
          description: Narrative describing the income.
          example: Distribution Q3
        NetIncome:
          type: number
          format: decimal
          description: Net income received.
          example: 450.75
        UnfrankedDividends:
          type: number
          format: decimal
          description: Unfranked dividend amount.
          example: 0
        FrankedDividends:
          type: number
          format: decimal
          description: Franked dividend amount.
          example: 350
        NetForeignIncome:
          type: number
          format: decimal
          description: Net foreign income amount.
          example: 0
        FrankingCredit:
          type: number
          format: decimal
          description: Franking credit attached to dividends.
          example: 150
        ForeignTaxCredit:
          type: number
          format: decimal
          description: Foreign tax offset.
          example: 0
        TfnCredits:
          type: number
          format: decimal
          description: Tax File Number (TFN) credits.
          example: 0
    InvestmentIncomeDetails_IncomeTypeItem:
      type: object
      description: Income grouped by type.
      properties:
        IncomeTypeName:
          type: string
          description: Name of the income type.
          example: Distributions
        IsDistribution:
          type: boolean
          description: True if the income type represents a trust distribution.
          example: true
        HoldingAccountItems:
          type: array
          description: Holdings contributing to this income type.
          items:
            $ref: >-
              #/components/schemas/InvestmentIncomeDetails_IncomeHoldingAccountItem
    InvestmentIncome_HoldingAccountItem:
      type: object
      description: Investment income summary for a single holding.
      required:
        - Summary
        - MarketAndSecurityInfo
        - InvestmentName
        - Grouping
      properties:
        Summary:
          $ref: '#/components/schemas/InvestmentIncome_InvestmentIncomeSummary'
        MarketAndSecurityInfo:
          $ref: '#/components/schemas/MarketAndSecurityInfo'
        InvestmentName:
          type: string
          description: Name of the investment.
          example: BHP Group Ltd
        Grouping:
          $ref: '#/components/schemas/HoldingGroupingDetails'
    InvestmentIncome_InvestmentIncomeSummary:
      type: object
      description: Totals and breakdowns of investment income.
      properties:
        IncomeTotal:
          type: number
          format: decimal
          description: Total income across the period.
          example: 450.75
        FrankingCredits:
          type: number
          format: decimal
          description: Total franking credits.
          example: 150
        ForeignCredits:
          type: number
          format: decimal
          description: Total foreign credits.
          example: 0
        TFNCredits:
          type: number
          format: decimal
          description: Total TFN credits.
          example: 0
        TaxFree:
          type: number
          format: decimal
          description: Total tax-free amounts.
          example: 0
        TaxExempt:
          type: number
          format: decimal
          description: Total tax-exempt amounts.
          example: 0
        TaxDeferred:
          type: number
          format: decimal
          description: Total tax-deferred amounts.
          example: 0
        Expenses:
          type: number
          format: decimal
          description: Investment-related expenses.
          example: 25
        DistributedCapitalGains:
          type: number
          format: decimal
          description: Capital gains distributed by trusts.
          example: 0
        GST:
          type: number
          format: decimal
          description: Goods and Services Tax component if applicable.
          example: 0
        TaxableIncomeExclCapitalGains:
          type: number
          format: decimal
          description: Taxable income excluding capital gains.
          example: 425.75
        CapitalGainsIndexed:
          type: number
          format: decimal
          description: Indexed capital gains.
          example: 0
        CapitalGainsDiscounted:
          type: number
          format: decimal
          description: Discounted capital gains.
          example: 0
        CapitalGainsOther:
          type: number
          format: decimal
          description: Other capital gains.
          example: 0
        CapitalGainsCGTConcession:
          type: number
          format: decimal
          description: CGT concession amount.
          example: 0
    InvestmentIncome_MarketTypeItem:
      type: object
      description: Investment income aggregated by market type.
      properties:
        HoldingAccountItems:
          type: array
          description: Holdings included in this market type.
          items:
            $ref: '#/components/schemas/InvestmentIncome_HoldingAccountItem'
        MarketTypeName:
          type: string
          description: Name of the market type.
          example: ASX
    InvestmentMovementSummary_HoldingSummary:
      type: object
      description: Movement summary for an individual holding over a period.
      properties:
        OpeningQuantitySpecified:
          type: boolean
          description: True if the opening quantity is defined.
          example: true
        OpeningMarketValue:
          type: number
          format: decimal
          description: Market value at the start of the period.
          example: 100000
        TotalAcquisitionQuantitySpecified:
          type: boolean
          description: True if acquisition quantity is explicitly specified.
          example: true
        TotalDisposalQuantitySpecified:
          type: boolean
          description: True if disposal quantity is explicitly specified.
          example: true
        TotalDispoalCost:
          type: number
          format: decimal
          description: Total cost of disposals over the period.
          example: 25000
        ClosingQuantitySpecified:
          type: boolean
          description: True if the closing quantity is defined.
          example: true
        MarketAndSecurityInfo:
          $ref: '#/components/schemas/MarketAndSecurityInfo'
        ChangeInMarketValue:
          type: number
          format: decimal
          description: Change in market value across the period.
          example: 2400
        Name:
          type: string
          description: Holding display name.
          example: BHP Group Ltd
        Code:
          type: string
          description: Holding code or ticker.
          example: BHP
        Grouping:
          $ref: '#/components/schemas/HoldingGroupingDetails'
        OpeningQuantity:
          type: number
          format: decimal
          description: Units held at the start of the period.
          example: 9750
        OpeningBookCost:
          type: number
          format: decimal
          description: Cost base at the start of the period.
          example: 90000
        TotalAcquisitionQuantity:
          type: number
          format: decimal
          description: Units acquired during the period.
          example: 500
        TotalAcquisitionCost:
          type: number
          format: decimal
          description: Cost of acquisitions during the period.
          example: 6000
        TotalDisposalQuantity:
          type: number
          format: decimal
          description: Units sold during the period.
          example: 250
        TotalDisposalProceeds:
          type: number
          format: decimal
          description: Proceeds from disposals during the period.
          example: 3250
        ProfitOrLoss:
          type: number
          format: decimal
          description: Realised profit or loss from disposals.
          example: 350
        ClosingQuantity:
          type: number
          format: decimal
          description: Units held at the end of the period.
          example: 10000
        ClosingBookCost:
          type: number
          format: decimal
          description: Cost base at the end of the period.
          example: 96000
        ClosingMarketValue:
          type: number
          format: decimal
          description: Market value at the end of the period.
          example: 123400
    InvestmentMovementSummary_MktTypeItem:
      type: object
      description: Movement summary grouped by market type.
      properties:
        HoldPerfItems:
          type: array
          description: Holding performance items for the market type.
          items:
            $ref: '#/components/schemas/InvestmentMovementSummary_HoldingSummary'
        MarketTypeName:
          type: string
          description: Name of the market type.
          example: ASX
        MarketTypeCode:
          type: string
          description: Internal market type code.
          example: EQUITY
    InvestmentMovementSummary_PfItem:
      type: object
      description: Portfolio-level movement summary grouped by market type.
      properties:
        MktTypeItems:
          type: array
          description: Market type movement items.
          items:
            $ref: '#/components/schemas/InvestmentMovementSummary_MktTypeItem'
        Id:
          type: string
          description: Unique uuid of investment movement of portfolio
          example: 86614c88-912f-4a6d-9071-031b2daec7c2
        PortfolioName:
          type: string
          description: Portfolio display name.
          example: Balanced Growth
    InvestmentPerformanceReport_HoldingGroup:
      type: object
      description: Holding group with aggregated performance summary.
      properties:
        Name:
          type: string
          description: Group name.
          example: Equities
        Holdings:
          type: array
          description: Holdings included in the group.
          items:
            $ref: '#/components/schemas/InvestmentPerformanceReport_HoldingSummary'
        PerformanceSummary:
          $ref: >-
            #/components/schemas/InvestmentPerformanceReport_InvestmentPerformanceSummary
    InvestmentPerformanceReport_HoldingSummary:
      type: object
      description: Performance summary for a single holding.
      properties:
        Name:
          type: string
          description: Holding display name.
          example: BHP Group Ltd
        Code:
          type: string
          description: Holding code.
          example: BHP
        ManagedAccountCode:
          type: string
          description: Managed account reference.
          example: MA-001
        PerformanceSummary:
          $ref: >-
            #/components/schemas/InvestmentPerformanceReport_InvestmentPerformanceSummary
        IncludeInPerformanceReports:
          type: boolean
          description: True to include the holding in performance reports.
          example: true
        MarketAndSecurityInfo:
          $ref: '#/components/schemas/MarketAndSecurityInfo'
    InvestmentPerformanceReport_InvestmentPerformanceSummary:
      type: object
      description: Aggregated performance metrics for a holding or group.
      properties:
        OpeningBalance:
          type: number
          format: decimal
          description: Opening value of the period.
          example: 100000
        TotalAcquisitions:
          type: number
          format: decimal
          description: Total acquisitions during the period.
          example: 6000
        TotalDisposals:
          type: number
          format: decimal
          description: Total disposals during the period.
          example: 3250
        ClosingBalance:
          type: number
          format: decimal
          description: Closing value of the period.
          example: 123400
        NetInflow:
          type: number
          format: decimal
          description: Net contributions less withdrawals.
          example: 2750
        ChangeInValue:
          type: number
          format: decimal
          description: Change in value over the period.
          example: 23400
        Income:
          type: number
          format: decimal
          description: Investment income received.
          example: 450.75
        ExpectedIncome:
          type: number
          format: decimal
          description: Forecast income for the period.
          example: 500
        ExpectedIncomeSpecified:
          type: boolean
          description: True if expected income was provided.
          example: true
        TotalReturn:
          type: number
          format: decimal
          description: Total return amount.
          example: 23850.75
        TotalReturnPercentage:
          type: number
          format: decimal
          description: Total return expressed as a percentage.
          example: 23.85
        TotalReturnPercentageSpecified:
          type: boolean
          description: True if return percentage is available.
          example: true
        FallbackToSimpleRateOfReturn:
          type: boolean
          description: True if calculation falls back to simple ROR.
          example: false
    InvestmentPerformanceReport_Portfolio:
      type: object
      description: Portfolio performance containing holding groups.
      properties:
        PortfolioName:
          type: string
          description: Portfolio display name.
          example: Balanced Growth
        PerformanceSummary:
          $ref: >-
            #/components/schemas/InvestmentPerformanceReport_InvestmentPerformanceSummary
        HoldingGroups:
          type: array
          description: Holding groups included in the portfolio.
          items:
            $ref: '#/components/schemas/InvestmentPerformanceReport_HoldingGroup'
    InvestmentReports_DateValue:
      type: object
      description: Single dated value for graphing or trend display.
      properties:
        Date:
          type: string
          format: date
          description: Observation date.
          example: '2025-10-31'
        Amount:
          type: number
          format: decimal
          description: Amount on the observation date.
          example: 123456.78
    InvestmentReports_DateValueRange:
      type: object
      description: Sequence of dated values and a title.
      properties:
        Values:
          type: array
          description: Series of dated values.
          items:
            $ref: '#/components/schemas/InvestmentReports_DateValue'
        Title:
          type: string
          description: Title of the series.
          example: Portfolio Value Over Time
    InvestmentReports_DetailedFundAssetPosition:
      type: object
      description: Fund-level view of detailed asset positions by portfolio.
      properties:
        PortfolioAssetPositions:
          type: array
          description: Asset positions per portfolio.
          items:
            $ref: >-
              #/components/schemas/DetailedFundAssetPosition_DetailedPortfolioAssetPosition
        FundCode:
          type: string
          description: Fund identifier.
          example: demo-fund
        FundName:
          type: string
          description: Fund display name.
          example: DEMO_SMSF_2025
        atDate:
          type: string
          format: date
          description: As-at reporting date.
          example: '2025-11-01'
    InvestmentReports_DistributionReconciliationReport:
      type: object
      description: Distribution reconciliation for a fund across holdings.
      properties:
        StartDate:
          type: string
          format: date
          description: Start date of the reconciliation window.
          example: '2024-07-01'
        EndDate:
          type: string
          format: date
          description: End date of the reconciliation window.
          example: '2025-06-30'
        FundName:
          type: string
          description: Fund display name.
          example: DEMO_SMSF_2025
        GrossFrankingCredits:
          type: boolean
          description: True to present franking credits on a gross basis.
          example: false
        Summaries:
          type: array
          description: Per-holding distribution summaries.
          items:
            $ref: >-
              #/components/schemas/DistributionReconciliationReport_DistHoldingSummary
        Reconciliation:
          $ref: >-
            #/components/schemas/DistributionReconciliationReport_ReconciliationBlock
        Totals:
          $ref: >-
            #/components/schemas/DistributionReconciliationReport_DistHoldingSummary
        InvestmentGroups:
          type: array
          description: Grouping structure for presentation.
          items:
            $ref: >-
              #/components/schemas/DistributionReconciliationReport_InvestmentGroup
        InvestmentGroupingType:
          $ref: '#/components/schemas/InvestmentGroupingType'
    InvestmentReports_FundAssetPosition:
      type: object
      description: Fund-level summary of asset positions across portfolios.
      properties:
        PortfolioAssetPositions:
          type: array
          description: Portfolio positions included in the report.
          items:
            $ref: '#/components/schemas/FundAssetPosition_PortfolioAssetPosition'
        FundCode:
          type: string
          description: Fund identifier.
          example: demo-fund
        FundName:
          type: string
          description: Fund display name.
          example: DEMO_SMSF_2025
        atDate:
          type: string
          format: date
          description: As-at reporting date.
          example: '2025-11-01'
    InvestmentReports_HoldingValuationDetailsSummary:
      type: object
      description: Fund-level summary of holding valuations by portfolio.
      properties:
        PortfolioDetailList:
          type: array
          description: Per-portfolio holding valuation details.
          items:
            $ref: >-
              #/components/schemas/HoldingValuationDetailsSummary_PortfolioDetails
        FundCode:
          type: string
          description: Fund identifier.
          example: demo-fund
        FundName:
          type: string
          description: Fund display name.
          example: DEMO_SMSF_2025
        atDate:
          type: string
          format: date
          description: As-at reporting date.
          example: '2025-11-01'
    InvestmentReports_InvestmentIncome:
      type: object
      description: Aggregated investment income for the fund by market type.
      properties:
        MarketTypeItems:
          type: array
          description: Income totals per market type.
          items:
            $ref: '#/components/schemas/InvestmentIncome_MarketTypeItem'
        FundName:
          type: string
          description: Fund display name.
          example: DEMO_SMSF_2025
        FundCode:
          type: string
          description: Fund identifier.
          example: demo-fund
        Period:
          type: string
          format: date
          description: Reporting period end date.
          example: '2025-06-30'
    InvestmentReports_InvestmentIncomeDetails:
      type: object
      description: Detailed investment income transactions grouped by type.
      properties:
        PeriodFrom:
          type: string
          format: date
          description: Start date of the income period.
          example: '2024-07-01'
        PeriodTo:
          type: string
          format: date
          description: End date of the income period.
          example: '2025-06-30'
        FundName:
          type: string
          description: Fund display name.
          example: DEMO_SMSF_2025
        FundCode:
          type: string
          description: Fund identifier.
          example: demo-fund
        IncomeTypes:
          type: array
          description: Income items grouped by type.
          items:
            $ref: '#/components/schemas/InvestmentIncomeDetails_IncomeTypeItem'
    InvestmentReports_InvestmentMovementAndReturnsReport:
      type: object
      description: >-
        Comprehensive report covering movements, returns, time series, and value
        vs. investment.
      required:
        - MovementInValue
        - PortfolioReturn
        - ReturnsOverTime
        - ValueVersusInvestment
      properties:
        MovementInValue:
          $ref: '#/components/schemas/InvestmentReports_MovementInValueDetails'
        PortfolioReturn:
          $ref: '#/components/schemas/InvestmentReports_PortfolioReturnDetails'
        ReturnsOverTime:
          $ref: '#/components/schemas/InvestmentReports_ReturnsOverTimeDetails'
        ValueVersusInvestment:
          $ref: '#/components/schemas/InvestmentReports_ValueVersusInvestmentDetails'
    InvestmentReports_InvestmentMovementAndReturnsReportApiParameters:
      type: object
      description: Optional toggles and index codes for movement & return calculations.
      required:
        - IncludeIncomeDeclareButNotPaid
        - IncludeCumulativeNetInvestInGraph
        - IncludeAfterExpensesInTwr
        - AsxIndexCode1
        - AsxIndexCode2
      properties:
        IncludeIncomeDeclareButNotPaid:
          type: boolean
          description: Include income declared but not yet paid.
          example: true
        IncludeCumulativeNetInvestInGraph:
          type: boolean
          description: Overlay cumulative net investments on graphs.
          example: true
        IncludeAfterExpensesInTwr:
          type: boolean
          description: Use after-expenses values in time-weighted return.
          example: false
        AsxIndexCode1:
          type: string
          description: Primary comparison ASX index code.
          example: XAO
        AsxIndexCode2:
          type: string
          description: Secondary comparison ASX index code.
          example: XJO
    InvestmentReports_InvestmentMovementSummary:
      type: object
      description: Fund-level movement summary across portfolios.
      properties:
        PfItems:
          type: array
          description: Per-portfolio movement items.
          items:
            $ref: '#/components/schemas/InvestmentMovementSummary_PfItem'
        FundCode:
          type: string
          description: Fund identifier.
          example: demo-fund
        FundName:
          type: string
          description: Fund display name.
          example: DEMO_SMSF_2025
        DateRange:
          type: string
          format: date
          description: Formatted representation of the reporting range.
          example: '2024-07-01'
    InvestmentReports_InvestmentPerformanceReport:
      type: object
      description: Fund-level investment performance across portfolios and groups.
      properties:
        FundCode:
          type: string
          description: Fund identifier
          example: demo-fund
        FundName:
          type: string
          description: Fund display name.
          example: DEMO_SMSF_2025
        DateRange:
          type: string
          format: date
          description: Display-friendly reporting window.
          example: '2024-07-01'
        CalculationMethod:
          $ref: '#/components/schemas/PerformanceCalculationMethod'
        GroupingType:
          $ref: '#/components/schemas/InvestmentGroupingType'
        PortfolioSummaries:
          type: array
          description: Performance summaries for each portfolio.
          items:
            $ref: '#/components/schemas/InvestmentPerformanceReport_Portfolio'
        IncludeIncomeDeclared:
          type: boolean
          description: True to include income declared but unpaid.
          example: true
        DefaultPortfolioName:
          type: string
          description: Default portfolio name shown in the report.
          example: Default
    InvestmentReports_InvestmentSummary:
      type: object
      description: Fund-level summary of holdings, costs, markets, and estimated income.
      properties:
        FundName:
          type: string
          description: Fund display name.
          example: DEMO_SMSF_2025
        FundCode:
          type: string
          description: Fund identifier
          example: demo-fund
        DateAsAt:
          type: string
          format: date
          description: As-at date of the summary.
          example: '2025-11-01'
        MarketTypeItems:
          type: array
          description: Summaries grouped by market type.
          items:
            $ref: '#/components/schemas/InvestmentSummary_MarketTypeItem'
        TotalCost:
          type: number
          format: decimal
          description: Aggregate cost across all holdings.
          example: 3750000
        TotalMarket:
          type: number
          format: decimal
          description: Aggregate market value across all holdings.
          example: 4025000
        TotalUnrealisedGain:
          type: number
          format: decimal
          description: Unrealised gain across all holdings.
          example: 275000
        TotalGainPercentage:
          type: number
          format: decimal
          description: Gain as a percentage of cost.
          example: 7.33
        TotalTotalPercentage:
          type: number
          format: decimal
          description: Total portfolio percentage across categories (presentation aid).
          example: 100
        TotalEstimatedIncome:
          type: number
          format: decimal
          description: Estimated annual income from holdings.
          example: 125000
        TotalEstimatedYield:
          type: number
          format: decimal
          description: Estimated yield based on market values.
          example: 3.1
        CostbaseType:
          $ref: '#/components/schemas/CostbaseType'
    InvestmentReports_MovementInValueDetails:
      type: object
      description: Movement in value components from opening to closing.
      properties:
        StartingMarketValue:
          type: number
          format: decimal
          description: 'Opening market value at the start of the period. '
          example: 3800000
        NetAdditionWithdrawal:
          type: number
          format: decimal
          description: Net inflows minus withdrawals.
          example: 150000
        TotalGainsAndLosses:
          type: number
          format: decimal
          description: Net gains/losses from price changes.
          example: 120000
        TotalInvestmentIncome:
          type: number
          format: decimal
          description: Income received during the period.
          example: 90000
        MovementInIncomeDeclaredNotPaid:
          type: number
          format: decimal
          description: Change in declared but unpaid income.
          example: -10000
        FundIncome:
          type: number
          format: decimal
          description: Net fund income after internal adjustments.
          example: 88000
        TotalPortfolioExpenses:
          type: number
          format: decimal
          description: Expenses charged to the portfolio.
          example: 45000
        Other:
          type: number
          format: decimal
          description: Other movements not captured elsewhere.
          example: 5000
        EndingMarketValue:
          type: number
          format: decimal
          description: Closing market value at the end of the period.
          example: 4088000
        MovementInValue:
          type: number
          format: decimal
          description: Net change in market value across the period.
          example: 288000
    InvestmentReports_PerformanceCalculationMethod:
      type: string
      description: Method used to calculate returns.
      enum:
        - SimpleDietz
        - ModifiedDietz
        - TimeWeightedReturn
    InvestmentReports_PortfolioReturnDetails:
      type: object
      description: Return components before/after expenses and index comparisons.
      properties:
        TotalGainsAndLosses:
          type: number
          format: decimal
          description: Total gains and losses component.
          example: 120000
        InvestmentIncome:
          type: number
          format: decimal
          description: Income contributing to returns.
          example: 90000
        GrossIncomeDeclaredNotPaid:
          type: number
          format: decimal
          description: Declared income not yet paid.
          example: 15000
        Credits:
          type: number
          format: decimal
          description: Credits such as franking or foreign offsets.
          example: 10000
        TotalReturnBeforeExpenses:
          type: number
          format: decimal
          description: Return before deducting expenses.
          example: 235000
        InvestmentExpenses:
          type: number
          format: decimal
          description: Expenses deducted from returns.
          example: 45000
        TotalReturnAfterExpenses:
          type: number
          format: decimal
          description: Return after deducting expenses.
          example: 190000
        ReturnsTable:
          $ref: '#/components/schemas/InvestmentReports_PortfolioReturnPeriodTable'
    InvestmentReports_PortfolioReturnPeriodEntry:
      type: object
      description: Return figures for a specific comparison period.
      properties:
        PeriodStartDate:
          type: string
          format: date
          description: Start date of the return period.
          example: '2024-07-01'
        EntryType:
          $ref: '#/components/schemas/PortfolioReturnPeriodEntryType'
        TotalReturnBeforeExpenses:
          type: number
          format: decimal
          description: Return before expenses for the period.
          example: 6.5
        TotalReturnAfterExpenses:
          type: number
          format: decimal
          description: Return after expenses for the period.
          example: 5.3
        Index1Value:
          type: number
          format: decimal
          description: Primary index performance value.
          example: 7.1
        Index2Value:
          type: number
          format: decimal
          description: Secondary index performance value.
          example: 6.8
        HasBeenCalculated:
          type: boolean
          description: True if the entry was successfully calculated.
          example: true
    InvestmentReports_PortfolioReturnPeriodTable:
      type: object
      description: Return comparison table including reporting period and benchmarks.
      properties:
        FromDate:
          type: string
          format: date
          description: Start date of the reporting window.
          example: '2024-07-01'
        ToDate:
          type: string
          format: date
          description: End date of the reporting window.
          example: '2025-06-30'
        Index1Name:
          type: string
          description: Primary comparison index name.
          example: ASX All Ordinaries (XAO)
        Index2Name:
          type: string
          description: Secondary comparison index name.
          example: ASX 200 (XJO)
        ComparisonPeriods:
          type: array
          description: Return entries for standard comparison windows.
          items:
            $ref: '#/components/schemas/InvestmentReports_PortfolioReturnPeriodEntry'
        ReportingPeriod:
          $ref: '#/components/schemas/InvestmentReports_PortfolioReturnPeriodEntry'
        IncludeAfterExpensesInTwr:
          type: boolean
          description: Include after-expenses values in TWR calculations.
          example: false
    InvestmentReports_RentalStatementReport:
      type: object
      description: Rental income and expense statement for property accounts.
      properties:
        StartDate:
          type: string
          format: date
          description: Start date of the rental reporting window.
          example: '2024-07-01'
        EndDate:
          type: string
          format: date
          description: End date of the rental reporting window.
          example: '2025-06-30'
        FundDetails:
          $ref: '#/components/schemas/RentalStatementReport_FundDetail'
        PropertyDetails:
          type: array
          description: Per-property rental details.
          items:
            $ref: '#/components/schemas/RentalStatementReport_PropertyDetail'
    InvestmentReports_ReturnsOverTimeDetails:
      type: object
      description: >-
        Time series values for returns before/after expenses and index
        comparisons.
      properties:
        BeforeExpenses:
          type: string
          format: date
          description: Series identifier or timestamp for before-expense returns.
          example: '2025-06-30'
        AfterExpenses:
          type: string
          format: date
          description: Series identifier or timestamp for after-expense returns.
          example: '2025-06-30'
        ComparisonIndexOne:
          type: string
          format: date
          description: Series identifier or timestamp for index one.
          example: '2025-06-30'
        ComparisonIndexTwo:
          type: string
          format: date
          description: Series identifier or timestamp for index two.
          example: '2025-06-30'
        IncludeAfterExpensesInTwr:
          type: boolean
          description: Include after-expenses values in plotted TWR.
          example: false
    InvestmentReports_ValueVersusInvestmentDetails:
      type: object
      description: >-
        Portfolio value vs. cumulative net investment, optionally including
        cumulative series.
      properties:
        PortfolioValue:
          type: string
          format: date
          description: Series identifier or timestamp for portfolio value.
          example: '2025-06-30'
        CumulativeNet:
          type: string
          format: date
          description: Series identifier or timestamp for cumulative net investment.
          example: '2025-06-30'
        CumulativeNetOpeningValue:
          type: number
          format: decimal
          description: Opening value for cumulative net investment.
          example: 3000000
        CumulativeNetClosingValue:
          type: number
          format: decimal
          description: Closing value for cumulative net investment.
          example: 3150000
        IncludeCumulativeInGraph:
          type: boolean
          description: Overlay cumulative net investment on the chart.
          example: true
    InvestmentSummary_HoldingAccountItem:
      type: object
      description: Holding-level investment summary including market and grouping.
      properties:
        Summary:
          $ref: '#/components/schemas/InvestmentSummary_InvestmentPeformanceSummary'
        MarketAndSecurityInfo:
          $ref: '#/components/schemas/MarketAndSecurityInfo'
        HoldingAccountName:
          type: string
          description: Holding account display name.
          example: BHP Group Ltd
        HoldingAccountId:
          type: string
          description: Holding account identifier.
          example: 849f4f5f-7966-4395-9840-ed46ac9096e7
        SecurityCode:
          type: string
          description: Security code/ticker.
          example: BHP
        ManagedAccountCode:
          type: string
          description: Managed account reference.
          example: MA-001
        Grouping:
          $ref: '#/components/schemas/HoldingGroupingDetails'
    InvestmentSummary_InvestmentPeformanceSummary:
      type: object
      description: Performance metrics for a single holding.
      properties:
        UnitsSpecified:
          type: boolean
          description: True if the Units value is present.
          example: true
        Units:
          type: number
          format: decimal
          description: Units currently held.
          example: 10000
        AverageCost:
          type: number
          format: decimal
          description: Average unit cost.
          example: 9.6
        MarketPrice:
          type: number
          format: decimal
          description: Current market price per unit.
          example: 12.34
        Cost:
          type: number
          format: decimal
          description: Total cost for the holding.
          example: 96000
        Market:
          type: number
          format: decimal
          description: Current market value.
          example: 123400
        UnrealisedGain:
          type: number
          format: decimal
          description: Unrealised gain amount.
          example: 27400
        GainPercentage:
          type: number
          format: decimal
          description: Gain percentage vs. cost.
          example: 28.54
        TotalPercentage:
          type: number
          format: decimal
          description: Holding weight in the portfolio.
          example: 2.75
        EstimatedIncome:
          type: number
          format: decimal
          description: Estimated annual income.
          example: 3500
        EstimatedYield:
          type: number
          format: decimal
          description: Estimated yield percentage.
          example: 2.84
        SupressZeros:
          type: boolean
          description: Suppress zero values in output.
          example: true
    InvestmentSummary_MarketTypeItem:
      type: object
      description: Market type aggregation with totals for cost and value.
      properties:
        HoldingAccountItems:
          type: array
          description: Holdings included in the market type.
          items:
            $ref: '#/components/schemas/InvestmentSummary_HoldingAccountItem'
        MarketTypeName:
          type: string
          description: Market type display name.
          example: ASX
        TotalCost:
          type: number
          format: decimal
          description: Total cost across holdings in this market type.
          example: 1500000
        TotalMarket:
          type: number
          format: decimal
          description: Total market value for this market type.
          example: 1650000
        TotalUnrealisedGain:
          type: number
          format: decimal
          description: Total unrealised gain for this market type.
          example: 150000
        TotalGainPercentage:
          type: number
          format: decimal
          description: Gain percentage for the market type.
          example: 10
        TotalTotalPercentage:
          type: number
          format: decimal
          description: Percentage share of the portfolio.
          example: 40
        TotalEstimatedIncome:
          type: number
          format: decimal
          description: Estimated annual income for this market type.
          example: 45000
        TotalEstimatedYield:
          type: number
          format: decimal
          description: Estimated yield for this market type.
          example: 2.73
    MarketAndSecurityInfo:
      type: object
      description: Basic identifiers for a security and its market.
      properties:
        SecurityCode:
          type: string
          description: Security code or ticker.
          example: BHP
        SecurityName:
          type: string
          description: Security display name.
          example: BHP Group Ltd
        MarketCode:
          type: string
          description: Market identifier.
          example: ASX
        MarketAcronym:
          type: string
          description: Market acronym.
          example: ASX
    MovementType:
      type: string
      description: Type of movement applied to a holding or cost base.
      enum:
        - CapitalHoldingTransaction
        - CostBaseAdjustmentTransaction
        - QuantityAdjustmentTransaction
        - IncomeExpenseTransaction
      example: CapitalHoldingTransaction
    PerformanceCalculationMethod:
      type: string
      description: Method for performance calculation.
      enum:
        - SimpleDietz
        - ModifiedDietz
        - TimeWeightedReturn
      example: TimeWeightedReturn
    PerformancePeriod:
      type: object
      description: Computed performance period statistics.
      properties:
        StartDate:
          type: string
          format: date
          description: Start date of the performance period.
          example: '2024-07-01'
        EndDate:
          type: string
          format: date
          description: End date of the performance period.
          example: '2025-06-30'
        StartingPortfolioValue:
          type: number
          format: decimal
          description: Portfolio value at the start of the period.
          example: 3800000
        EndingPortfolioValue:
          type: number
          format: decimal
          description: Portfolio value at the end of the period.
          example: 4088000
        FundExpenses:
          type: number
          format: decimal
          description: Expenses charged during the period.
          example: 45000
        NetFlows:
          type: number
          format: decimal
          description: Net contributions minus withdrawals.
          example: 150000
        CumulativeReturn:
          type: number
          format: decimal
          description: Cumulative return amount.
          example: 288000
        CumulativeReturnCalcFailed:
          type: boolean
          description: True if cumulative return calculation failed.
          example: false
        CumulativeReturnPercentage:
          type: number
          format: decimal
          description: Cumulative return percentage.
          example: 7.58
        PeriodReturn:
          type: number
          format: decimal
          description: Return during the period.
          example: 23850.75
    Portfolio:
      type: object
      description: Portfolio metadata and holdings.
      properties:
        Key:
          type: string
          description: Unique portfolio key.
          example: PF-001
        Name:
          type: string
          description: Portfolio display name.
          example: Balanced Growth
        SortingValue:
          type: string
          description: Value used for sorting portfolios.
          example: '001'
        HoldingAccounts:
          type: array
          description: Holdings included in the portfolio.
          items:
            $ref: '#/components/schemas/Portfolio_HoldingSummary'
    PortfolioPerformanceData:
      type: object
      description: Comprehensive dataset for portfolio performance calculations.
      properties:
        Portfolio:
          $ref: '#/components/schemas/Portfolio'
        StartDate:
          type: string
          format: date
          description: Start date for the performance dataset.
          example: '2024-07-01'
        EndDate:
          type: string
          format: date
          description: End date for the performance dataset.
          example: '2025-06-30'
        Movements:
          type: array
          description: Actual movements recorded.
          items:
            $ref: '#/components/schemas/Summaries_HoldingAccountMovement'
        ExpectedMovements:
          type: array
          description: Expected movements used for forecasting.
          items:
            $ref: '#/components/schemas/Summaries_HoldingAccountMovement'
        Valuations:
          type: array
          description: Daily valuations for holdings.
          items:
            $ref: '#/components/schemas/HoldingDailyValuation'
        DailyFlows:
          type: array
          description: Daily cash flows and income per holding.
          items:
            $ref: >-
              #/components/schemas/PortfolioPerformanceData_HoldingDailyFlowDetails
        Periods:
          type: array
          description: Computed performance periods.
          items:
            $ref: '#/components/schemas/PerformancePeriod'
        IsBenchmark:
          type: boolean
          description: True if this dataset represents a benchmark.
          example: false
        BenchmarkId:
          type: string
          description: Identifier of the benchmark if applicable.
          example: a91527f3-c5d8-4b82-8eca-06306c5d8052
    PortfolioPerformanceData_HoldingDailyFlowDetails:
      type: object
      description: Flow and quantity changes per holding for a given date.
      properties:
        HoldingAccountId:
          type: string
          description: Holding account identifier.
          example: e9c64abd-381e-4f85-a109-a6a03dbe3e9e
        Date:
          type: string
          format: date
          description: Transaction date.
          example: '2025-11-10'
        Flow:
          type: number
          format: decimal
          description: Net cash flow amount.
          example: 1500
        Income:
          type: number
          format: decimal
          description: Income amount recorded for the day.
          example: 45
        TaxCredits:
          type: number
          format: decimal
          description: Tax credits recorded for the day.
          example: 3.5
        HoldingFlow:
          $ref: '#/components/schemas/HoldingDailyAccountFlowDetails'
        QuantityChange:
          type: number
          format: decimal
          description: Change in units for the day.
          example: 250
    PortfolioReturnPeriodEntryType:
      type: string
      description: Standard comparison window for return tables.
      enum:
        - ReportRange
        - OneYear
        - ThreeYear
        - SinceOnSystemDate
      example: ReportRange
    Portfolio_HoldingSummary:
      type: object
      description: Summary details for a holding within a portfolio.
      properties:
        Id:
          type: string
          description: Holding identifier.
          example: f0bea727-0087-42c4-9914-ce43489f16c7
        Code:
          type: string
          description: Security Code
          example: BHP
        ManagedAccountCode:
          type: string
          description: Managed account reference.
          example: MA-001
        Name:
          type: string
          description: Holding display name.
          example: BHP Group Ltd
        MarketAndSecurityInfo:
          $ref: '#/components/schemas/Securities_MarketAndSecurityInfo'
        HoldingAccountType:
          $ref: '#/components/schemas/HoldingAccountType'
        IncludeInPerformanceReports:
          type: boolean
          description: True to include the holding in performance reports.
          example: true
        PropertyType:
          type: string
          description: Property classification if the holding is a property.
          enum:
            - Commercial
            - Residential
          example: Commercial
    RentalStatementReport_BalanceDetail:
      type: object
      description: Single rental statement income/expense or balance entry.
      properties:
        Type:
          type: string
          description: Category of the balance detail.
          example: Repairs and maintenance
        TaxReturnLabel:
          type: string
          description: Tax return label mapping (ATO label if applicable).
          example: D3
        Amount:
          type: number
          format: decimal
          description: Amount for the category.
          example: 1250
        PriorYearAmount:
          type: number
          format: decimal
          description: Prior year amount for comparison.
          example: 1100
    RentalStatementReport_FundDetail:
      type: object
      description: Fund identifiers included on the rental statement.
      properties:
        FundName:
          type: string
          description: Fund display name.
          example: DEMO_SMSF_2025
        FundCode:
          type: string
          description: Fund identifier.
          example: demo-fund
        ABN:
          type: string
          description: Australian Business Number.
          example: '12345678901'
    RentalStatementReport_PropertyDetail:
      type: object
      description: Rental statement details for a single property.
      properties:
        AccountName:
          type: string
          description: Property account display name.
          example: 123 George Street Sydney NSW 2000
        Type:
          $ref: '#/components/schemas/PropertyType'
        Address:
          $ref: '#/components/schemas/AddressSummary'
        NumberOfWeeksRented:
          type: integer
          format: int32
          description: Weeks the property was rented during the period.
          example: 48
        IncomeAmounts:
          type: array
          description: List of income amounts for the property.
          items:
            $ref: '#/components/schemas/RentalStatementReport_BalanceDetail'
        ExpenseAmounts:
          type: array
          description: List of expense amounts for the property.
          items:
            $ref: '#/components/schemas/RentalStatementReport_BalanceDetail'
        GrossRent:
          type: number
          format: decimal
          description: Total rent received.
          example: 48000
        PriorYearGrossRent:
          type: number
          format: decimal
          description: Prior year rent received.
          example: 47000
        TotalExpenses:
          type: number
          format: decimal
          description: Total expenses incurred.
          example: 12000
        PriorYearTotalExpenses:
          type: number
          format: decimal
          description: Prior year expenses.
          example: 11000
        NetRent:
          type: number
          format: decimal
          description: Net rent (gross minus expenses).
          example: 36000
        PriorYearNetRent:
          type: number
          format: decimal
          description: Prior year net rent.
          example: 36000
    Securities_MarketAndSecurityInfo:
      type: object
      description: Security identifiers for holdings in portfolio context.
      properties:
        SecurityCode:
          type: string
          description: Security code
          example: BHP
        SecurityName:
          type: string
          description: Security display name.
          example: BHP Group Ltd
        MarketCode:
          type: string
          description: Market identifier.
          example: ASX
        MarketAcronym:
          type: string
          description: Market acronym.
          example: ASX
    StandardApiResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/ApiResponseBase'
    Summaries_HoldingAccountMovement:
      type: object
      description: Movement record for a holding account including dates and amounts.
      properties:
        TransactionId:
          type: string
          description: Unique identifier of the transaction.
          example: ed6dd4ef-50e7-47b5-b518-44610fec1877
        HoldingAccountId:
          type: string
          description: Holding account identifier.
          example: ed6dd4ef-50e7-47b5-b518-44610fec1877
        EntitlementDate:
          type: string
          format: date
          description: Date on which entitlement is recorded.
          example: '2025-09-15'
        PaymentDate:
          type: string
          format: date
          description: Date on which payment is made.
          example: '2025-09-20'
        MovementDate:
          type: string
          format: date
          description: Effective date of the movement.
          example: '2025-09-15'
        MovementType:
          $ref: '#/components/schemas/MovementType'
        TransactionAmount:
          type: number
          format: decimal
          description: Amount of the transaction.
          example: 450.75
        ProfitOrLoss:
          type: number
          format: decimal
          description: Realised profit or loss.
          example: 350
        QuantityChange:
          type: number
          format: decimal
          description: Change in units from the movement.
          example: 250
        BookCostChange:
          type: number
          format: decimal
          description: Change in cost base from the movement.
          example: 6000
        DepreciatedAmount:
          type: number
          format: decimal
          description: Depreciation amount if applicable.
          example: 0
        ChangeInMarketValue:
          type: number
          format: decimal
          description: Change in market value caused by the movement.
          example: 2400
        FlowAmount:
          type: number
          format: decimal
          description: Net cash flow associated with the movement.
          example: 1500
        IncludeInMarketValuation:
          type: boolean
          description: True if the movement is included in valuation.
          example: true
        IsFrankingCredit:
          type: boolean
          description: True if the movement represents a franking credit.
          example: false
        IncomeAccountedDate:
          type: string
          format: date
          description: Date on which the income is accounted.
          example: '2025-09-21'
    TrustIncomeScheduleReconciliationReportGetResponse:
      type: object
      description: API response for the Trust Income Schedule reconciliation report.
      properties:
        Data:
          type: object
          description: Payload containing the reconciliation results.
          properties:
            StartDate:
              type: string
              description: Start date for the reconciliation period.
              example: '2023-07-01'
            EndDate:
              type: string
              description: End date for the reconciliation period.
              example: '2024-06-30'
            FundName:
              type: string
              description: Full name of the fund.
              example: DEMO_SMSF_2025
            Summaries:
              type: array
              description: Per-holding distribution summaries.
              items:
                $ref: '#/components/schemas/TrustIncomeScheduleDistHoldingsSummaries'
              xml:
                name: Summaries
                wrapped: true
            Totals:
              $ref: '#/components/schemas/TotalsTrustIncomeScheduleReconciliation'
            InvestmentGroups:
              type: array
              description: Investment groups for presentation and totals.
              items:
                type: object
                properties:
                  Name:
                    type: string
                    description: Group name.
                    example: Managed Fund Markets
                  TISDistHoldingsSummaries:
                    type: array
                    description: >-
                      Trust income schedule distribution summaries within the
                      group.
                    items:
                      $ref: >-
                        #/components/schemas/TrustIncomeScheduleDistHoldingsSummaries
                  Totals:
                    $ref: >-
                      #/components/schemas/TotalsTrustIncomeScheduleReconciliation
                  InvestmentGroupingType:
                    type: string
                    description: Grouping dimension applied within the report.
                    example: MarketType
              xml:
                name: >-
                  ApiResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                wrapped: false
    TotalsTrustIncomeScheduleReconciliation:
      type: object
      description: Aggregate totals across the trust income schedule reconciliation.
      properties:
        NonPrimaryProductionIncome:
          type: number
          description: Income unrelated to primary production.
          example: 0
        FrankedDistribution:
          type: number
          description: Franked distribution totals.
          example: 0
        FrankingCredits:
          type: number
          description: Total franking credits.
          example: 0
        TFNWithHeld:
          type: number
          description: Tax File Number withholding amounts.
          example: 0
        WithholdingTax:
          type: number
          description: Withholding tax totals.
          example: 0
        ForeignWithheld:
          type: number
          description: Foreign tax withheld amounts.
          example: 0
        CapitalReturns:
          type: number
          description: Return of capital totals.
          example: 0
        CapitalGains:
          type: number
          description: Capital gains totals.
          example: 0
        GrossCapitalGains:
          type: number
          description: Total gross capital gains.
          example: 0
        CGTDiscountApplied:
          type: number
          description: Discount applied to capital gains under CGT rules.
          example: 0
        OtherAssesableForeignIncome:
          type: number
          description: Other assessable foreign income.
          example: 0
        ForeignIncomeTaxOffset:
          type: number
          description: Foreign income tax offset total.
          example: 0
        ForeignShareOfCreditTaxWithheld:
          type: number
          description: Foreign share of credit tax withheld.
          example: 0
        TaxExempt:
          type: number
          description: Tax-exempt amounts.
          example: 0
        TaxFree:
          type: number
          description: Tax-free amounts.
          example: 0
        TaxDeferred:
          type: number
          description: Tax-deferred amounts.
          example: 0
        AmitAmount:
          type: number
          description: AMIT adjustment totals.
          example: 0
    TrustIncomeScheduleDistHoldingsSummaries:
      type: object
      description: >-
        Distribution summaries for a single holding within the trust income
        schedule.
      properties:
        HoldingAccountName:
          type: string
          description: Holding account display name.
          example: AMP CustomSuper - Colonial First StatWholesale Property Securities
        HoldingAccountCode:
          type: string
          description: Internal holding account code.
          example: BFL0019AU
        SecurityCode:
          type: string
          description: Security code where applicable.
          example: CFS-WPS
        ManagedAccountCode:
          type: string
          description: Managed account code where applicable.
          example: MA-001
        MarketAndSecurityInfo:
          $ref: '#/components/schemas/MarketAndSecurityInfo'
        NonPrimaryProductionIncome:
          type: number
          description: Income unrelated to primary production.
          example: 0
        FrankedDistribution:
          type: number
          description: Franked distribution amount.
          example: 0
        FrankingCredits:
          type: number
          description: Franking credits amount.
          example: 0
        TFNWithHeld:
          type: number
          description: TFN withheld amount.
          example: 0
        ForeignWithheld:
          type: number
          description: Foreign tax withheld amount.
          example: 0
        CapitalReturns:
          type: number
          description: Return of capital amount.
          example: 0
        CapitalGains:
          type: number
          description: Capital gains amount.
          example: 0
        GrossCapitalGains:
          type: number
          description: Gross capital gains amount.
          example: 0
        CGTDiscountApplied:
          type: number
          description: CGT discount applied amount.
          example: 0
        OtherAssessableForeignIncome:
          type: number
          description: Other assessable foreign income.
          example: 0
        ForeignIncomeTaxOffset:
          type: number
          description: Foreign income tax offset amount.
          example: 0
        TaxExempt:
          type: number
          description: Tax-exempt amount.
          example: 0
        TaxFree:
          type: number
          description: Tax-free amount.
          example: 0
        TaxDeferred:
          type: number
          description: Tax-deferred amount.
          example: 0
        AmitAmount:
          type: number
          description: AMIT adjustment amount.
          example: 0
        Grouping:
          type: object
          description: Grouping tags for the holding.
          properties:
            tags:
              type: array
              description: Grouping tags collection.
              items:
                type: object
                properties:
                  Type:
                    type: string
                    description: Grouping type.
                    example: AssetPool
                  Value:
                    type: string
                    description: Grouping value.
                    example: Default Pool
        GrossDistribution:
          type: number
          description: Gross distribution amount.
          example: 0
        GrossTaxStatement:
          type: number
          description: Gross tax statement amount.
          example: 0
        Variance:
          type: number
          description: Difference between internal and external totals.
          example: 0
    InternalErrorCommon:
      type: object
      properties:
        Code:
          type: string
          example: API_INTERNAL_ERROR
        Message:
          type: string
          example: An unexpected error occurred on the server. Please try again later.
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
          nullable: true
        message:
          type: string
          nullable: true
      additionalProperties: false
    ForbiddenErrorCommon:
      type: object
      description: Forbidden error payload when access is denied.
      properties:
        Code:
          type: string
          example: FORBIDDEN
        Message:
          type: string
          example: You do not have permission to access this resource.
    ResourceUnavailableErrorCommon:
      type: object
      description: Error payload when a resource is not available.
      properties:
        Code:
          type: string
          example: API_NOT_FOUND
        Message:
          type: string
          example: Resource not available or user does not have access to the fund.
    UnauthorizedErrorCommon:
      type: object
      properties:
        Code:
          type: string
          example: API_NOT_AUTHORISED
        Message:
          type: string
          example: Not authorised
    PropertyType:
      type: string
      description: Property classification for rental statements.
      enum:
        - Commercial
        - Residential
      example: Commercial
  securitySchemes:
    Class_oAuth:
      type: oauth2
      description: Class uses oAuth2 and OpenID for authentication and authorisation
      flows:
        authorizationCode:
          authorizationUrl: https://apigateway.class-pie.com.au/connect/authorize
          tokenUrl: https://apigateway.class-pie.com.au/connect/token
          scopes:
            business.fund.list: List summarised data of funds in the business
            business.fund.create: Create new funds in the business
            fund.details.read: View basic fund details
            fund.details.maintain: View and maintain basic fund details
            fund.member.read: View member details
            fund.member.maintain: View and maintain member details
            fund.read: View all fund information
            fund.maintain: View and maintain all fund information
