openapi: 3.0.1
info:
  x-metadata:
    tags:
      - Class Partner
  title: Fund Reports
  version: '1.0'
  description: >-
    Provides secure access to comprehensive 

    fund-related data and reports. It enables retrieval 

    of fund summaries, detailed fund reports, general minute letters, 

    SuperStream ESA notifications, and transfer balance declaration reports.



    <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:
  /b/{businessCode}/report-data/fund-reports/fund-summary:
    get:
      operationId: fundSummaryReport
      summary: Fund summary report
      description: >-
        Retrieves a summary of funds for a specified business, optionally
        filtered by brand code.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - name: brandCode
          in: query
          description: >-
            Optional brand code to filter the fund summary results to a specific
            brand within the business.
          required: false
          schema:
            type: string
            example: demo-brand
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    type: array
                    items:
                      $ref: '#/components/schemas/FundListDetail_FundSummary'
                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:
            - business.fund.list
  /f/{businessCode}/{fundCode}/report-data/fund-reports/financial-year-details:
    get:
      operationId: financialYearDetails
      summary: Financial year details
      description: >-
        Retrieves details about the financial year status and tax finalisation
        messages.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: year
          in: query
          description: The financial year to retrieve information for (e.g., 2024)
          required: true
          schema:
            type: integer
            example: 2024
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: '#/components/schemas/FundReports_FinancialYearDetails'
                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/fund-reports/fund-detail-report:
    get:
      operationId: fundDetailReport
      summary: Fund detail report
      description: >-
        Fetches detailed information for a specific fund identified by business
        and fund codes. Returns comprehensive fund data, including legal type,
        ABN, trustee details, and investment strategies.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: '#/components/schemas/FundImports_FundReferenceData'
                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.details.read
  /f/{businessCode}/{fundCode}/report-data/fund-reports/fund-exceptions:
    get:
      operationId: fundExceptions
      summary: Fund exceptions
      description: >-
        Retrieves a list of exceptions or validation warnings for the fund for a
        specified year.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: year
          in: query
          description: The financial year to retrieve exceptions for (e.g., 2024)
          required: true
          schema:
            type: integer
            example: 2024
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: '#/components/schemas/FundReports_FundExceptions'
                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/fund-reports/general-minute-letter:
    get:
      operationId: generalMinuteLetter
      summary: General minute letter
      description: >-
        Retrieves the data required to generate a General Minute or Letter for
        the fund, including the addressee details and trustee signatures. Used
        to produce formal trustee correspondence and meeting minutes.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: addressTo
          in: query
          description: >-
            Specifies the recipient type for the letter (e.g., Fund, Trustees,
            Accountant, Auditor).
          required: true
          schema:
            $ref: >-
              #/components/schemas/ReportSummaries_GeneralMinuteLetterAddressToType
        - name: signatures
          in: query
          description: >-
            Specifies which trustees or parties should appear as signatories on
            the letter (e.g., ChairOnly, AllTrustees).
          required: true
          schema:
            $ref: >-
              #/components/schemas/ReportSummaries_GeneralMinuteLetterSignaturesType
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: '#/components/schemas/FundReports_GeneralMinuteLetterData'
                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/fund-reports/superstream-esa-notification:
    get:
      operationId: superStreamESANotification
      summary: Super stream ESA notification
      description: >-
        Retrieves the SuperStream Electronic Service Address (ESA) notification
        details for the fund. This includes trustee contact information,
        accountant details, and firm address required to notify members of the
        fund's SuperStream ESA.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: atDate
          in: query
          description: >-
            The date as at which to retrieve the ESA notification details.
            Defaults to the current date if not provided.
          required: false
          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/FundReports_SuperStreamEsaDetails'
                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/fund-reports/transfer-balance-declaration-report:
    get:
      operationId: transferBalanceDeclarationReport
      summary: Transfer balance declaration report
      description: >-
        Retrieves the Transfer Balance Account Report (TBAR) declaration data
        for the fund over a specified date range. Includes fund reporting
        details, member information, and transfer balance events required for
        ATO reporting obligations.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: startDate
          in: query
          description: >-
            The start date of the reporting period for TBAR events (inclusive).
            Format YYYY-MM-DD.
          required: true
          schema:
            type: string
            format: date
            example: '2024-07-01'
        - name: endDate
          in: query
          description: >-
            The end date of the reporting period for TBAR events (inclusive).
            Format YYYY-MM-DD.
          required: true
          schema:
            type: string
            format: date
            example: '2025-06-30'
        - name: tbarState
          in: query
          description: To include specific type of tbarState
          required: true
          schema:
            type: string
            enum:
              - All Transactions
              - Not Generated
              - Generated
        - name: brandCode
          in: query
          description: >-
            This parameter is only used when you are using this at a business
            scope. If specified then only funds assigned to that brand code will
            be returned.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/FundReports_TransferBalanceDeclarationDetails
                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
    businessCodeParam:
      name: businessCode
      in: path
      description: Class business code
      required: true
      schema:
        type: string
        example: demo-business
  schemas:
    AddressSummary:
      type: object
      description: Summary of an address, including all standard address fields.
      required:
        - AddressLine1
        - AddressLine2
        - AddressLine3
        - PostCode
        - Locality
        - State
        - Country
      properties:
        AddressLine1:
          type: string
          description: First line of the address, typically the street address.
          example: 123 Example Street
        AddressLine2:
          type: string
          description: Second line of the address, such as apartment or suite number.
          example: Suite 5
        AddressLine3:
          type: string
          description: Third line of the address, used for additional details.
          example: ''
        PostCode:
          type: string
          description: Postcode or ZIP code for the address.
          example: '2000'
        Locality:
          type: string
          description: Locality or suburb of the address.
          example: Sydney
        State:
          type: string
          description: State or territory for the address.
          example: NSW
        Country:
          type: string
          description: Country for the address.
          example: Australia
    AnnualRetAddressCode:
      type: string
      description: Code indicating the source of the annual return address.
      enum:
        - Default
        - Brand
        - Fund
        - TaxAgent
        - Business
    ApiError:
      type: object
      description: Represents an error returned by the API, including a code and message.
      required:
        - Code
        - Message
      properties:
        Code:
          type: string
          description: Error code identifying the type of error.
        Message:
          type: string
          description: Human-readable message describing the error.
    ApiResponseBase:
      type: object
      description: >-
        Base structure for API responses, including error codes, error details,
        and creation status.
      required:
        - ErrorCodes
        - Errors
        - CreatedUri
        - IsCreatedResponse
      properties:
        ErrorCodes:
          type: array
          items:
            type: string
          description: List of error codes returned by the API, if any.
        Errors:
          type: array
          items:
            $ref: '#/components/schemas/ApiError'
          description: Detailed error objects returned by the API.
        CreatedUri:
          type: string
          description: URI of the newly created resource, if applicable.
        IsCreatedResponse:
          type: boolean
          description: Indicates whether the response is for a newly created resource.
    ApiRestLink:
      type: object
      description: >-
        REST link object containing the unique identifier and URL for a
        resource.
      required:
        - Id
        - Url
      properties:
        Id:
          type: string
          description: Unique identifier for the resource link.
          example: a1b2c3d4-ef56-7890-ab12-cd34ef567890
        Url:
          type: string
          description: Absolute URL to access the resource.
          example: >-
            https://api.class.com.au/api/1.0/f/demo-business/demo-fund/fund-data/fund-detail
    BeneficiaryTypeEnum:
      type: string
      description: >-
        Type of beneficiary, indicating whether the beneficiary is a person or
        an organisation.
      enum:
        - Person
        - Organisation
    BindingStatusType:
      type: string
      description: Status of the beneficiary nomination binding.
      enum:
        - Binding
        - Invalid
        - NoNomination
        - StatementOfWishes
        - NonBinding
        - NonLapsingBindingDeathNomination
    ExpenseExemptionCalculationMethod:
      type: string
      description: Method used to calculate expense exemption for the fund.
      enum:
        - CalculateUsingATOFormula
        - UseActuarialPercentage
        - ManuallySpecifyPercentage
    FundReports_FinancialYearDetails:
      type: object
      description: >-
        Contains details about the financial year status and tax finalisation
        messages.
      properties:
        FinancialYearDetails:
          $ref: '#/components/schemas/FundReports_FinancialYearInfo'
        TaxFinalisation:
          $ref: '#/components/schemas/FundReports_TaxFinalisationInfo'
    FundReports_FinancialYearInfo:
      type: object
      description: >-
        Core details of the financial year, including description, year, and
        status.
      properties:
        Description:
          type: string
          description: Description of the financial year period.
          example: '2023-24: Financial Year'
        FinancialYear:
          type: string
          description: The financial year identifier.
          example: '2024'
        Status:
          $ref: '#/components/schemas/FundReports_FinancialYearStatus'
    FundReports_FinancialYearStatus:
      type: object
      description: Status information for the financial year.
      properties:
        Description:
          type: string
          description: Description of the current status (e.g., Initial, TaxFinalised).
          example: Initial
    FundReports_TaxFinalisationInfo:
      type: object
      description: Contains messages related to the tax finalisation process.
      properties:
        Messages:
          type: array
          description: List of messages regarding tax finalisation requirements or status.
          items:
            $ref: '#/components/schemas/FundReports_TaxFinalisationMessage'
    FundReports_TaxFinalisationMessage:
      type: object
      description: A single message related to tax finalisation.
      properties:
        Message:
          type: string
          description: The text content of the message.
          example: The previous Financial Year must be Closed to Finalise Tax
    FundReports_FundExceptions:
      type: object
      description: Contains a list of validation exceptions or warnings for the fund.
      properties:
        Exceptions:
          type: array
          description: List of exception items found.
          items:
            $ref: '#/components/schemas/FundReports_ExceptionItem'
        FinancialYearPeriod:
          type: string
          description: The financial year period associated with the exceptions.
          example: 2023-24
    FundReports_ExceptionItem:
      type: object
      description: Details of a specific exception or warning.
      properties:
        Message:
          type: string
          description: The warning or error message text.
          example: The bank account Westpac has a negative balance
        Category:
          type: string
          description: The category of the exception (e.g., Investments, FundStructure).
          example: Investments
    FundImports_FundReferenceData:
      type: object
      description: >-
        Comprehensive details for a specific fund, including legal, trustee,
        address, and investment information.
      required:
        - Code
        - BrandCode
        - LegalType
        - IsComplying
        - IsResident
        - Name
        - ABN
        - PhysicalAddress
        - MailingAddress
        - TrustDeeds
        - TrusteeCompanyDetails
        - FundPolicies
        - FundHoldingReferences
        - FundInvestmentReturns
        - MemberDetails
        - InvestmentDetails
        - FeedsProductsDetails
        - Demo
      properties:
        Code:
          type: string
          description: Unique code identifying the fund.
          example: FUND_001
        BrandCode:
          type: string
          description: Code representing the brand or business.
          example: BRAND_X
        LegalType:
          type: string
          description: Legal type of the fund (e.g., SMSF, SAF, Trust, Company).
          example: SMSF
        IsComplying:
          type: boolean
          description: Indicates if the fund is complying with regulations.
          example: true
        IsResident:
          type: boolean
          description: Indicates if the fund is resident in Australia.
          example: true
        Name:
          type: string
          description: Name of the fund.
          example: Sample Super Fund
        ABN:
          type: string
          description: Australian Business Number for the fund.
          example: '12345678901'
        PhysicalAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
        MailingAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
        TrustDeeds:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataTrustDeed'
          description: List of trust deeds associated with the fund.
        TrusteeCompanyDetails:
          $ref: >-
            #/components/schemas/FundImports_FundReferenceDataTrusteeCompanyDetails
        FundPolicies:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataFundPolicy'
          description: Policies applicable to the fund.
        FundHoldingReferences:
          type: array
          items:
            $ref: >-
              #/components/schemas/FundImports_FundReferenceDataFundHoldingReference
          description: References to fund holdings.
        FundInvestmentReturns:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataFundReturn'
          description: Investment returns for the fund by financial year.
        MemberDetails:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataMemberDetail'
          description: Details of members in the fund.
        InvestmentDetails:
          $ref: '#/components/schemas/FundImports_FundReferenceDataInvestmentDetails'
        FeedsProductsDetails:
          $ref: '#/components/schemas/FundImports_FundReferenceDataFeedsProducts'
        Demo:
          type: boolean
          description: Indicates if the fund is a demo/test fund.
          example: false
    FundImports_FundReferenceDataAssetPool:
      type: object
      description: >-
        Details of an asset pool within a fund, including description and
        associated accounts.
      required:
        - Description
        - IsSegregatedToPension
        - IsSystemManaged
        - MemberAccounts
        - HoldingAccounts
      properties:
        Description:
          type: string
          description: Description of the asset pool.
          example: Growth Assets Pool
        IsSegregatedToPension:
          type: boolean
          description: Indicates if the asset pool is segregated to pension.
          example: false
        IsSystemManaged:
          type: boolean
          description: Indicates if the asset pool is managed by the system.
          example: true
        MemberAccounts:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataAssetPoolMember'
          description: List of member accounts in the asset pool.
        HoldingAccounts:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataAssetPoolHolding'
          description: List of holding accounts in the asset pool.
    FundImports_FundReferenceDataAssetPoolDetails:
      type: object
      description: Details of all asset pools within a fund.
      required:
        - AssetPools
      properties:
        AssetPools:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataAssetPool'
          description: List of asset pools in the fund.
    FundImports_FundReferenceDataAssetPoolHolding:
      type: object
      description: Details of a holding account within an asset pool.
      required:
        - HoldingAccountName
      properties:
        HoldingAccountName:
          type: string
          description: Name of the holding account.
          example: Australian Shares Account
    FundImports_FundReferenceDataAssetPoolMember:
      type: object
      description: Details of a member account within an asset pool.
      required:
        - MemberAccountName
      properties:
        MemberAccountName:
          type: string
          description: Name of the member account.
          example: John Smith Super Account
    FundImports_FundReferenceDataBeneficiaryDetail:
      type: object
      description: Details of a beneficiary associated with the fund.
      required:
        - Code
        - TFN
        - FamilyName
        - GivenName
        - MiddleNames
        - OrganisationName
        - Salutation
        - Gender
        - PreferredGreeting
        - PreferredVoiceContact
        - PreferredVoiceContactSpecified
        - PreferredWrittenContact
        - PreferredWrittenContactSpecified
        - HomePhone
        - WorkPhone
        - Mobile
        - Fax
        - DirectPhone
        - Email
        - PhysicalAddress
        - UsePhysicalAsMailing
        - MailingAddress
        - Roles
        - BeneficiaryType
      properties:
        Code:
          type: string
          description: Unique code identifying the beneficiary.
          example: BEN001
        TFN:
          type: string
          description: Tax File Number of the beneficiary.
          example: '123456789'
        FamilyName:
          type: string
          description: Family name of the beneficiary.
          example: Smith
        GivenName:
          type: string
          description: Given name of the beneficiary.
          example: John
        MiddleNames:
          type: string
          description: Middle names of the beneficiary.
          example: Edward
        OrganisationName:
          type: string
          description: Organisation name if the beneficiary is an organisation.
          example: ''
        Salutation:
          type: string
          description: Salutation for the beneficiary.
          example: Mr
        Gender:
          type: string
          description: Gender of the beneficiary.
          example: Male
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the beneficiary.
          example: '1980-05-20'
        PreferredGreeting:
          type: string
          description: Preferred greeting for the beneficiary.
          example: John
        PreferredVoiceContact:
          type: string
          description: Preferred voice contact type.
          example: Mobile
        PreferredVoiceContactSpecified:
          type: boolean
          description: Indicates if preferred voice contact is specified.
          example: true
        PreferredWrittenContact:
          type: string
          description: Preferred written contact type.
          example: Email
        PreferredWrittenContactSpecified:
          type: boolean
          description: Indicates if preferred written contact is specified.
          example: true
        HomePhone:
          type: string
          description: Home phone number of the beneficiary.
          example: 298765432
        WorkPhone:
          type: string
          description: Work phone number of the beneficiary.
          example: 287654321
        Mobile:
          type: string
          description: Mobile phone number of the beneficiary.
          example: 412345678
        Fax:
          type: string
          description: Fax number of the beneficiary.
          example: ''
        DirectPhone:
          type: string
          description: Direct phone number of the beneficiary.
          example: ''
        Email:
          type: string
          description: Email address of the beneficiary.
          example: john.smith@example.com
        PhysicalAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
        UsePhysicalAsMailing:
          type: boolean
          description: >-
            Indicates if the physical address should be used as the mailing
            address.
          example: true
        MailingAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
        Roles:
          type: string
          description: Roles of the beneficiary in the trust.
          example: Beneficiary
        BeneficiaryType:
          $ref: '#/components/schemas/BeneficiaryTypeEnum'
    FundImports_FundReferenceDataComponent:
      type: object
      description: >-
        Details of an investment strategy component, including asset class and
        percentage allocations.
      required:
        - AssetClassCode
        - MinPercentage
        - MaxPercentage
        - TargetPercentageSpecified
      properties:
        AssetClassCode:
          type: string
          description: Code representing the asset class.
          example: AUST_SHARES
        MinPercentage:
          type: number
          format: decimal
          description: Minimum percentage allocation for the asset class.
          example: 20
        MaxPercentage:
          type: number
          format: decimal
          description: Maximum percentage allocation for the asset class.
          example: 60
        TargetPercentage:
          type: number
          format: decimal
          description: Target percentage allocation for the asset class.
          example: 40
        TargetPercentageSpecified:
          type: boolean
          description: Indicates if the target percentage is specified.
          example: true
    FundImports_FundReferenceDataFeedsProduct:
      type: object
      description: >-
        Details of a product provided via data feeds, such as account number and
        product name.
      required:
        - AccountNumber
        - ProductName
      properties:
        AccountNumber:
          type: string
          description: Account number for the product.
          example: '3004202409'
        ProductName:
          type: string
          description: Name of the product.
          example: Demo Broking Account
    FundImports_FundReferenceDataFeedsProducts:
      type: object
      description: Collection of products provided via data feeds.
      required:
        - FeedsProducts
      properties:
        FeedsProducts:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataFeedsProduct'
          description: List of products provided via data feeds.
    FundImports_FundReferenceDataFundHoldingReference:
      type: object
      description: >-
        Reference details for a fund holding, including external identifiers and
        provider information.
      required:
        - ExternalIdentifier
        - ExternalIdentifierTypeSpecified
        - Enabled
        - StartDateSpecified
        - EndDateSpecified
        - FinancialInstitution
        - ProviderName
        - ProductName
        - DisplayName
        - AccountName
      properties:
        ExternalIdentifier:
          type: string
          description: External identifier for the holding.
          example: '3004202409'
        ExternalIdentifierType:
          type: string
          description: Type of external identifier.
          example: ExternalId
        ExternalIdentifierTypeSpecified:
          type: boolean
          description: Indicates if the external identifier type is specified.
          example: true
        StartDate:
          type: string
          format: date
          description: Start date for the holding reference.
          example: '2022-07-01'
        EndDate:
          type: string
          format: date
          description: End date for the holding reference.
          example: '2023-06-30'
        Enabled:
          type: boolean
          description: Indicates if the holding is enabled.
          example: true
        StartDateSpecified:
          type: boolean
          description: Indicates if the start date is specified.
          example: true
        EndDateSpecified:
          type: boolean
          description: Indicates if the end date is specified.
          example: false
        FinancialInstitution:
          type: string
          description: Name of the financial institution for the holding.
          example: Demo Bank
        ProviderName:
          type: string
          description: Name of the provider for the holding.
          example: Demo Broker
        ProductName:
          type: string
          description: Name of the product for the holding.
          example: Demo Broking Account
        DisplayName:
          type: string
          description: Display name for the holding.
          example: Demo Broking Account
        AccountName:
          type: string
          description: Account name for the holding.
          example: Main Trading Account
    FundImports_FundReferenceDataFundPolicy:
      type: object
      description: >-
        Policy details applicable to the fund, including GST and exemption
        information.
      required:
        - GSTDetails
        - Reserved
        - PolicyStartDateSpecified
        - PolicyEndDateSpecified
        - UseSegregatedPensions
        - UseSegregatedPensionsSpecified
        - PensionExemptionPercentageSpecified
        - ActuarialPensionExemptionPercentageSpecified
        - ExpensesPensionExemptionPercentageSpecified
        - CapitalLossProvisionRateSpecified
        - AccountingLossProvisionRateSpecified
        - UnrealisedTaxProvisionRateSpecified
        - CapitalLossesProvisionRateSpecified
        - IncomeLossesProvisionRateSpecified
        - UnrealisedGainsProvisionRateSpecified
        - UseTaxEffectAccountingSpecified
        - DeferMemberTaxSpecified
        - ExpenseExemptionCalculationMethod
        - ElectionECPICalculationMethod
      properties:
        GSTDetails:
          type: object
          description: GST registration and tax period details.
          properties:
            GSTStatus:
              type: string
              description: GST registration status.
              example: Registered
            GSTTaxPeriod:
              type: string
              description: GST tax period (e.g., Quarterly, Monthly).
              example: Quarterly
            GSTStatusDate:
              type: string
              format: date
              description: Date GST status was last updated.
              example: '2022-07-01'
            GSTStatusDateSpecified:
              type: boolean
              description: Indicates if GST status date is specified.
              example: true
        Reserved:
          type: boolean
          description: Indicates if the policy is reserved.
          example: false
        PolicyStartDate:
          type: string
          format: date
          description: Start date of the policy.
          example: '2022-07-01'
        PolicyStartDateSpecified:
          type: boolean
          description: Indicates if the policy start date is specified.
          example: true
        PolicyEndDate:
          type: string
          format: date
          description: End date of the policy.
          example: '2023-06-30'
        PolicyEndDateSpecified:
          type: boolean
          description: Indicates if the policy end date is specified.
          example: true
        UseSegregatedPensions:
          type: boolean
          description: Indicates if segregated pensions are used.
          example: false
        UseSegregatedPensionsSpecified:
          type: boolean
          description: Indicates if the use of segregated pensions is specified.
          example: true
        PensionExemptionPercentage:
          type: number
          format: decimal
          description: Percentage of pension exemption.
          example: 0
        PensionExemptionPercentageSpecified:
          type: boolean
          description: Indicates if pension exemption percentage is specified.
          example: false
        ActuarialPensionExemptionPercentage:
          type: number
          format: decimal
          description: Actuarial pension exemption percentage.
          example: 0
        ActuarialPensionExemptionPercentageSpecified:
          type: boolean
          description: Indicates if actuarial pension exemption percentage is specified.
          example: false
        ExpensesPensionExemptionPercentage:
          type: number
          format: decimal
          description: Expenses pension exemption percentage.
          example: 0
        ExpensesPensionExemptionPercentageSpecified:
          type: boolean
          description: Indicates if expenses pension exemption percentage is specified.
          example: false
        CapitalLossProvisionRate:
          type: number
          format: decimal
          description: Rate for capital loss provision.
          example: 0
        CapitalLossProvisionRateSpecified:
          type: boolean
          description: Indicates if capital loss provision rate is specified.
          example: true
        AccountingLossProvisionRate:
          type: number
          format: decimal
          description: Rate for accounting loss provision.
          example: 0
        AccountingLossProvisionRateSpecified:
          type: boolean
          description: Indicates if accounting loss provision rate is specified.
          example: true
        UnrealisedTaxProvisionRate:
          type: number
          format: decimal
          description: Rate for unrealised tax provision.
          example: 0
        UnrealisedTaxProvisionRateSpecified:
          type: boolean
          description: Indicates if unrealised tax provision rate is specified.
          example: true
        CapitalLossesProvisionRate:
          type: number
          format: decimal
          description: Rate for capital losses provision.
          example: 0
        CapitalLossesProvisionRateSpecified:
          type: boolean
          description: Indicates if capital losses provision rate is specified.
          example: false
        IncomeLossesProvisionRate:
          type: number
          format: decimal
          description: Rate for income losses provision.
          example: 0
        IncomeLossesProvisionRateSpecified:
          type: boolean
          description: Indicates if income losses provision rate is specified.
          example: false
        UnrealisedGainsProvisionRate:
          type: number
          format: decimal
          description: Rate for unrealised gains provision.
          example: 0
        UnrealisedGainsProvisionRateSpecified:
          type: boolean
          description: Indicates if unrealised gains provision rate is specified.
          example: true
        UseTaxEffectAccounting:
          type: boolean
          description: Indicates if tax effect accounting is used.
          example: false
        UseTaxEffectAccountingSpecified:
          type: boolean
          description: Indicates if use of tax effect accounting is specified.
          example: true
        DeferMemberTax:
          type: boolean
          description: Indicates if member tax is deferred.
          example: true
        DeferMemberTaxSpecified:
          type: boolean
          description: Indicates if deferment of member tax is specified.
          example: true
        ExpenseExemptionCalculationMethod:
          type: string
          description: Method used for expense exemption calculation.
        ElectionECPICalculationMethod:
          type: string
          description: Method used for ECPI calculation.
    FundImports_FundReferenceDataFundReturn:
      type: object
      description: Details of investment returns for a fund in a given financial year.
      required:
        - FinancialYear
        - RateOfReturnSpecified
      properties:
        FinancialYear:
          type: integer
          format: int32
          description: Financial year for the investment return.
          example: 2023
        RateOfReturn:
          type: number
          format: decimal
          description: Rate of return for the financial year.
          example: 0.045
        RateOfReturnSpecified:
          type: boolean
          description: Indicates if the rate of return is specified.
          example: true
    FundImports_FundReferenceDataInvestmentDetails:
      type: object
      description: Details of the fund's investments, including a list of holding accounts.
      required:
        - Items
      properties:
        Items:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_HoldingAccountDetail'
          description: List of holding accounts for the fund's investments.
    FundImports_FundReferenceDataMemberDetail:
      type: object
      description: >-
        Details of a member in the fund, including personal, contact, and
        pension information.
      required:
        - Code
        - JoinFundDate
        - LeaveFundDate
        - ESPStartDate
        - ESPStartDateSpecified
        - DateOfDisability
        - DateOfDisabilitySpecified
        - LastRetirementDate
        - LastRetirementDateSpecified
        - AustralianResident
        - FloodLevyExempt
        - SpouseAgreementDate
        - SpouseAgreementDateSpecified
        - ClaimTaxFreeThresholdSpecified
        - DeathSumInsuredSpecified
        - TpdSumInsuredSpecified
        - SalaryContinuanceSumInsuredSpecified
        - TFN
        - FamilyName
        - GivenName
        - MiddleNames
        - Salutation
        - Gender
        - DateOfBirthSpecified
        - DateOfDeathSpecified
        - PreferredGreeting
        - PreferredSalutation
        - PreferredVoiceContact
        - PreferredVoiceContactSpecified
        - PreferredWrittenContact
        - PreferredWrittenContactSpecified
        - HomePhone
        - WorkPhone
        - Mobile
        - Fax
        - DirectPhone
        - Email
        - PhysicalAddress
        - UsePhysicalAsMailing
        - MailingAddress
        - MemberTransitions
        - BeneficiaryDetails
        - Pensions
      properties:
        Code:
          type: string
          description: Unique code identifying the member.
          example: MEM001
        JoinFundDate:
          type: string
          format: date
          description: Date the member joined the fund.
          example: '2020-01-15'
        LeaveFundDate:
          type: string
          format: date
          description: Date the member left the fund, if applicable.
          example: '2024-06-30'
        ESPStartDate:
          type: string
          format: date
          description: Start date for the member's ESP.
          example: '2020-01-15'
        ESPStartDateSpecified:
          type: boolean
          description: Indicates if the ESP start date is specified.
          example: true
        DateOfDisability:
          type: string
          format: date
          description: Date of disability, if applicable.
          example: ''
        DateOfDisabilitySpecified:
          type: boolean
          description: Indicates if the date of disability is specified.
          example: false
        LastRetirementDate:
          type: string
          format: date
          description: Date of last retirement, if applicable.
          example: ''
        LastRetirementDateSpecified:
          type: boolean
          description: Indicates if the last retirement date is specified.
          example: false
        AustralianResident:
          type: boolean
          description: Indicates if the member is an Australian resident.
          example: true
        FloodLevyExempt:
          type: boolean
          description: Indicates if the member is exempt from flood levy.
          example: false
        SpouseAgreementDate:
          type: string
          format: date
          description: Date of spouse agreement, if applicable.
          example: ''
        SpouseAgreementDateSpecified:
          type: boolean
          description: Indicates if the spouse agreement date is specified.
          example: false
        ClaimTaxFreeThreshold:
          type: boolean
          description: Indicates if the member claims the tax-free threshold.
          example: true
        DeathSumInsured:
          type: number
          format: decimal
          description: Amount insured for death benefit.
          example: 500000
        TpdSumInsured:
          type: number
          format: decimal
          description: Amount insured for total and permanent disability.
          example: 250000
        SalaryContinuanceSumInsured:
          type: number
          format: decimal
          description: Amount insured for salary continuance.
          example: 0
        ClaimTaxFreeThresholdSpecified:
          type: boolean
          description: Indicates if claim tax-free threshold is specified.
          example: true
        DeathSumInsuredSpecified:
          type: boolean
          description: Indicates if death sum insured is specified.
          example: true
        TpdSumInsuredSpecified:
          type: boolean
          description: Indicates if TPD sum insured is specified.
          example: true
        SalaryContinuanceSumInsuredSpecified:
          type: boolean
          description: Indicates if salary continuance sum insured is specified.
          example: true
        TFN:
          type: string
          description: Tax File Number of the member.
          example: '123456789'
        FamilyName:
          type: string
          description: Family name of the member.
          example: Smith
        GivenName:
          type: string
          description: Given name of the member.
          example: Alex
        MiddleNames:
          type: string
          description: Middle names of the member.
          example: ''
        Salutation:
          type: string
          description: Salutation for the member.
          example: Mr
        Gender:
          type: string
          description: Gender of the member.
          example: Other
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the member.
          example: '1980-05-20'
        DateOfBirthSpecified:
          type: boolean
          description: Indicates if the date of birth is specified.
          example: true
        DateOfDeath:
          type: string
          format: date
          description: Date of death, if applicable.
          example: ''
        DateOfDeathSpecified:
          type: boolean
          description: Indicates if the date of death is specified.
          example: false
        PreferredGreeting:
          type: string
          description: Preferred greeting for the member.
          example: Alex
        PreferredSalutation:
          type: string
          description: Preferred salutation for the member.
          example: ''
        PreferredVoiceContact:
          type: string
          description: Preferred voice contact type.
          example: Mobile
        PreferredVoiceContactSpecified:
          type: boolean
          description: Indicates if preferred voice contact is specified.
          example: true
        PreferredWrittenContact:
          type: string
          description: Preferred written contact type.
          example: Email
        PreferredWrittenContactSpecified:
          type: boolean
          description: Indicates if preferred written contact is specified.
          example: true
        HomePhone:
          type: string
          description: Home phone number of the member.
          example: 298765432
        WorkPhone:
          type: string
          description: Work phone number of the member.
          example: 287654321
        Mobile:
          type: string
          description: Mobile phone number of the member.
          example: 412345678
        Fax:
          type: string
          description: Fax number of the member.
          example: ''
        DirectPhone:
          type: string
          description: Direct phone number of the member.
          example: ''
        Email:
          type: string
          description: Email address of the member.
          example: alex.smith@example.com
        PhysicalAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
        UsePhysicalAsMailing:
          type: boolean
          description: >-
            Indicates if the physical address should be used as the mailing
            address.
          example: true
        MailingAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
        MemberTransitions:
          $ref: '#/components/schemas/FundImports_FundReferenceDataMemberTransitions'
        BeneficiaryDetails:
          $ref: >-
            #/components/schemas/FundImports_FundReferenceDataMemberDetailBeneficiaryDetails
        Pensions:
          type: array
          items:
            $ref: >-
              #/components/schemas/FundImports_FundReferenceDataMemberDetailPensionDetails
          description: List of pension details for the member.
    FundImports_FundReferenceDataMemberDetailBeneficiaryDetails:
      type: object
      description: Details of beneficiary nominations for a member.
      required:
        - EffectiveDate
        - ExpiryDate
        - ExpiryDateSpecified
        - BindingStatus
        - Details
      properties:
        EffectiveDate:
          type: string
          format: date
          description: Date the beneficiary nomination became effective.
          example: '2022-07-01'
        ExpiryDate:
          type: string
          format: date
          description: Date the beneficiary nomination expires.
          example: '2023-06-30'
        ExpiryDateSpecified:
          type: boolean
          description: Indicates if the expiry date is specified.
          example: true
        BindingStatus:
          $ref: '#/components/schemas/BindingStatusType'
        Details:
          type: string
          description: Additional details about the beneficiary nomination.
          example: Binding nomination for spouse.
    FundImports_FundReferenceDataMemberDetailPensionDetails:
      type: object
      description: Details of a pension account for a member.
      required:
        - PensionAccountName
        - StartDate
        - PensionProductType
        - EtpPost07ChangeDateSpecified
        - PensionAccountIdentifier
      properties:
        PensionAccountName:
          type: string
          description: Name of the pension account.
          example: Retirement Pension 2020
        StartDate:
          type: string
          format: date
          description: Start date of the pension account.
          example: '2020-07-01'
        PensionProductType:
          type: string
          description: Type of pension product.
          example: AccountBased
        EtpPost07ChangeDate:
          type: string
          format: date
          description: Date of post-2007 ETP change, if applicable.
          example: '2020-07-01'
        EtpPost07ChangeDateSpecified:
          type: boolean
          description: Indicates if the ETP post-2007 change date is specified.
          example: true
        PensionAccountIdentifier:
          type: string
          description: Unique identifier for the pension account.
          example: PA001
    FundImports_FundReferenceDataMemberTransition:
      type: object
      description: >-
        Details of a transition event for a member, such as retirement or
        joining the fund.
      required:
        - EffectiveDate
        - TransitionType
      properties:
        EffectiveDate:
          type: string
          format: date
          description: Date the transition event occurred.
          example: '2022-07-01'
        TransitionType:
          type: string
          description: Type of transition event (e.g., Retirement, JoinFund, LeaveFund).
          example: Retirement
    FundImports_FundReferenceDataMemberTransitions:
      type: object
      description: >-
        Collection of transition events for a member, such as joining, leaving,
        or retiring from the fund.
      required:
        - MemberTransitions
      properties:
        MemberTransitions:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataMemberTransition'
    FundImports_FundReferenceDataNonMemberTrusteeDetails:
      type: object
      description: Details of a trustee who is not a member of the fund.
      required:
        - FamilyName
        - GivenName
        - MiddleNames
        - Title
        - JobTitle
        - FormerName
        - Gender
        - DateOfBirth
        - DateOfBirthSpecified
        - TFN
        - PreferredGreeting
        - PreferredVoiceContact
        - PreferredVoiceContactSpecified
        - PreferredWrittenContact
        - PreferredWrittenContactSpecified
        - HomePhone
        - WorkPhone
        - Mobile
        - Fax
        - DirectPhone
        - Email
        - PhysicalAddress
        - UsePhysicalAsMailing
        - MailingAddress
      properties:
        FamilyName:
          type: string
          description: Family name of the trustee.
          example: Brown
        GivenName:
          type: string
          description: Given name of the trustee.
          example: Oliver
        MiddleNames:
          type: string
          description: Middle names of the trustee.
          example: ''
        Title:
          type: string
          description: Title of the trustee.
          example: Mr
        JobTitle:
          type: string
          description: Job title of the trustee.
          example: Director
        FormerName:
          type: string
          description: Former name of the trustee, if applicable.
          example: ''
        Gender:
          type: string
          description: Gender of the trustee.
          example: Male
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the trustee.
          example: '1955-12-31'
        DateOfBirthSpecified:
          type: boolean
          description: Indicates if the date of birth is specified.
          example: true
        TFN:
          type: string
          description: Tax File Number of the trustee.
          example: '999999515'
        PreferredGreeting:
          type: string
          description: Preferred greeting for the trustee.
          example: Oliver
        PreferredVoiceContact:
          type: string
          description: Preferred voice contact type.
          example: Mobile
        PreferredVoiceContactSpecified:
          type: boolean
          description: Indicates if preferred voice contact is specified.
          example: true
        PreferredWrittenContact:
          type: string
          description: Preferred written contact type.
          example: Email
        PreferredWrittenContactSpecified:
          type: boolean
          description: Indicates if preferred written contact is specified.
          example: true
        HomePhone:
          type: string
          description: Home phone number of the trustee.
          example: 298765432
        WorkPhone:
          type: string
          description: Work phone number of the trustee.
          example: 287654321
        Mobile:
          type: string
          description: Mobile phone number of the trustee.
          example: 412345678
        Fax:
          type: string
          description: Fax number of the trustee.
          example: ''
        DirectPhone:
          type: string
          description: Direct phone number of the trustee.
          example: ''
        Email:
          type: string
          description: Email address of the trustee.
          example: oliver.brown@example.com
        PhysicalAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
        UsePhysicalAsMailing:
          type: boolean
          description: >-
            Indicates if the physical address should be used as the mailing
            address.
          example: true
        MailingAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
    FundImports_FundReferenceDataRSEDetails:
      type: object
      description: Details of the RSE (Registrable Superannuation Entity) for the fund.
      required:
        - RSE
        - EffectiveDate
      properties:
        RSE:
          type: string
          description: RSE identifier for the fund.
          example: RSE123456
        EffectiveDate:
          type: string
          format: date
          description: Date the RSE details became effective.
          example: '2022-07-01'
    FundImports_FundReferenceDataReserveDetails:
      type: object
      description: Details of reserve accounts associated with the fund.
      required:
        - ReserveDetail
      properties:
        ReserveDetail:
          $ref: >-
            #/components/schemas/FundImports_FundReferenceDataReserveDetailsReserveDetail
    FundImports_FundReferenceDataReserveDetailsReserveDetail:
      type: object
      description: Details of a specific reserve account, including join date and reserves.
      required:
        - JoinFundDate
        - Reserves
      properties:
        JoinFundDate:
          type: string
          format: date
          description: Date the reserve account was joined to the fund.
          example: '2020-01-15'
        Reserves:
          type: array
          items:
            $ref: >-
              #/components/schemas/FundImports_FundReferenceDataReserveDetailsReserveDetailReserveDetails
          description: List of reserve details for the account.
    FundImports_FundReferenceDataReserveDetailsReserveDetailReserveDetails:
      type: object
      description: Details of a reserve within a reserve account.
      required:
        - ReserveAccountName
        - StartDate
      properties:
        ReserveAccountName:
          type: string
          description: Name of the reserve account.
          example: General Reserve
        StartDate:
          type: string
          format: date
          description: Start date of the reserve.
          example: '2020-01-01'
    FundImports_FundReferenceDataTrustDeed:
      type: object
      description: Details of a trust deed associated with the fund.
      required:
        - DeedDate
        - DatePrinted
        - DatePrintedSpecified
        - Jurisdiction
        - TrusteeName
        - DeedSource
        - DeedType
        - Comments
      properties:
        DeedDate:
          type: string
          format: date
          description: Date the deed was executed.
          example: '2020-01-01'
        DatePrinted:
          type: string
          format: date
          description: Date the deed was printed.
          example: '2020-01-02'
        DatePrintedSpecified:
          type: boolean
          description: Indicates if the date printed is specified.
          example: true
        Jurisdiction:
          type: string
          description: Jurisdiction under which the deed was executed.
          example: NSW
        TrusteeName:
          type: string
          description: Name of the trustee company or individual.
          example: Trustee Pty Ltd
        DeedSource:
          type: string
          description: Source of the deed (e.g., Original, Copy).
          example: Original
        DeedType:
          type: string
          description: Type of deed (e.g., Establishment, Amendment).
          example: Establishment
        Comments:
          type: string
          description: Additional comments or notes about the deed.
          example: Initial establishment deed
    FundImports_FundReferenceDataTrusteeCompanyDetails:
      type: object
      description: Details of the trustee company.
      required:
        - Name
        - ABN
        - ACN
        - TFN
        - PreferredVoiceContact
        - PreferredVoiceContactSpecified
        - PreferredWrittenContact
        - PreferredWrittenContactSpecified
        - Phone
        - Fax
        - Email
        - URL
        - PhysicalAddress
        - UsePhysicalAsMailing
        - MailingAddress
        - ASN
      properties:
        Name:
          type: string
          description: Name of the trustee company.
          example: Trustee Pty Ltd
        ABN:
          type: string
          description: Australian Business Number of the trustee company.
          example: '98765432109'
        ACN:
          type: string
          description: Australian Company Number of the trustee company.
          example: '123456789'
        TFN:
          type: string
          description: Tax File Number of the trustee company.
          example: '123456789'
        PreferredVoiceContact:
          type: string
          description: Preferred voice contact type.
          example: Mobile
        PreferredVoiceContactSpecified:
          type: boolean
          description: Indicates if preferred voice contact is specified.
          example: true
        PreferredWrittenContact:
          type: string
          description: Preferred written contact type.
          example: Email
        PreferredWrittenContactSpecified:
          type: boolean
          description: Indicates if preferred written contact is specified.
          example: true
        Phone:
          type: string
          description: Contact phone number for the trustee company.
          example: 298765432
        Fax:
          type: string
          description: Fax number for the trustee company.
          example: ''
        Email:
          type: string
          description: Contact email for the trustee company.
          example: info@trustee.com.au
        URL:
          type: string
          description: Website URL for the trustee company.
          example: https://trustee.com.au
        PhysicalAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
        UsePhysicalAsMailing:
          type: boolean
          description: >-
            Indicates if the physical address should be used as the mailing
            address.
          example: true
        MailingAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
        ASN:
          type: string
          description: Australian Securities Number, if applicable.
          example: ''
    FundImports_HoldingAccountDetail:
      type: object
      description: >-
        Details of a holding account for an investment, including codes and
        classification.
      required:
        - Code
        - Description
        - SecurityIssueCode
        - MarketTypeCode
        - MarketTypeCodeSpecified
        - UnlistedSecurityTypeCode
        - ForeignSecurityTypeCode
        - ExternalIdentifier
        - ExternalIdentifierType
        - ExternalIdentifierTypeSpecified
        - ExternalProductName
        - ExternalProductNameSpecified
        - InhouseAsset
        - InhouseAssetSpecified
        - IsSegregatedToPension
        - IsSegregatedToPensionSpecified
        - SegregatedToPensionAccountCode
        - SegregatedToPensionAccountCodeSpecified
        - SpecifiedMarketTypeCode
        - CGInvestmentClassificationCode
        - TaxReturnClassificationCode
        - GLInvestmentClassificationCode
        - HoldingTypeForGstSpecified
        - Type
      properties:
        Code:
          type: string
          description: Unique code for the holding account.
          example: A200
        Description:
          type: string
          description: Description of the holding account.
          example: Betashares Australia 200 ETF
        SecurityIssueCode:
          type: string
          description: Security issue code for the holding.
          example: A200
        MarketTypeCode:
          type: string
          description: Market type code for the holding.
          example: LM
        MarketTypeCodeSpecified:
          type: boolean
          description: Indicates if the market type code is specified.
          example: true
        UnlistedSecurityTypeCode:
          type: string
          description: Unlisted security type code, if applicable.
          example: ''
        ForeignSecurityTypeCode:
          type: string
          description: Foreign security type code, if applicable.
          example: ''
        ExternalIdentifier:
          type: string
          description: External identifier for the holding.
          example: '3004202409'
        ExternalIdentifierType:
          type: string
          description: Type of external identifier.
          example: ExternalId
        ExternalIdentifierTypeSpecified:
          type: boolean
          description: Indicates if the external identifier type is specified.
          example: true
        ExternalProductName:
          type: string
          description: External product name, if applicable.
          example: ''
        ExternalProductNameSpecified:
          type: boolean
          description: Indicates if the external product name is specified.
          example: false
        InhouseAsset:
          type: boolean
          description: Indicates if the asset is in-house.
          example: false
        InhouseAssetSpecified:
          type: boolean
          description: Indicates if in-house asset status is specified.
          example: true
        IsSegregatedToPension:
          type: boolean
          description: Indicates if the asset is segregated to pension.
          example: false
        IsSegregatedToPensionSpecified:
          type: boolean
          description: Indicates if segregation to pension is specified.
          example: false
        SegregatedToPensionAccountCode:
          type: string
          description: Account code for segregated pension, if applicable.
          example: ''
        SegregatedToPensionAccountCodeSpecified:
          type: boolean
          description: Indicates if segregated pension account code is specified.
          example: false
        SpecifiedMarketTypeCode:
          type: string
          description: Specified market type code.
          example: LM
        CGInvestmentClassificationCode:
          type: string
          description: Capital gains investment classification code.
          example: SharesAndUnitsListedTrusts
        TaxReturnClassificationCode:
          type: string
          description: Tax return classification code.
          example: AustManagedFundsListedTrusts
        GLInvestmentClassificationCode:
          type: string
          description: General ledger investment classification code.
          example: UnitTrusts
        HoldingTypeForGst:
          type: string
          description: GST holding type.
          example: AttractsGst
        HoldingTypeForGstSpecified:
          type: boolean
          description: Indicates if GST holding type is specified.
          example: true
        Type:
          type: string
          description: >-
            Type of holding account (e.g., InvestmentAccountDetail,
            BankAccountDetail).
          example: InvestmentAccountDetail
    FundImports_PhysicalAddress:
      type: object
      description: Physical or mailing address details for a fund, member, or trustee.
      required:
        - Addressee
        - Line1
        - Line2
        - Line3
        - Line4
        - Suburb
        - State
        - Postcode
        - UseUnlistedSuburb
      properties:
        Addressee:
          type: string
          description: Name of the addressee for the address.
          example: Trustee Pty Ltd
        Line1:
          type: string
          description: First line of the address, typically the street address.
          example: 123 Example Street
        Line2:
          type: string
          description: Second line of the address, such as apartment or suite number.
          example: Suite 5
        Line3:
          type: string
          description: Third line of the address, used for additional details.
          example: ''
        Line4:
          type: string
          description: Fourth line of the address, used for additional details.
          example: ''
        Suburb:
          type: string
          description: Suburb or locality of the address.
          example: Sydney
        State:
          type: string
          description: State or territory for the address.
          example: NSW
        Postcode:
          type: string
          description: Postcode for the address.
          example: '2000'
        UseUnlistedSuburb:
          type: boolean
          description: Indicates if the suburb is not listed in standard databases.
    FundLegalType:
      type: string
      description: Legal type of the fund.
      enum:
        - SMSF
        - SAF
        - Personal
        - Trust
        - Company
        - Partnership
        - Consolidated
    FundListDetail_FundSummary:
      type: object
      description: >-
        Summary details for a fund, including status, codes, and evidence
        counts.
      required:
        - Link
        - Status
        - Code
        - Name
        - Tags
        - SummaryIsValid
        - LegalEntityType
        - BrandName
        - ABN
      properties:
        Link:
          $ref: '#/components/schemas/ApiRestLink'
        Status:
          type: string
          description: >-
            Current status of the fund (e.g., Active, Cancelled, Pending,
            Suspended).
          example: Active
        Code:
          type: string
          description: Unique code identifying the fund within the business.
          example: FUND_001
        Name:
          type: string
          description: Name of the fund.
          example: Sample Super Fund
        Tags:
          type: array
          items:
            type: string
          description: >-
            List of tags associated with the fund, such as fund type or
            features.
          example:
            - SMSF
            - Compliant
        UnmatchedEvidenceSupplyCount:
          type: integer
          description: >-
            Number of evidence supply items that have not been matched for this
            fund.
          example: 2
        UnmatchedEvidenceRequestCount:
          type: integer
          description: Number of evidence requests that remain unmatched for this fund.
          example: 1
        RecordedEvidenceRequestCount:
          type: integer
          description: Total number of evidence requests recorded for this fund.
          example: 5
        SummaryIsValid:
          type: boolean
          description: >-
            Indicates whether the summary data for the fund is valid as of the
            last update.
          example: true
        LastPeriodUpdateEndDate:
          type: string
          format: date
          description: End date of the last period for which the fund data was updated.
          example: '2025-06-30'
        ProcessedToDate:
          type: string
          format: date
          description: Date up to which the fund data has been processed.
          example: '2025-06-30'
        LegalEntityType:
          type: string
          description: Type of legal entity for the fund (e.g., SMSF, SAF, Trust, Company).
          example: SMSF
        BrandName:
          type: string
          description: Brand or business name associated with the fund.
          example: Class Partner
        ABN:
          type: string
          description: Australian Business Number for the fund.
          example: '12345678901'
    FundPolicyGSTStatusCode:
      type: string
      description: GST registration status for the fund policy.
      enum:
        - Registered
        - NonRegistered
        - Cancelled
    FundPolicyGSTTaxPeriodCode:
      type: string
      description: GST tax period code for the fund policy.
      enum:
        - Item
        - Annually
        - Monthly
        - Quarterly
    FundReports_AddressSummary:
      type: object
      description: >-
        Summary of an address for fund reports, including all standard address
        fields.
      required:
        - AddressLine1
        - AddressLine2
        - AddressLine3
        - PostCode
        - Locality
        - State
        - Country
      properties:
        AddressLine1:
          type: string
          description: First line of the address, typically the street address.
          example: 123 Example Street
        AddressLine2:
          type: string
          description: Second line of the address, such as apartment or suite number.
          example: Suite 5
        AddressLine3:
          type: string
          description: Third line of the address, used for additional details.
          example: ''
        PostCode:
          type: string
          description: Postcode or ZIP code for the address.
          example: '2000'
        Locality:
          type: string
          description: Locality or suburb of the address.
          example: Sydney
        State:
          type: string
          description: State or territory for the address.
          example: NSW
        Country:
          type: string
          description: Country for the address.
          example: Australia
    FundReports_GeneralMinuteLetterData:
      type: object
      description: >-
        Data structure for a general minute letter, including address, fund
        code, and signatures.
      required:
        - AddressToName
        - AddressTo
        - FundCode
        - Signatures
      properties:
        AddressToName:
          type: string
          description: Name of the entity the letter is addressed to.
          example: Trustee Pty Ltd
        AddressTo:
          $ref: '#/components/schemas/FundReports_AddressSummary'
        FundCode:
          type: string
          description: Code of the fund the letter relates to.
          example: FUND_001
        Signatures:
          type: array
          items:
            $ref: '#/components/schemas/GeneralMinuteLetterData_SignatureSummary'
          description: List of signatures included in the letter.
    FundReports_SuperStreamEsaDetails:
      type: object
      description: Details of the SuperStream ESA notification for a fund.
      required:
        - Date
        - FundName
        - FundCode
        - TrusteeSalutation
        - TrusteeName
        - TrusteeGivenName
        - TrusteeFamilyName
        - TrusteePreferredName
        - TrusteeAddress
        - AccountantName
        - FirmName
        - AccountantAddress
        - AccountantPrimaryPhone
      properties:
        Date:
          type: string
          format: date
          description: Date of the ESA notification.
          example: '2025-11-19'
        FundName:
          type: string
          description: Name of the fund.
          example: Sample Super Fund
        FundCode:
          type: string
          description: Code of the fund.
          example: FUND_001
        TrusteeSalutation:
          type: string
          description: Salutation for the trustee.
          example: Mr
        TrusteeName:
          type: string
          description: Full name of the trustee.
          example: Alex Smith
        TrusteeGivenName:
          type: string
          description: Given name of the trustee.
          example: Alex
        TrusteeFamilyName:
          type: string
          description: Family name of the trustee.
          example: Smith
        TrusteePreferredName:
          type: string
          description: Preferred name of the trustee.
          example: Alex
        TrusteeAddress:
          $ref: '#/components/schemas/StandardAddress'
        AccountantName:
          type: string
          description: Name of the accountant.
          example: Jane Doe
        FirmName:
          type: string
          description: Name of the accounting firm.
          example: Doe & Co
        AccountantAddress:
          $ref: '#/components/schemas/StandardAddress'
        AccountantPrimaryPhone:
          type: string
          description: Primary phone number for the accountant.
          example: 298765432
    FundReports_TransferBalanceDeclarationDetails:
      type: object
      description: >-
        Details of the Transfer Balance Declaration report for a fund, including
        reporting period and member information.
      required:
        - FundReportingDetails
        - StartDate
        - EndDate
        - Members
      properties:
        FundReportingDetails:
          $ref: '#/components/schemas/TransferBalanceDeclarationDetails_Details'
        StartDate:
          type: string
          format: date
          description: >-
            Start date of the reporting period for the transfer balance
            declaration.
          example: '2020-07-01'
        EndDate:
          type: string
          format: date
          description: >-
            End date of the reporting period for the transfer balance
            declaration.
          example: '2024-06-30'
        Members:
          type: array
          description: List of members included in the transfer balance declaration report.
          items:
            $ref: '#/components/schemas/TransferBalanceDeclarationDetails_Member'
    TransferBalanceDeclarationDetails_Details:
      type: object
      description: >-
        Summary details for the Transfer Balance Declaration report, including
        fund name, ABN, and trustee summary.
      required:
        - FundName
        - ABN
        - FundTrusteeSummary
      properties:
        FundName:
          type: string
          description: Name of the fund for which the transfer balance declaration applies.
          example: Sample Super Fund
        ABN:
          type: string
          description: Australian Business Number of the fund.
          example: '12345678901'
        FundTrusteeSummary:
          $ref: '#/components/schemas/FundTrusteeSummary'
    FundTrusteeSummary:
      type: object
      description: Summary information about the fund’s trustees and chairperson.
      required:
        - FundLegalType
        - FundName
        - TrusteeNames
        - TrusteeNamesString
        - ChairpersonName
        - ChairpersonGivenName
        - ChairpersonLastName
        - ChairpersonPreferredName
        - ChairpersonPartyId
        - IsCorporateTrustee
        - ChairpersonTitle
        - ChairpersonEmail
        - ChairpersonEmailSpecified
        - CorporateTrusteeACN
        - CorporateTrusteeABN
      properties:
        FundLegalType:
          type: string
          description: Legal type of the fund.
          example: SMSF
        FundName:
          type: string
          description: Name of the fund.
          example: Sample Super Fund
        TrusteeNames:
          type: array
          description: List of trustees associated with the fund.
          items:
            $ref: '#/components/schemas/FundTrusteeSummary_TrusteeName'
        TrusteeNamesString:
          type: string
          description: Comma-separated list of trustee names.
          example: Oliver Brown, Jennifer Brown
        ChairpersonName:
          type: string
          description: Full name of the chairperson trustee.
          example: Jennifer Brown
        ChairpersonGivenName:
          type: string
          description: Given name of the chairperson.
          example: Jennifer
        ChairpersonLastName:
          type: string
          description: Last name of the chairperson.
          example: Brown
        ChairpersonPreferredName:
          type: string
          description: Preferred name used for the chairperson.
          example: Jen
        ChairpersonPartyId:
          type: string
          description: Internal party identifier for the chairperson.
          example: P12345
        IsCorporateTrustee:
          type: boolean
          description: Indicates whether the trustee is a corporate entity.
          example: false
        ChairpersonTitle:
          type: string
          description: Title of the chairperson.
          example: Mrs
        ChairpersonEmail:
          type: string
          description: Email address of the chairperson.
          example: j.brown@example.com
        ChairpersonEmailSpecified:
          type: boolean
          description: Indicates whether the chairperson's email is present.
          example: true
        CorporateTrusteeACN:
          type: string
          description: Australian Company Number for the corporate trustee, if applicable.
          example: ''
        CorporateTrusteeABN:
          type: string
          description: Australian Business Number for the corporate trustee, if applicable.
          example: ''
    FundTrusteeSummary_TrusteeName:
      type: object
      description: >-
        Details of a trustee, including identity, contact, and address
        information.
      required:
        - Id
        - Name
        - PartyType
        - Title
        - FirstName
        - MiddleNames
        - LastName
        - PreferredName
        - Email
        - EmailSpecified
        - DefaultAddress
        - DisplayName
        - IsErrorMessage
      properties:
        Id:
          type: string
          description: Unique identifier for the trustee record.
          example: T001
        Name:
          type: string
          description: Full name of the trustee.
          example: Oliver Brown
        PartyType:
          type: string
          description: Type of party (e.g., Individual or Organisation).
          example: Individual
        Title:
          type: string
          description: Title for the trustee.
          example: Mr
        FirstName:
          type: string
          description: First name of the trustee.
          example: Oliver
        MiddleNames:
          type: string
          description: Middle names of the trustee.
          example: ''
        LastName:
          type: string
          description: Last name of the trustee.
          example: Brown
        PreferredName:
          type: string
          description: Preferred or informal name used by the trustee.
          example: Ollie
        Email:
          type: string
          description: Email address of the trustee.
          example: oliver.brown@example.com
        EmailSpecified:
          type: boolean
          description: Indicates whether the trustee’s email is provided.
          example: true
        DefaultAddress:
          $ref: '#/components/schemas/AddressSummary'
        JoinFundDate:
          type: string
          format: date
          description: Date the trustee joined the fund, if applicable.
          example: '2003-12-17'
        DisplayName:
          type: string
          description: Display-friendly name for the trustee.
          example: Oliver Brown
        IsErrorMessage:
          type: boolean
          description: >-
            True if this record represents an error message rather than a
            trustee.
          example: false
        Gender:
          type: string
          description: Gender of the trustee.
          enum:
            - Male
            - Female
            - Other
            - NotStated
    Gender:
      type: string
      description: Gender classification used across member and trustee schemas.
      enum:
        - Male
        - Female
        - Other
        - NotStated
    GeneralMinuteLetterData_SignatureSummary:
      type: object
      description: Signature details included in a General Minute/Letter document.
      required:
        - Position
        - Name
      properties:
        Position:
          type: string
          description: Role and context of the signatory in the letter.
          example: Director - Trustee Pty Ltd
        Name:
          type: string
          description: Full name of the signatory.
    HoldingAccountExternalIdentifierType:
      type: string
      description: Type of external identifier used for holding accounts.
      enum:
        - Item
        - Hin
        - Srn
        - WrapAccount
        - ExternalId
        - AccountNumber
    HoldingTypeForGst:
      type: string
      description: GST treatment type for the holding account.
      enum:
        - DoesNotAttractGst
        - AttractsGst
    LegalEntityType:
      type: string
      description: Legal entity type for the fund.
      enum:
        - SMSF
        - SAF
        - Personal
        - Trust
        - Company
        - Partnership
        - Consolidated
    MarketTypeCode:
      type: string
      description: Market type code for the holding account.
      enum:
        - BK
        - CM
        - LD
        - LM
        - MF
        - MM
        - PD
        - SP
        - UN
        - Platform
        - FOR
        - TD
    PensionProductType:
      type: string
      description: Type of pension product for a member's pension account.
      enum:
        - AccountBased
        - AllocatedPension
        - Complying
        - Flexi
        - NonCommutableAllocatedPension
        - TAPS
    ReportSummaries_GeneralMinuteLetterAddressToType:
      type: string
      description: Type of recipient for the general minute letter.
      enum:
        - None
        - Fund
        - Trustees
        - Administrator
        - Advisor
        - Auditor
        - TaxAgent
        - Accountant
    ReportSummaries_GeneralMinuteLetterSignaturesType:
      type: string
      description: Type of signatures included in the general minute letter.
      enum:
        - None
        - ChairOnly
        - AllTrustees
        - Administrator
        - TaxAgent
        - Accountant
        - Auditor
    StandardAddress:
      type: object
      description: >-
        Standard address structure used for trustees, accountants, and
        notifications.
      required:
        - EffectiveStatusCode
        - Messages
        - Warnings
        - Errors
        - State
        - PostCode
        - Locality
        - Country
        - ValidatedAddress
        - AddressLine1
        - AddressLine2
        - AddressLine3
        - AddressLine4
      properties:
        EffectiveStatusCode:
          type: string
          description: Status code indicating the effectiveness of the address.
          example: Active
        Messages:
          type: array
          items:
            type: string
          description: List of messages related to the address.
        Warnings:
          type: array
          items:
            type: string
          description: List of warnings related to the address.
        Errors:
          type: array
          items:
            type: string
          description: List of errors related to the address.
        State:
          type: string
          description: State or territory for the address.
          example: NSW
        PostCode:
          type: string
          description: Postcode for the address.
          example: '2000'
        Locality:
          type: string
          description: Locality or suburb of the address.
          example: Sydney
        Country:
          type: string
          description: Country for the address.
          example: Australia
        ValidatedAddress:
          type: boolean
          description: Indicates if the address has been validated.
          example: false
        AddressLine1:
          type: string
          description: First line of the address.
          example: 123 Example Street
        AddressLine2:
          type: string
          description: Second line of the address.
          example: ''
        AddressLine3:
          type: string
          description: Third line of the address.
          example: ''
        AddressLine4:
          type: string
          description: Fourth line of the address.
          example: ''
    StandardApiResponse:
      type: object
      description: >-
        Standard API response structure, including error codes and creation
        status.
      allOf:
        - $ref: '#/components/schemas/ApiResponseBase'
    StatusCode:
      type: string
      description: Status code for a fund or address.
      enum:
        - Active
        - Cancelled
        - Pending
        - Suspended
    TransferBalanceDeclarationDetails_Member:
      type: object
      description: Details of a member included in the transfer balance declaration report.
      required:
        - FullName
        - TbarEvents
      properties:
        FullName:
          type: string
          description: Full name of the member.
          example: Alex Smith
        TbarEvents:
          type: array
          items:
            $ref: '#/components/schemas/TransferBalanceDeclarationDetails_TbarEvent'
          description: List of TBAR events for the member.
    TransferBalanceDeclarationDetails_TbarEvent:
      type: object
      description: Details of a TBAR event for a member.
      required:
        - AccountType
        - AccountNumber
        - AccountName
        - EventType
        - EventDate
        - Value
      properties:
        AccountType:
          type: string
          description: Type of account associated with the event.
          example: Pension
        AccountNumber:
          type: string
          description: Account number associated with the event.
          example: '123456'
        AccountName:
          type: string
          description: Name of the account associated with the event.
          example: Retirement Pension
        EventType:
          type: string
          description: Type of TBAR event.
          example: Commencement
        EventDate:
          type: string
          format: date
          description: Date of the TBAR event.
          example: '2023-07-01'
        Value:
          type: number
          format: decimal
          description: Value associated with the TBAR event.
          example: 100000
    TrustDeedJurisdiction:
      type: string
      description: Jurisdiction under which a trust deed is executed.
      enum:
        - Item
        - ACT
        - WA
        - VIC
        - SA
        - NSW
        - TAS
        - QLD
        - NT
    TrustDeedType:
      type: string
      description: Type of trust deed.
      enum:
        - Establishment
        - Amendment
        - RetirementAndAppointment
        - Upgrade
    TrustRoles:
      type: string
      description: Role of an individual or organisation in the trust.
      enum:
        - Beneficiary
        - Trustee
        - BeneficiaryAndTrustee
    TrustTypes:
      type: number
      description: Numeric code representing the type of trust.
      enum:
        - 67
        - 68
        - 70
        - 72
        - 73
        - 77
        - 80
        - 81
        - 83
        - 84
        - 85
    VoiceContactType:
      type: string
      description: Type of voice contact method.
      enum:
        - Home
        - Mobile
        - Work
        - Business
        - Direct
    WrittenContactType:
      type: string
      description: Type of written contact method.
      enum:
        - Email
        - MailingAddress
        - Fax
    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.
      xml:
        name: Error
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
          nullable: true
        message:
          type: string
          nullable: true
      additionalProperties: false
    ForbiddenErrorCommon:
      type: object
      properties:
        Code:
          type: string
          example: FORBIDDEN
        Message:
          type: string
          example: You do not have permission to access this resource.
      xml:
        name: Error
    ResourceUnavailableErrorCommon:
      type: object
      properties:
        Code:
          type: string
          example: API_NOT_FOUND
        Message:
          type: string
          example: Resource not available or user does not have access to the fund.
      xml:
        name: Error
    UnauthorizedErrorCommon:
      type: object
      properties:
        Code:
          type: string
          example: API_NOT_AUTHORISED
        Message:
          type: string
          example: Not authorised
      xml:
        name: Error
        wrapped: false
  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
        clientCredentials:
          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
