openapi: 3.0.1
info:
  x-metadata:
    tags:
      - Class Partner
  title: Member Data
  version: '1.0'
  description: >-
    Provides authorised access to member-related information within a specified
    superannuation fund. 

    This schema enables users to retrieve, manage, and update member accounts
    and personal details 

    through a structured API interface. It supports a wide range of operations
    including:


    - Querying member accounts and retrieving account summaries

    - Accessing detailed personal, contact, and beneficiary information

    - Managing member transitions and nomination details

    - Updating member records such as contact preferences, tax file numbers, and
    insurance coverage


    The schema is designed to facilitate seamless integration with fund
    administration systems, 

    ensuring data consistency, compliance with regulatory requirements, and
    efficient member servicing.



    <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>
tags:
  - name: Fund
    description: >-
      This refers to data held at an individual Fund level. Most of the end data
      entered into Class will be at a Fund level e.g. member and transaction
      date, this applies uniquely to the entity.
servers:
  - url: https://apigateway.class-pie.com.au/api/1.0
    description: Partner Integration Environment (Sandbox)
  - url: https://apigateway.class.com.au/api/1.0
    description: Production Environment
paths:
  /f/{businessCode}/{fundCode}/member-data/member-detail/{id}:
    get:
      tags:
        - Fund
      operationId: getMemberDetail
      summary: Member detail
      description: The complete details of a member within the fund.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: id
          in: path
          description: Unique Id to identify the member of the fund
          required: true
          schema:
            $ref: '#/components/schemas/guid'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: '#/components/schemas/MemberData_MemberDetail'
                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.member.read
    post:
      tags:
        - Fund
      operationId: postMemberDetail
      summary: Update member detail
      description: Update the complete details of a member within the fund.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: id
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/Api_RequestId'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardApiResponse'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MemberData_MemberDetail'
      security:
        - Class_oAuth:
            - fund.member.maintain
  /f/{businessCode}/{fundCode}/member-data/member-list:
    get:
      tags:
        - Fund
      operationId: memberList
      summary: Member list
      description: The list of all the members within the fund with basic details.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    type: array
                    items:
                      $ref: '#/components/schemas/MemberData_MemberSummaryList'
                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.member.read
  /f/{businessCode}/{fundCode}/member-data/member-detail:
    get:
      tags:
        - Fund
      operationId: getMembersDetail
      summary: Members detail
      description: The list of all the members within the fund with basic details.
      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/MemberData_MemberDetail'
                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.member.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:
    ApiError:
      type: object
      required:
        - Code
        - Message
      properties:
        Code:
          type: string
        Message:
          type: string
    ApiResponseBase:
      type: object
      required:
        - Errors
      properties:
        Errors:
          type: array
          items:
            $ref: '#/components/schemas/ApiError'
    ApiRestLink:
      description: Represents a hyperlink reference to a REST API resource.
      type: object
      required:
        - Id
        - Url
      properties:
        Id:
          type: string
          description: A unique identifier for the link.
          example: 0ef57b4d-6fe4-45c9-83e5-fd27c16d149c
        Url:
          type: string
          description: The full URL pointing to the API resource.
          example: >-
            https://api.class.com.au/api/1.0/f/demo-business/DEMO_SMSF_2025/member-data/member-detail/0ef57b4d-6fe4-45c9-83e5-fd27c16d149c
    Api_RequestId:
      description: >-
        Encapsulates a request identifier for the member used for tracking or
        referencing API calls.
      type: object
      required:
        - id
      properties:
        id:
          $ref: '#/components/schemas/guid'
          description: A globally unique identifier for the request.
    Gender:
      description: Defines the gender of an individual.
      type: string
      enum:
        - Male
        - Female
        - Other
        - NotStated
    MemberData_MemberAccount:
      description: Describes a member's account within a superannuation fund.
      type: object
      required:
        - Id
        - Description
        - Type
        - Balance
        - Status
        - MemberName
      properties:
        Id:
          type: string
          description: Unique identifier for the account.
          example: 2396ef8f-bd5e-45fb-b078-b48f41a2191d
        Description:
          type: string
          description: A short label or code for the account.
          example: ABP2007
        Type:
          type: string
          description: The type of account (e.g., pension, accumulation).
          example: Pension - Account Based
        Balance:
          type: number
          format: decimal
          description: The current balance of the account.
          example: 527254.55
        Status:
          $ref: '#/components/schemas/StatusCode'
          description: The current status of the account.
        MemberName:
          type: string
          description: The full name of the account holder.
          example: Mr Oliver Brown
    MemberData_MemberDetail:
      description: Provides comprehensive details about a superannuation fund member.
      type: object
      required:
        - Link
        - Status
        - PersonalDetails
        - MembersDetails
        - ContactDetails
        - BeneficiaryDetails
        - MemberTransitionDetails
      properties:
        Link:
          $ref: '#/components/schemas/ApiRestLink'
          description: A reference link to the member's API resource.
        Status:
          $ref: '#/components/schemas/StatusCode'
          description: The member's current status.
        PersonalDetails:
          $ref: '#/components/schemas/MemberDetail_PersonalDetail'
          description: Personal information about the member.
        MembersDetails:
          $ref: '#/components/schemas/MemberDetail_MemberDetails'
          description: Membership-specific details.
        ContactDetails:
          $ref: '#/components/schemas/MemberDetail_MemberContactDetail'
          description: Contact information for the member.
        BeneficiaryDetails:
          $ref: '#/components/schemas/MemberDetail_BeneficiaryDetail'
          description: Information about the member’s nominated beneficiaries.
        MemberTransitionDetails:
          $ref: '#/components/schemas/MemberDetail_MemberTransitionDetail'
          description: Details about the member’s transition status or history.
    MemberData_MemberSummary:
      type: object
      required:
        - Link
        - Status
        - DefaulDisplayName
        - MemberNumber
      properties:
        Link:
          $ref: '#/components/schemas/ApiRestLink'
        Status:
          $ref: '#/components/schemas/StatusCode'
        DefaulDisplayName:
          type: string
          example: Mr Oliver Brown
        MemberNumber:
          type: string
          example: '1'
    MemberData_MemberSummaryList:
      type: object
      required:
        - MemberSummaries
      properties:
        MemberSummaries:
          type: array
          items:
            $ref: '#/components/schemas/MemberData_MemberSummary'
    MemberDetail_BeneficiaryDetail:
      description: >-
        Contains information about a member's beneficiary nomination, including
        effective and expiry dates, nomination type, and additional details.
      type: object
      required:
        - EffectiveDateSpecified
        - ExpiryDateSpecified
        - NominationType
        - Details
      properties:
        EffectiveDate:
          type: string
          format: date-time
          description: The date the beneficiary nomination becomes effective.
          example: '2020-01-01'
        EffectiveDateSpecified:
          type: boolean
          description: Indicates whether the effective date is explicitly specified.
          example: true
        ExpiryDate:
          type: string
          format: date-time
          description: The date the beneficiary nomination expires, if applicable.
          example: '2030-01-01'
        ExpiryDateSpecified:
          type: boolean
          description: Indicates whether the expiry date is explicitly specified.
          example: true
        NominationType:
          type: string
          description: The type of nomination, such as binding or non-binding.
          example: Binding
        Details:
          type: string
          description: >-
            Additional information or notes regarding the beneficiary
            nomination.
          example: Primary beneficiary is Jane Doe, 100% allocation.
    MemberDetail_InvitationDetail:
      type: object
      required:
        - InvitationStatus
        - CanInviteUsers
        - PersistedEmailAddress
        - MemberId
      properties:
        InvitationStatus:
          $ref: '#/components/schemas/PartyRoleUserInvitationStatus'
        CanInviteUsers:
          type: boolean
          description: >-
            Indicates whether the member has permission to invite other users to
            the platform.
          example: true
        PersistedEmailAddress:
          type: string
          description: >-
            The email address stored for the member, used for communication and
            invitation purposes.
          example: testers-ProdMember@super-ip.com.au
        MemberId:
          type: string
          description: A unique identifier for the member within the system.
          example: f8fb1a99-0dda-4142-b364-bf5c89f2aff5
    MemberDetail_MemberContactDetail:
      type: object
      required:
        - HomePhone
        - WorkPhone
        - Mobile
        - Direct
        - InvitationDetails
      properties:
        PreferredVoiceContact:
          $ref: '#/components/schemas/VoiceContactType'
          description: The member's preferred method of voice communication.
          example: Mobile
        PreferredWrittenContact:
          $ref: '#/components/schemas/WrittenContactType'
          description: The member's preferred method of written communication.
          example: Email
        HomePhone:
          type: string
          description: The member's home phone number. (Double check)
          example: null
        WorkPhone:
          type: string
          description: The member's work phone number.
          example: null
        Mobile:
          type: string
          description: The member's mobile phone number.
          example: 4123123123
        Direct:
          type: string
          description: A direct phone line to the member.
          example: '0233333333'
        InvitationDetails:
          $ref: '#/components/schemas/MemberDetail_InvitationDetail'
          description: Details about the member's invitation status and permissions.
    MemberDetail_MemberDetails:
      type: object
      description: >-
        Contains detailed membership information for a superannuation fund
        member, including fund participation, residency, tax, and insurance
        details
      required:
        - Number
        - LeaveFundDateSpecified
        - EligibleServicePeriodStartDateSpecified
        - EligibleServicePeriodStartDateBackupSpecified
        - AustralianResident
        - TaxFileNumber
        - ClaimTaxFreeThreshold
        - FloodLevyExempt
        - CentrelinkDVAReferenceNumber
      properties:
        Number:
          type: string
          description: The unique membership number assigned to the individual.
          example: '1'
        JoinFundDate:
          type: string
          format: date-time
          description: The date the member joined the fund.
          example: '2005-08-15'
        LeaveFundDate:
          type: string
          format: date-time
          description: The date the member left the fund, if applicable.
          example: null
        LeaveFundDateSpecified:
          type: boolean
          description: Indicates whether the LeaveFundDate is specified.
          example: false
        EligibleServicePeriodStartDate:
          type: string
          format: date-time
          description: The start date of the member's eligible service period.
          example: '1988-08-24'
        EligibleServicePeriodStartDateSpecified:
          type: boolean
          description: Indicates whether the EligibleServicePeriodStartDate is specified.
          example: true
        EligibleServicePeriodStartDateBackup:
          type: string
          format: date-time
          description: >-
            A backup date for the start of the eligible service period, if
            applicable.
          example: null
        EligibleServicePeriodStartDateBackupSpecified:
          type: boolean
          description: >-
            Indicates whether the backup eligible service period start date is
            specified.
          example: false
        AustralianResident:
          type: boolean
          description: >-
            Indicates whether the member is an Australian resident for tax
            purposes.
          example: true
        TaxFileNumber:
          type: string
          description: The member's Australian Tax File Number (TFN).
          example: '137202478'
        ClaimTaxFreeThreshold:
          type: boolean
          description: Indicates whether the member has claimed the tax-free threshold.
          example: true
        DeathSumInsured:
          type: number
          format: decimal
          description: The amount insured in the event of the member's death.
          example: 0
        TpdSumInsured:
          type: number
          format: decimal
          description: The amount insured for total and permanent disability (TPD).
          example: 0
        SalaryContinuanceSumInsured:
          type: number
          format: decimal
          description: The amount insured for salary continuance or income protection.
          example: 0
        FloodLevyExempt:
          type: boolean
          description: Indicates whether the member is exempt from the flood levy.
          example: false
        CentrelinkDVAReferenceNumber:
          type: string
          description: >-
            The member's Centrelink or Department of Veterans' Affairs reference
            number, if applicable. (Double check)
          example: null
    MemberDetail_MemberTransitionDetail:
      type: object
      required:
        - MemberId
        - Transitions
      properties:
        MemberId:
          type: string
          description: A unique identifier for the member within the system.
          example: f8fb1a99-0dda-4142-b364-bf5c89f2aff5
        Transitions:
          type: array
          description: Details about the member’s transition status or history.
          items:
            $ref: '#/components/schemas/MemberTransitionDetail_Transition'
    MemberDetail_PersonalDetail:
      type: object
      required:
        - Title
        - FirstName
        - MiddleNames
        - LastName
        - Gender
        - DateOfDeathSpecified
        - PreferredSalutation
        - PreferredName
      properties:
        Title:
          type: string
          description: The title or honorific of the individual.
          example: MR
        FirstName:
          type: string
          description: The given name of the individual.
          example: Kevin
        MiddleNames:
          type: string
          description: The middle name(s) of the individual, if any.
          example: James
        LastName:
          type: string
          description: The family or surname of the individual.
          example: O'Brien
        Gender:
          $ref: '#/components/schemas/Gender'
          description: The gender of the individual.
          example: Male
        DateOfBirth:
          type: string
          format: date-time
          description: The date of birth of the individual in ISO 8601 format.
          example: '1935-06-13'
        DateOfDeath:
          type: string
          format: date-time
          description: >-
            The date of death of the individual, if applicable, in ISO 8601
            format.
          example: '2024-01-01'
        DateOfDeathSpecified:
          type: boolean
          description: Indicates whether the date of death is specified.
          example: false
        PreferredSalutation:
          type: string
          description: The preferred way to address the individual.
          example: Mr
        PreferredName:
          type: string
          description: The name the individual prefers to be called.
          example: Kevin
    MemberTransitionDetail_Transition:
      description: >-
        Represents a transition event in a member's superannuation lifecycle,
        such as moving between account types or status changes.
      type: object
      required:
        - TransitionId
        - Date
        - Type
        - Status
      properties:
        TransitionId:
          type: string
          description: A unique identifier for the transition event. (Double Check)
          example: a1b2c3d4-e5f6-7890-abcd-1234567890ef
        Date:
          type: string
          format: date-time
          description: The date and time when the transition occurred.
          example: '2023-07-01'
        Type:
          type: string
          description: The type of transition, such as 'Retirement' or 'LeaveRetirement'.
          example: Retirement
        Status:
          $ref: '#/components/schemas/StatusCode'
          description: The current status of the transition.
          example: Active
    PartyRoleUserInvitationStatus:
      type: string
      description: >-
        Indicates the current invitation and access status of a user associated
        with a party role in the system.
      enum:
        - NotApplicable
        - NotInvited
        - Invited
        - AccessGranted
        - AccessSuspended
        - CantBeInvited
    StandardApiResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/ApiResponseBase'
    StatusCode:
      description: Represents the current status of an entity or process.
      type: string
      enum:
        - Active
        - Cancelled
        - Pending
        - Suspended
    VoiceContactType:
      description: Specifies the type of voice-based contact method.
      type: string
      enum:
        - Home
        - Mobile
        - Work
        - Business
        - Direct
    WrittenContactType:
      description: Specifies the type of written communication method.
      type: string
      enum:
        - Email
        - MailingAddress
        - Fax
        - PhysicalAddress
    guid:
      type: string
      example: 0ef57b4d-6fe4-45c9-83e5-fd27c16d149c
    InternalErrorCommon:
      type: object
      properties:
        Code:
          type: string
          example: API_INTERNAL_ERROR
        Message:
          type: string
          example: An unexpected error occurred on the server. Please try again later.
    ErrorResponse:
      type: object
      properties:
        Code:
          type: string
          nullable: true
        Message:
          type: string
          nullable: true
      additionalProperties: false
    ForbiddenErrorCommon:
      type: object
      properties:
        Code:
          type: string
          example: FORBIDDEN
        Message:
          type: string
          example: You do not have permission to access this resource.
    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.
    UnauthorizedErrorCommon:
      type: object
      properties:
        Code:
          type: string
          example: API_NOT_AUTHORISED
        Message:
          type: string
          example: Not authorised
  securitySchemes:
    Class_oAuth:
      type: oauth2
      description: >-
        Class use OAuth2 and OpenID for secure authentication and authorisation.
        The base URL reflects the environment—whether Production or PIE and is
        defined under the hosts section.
      flows:
        authorizationCode:
          authorizationUrl: /connect/authorize
          tokenUrl: /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
