Oper Credits Simulators API

The Simulators API from Oper Credits — 15 operation(s) for simulators.

OpenAPI Specification

oper-credits-simulators-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Oper Credits Agent Documents Simulators API
  version: ''
tags:
- name: Simulators
paths:
  /api/simulators/calculate/:
    post:
      operationId: api_simulators_calculate_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdvisorMortgageSimulator'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AdvisorMortgageSimulator'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AdvisorMortgageSimulator'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdvisorMortgageSimulator'
          description: ''
      security:
      - jwtAuth: []
      tags:
      - Simulators
  /api/simulators/default-products/:
    post:
      description: "The DynamicProductLiteViewSet provides a way to fetch the list of available products by providing loan request data\n as input since no actual LR will exist at the time of calling this in Advisor Simulator v2.\nIt is used to select products to add to an offer as product items.\n\nThe list is a multiplication of the active ProductVersions with a start date of at least today and\nthe allowed variabilities configured for the product.\nAs an example:\n2 Products (A & B) with each one version\nProduct A has 2 allowed variabilities (fix and 5-5-5)\nProduct B has 1 allowed variabilities (fix)\nThe view will return 3 results\nIf product A has 2 versions that have a start date of at least today, the view will return 5 results.\n\nNext to the product details, the view runs the acceptance rules and provides the result in the errors attribute.\n\nDeveloper notes:\nThe logic used in this view and its related code assumes that there is no offer or product items\nto base calculations on.\n\nYou can define the duration you want to calculate the products for by setting the query params min_duration\nand max_duration to an equal value. Otherwise, those values are only used to filter and the default duration\non the product version is used in the calculations.,\n\nInputs will be sent in the body of the POST request:\n{\n    \"loan_amount\": decimal,\n    \"cash_own_funds\": decimal,\n    \"bridge_loan_amount\": decimal,\n    \"realty_price\": decimal,\n    \"building_costs\": decimal,\n    \"price_of_land\": decimal,\n    \"total_renovation_costs\": decimal,\n    \"cost_vat\": decimal,\n    \"additional_financing_needs\": decimal,\n    \"region\": {\n        \"id\": int,\n        \"definition\": \"str\"\n    },\n    \"is_main_first_residence\": boolean,\n    \"venal_value_after\": decimal,\n    \"loan_purposes\": [\n        {\n            \"id\": int,\n            \"definition\": \"str\"\n        }\n    ]\n}\n\nAs inputs we will take known data from the simulator and construct LoanRequest and Realty objects, which will then\nbe used to initialize DataHandlers in Serializer context. Then the serializer will proceed with rate calculations.\nThis serializer won't be running acceptance criteria and will not have the results in the data."
      operationId: api_simulators_default_products_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DynamicProductLite'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DynamicProductLite'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DynamicProductLite'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DynamicProductLite'
          description: ''
      security:
      - jwtAuth: []
      tags:
      - Simulators
  /api/simulators/discounts/:
    get:
      operationId: api_simulators_discounts_list
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/BaseProductDiscountsSimulator'
                type: array
          description: ''
      security:
      - jwtAuth: []
      tags:
      - Simulators
    post:
      operationId: api_simulators_discounts_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BaseProductDiscountsSimulator'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BaseProductDiscountsSimulator'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BaseProductDiscountsSimulator'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseProductDiscountsSimulator'
          description: ''
      security:
      - jwtAuth: []
      tags:
      - Simulators
  /api/simulators/mortgage/advisor/client-upload-document-types/:
    get:
      description: Informative document types
      operationId: api_simulators_mortgage_advisor_client_upload_document_types_list
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/DocumentType'
                type: array
          description: ''
      security:
      - jwtAuth: []
      tags:
      - Simulators
  /api/simulators/mortgage/advisor/client-upload-document-types/{id}/:
    get:
      description: Informative document types
      operationId: api_simulators_mortgage_advisor_client_upload_document_types_retrieve
      parameters:
      - description: A unique integer value identifying this Document Type.
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentType'
          description: ''
      security:
      - jwtAuth: []
      tags:
      - Simulators
  /api/simulators/mortgage/advisor/convert/:
    post:
      description: Convert a simulation to Loan Request
      operationId: api_simulators_mortgage_advisor_convert_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConvertSimulationToLoanRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ConvertSimulationToLoanRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ConvertSimulationToLoanRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConvertLoanRequestSummary'
          description: ''
      security:
      - jwtAuth: []
      tags:
      - Simulators
  /api/simulators/mortgage/advisor/products/:
    post:
      description: "The DynamicProductLiteViewSet provides a way to fetch the list of available products by providing loan request data\n as input since no actual LR will exist at the time of calling this in Advisor Simulator v2.\nIt is used to select products to add to an offer as product items.\n\nThe list is a multiplication of the active ProductVersions with a start date of at least today and\nthe allowed variabilities configured for the product.\nAs an example:\n2 Products (A & B) with each one version\nProduct A has 2 allowed variabilities (fix and 5-5-5)\nProduct B has 1 allowed variabilities (fix)\nThe view will return 3 results\nIf product A has 2 versions that have a start date of at least today, the view will return 5 results.\n\nNext to the product details, the view runs the acceptance rules and provides the result in the errors attribute.\n\nDeveloper notes:\nThe logic used in this view and its related code assumes that there is no offer or product items\nto base calculations on.\n\nYou can define the duration you want to calculate the products for by setting the query params min_duration\nand max_duration to an equal value. Otherwise, those values are only used to filter and the default duration\non the product version is used in the calculations.,\n\nInputs will be sent in the body of the POST request:\n{\n    \"loan_amount\": decimal,\n    \"cash_own_funds\": decimal,\n    \"bridge_loan_amount\": decimal,\n    \"realty_price\": decimal,\n    \"building_costs\": decimal,\n    \"price_of_land\": decimal,\n    \"total_renovation_costs\": decimal,\n    \"cost_vat\": decimal,\n    \"additional_financing_needs\": decimal,\n    \"region\": {\n        \"id\": int,\n        \"definition\": \"str\"\n    },\n    \"is_main_first_residence\": boolean,\n    \"venal_value_after\": decimal,\n    \"loan_purposes\": [\n        {\n            \"id\": int,\n            \"definition\": \"str\"\n        }\n    ]\n}\n\nAs inputs we will take known data from the simulator and construct LoanRequest and Realty objects, which will then\nbe used to initialize DataHandlers in Serializer context. Then the serializer will proceed with rate calculations.\nThis serializer won't be running acceptance criteria and will not have the results in the data."
      operationId: api_simulators_mortgage_advisor_products_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DynamicProductLite'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DynamicProductLite'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DynamicProductLite'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DynamicProductLite'
          description: ''
      security:
      - jwtAuth: []
      tags:
      - Simulators
  /api/simulators/mortgage/advisor/simulations/:
    get:
      description: A ViewSet mixin that parametrizes DRF methods over roles
      operationId: api_simulators_mortgage_advisor_simulations_list
      parameters:
      - in: query
        name: analyst
        schema:
          type: integer
      - in: query
        name: loan_request
        schema:
          type: integer
      - in: query
        name: obsolete
        schema:
          type: boolean
      - description: Which field to use when ordering the results.
        in: query
        name: ordering
        required: false
        schema:
          type: string
      - description: A page number within the paginated result set.
        in: query
        name: page
        required: false
        schema:
          type: integer
      - description: Number of results to return per page.
        in: query
        name: page_size
        required: false
        schema:
          type: integer
      - description: A search term.
        in: query
        name: search
        required: false
        schema:
          type: string
      - in: query
        name: source
        schema:
          type: string
      - in: query
        name: status
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedReducedMortgageSimulationResultList'
          description: ''
      tags:
      - Simulators
    post:
      description: A ViewSet mixin that parametrizes DRF methods over roles
      operationId: api_simulators_mortgage_advisor_simulations_create
      responses:
        '201':
          description: No response body
      tags:
      - Simulators
  /api/simulators/mortgage/advisor/simulations/clean-up/:
    post:
      description: A ViewSet mixin that parametrizes DRF methods over roles
      operationId: api_simulators_mortgage_advisor_simulations_clean_up_create
      responses:
        '200':
          description: No response body
      tags:
      - Simulators
  /api/simulators/mortgage/advisor/simulations/{id}/:
    delete:
      description: A ViewSet mixin that parametrizes DRF methods over roles
      operationId: api_simulators_mortgage_advisor_simulations_destroy
      parameters:
      - description: A unique integer value identifying this Mortgage Simulation.
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: No response body
      tags:
      - Simulators
    get:
      description: A ViewSet mixin that parametrizes DRF methods over roles
      operationId: api_simulators_mortgage_advisor_simulations_retrieve
      parameters:
      - description: A unique integer value identifying this Mortgage Simulation.
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: No response body
      tags:
      - Simulators
    patch:
      description: A ViewSet mixin that parametrizes DRF methods over roles
      operationId: api_simulators_mortgage_advisor_simulations_partial_update
      parameters:
      - description: A unique integer value identifying this Mortgage Simulation.
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: No response body
      tags:
      - Simulators
    put:
      description: A ViewSet mixin that parametrizes DRF methods over roles
      operationId: api_simulators_mortgage_advisor_simulations_update
      parameters:
      - description: A unique integer value identifying this Mortgage Simulation.
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: No response body
      tags:
      - Simulators
  /api/simulators/mortgage/advisor/simulations/{id}/remove/:
    delete:
      description: A ViewSet mixin that parametrizes DRF methods over roles
      operationId: api_simulators_mortgage_advisor_simulations_remove_destroy
      parameters:
      - description: A unique integer value identifying this Mortgage Simulation.
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: No response body
      tags:
      - Simulators
  /api/simulators/mortgage/advisor/simulations/{id}/sync-simulations/:
    post:
      description: A ViewSet mixin that parametrizes DRF methods over roles
      operationId: api_simulators_mortgage_advisor_simulations_sync_simulations_create
      parameters:
      - description: A unique integer value identifying this Mortgage Simulation.
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: No response body
      tags:
      - Simulators
  /api/simulators/mortgage/client/:
    post:
      operationId: api_simulators_mortgage_client_create
      responses:
        '200':
          description: No response body
      security:
      - jwtAuth: []
      - {}
      tags:
      - Simulators
  /api/simulators/offer/:
    post:
      operationId: api_simulators_offer_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSimulatorOffer'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateSimulatorOffer'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UpdateSimulatorOffer'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateSimulatorOffer'
          description: ''
      security:
      - jwtAuth: []
      tags:
      - Simulators
  /api/simulators/offers/:
    post:
      operationId: api_simulators_offers_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateSimulatorOffers'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GenerateSimulatorOffers'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GenerateSimulatorOffers'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateSimulatorOffers'
          description: ''
      security:
      - jwtAuth: []
      tags:
      - Simulators
components:
  schemas:
    Funder:
      properties:
        id:
          readOnly: true
          type: integer
        name:
          maxLength: 256
          type: string
      required:
      - id
      - name
      type: object
    LoanRequestSubPurpose:
      description: Can be managed at /resources/loan-request-sub-purpose
      properties:
        definition:
          type: string
        id:
          type: integer
        is_mortgage:
          type: boolean
        is_refinance:
          nullable: true
          type: boolean
        order:
          readOnly: true
          type: integer
      required:
      - definition
      - id
      - order
      type: object
    MortgageSimulatorRenovationCost:
      properties:
        amount:
          format: double
          minimum: 0
          type: number
        id:
          nullable: true
          type: integer
        is_green_renovations:
          nullable: true
          type: boolean
        type:
          $ref: '#/components/schemas/RenovationType'
      required:
      - amount
      - type
      type: object
    PaginatedReducedMortgageSimulationResultList:
      properties:
        count:
          example: 123
          type: integer
        next:
          example: http://api.example.org/accounts/?page=4
          format: uri
          nullable: true
          type: string
        previous:
          example: http://api.example.org/accounts/?page=2
          format: uri
          nullable: true
          type: string
        results:
          items:
            $ref: '#/components/schemas/ReducedMortgageSimulationResult'
          type: array
      required:
      - count
      - results
      type: object
    PurchaseSaleType:
      description: Can be managed at /resources/purchase-sale-type
      properties:
        definition:
          type: string
        id:
          type: integer
        order:
          readOnly: true
          type: integer
      required:
      - definition
      - id
      - order
      type: object
    MortgageSimulatorBorrowerInfo:
      properties:
        birth_date:
          format: date
          nullable: true
          type: string
        emails:
          items:
            $ref: '#/components/schemas/Email'
          nullable: true
          type: array
        first_name:
          nullable: true
          type: string
        has_vehicle:
          default: true
          nullable: true
          type: boolean
        id:
          nullable: true
          type: integer
        incomes:
          items:
            $ref: '#/components/schemas/MortgageSimulatorIncome'
          type: array
        is_living_in_same_household:
          default: false
          nullable: true
          type: boolean
        is_main_borrower:
          nullable: true
          type: boolean
        language:
          allOf:
          - $ref: '#/components/schemas/Language'
          nullable: true
        last_name:
          nullable: true
          type: string
        liabilities:
          items:
            $ref: '#/components/schemas/MortgageSimulatorLiability'
          type: array
        number_of_dependents:
          nullable: true
          type: integer
        people_in_household:
          nullable: true
          type: integer
        phone_numbers:
          items:
            $ref: '#/components/schemas/Phone'
          nullable: true
          type: array
      type: object
    MortgageSimulatorCollateral:
      properties:
        collateral_amount:
          format: double
          nullable: true
          type: number
        collateral_purpose:
          allOf:
          - $ref: '#/components/schemas/RealtyPurpose'
          nullable: true
        credit_provider:
          allOf:
          - $ref: '#/components/schemas/ReducedCreditProvider'
          nullable: true
        has_existing_loan:
          default: false
          type: boolean
        mortgage_inscription_start_date:
          format: date
          nullable: true
          type: string
        mortgage_security_type:
          allOf:
          - $ref: '#/components/schemas/MortgageSecurityType'
          nullable: true
        original_loan_amount:
          format: double
          nullable: true
          type: number
        realty_type:
          allOf:
          - $ref: '#/components/schemas/RealtyType'
          nullable: true
        realty_usage_type:
          allOf:
          - $ref: '#/components/schemas/RealtyUsageType'
          nullable: true
      type: object
    Phone:
      properties:
        country_code:
          $ref: '#/components/schemas/PhoneCountryCode'
        id:
          readOnly: true
          type: integer
        value:
          maxLength: 32
          type: string
      required:
      - country_code
      - id
      - value
      type: object
    CoLivingGroupType:
      description: Can be managed at /resources/co-living-group-type
      properties:
        definition:
          type: string
        id:
          type: integer
        order:
          readOnly: true
          type: integer
      required:
      - definition
      - id
      - order
      type: object
    ConvertSimulationToLoanRequest:
      properties:
        additional_needs:
          items:
            $ref: '#/components/schemas/MortgageSimulationAdditionalFinancingNeeds'
          nullable: true
          type: array
        akr_expenses:
          nullable: true
        analyst:
          allOf:
          - $ref: '#/components/schemas/ReducedBaseUser'
          nullable: true
        architect_fees:
          format: double
          nullable: true
          type: number
        borrowers_info:
          items:
            $ref: '#/components/schemas/MortgageSimulatorBorrowerInfo'
          type: array
        broker:
          allOf:
          - $ref: '#/components/schemas/ReducedBroker'
          nullable: true
        building_costs:
          format: double
          nullable: true
          type: number
        buy_out_amount:
          format: double
          nullable: true
          type: number
        calculated_financial_plan:
          allOf:
          - $ref: '#/components/schemas/MortgageSimulationFinancialPlan'
          nullable: true
        co_living_group_type:
          allOf:
          - $ref: '#/components/schemas/CoLivingGroupType'
          nullable: true
        collaterals:
          items:
            $ref: '#/components/schemas/MortgageSimulatorCollateral'
          nullable: true
          type: array
        created_by:
          allOf:
          - $ref: '#/components/schemas/ReducedBaseUser'
          readOnly: true
        dscr:
          nullable: true
        dsti:
          format: double
          nullable: true
          type: number
        epc_after_renovations:
          minimum: 0
          nullable: true
          type: integer
        epc_before_renovations:
          minimum: 0
          nullable: true
          type: integer
        external_calculators:
          nullable: true
        fair_market_value:
          format: double
          nullable: true
          type: number
        fiduciary:
          allOf:
          - $ref: '#/components/schemas/Fiduciary'
          nullable: true
        financial_assets:
          items:
            $ref: '#/components/schemas/MortgageSimulatorFinancialAsset'
          nullable: true
          type: array
        financial_plan:
          allOf:
          - $ref: '#/components/schemas/MortgageSimulationFinancialPlan'
          nullable: true
        financial_plan_loan_amount_items:
          description: Financial plan items funded by loans
          items:
            $ref: '#/components/schemas/MortgageSimulatorFinancialPlanLoanAmountItem'
          type: array
        financial_plan_overridden_fields:
          allOf:
          - $ref: '#/components/schemas/MortgageSimulationFinancialPlan'
          nullable: true
        financial_plan_own_fund_items:
          description: Financial plan items funded by own funds
          items:
            $ref: '#/components/schemas/MortgageSimulatorFinancialPlanOwnFundItem'
          type: array
        free_use_mortgage:
          format: double
          nullable: true
          type: number
        id:
          type: integer
        internal_reference:
          readOnly: true
          type: string
        is_main_first_residence:
          default: false
          type: boolean
        is_realtor_excluded:
          default: false
          type: boolean
        is_shared_with_borrower:
          default: false
          type: boolean
        land_purchase_type:
          allOf:
          - $ref: '#/components/schemas/LandPurchaseType'
          nullable: true
        land_value:
          format: double
          nullable: true
          type: number
        lead_generator:
          allOf:
          - $ref: '#/components/schemas/ReducedLeadGenerator'
          nullable: true
        loan_purposes:
          items:
            $ref: '#/components/schemas/LoanRequestPurpose'
          type: array
        ltv:
          format: double
          nullable: true
          type: number
        main_borrower:
          allOf:
          - $ref: '#/components/schemas/NestedClientProfile'
          readOnly: true
        monthly_payment_estimations:
          items:
            $ref: '#/components/schemas/MortgageSimulatorMonthlyPaymentEstimation'
          nullable: true
          type: array
        name:
          nullable: true
          type: string
        notary:
          allOf:
          - $ref: '#/components/schemas/Notary'
          nullable: true
        offers:
          items:
            $ref: '#/components/schemas/AdvisorMortgageSimulatorConvertOffer'
          nullable: true
          type: array
        price_of_land:
          format: double
          nullable: true
          type: number
        pro_fisco_value:
          format: double
          nullable: true
          type: number
        products_search_filters:
          allOf:
          - $ref: '#/components/schemas/MortgageSimulatorProductsSearchFilters'
          nullable: true
        purchase_sale_type:
          allOf:
          - $ref: '#/components/schemas/PurchaseSaleType'
          nullable: true
        realty_price:
          format: double
          nullable: true
          type: number
        realty_type:
          allOf:
          - $ref: '#/components/schemas/RealtyType'
          nullable: true
        realty_usage_type:
          allOf:
          - $ref: '#/components/schemas/RealtyUsageType'
          nullable: true
        refinances:
          items:
            $ref: '#/components/schemas/MortgageSimulatorRefinance'
          nullable: true
          type: array
        region:
          allOf:
          - $ref: '#/components/schemas/Region'
          nullable: true
        renovation_costs:
          items:
            $ref: '#/components/schemas/MortgageSimulatorRenovationCost'
          nullable: true
          type: array
        selected_discounts:
          nullable: true
        selected_document_types:
          items:
            type: integer
          nullable: true
          type: array
          writeOnly: true
        selected_products:
          items:
            items:
              $ref: '#/components/schemas/NestedProduct'
            type: array
          nullable: true
          type: array
        source:
          allOf:
          - $ref: '#/components/schemas/MortgageSimulationSource'
          readOnly: true
        status:
          $ref: '#/components/schemas/MortgageSimulationStatus'
        subsidy_bridge_amount:
          format: double
          nullable: true
          type: number
        surplus:
          format: double
          nullable: true
          type: number
        total_additional_needs:
          default: 0.0
          format: double
          type: number
        total_build_costs:
          format: double
          nullable: true
          type: number
        total_buy_out_costs:
          format: double
          nullable: true
          type: number
        total_costs:
          format: double
          nullable: true
          type: number
        total_credit_costs:
          format: double
          nullable: true
          type: number
        total_distribution_costs:
          format: double
          nullable: true
          type: number
        total_financial_assets:
          default: 0.0
          format: double
          type: number
        total_financing:
          format: double
          nullable: true
          type: number
        total_monthly_amount:
          format: double
          nullable: true
          type: number
        total_other_costs:
          format: double
          nullable: true
          type: number
        total_purchase_cost:
          format: double
          nullable: true
          type: number
        total_purchase_price:
          format: double
          nullable: true
          type: number
        total_refinancing_costs:
          format: double
          nullable: true
          type: number
        total_renovation_costs:
          format: double
          nullable: true
          type: number
        unsecured_lending_amount:
          format: double
          nullable: true
          type: number
        venal_value_after:
          format: double
          nullable: true
          type: number
        venal_value_before:
          format: double
          nullable: true
          type: number
      required:
      - created_by
      - id
      - internal_reference
      - main_borrower
      - source
      type: object
    ReducedMortgageSimulationResult:
      properties:
        analyst:
          allOf:
          - $ref: '#/components/schemas/ReducedBaseUser'
          nullable: true
        broker:
          allOf:
          - $ref: '#/components/schemas/ReducedBroker'
          nullable: true
        created:
          format: date-time
          readOnly: true
          title: Creation date and time
          type: string
        created_by:
          allOf:
          - $ref: '#/components/schemas/ReducedBaseUser'
          readOnly: true
        expiration_date:
          readOnly: true
          type: string
        fiduciary:
          allOf:
          - $ref: '#/components/schemas/Fiduciary'
          nullable: true
        id:
          type: integer
        internal_reference:
          readOnly: true
          type: string
        last_modified:
          format: date-time
          readOnly: true
          title: Modification date and time
          type: string
        lead_generator:
          allOf:
          - $ref: '#/components/schemas/ReducedLeadGenerator'
          nullable: true
        loan_amount:
          readOnly: true
          type: string
        loan_purposes:
          items:
            $ref: '#/components/schemas/LoanRequestPurpose'
          type: array
        loan_request:
          allOf:
          - $ref: '#/components/schemas/ReducedLoanRequest'
          readOnly: true
        main_borrower:
          $ref: '#/components/schemas/ReducedClientProfileWithContactInformation'
        name:
          nullable: true
          type: string
        notary:
          allOf:
          - $ref: '#/components/schemas/Notary'
          nullable: true
        preapproval_status:
          readOnly: true
          type: string
        region:
          allOf:
          - $ref: '#/components/schemas/Region'
          nullable: true
        source:
          allOf:
          - $ref: '#/components/schemas/MortgageSimulationSource'
          readOnly: true


# --- truncated at 32 KB (115 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/oper-credits/refs/heads/main/openapi/oper-credits-simulators-api-openapi.yml