openapi: 3.0.1
info:
  title: Retirement Manager APIs
  version: '1.0'
servers:
  - url: https://api-uat.morningstar.com
    variables: {}
    description: uat
  - url: https://api.morningstar.com
    variables: {}
    description: prod
security:
  - BearerAuth: []
paths:
  /oauth2/accesstoken:
    post:
      summary: Get access token
      security:
      - BasicAuth: []
      tags:
        - Accesstoken
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                grant_type:
                  type: string
                  description: Grant type for OAuth2.0
                  default: client_credentials
              required:
                - grant_type
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  refresh_token_expires_in:
                    type: string
                  api_product_list:
                    type: string
                  api_product_list_json:
                    type: array
                    items:
                      type: string
                  organization_name:
                    type: string
                  developer.email:
                    type: string
                  token_type:
                    type: string
                  issued_at:
                    type: string
                  client_id:
                    type: string
                  access_token:
                    type: string
                  application_name:
                    type: string
                  scope:
                    type: string
                  expires_in:
                    type: string
                  refresh_count:
                    type: string
                  status:
                    type: string
  /rm/v1/express/enroll:
    post:
      tags:
        - Enroll
      summary: >-
        Express Enroll action that take RK participant XML payload as well as optional attributes that, if specified, will be overlaid on top
        of corresponding data points in Participant XML and treated as user entered data.
        
         Forecast type can be Optimized or Revised.
        
         In case of Revised forecast type, methodology will based on Constrained Strategy that will only solve for model portfolio while
        constraining retirement age and savings rate to existing values.
        
        In case of Optimized forecast type, methodology will based on Strategy that will solve for model portfolio, retirement age and savings rate.
        
        This endpoint can be only be used for participants not currently in managed accounts service or to get point in time advice. 
      operationId: ExpressActions_ExpressEnroll
      requestBody:
        description: Enroll request payload
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExpressEnrollRequest'
        required: true
      responses:
        '200':
          description: >-
            ExpressEnrollResponseDTO that contains transaction execution
            metadata as well as Transaction XML.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpressEnrollResponseDTO'
        '400':
          description: Error DTO instance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
        '500':
          description: Error DTO instance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
      x-codegen-request-body-name: enrollRequest
  /rm/v1/express/optout:
    post:
      tags:
        - Optout
      summary: >-
        OptOut action that take RK participant Id and Client ID payload as well
        as other attributes.
         This endpoint can be only be used for participants currently enrolled in managed accounts service and would like to Opt-out of the service
         
      operationId: ExpressActions_OptOut
      requestBody:
        description: optOut Request payload
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OptOutRequest'
        required: true
      responses:
        '200':
          description: >-
            OptOutResponse that contains transaction execution metadata as well
            as Transaction XML.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OptOutResponse'
        '400':
          description: Error DTO instance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
        '500':
          description: Error DTO instance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
      x-codegen-request-body-name: optOutRequest
  /rm/v1/express/enroll/implement:
    post:
      tags:
      - Implement
      summary: "Enroll implement action that take RK participant XML payload as well as optional attributes that, if specified, will be overlaid on top
        of corresponding data points in Participant XML and treated as user entered data.
        Forecast type can be Optimized or Revised.
        
         In case of Revised forecast type, methodology will based on Constrained Strategy that will only solve for model portfolio while
         constraining retirement age and savings rate to existing values.
        
        In case of Optimized forecast type, methodology will based on Strategy that will solve for model portfolio, retirement age and savings rate.
         
         This endpoint can be only be used for participants currently in managed accounts service."
      operationId: ExpressActions_ExpressEnrollImplement
      requestBody:
        description: Enroll Implement request payload
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrollImplementRequest'
        required: true
      responses:
        200:
          description: EnrollImplementResponseDTO that contains transaction execution
            metadata as well as Transaction XML.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrollImplementResponseDTO'
        400:
          description: Error DTO instance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
        500:
          description: Error DTO instance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
      x-codegen-request-body-name: enrollImplementRequest
  /rm/v1/express/forecast:
    post:
      tags:
        - Forecast
      summary: >-
        Express Forecast action that takes RK participant XML payload as well as 
        optional attributes that, if specified, will be overlaid on top
        of corresponding data points in Participant XML and treated as user entered data. 
        Final participant object will be saved to insure
        consistent user experience if the participant elects to proceed to managed 
        accounts user interface. 
        
        Forecast type can be Optimized or Revised.
        
        In case of Revised forecast type, methodology will based on Constrained Strategy 
        that will only solve for model portfolio while constraining retirement age and 
        savings rate to existing values. 
        
        In case of Optimized forecast type, methodology will based on Strategy that will solve for model portfolio, retirement age and savings rate.
        
        This endpoint can be only be used for participants not currently in managed accounts
        service.  
      security:
        - BearerAuth: []
      operationId: ExpressActions_Forecast
      requestBody:
        description: Forecast request payload
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExpressForecastRequest'
        required: true
      responses:
        '200':
          description: >-
            RM StrategyOutputDTO instance with communication XML as optional
            property
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StrategyOutputDTO'
        '400':
          description: Error DTO instance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
        '500':
          description: Error DTO instance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
      x-codegen-request-body-name: forecastRequest
  /rm/v1/express/forecast/caseinformation:
    post:
      tags:
      - Forecast CaseInformation
      summary: Forecast CaseInformation endpoint that takes Client ID, Retirement age, DOB, Salary, Gender,and SSAgeOverride in payload
        and generates Social Security and Life Expectancy forecast for the participant.
      operationId: ExpressActions_ExpressForecastCaseInformation
      requestBody:
        description: CaseInformation request payload
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ForecastCaseInformationRequest'
        required: true
      responses:
        200:
          description: ForecastCaseInformationResponseDTO that contains Social Security Age,Amount,PenaltyAmount and Life Expectancy Age.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForecastCaseInformationResponseDTO'
        400:
          description: Error DTO instance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
        500:
          description: Error DTO instance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
      x-codegen-request-body-name: request
  /rm/v1/express/forecast/current:
    post:
      tags:
      - Forecast Current
      summary: "Forecast Current Projection action that takes RK participant XML and client ID in payload.
        Current Strategy will tell the participant how their account is doing relative to their retirement need, but will not give advice."
      operationId: ExpressActions_ForecastCurrentProjection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExpressForecastRequest'
        required: true
      responses:
        200:
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StrategyOutputDTO'
        400:
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
        500:
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
      x-codegen-request-body-name: forecastRequest
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
    BasicAuth:
      type: http
      scheme: basic
  schemas:
    ExpressEnrollResponseDTO:
      type: object
      properties:
        EnrollmentResult:
          $ref: '#/components/schemas/EnrollmentResultDTO'
        Strategy:
          $ref: '#/components/schemas/StrategyOutputDTO'
        Transaction:
          type: string
    EnrollmentResultDTO:
      required:
        - HtmlTransactionConfirmation
        - Success
      type: object
      properties:
        Success:
          type: boolean
        ErrorMessage:
          type: string
        TransactionId:
          type: string
          format: guid
        ClientTransactionId:
          type: string
        RKTransactionId:
          type: string
        RKTransactionMessage:
          type: string
        TransactionState:
          type: string
        TransactionReturnCode:
          type: string
        TransactionData:
          type: string
        HtmlTransactionConfirmation:
          type: boolean
        ClientId:
          type: string
    StrategyOutputDTO:
      type: object
      properties:        
        StrategyOutput:
          type: array
          description: >-
            Array of StrategyOutputType objects each corresponding to an
            instance or RM Strategy
          items:
            $ref: '#/components/schemas/StrategyOutputType'
        CommunicationXML:
          type: string
          description: Optional Communication XML
        GuidanceModuleOutput:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/GuidanceOutputDTO'
          x-dictionaryKey:
            $ref: '#/components/schemas/StrategyType'
        wfeOutput:
          type: object
          additionalProperties:
            type: object
          x-dictionaryKey:
            $ref: '#/components/schemas/StrategyType'
        wfeInput:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          x-dictionaryKey:
            $ref: '#/components/schemas/StrategyType'
        AccountMappings:
          type: array
          description: >-
            The array links each plan to the participants inside and outside accounts. Each uniqueidentifier in the array stands for an account.
          items:
            $ref: '#/components/schemas/AccountMappings'          
      description: Strategy output payload containing one or more strategies and account mappings information 
    AccountMappings:
      type: object
      properties:
        AccountId:
          type: string
          description: A unique account name / id assigned by Morningstar for internal tracking purpose.      
        PlanId:
          type: string
          description: A unique identifier for a retirement plan
        PlanType:
          type: string
          description: Defines the type of plan
      description: |-
        Maps participant's plans to their respective internal and external account identifiers.    
    StrategyOutputType:
      required:
        - NetRetirementIncomeGoal
        - NetRetirementIncomeGoalParticipant
        - NetRetirementIncomeGoalSpouse
        - SavingsRate
        - StrategyType
      type: object
      properties:
        InvestmentSelections:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/StrategyInvestmentSelectionInvestment'
        AssetMixAdvisableAccounts:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/StrategyAssetMix'
        AssetMixHousehold:
          $ref: '#/components/schemas/StrategyAssetMix'
        AssetMixOverall:
          $ref: '#/components/schemas/StrategyAssetMix'
        AssetMixOther:
          type: array
          items:
            $ref: '#/components/schemas/StrategyOutputTypeAssetMixOther'
        BalanceHistory:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/StrategyBalanceHistoryBalance'
        HistoricalScenarios:
          type: array
          items:
            $ref: '#/components/schemas/StrategyHistoricalScenariosScenario'
        Percentile:
          type: array
          items:
            $ref: '#/components/schemas/StrategyOutputTypePercentile'
        SavingsRateDetail:
          type: array
          items:
            $ref: '#/components/schemas/SavingsRateDetail'
        AccountSavingsRateDetail:
          type: array
          items:
            $ref: '#/components/schemas/SavingsRateDetail'
        CSSellOffData:
          type: array
          items:
            $ref: '#/components/schemas/CSSellOffType'
        StrategyType:
          $ref: '#/components/schemas/StrategyType'
        Rating:
          type: string
        RiskLevel:
          type: string
        RetirementAge:
          type: string
        RetirementSpouse:
          type: string
        SavingsRate:
          type: number
          format: decimal
        NetRetirementIncomeGoalParticipant:
          type: number
          format: decimal
        NetRetirementIncomeGoalSpouse:
          type: number
          format: decimal
        NetRetirementIncomeGoal:
          type: number
          format: decimal
        SocialSecurity:
          type: array
          items:
            $ref: '#/components/schemas/AdviceSocialSecurityValueDTO'
        SavingsRateTaxableOverflow:
          $ref: '#/components/schemas/GenericSavingsComponent'
        SavingsRateOverall:
          $ref: '#/components/schemas/GenericSavingsComponent'
        RisOutput:
          $ref: '#/components/schemas/RisOutput'
    StrategyInvestmentSelectionInvestment:
      required:
        - IsAnnuity
        - IsNonPlan
        - IsQuickTakeAvailable
        - IsUnidentified
      type: object
      properties:
        MorningstarID:
          type: string
        FundCode:
          type: string
        FundName:
          type: string
        CurrentAllocation:
          type: string
        ProposedAllocation:
          type: string
        ProposedFutureContributionAllocation:
          type: string
        Ticker:
          type: string
        IsNonPlan:
          type: boolean
        IsUnidentified:
          type: boolean
        IsQuickTakeAvailable:
          type: boolean
        ExtTransID:
          type: string
        IsAnnuity:
          type: boolean
    StrategyAssetMix:
      type: object
      properties:
        Asset:
          type: array
          items:
            $ref: '#/components/schemas/StrategyAssetMixAsset'
        RiskLevel:
          type: string
    StrategyAssetMixAsset:
      required:
        - AssetClass
      type: object
      properties:
        AssetClass:
          $ref: '#/components/schemas/AssetClassType'
        Weight:
          type: string
    AssetClassType:
      type: integer
      description: 'AssetClassType refers to the categorization of financial assets based on their characteristics, risk profiles, and expected returns. Each asset class type has distinct risk and return attributes, which are crucial for risk management processes such as portfolio construction, stress testing, and regulatory reporting. Values: (0-LargeCap, 1-MidCap, 2-International, 3-FixedIncome, 4-Cash, 5-Annuity, 6-Other)'
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
      x-enumNames:
        - LargeCap
        - MidCap
        - International
        - FixedIncome
        - Cash
        - Annuity
        - Other
    StrategyOutputTypeAssetMixOther:
      type: object
      properties:
        AssetMix:
          $ref: '#/components/schemas/StrategyAssetMix'
        Id:
          type: string
    StrategyBalanceHistoryBalance:
      required:
        - Value
      type: object
      properties:
        Year:
          type: string
        Month:
          type: string
        Value:
          type: number
          format: decimal
    StrategyHistoricalScenariosScenario:
      type: object
      properties:
        Balance:
          type: array
          items:
            $ref: '#/components/schemas/StrategyHistoricalScenariosScenarioBalance'
        Name:
          type: string
        BenchmarkName:
          type: string
    StrategyHistoricalScenariosScenarioBalance:
      required:
        - BenchmarkValue
        - Value
      type: object
      properties:
        Year:
          type: string
        Month:
          type: string
        Value:
          type: number
          format: decimal
        BenchmarkValue:
          type: number
          format: decimal
    StrategyOutputTypePercentile:
      required:
        - Percentage
        - SustainableRetirementIncome
      type: object
      properties:
        IncomeSources:
          type: array
          items:
            $ref: '#/components/schemas/StrategyIncomeSourcesIncomeSource'
        TotalWealth:
          $ref: '#/components/schemas/StrategyTotalWealth'
        OverallEndingBalance:
          $ref: '#/components/schemas/StrategyOverallEndingBalance'
        Taxes:
          $ref: '#/components/schemas/StrategyTaxes'
        RetirementIncomeAtVariousRetirementAges:
          type: array
          items:
            $ref: '#/components/schemas/StrategyYearValuesYearValue'
        Percentage:
          type: number
          format: decimal
        Label:
          type: string
        SustainableRetirementIncome:
          type: number
          format: decimal
        AccountBalance:
          type: array
          items:
            $ref: '#/components/schemas/StrategyIncomeSourcesIncomeSource'
    StrategyIncomeSourcesIncomeSource:
      required:
        - Type
      type: object
      properties:
        Values:
          type: array
          items:
            $ref: '#/components/schemas/StrategyYearValuesYearValue'
        Type:
          $ref: '#/components/schemas/IncomeSourceType'
        Account:
          type: string
        Investor:
          type: string
        ContributionType:
          type: string
        CatchupType:
          type: string
    StrategyYearValuesYearValue:
      required:
        - Value
      type: object
      properties:
        Age:
          type: string
        Value:
          type: number
          format: double
    IncomeSourceType:
      type: integer
      description: 'IncomeSourceType refers to the classification or categorization of the origin of income generated by an asset or investment. This helps in understanding, analyzing, and reporting the different ways assets contribute to portfolio returns. IncomeSourceType is an attribute that identifies the specific source from which income is derived. It is used to distinguish between various types of income streams associated with financial assets. Values: (0-SocialSecurity, 1-Pension, 2-AccountIncome, 3-TotalAccountIncome, 4-ImmediateAnnuity, 5-ImmediateFixedAnnuity, 6-GMWBPaymentAmount, 7-BeginingBalance, 8-RetirementSalary, 9-Other)'
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
      x-enumNames:
        - SocialSecurity
        - Pension
        - AccountIncome
        - TotalAccountIncome
        - ImmediateAnnuity
        - ImmediateFixedAnnuity
        - GMWBPaymentAmount
        - BeginingBalance
        - RetirementSalary
        - Other
    StrategyTotalWealth:
      type: object
      properties:
        Values:
          type: array
          items:
            $ref: '#/components/schemas/StrategyYearValuesYearValue'
    StrategyOverallEndingBalance:
      type: object
      properties:
        Values:
          type: array
          items:
            $ref: '#/components/schemas/StrategyYearValuesYearValue'
    StrategyTaxes:
      type: object
      properties:
        Values:
          type: array
          items:
            $ref: '#/components/schemas/StrategyYearValuesYearValue'
    SavingsRateDetail:
      type: object
      properties:
        SavingsComponent:
          type: array
          items:
            $ref: '#/components/schemas/SavingsComponent'
        Account:
          type: string
    SavingsComponent:
      required:
        - IsPretax
        - IsRoth
        - NumberOfYears
        - Type
        - Value
      type: object
      properties:
        PlanId:
          type: string
        Type:
          $ref: '#/components/schemas/SavingsType'
        Value:
          type: number
          format: decimal
        IsRoth:
          type: boolean
        IsPretax:
          type: boolean
        NumberOfYears:
          type: integer
          format: int32
        DollarAmount:
          type: number
          format: decimal
    SavingsType:
      type: integer
      description: 'SavingsType is an attribute that identifies the specific kind of savings product or account. It distinguishes between various savings vehicles based on their features, purpose, or regulatory treatment. Values: (0-Pretax, 1-PostTax, 2-Roth, 3-TaxableOverflow, 4-Overall, 5-Item50YrCatchup, 6-LongTermCatchup, 7-Last3YearCatchup)'
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
      x-enumNames:
        - Pretax
        - PostTax
        - Roth
        - TaxableOverflow
        - Overall
        - Item50YrCatchup
        - LongTermCatchup
        - Last3YearCatchup
    CatchupContriType:
      type: integer
      description: 'CatchupContriType refers to the classification of "catch-up contributions" that eligible participants can make to their retirement accounts. Catch-up contributions are additional amounts that individuals aged 50 or older are allowed to contribute beyond the standard annual limits, helping them boost their retirement savings as they approach retirement age. Values: (0-PreTaxCatchup, 1-RothCatchup)'
      enum:
        - 0
        - 1
      x-enumNames:
        - PreTaxCatchup
        - RothCatchup   
    CSSellOffType:
      required:
        - SellOffScheduleTypes
        - Target
        - UseDefaultTarget
        - UserEntered
      type: object
      properties:
        SellOffScheduleData:
          type: array
          items:
            $ref: '#/components/schemas/CSSellOffTypeSellOffScheduleData'
        CSID:
          type: string
        AccountID:
          type: string
        CSTicker:
          type: string
          default: CSTK
        Target:
          type: number
          format: decimal
        UseDefaultTarget:
          type: boolean
        SellOffScheduleTypes:
          $ref: '#/components/schemas/CSSOScheduleEnumType'
        UserEntered:
          type: boolean
          default: false
        CSTransactionID:
          type: string
        MorningstarID:
          type: string
        MStarFundCode:
          type: string
    CSSellOffTypeSellOffScheduleData:
      required:
        - Percent
      type: object
      properties:
        Quarter:
          type: string
        Percent:
          type: number
          format: decimal
    CSSOScheduleEnumType:
      type: integer
      description: 'CSSOScheduleEnumType is a standardized list of possible scheduling options for CSSO transactions. It helps ensure consistency in how withdrawal schedules are defined, processed, and reported within retirement management systems. Values: (0-Immediate, 1-Item25PrcIncrements, 2-RetainAll)'
      enum:
        - 0
        - 1
        - 2
      x-enumNames:
        - immediate
        - Item25PrcIncrements
        - retainall
    StrategyType:
      type: integer
      description: 'Type of strategy used to generate Advice. Current Optimized and Revised are the 3 strategy used.Current Strategy will tell the participant how their account is performing relative to their retirement need, but will not give advice.In case of Optimized strategy, strategy will solve for model portfolio, retirement age and savings rate.In case of Revised strategy, strategy will constrain savings and solve for model portfolio advice while constraining retirement age and savings rate to existing values. Values: (0-Current, 1-Optimized, 2-Enhanced, 3-Revised, 4-AlternateAnnuityIllustration, 5-TargetAnnuityIllustration)'
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
      x-enumNames:
        - Current
        - Optimized
        - Enhanced
        - Revised
        - AlternateAnnuityIllustration
        - TargetAnnuityIllustration
    AdviceSocialSecurityValueDTO:
      required:
        - Amount
        - FullBenefitAge
        - FullBenefitAmount
        - GrossAmount
      type: object
      properties:
        Age:
          type: string
        FullBenefitAge:
          type: integer
          format: int32
        Amount:
          type: number
          format: double
        GrossAmount:
          type: number
          format: double
        FullBenefitAmount:
          type: number
          format: double
        Account:
          type: string
        Investor:
          type: string
    GenericSavingsComponent:
      required:
        - Value
      type: object
      properties:
        Value:
          type: number
          format: decimal
        DollarAmount:
          type: number
          format: decimal
    RisOutput:
      required:
        - AnnuityType
      type: object
      properties:
        AnnuityType:
          $ref: '#/components/schemas/AnnuityTypes'
        Recommendations:
          type: array
          items:
            $ref: '#/components/schemas/RisRecommendation'
    AnnuityTypes:
      type: integer
      description: ' AnnuityTypes refers to the classification of different annuity products that can be used to provide income during retirement. Annuities are financial contracts that pay out a stream of income, typically used to help retirees manage longevity risk and ensure a steady income. Values: (0-GMWB, 1-IFA, 2-IFAIVA, 3-GMWBIFA, 4-LifeInsurance)'
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
      x-enumNames:
        - GMWB
        - IFA
        - IFAIVA
        - GMWBIFA
        - LifeInsurance
    RisRecommendation:
      required:
        - Amount
        - AnnuityType
        - LoweringAnnuitizationAdvisable
        - Percentage
      type: object
      properties:
        AnnuityType:
          $ref: '#/components/schemas/AnnuityTypes'
        LoweringAnnuitizationAdvisable:
          type: boolean
        Percentage:
          type: number
          format: double
        Amount:
          type: number
          format: double
    GuidanceOutputDTO:
      required:
        - IsDirectTransaction
        - IsReducedFundUniverse
      type: object
      properties:
        IsDirectTransaction:
          type: boolean
        IsReducedFundUniverse:
          type: boolean
        AssetMix:
          type: array
          items:
            $ref: '#/components/schemas/GuidanceAssetMixDTO'
        Securities:
          type: array
          items:
            $ref: '#/components/schemas/GuidanceSecurityDTO'
    GuidanceAssetMixDTO:
      required:
        - BaseAssetClass
        - Current
        - Future
        - Proposed
      type: object
      properties:
        BaseAssetClass:
          $ref: '#/components/schemas/BaseAssetClassTypes'
        Current:
          type: integer
          format: int32
        Proposed:
          type: integer
          format: int32
        Future:
          type: integer
          format: int32
    BaseAssetClassTypes:
      type: integer
      description: 'BaseAssetClassTypes refers to the fundamental categories of financial assets that form the building blocks of a retirement portfolio. These asset classes are used to organize, analyze, and report on investments, helping to assess risk, diversification, and performance. Values: (0-Balanced, 1-LargeCapStock, 2-MidSmallCapStock, 3-InternationalStock, 4-Bonds, 5-Cash, 6-StableValue, 7-Annuity, 8-Other)'
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
      x-enumNames:
        - Balanced
        - LargeCapStock
        - MidSmallCapStock
        - InternationalStock
        - Bonds
        - Cash
        - StableValue
        - Annuity
        - Other
    GuidanceSecurityDTO:
      required:
        - BaseAssetClass
        - CurMax
        - CurMin
        - Current
        - Future
        - FutureMax
        - IsQuickTakeAvailable
        - Reallocation
      type: object
      properties:
        BaseAssetClass:
          $ref: '#/components/schemas/BaseAssetClassTypes'
        CategoryName:
          type: string
        AssetMix:
          type: object
          additionalProperties:
            type: integer
            format: int32
          x-dictionaryKey:
            $ref: '#/components/schemas/BaseAssetClassTypes'
        Current:
          type: integer
          format: int32
        Reallocation:
          type: integer
          format: int32
        Future:
          type: integer
          format: int32
        FutureMax:
          type: integer
          format: int32
        CurMax:
          type: integer
          format: int32
        CurMin:
          type: integer
          format: int32
        IsQuickTakeAvailable:
          type: boolean
        Security:
          $ref: '#/components/schemas/SecurityDTO'
    SecurityDTO:
      type: object
      properties:
        MStarCode:
          type: string
        Ticker:
          type: string
        Name:
          type: string
        Price:
          type: number
          format: double
        MorningstarID:
          type: string
        ExtTransID:
          type: string
        SecurityPerformance:
          $ref: '#/components/schemas/SecurityPerformanceDTO'
    SecurityPerformanceDTO:
      required:
        - AsOfMonthEndDate
        - ExpenseRatio
        - Return10Year
        - Return1Year
        - Return3Year
        - Return5Year
        - ReturnSinceInception
        - ReturnYTD
        - StarRating
      type: object
      properties:
        ReturnYTD:
          type: number
          format: decimal
        Return1Year:
          type: number
          format: decimal
        Return3Year:
          type: number
          format: decimal
        Return5Year:
          type: number
          format: decimal
        Return10Year:
          type: number
          format: decimal
        ReturnSinceInception:
          type: number
          format: decimal
        ExpenseRatio:
          type: number
          format: decimal
        StarRating:
          type: integer
          format: byte
        AsOfMonthEndDate:
          type: string
          format: date-time
    ErrorDTO:
      type: object
      properties:
        LogId:
          type: string
        ErrorType:
          type: string
        ErrorCode:
          type: string
        Message:
          type: string
        Orgin:
          type: string
        Environment:
          type: string
        InternalErrors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationErrorDTO'
        StatusCode:
          $ref: '#/components/schemas/HttpStatusCode'
        TimeStamp:
          type: string
        Stacktrace:
          type: string
        RequestUrl:
          type: string
        AccessId:
          type: string
        RequestId:
          type: string
        HttpMethod:
          type: string
    ValidationErrorDTO:
      required:
        - IsValidationError
        - Severity
      type: object
      properties:
        Code:
          type: string
        Message:
          type: string
        Severity:
          $ref: '#/components/schemas/ValidationSeverity'
        RuleName:
          type: string
        Field:
          type: string
        AttemptedValue:
          type: string
        IsValidationError:
          type: boolean
    ValidationSeverity:
      type: integer
      description: 'ValidationSeverity refers to the level of importance or impact assigned to a validation message when checking data, transactions, or processes within the system. It helps users and systems prioritize and respond appropriately to issues detected during validation. Values: (0-Information, 1-Warning, 2-Error, 3-SchemaError, 4-Critical, 5-Log)'
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
      x-enumNames:
        - Information
        - Warning
        - Error
        - SchemaError
        - Critical
        - Log
    HttpStatusCode:
      type: integer
      description: 'HttpStatusCode refers to the standardized codes returned by a web server in response to a client’s request. These codes indicate the outcome of the request and help both users and systems understand whether the operation was successful, encountered an error, or requires further action. Values: (100-Continue, 101-SwitchingProtocols, 200-OK, 201-Created, 202-Accepted, 203-NonAuthoritativeInformation, 204-NoContent, 205-ResetContent, 206-PartialContent, 300-MultipleChoices, 300-Ambiguous, 301-MovedPermanently, 301-Moved, 302-Found, 302-Redirect, 303-SeeOther, 303-RedirectMethod, 304-NotModified, 305-UseProxy, 306-Unused, 307-TemporaryRedirect, 307-RedirectKeepVerb, 400-BadRequest, 401-Unauthorized, 402-PaymentRequired, 403-Forbidden, 404-NotFound, 405-MethodNotAllowed, 406-NotAcceptable, 407-ProxyAuthenticationRequired, 408-RequestTimeout, 409-Conflict, 410-Gone, 411-LengthRequired, 412-PreconditionFailed, 413-RequestEntityTooLarge, 414-RequestUriTooLong, 415-UnsupportedMediaType, 416-RequestedRangeNotSatisfiable, 417-ExpectationFailed, 426-UpgradeRequired, 500-InternalServerError, 501-NotImplemented, 502-BadGateway, 503-ServiceUnavailable, 504-GatewayTimeout, 505-HttpVersionNotSupported)'
      enum:
        - 100
        - 101
        - 200
        - 201
        - 202
        - 203
        - 204
        - 205
        - 206
        - 300
        - 300
        - 301
        - 301
        - 302
        - 302
        - 303
        - 303
        - 304
        - 305
        - 306
        - 307
        - 307
        - 400
        - 401
        - 402
        - 403
        - 404
        - 405
        - 406
        - 407
        - 408
        - 409
        - 410
        - 411
        - 412
        - 413
        - 414
        - 415
        - 416
        - 417
        - 426
        - 500
        - 501
        - 502
        - 503
        - 504
        - 505
      x-enumNames:
        - Continue
        - SwitchingProtocols
        - OK
        - Created
        - Accepted
        - NonAuthoritativeInformation
        - NoContent
        - ResetContent
        - PartialContent
        - MultipleChoices
        - Ambiguous
        - MovedPermanently
        - Moved
        - Found
        - Redirect
        - SeeOther
        - RedirectMethod
        - NotModified
        - UseProxy
        - Unused
        - TemporaryRedirect
        - RedirectKeepVerb
        - BadRequest
        - Unauthorized
        - PaymentRequired
        - Forbidden
        - NotFound
        - MethodNotAllowed
        - NotAcceptable
        - ProxyAuthenticationRequired
        - RequestTimeout
        - Conflict
        - Gone
        - LengthRequired
        - PreconditionFailed
        - RequestEntityTooLarge
        - RequestUriTooLong
        - UnsupportedMediaType
        - RequestedRangeNotSatisfiable
        - ExpectationFailed
        - UpgradeRequired
        - InternalServerError
        - NotImplemented
        - BadGateway
        - ServiceUnavailable
        - GatewayTimeout
        - HttpVersionNotSupported
    ExpressEnrollRequest:
      required:
      - EnrollmentInfo
      allOf:
      - $ref: '#/components/schemas/ExpressForecastRequest'
      - type: object
        properties:
          EnrollmentInfo:
            type: array
            description: Plan and service level info for participant
            items:
              $ref: '#/components/schemas/ParticipantEnrollInfoDto'
          DOB:
            type: string
            description: (Optional) Date of Birth
            format: date-time
          Gender:
            type: object
            description: "(Optional) Gender Expected values M-Male, F-Female OR U-Undisclosed."
            allOf:
            - $ref: '#/components/schemas/GenderType'
          StateOfResidence:
            type: string
            description: (Optional) State of residence
          DesiredRetirementIncome:
            type: object
            description: (Optional) Retirement Need
            allOf:
            - $ref: '#/components/schemas/DollarAmountOrPercentageRateDTO'
          TransactionHTTPEndpoint:
            type: object
            description: '(Optional) Realtime transaction endpoint metadata. Note:
              this is not applicable to clients integrated via SOAP or REST'
            allOf:
            - $ref: '#/components/schemas/TransactionHTTPEndpointDTO'
    ParticipantEnrollInfoDto:
      type: object
      properties:
        PlanId:
          type: string
          description: (Required) Plan ID
        PlanType:
          type: string
          description: (Required) Plan Type
        ServiceOption:
            type: object
            description: (Optional) User specified ServiceOption. If specified, user will be enrolled in particular service option, by default it will be ManagedAccounts. ManagedAccounts service option will provide Quarterly account review and reallocation as necessary while Advice service option will provide One-time fund personalized investment recommendation.Expected values ManagedAccounts or Advice.
            allOf:
            - $ref: '#/components/schemas/ExpressServiceLevelType'  
        TransactionRoutingId:
          maxLength: 256
          minLength: 0
          type: string
          description: (Optional) TransactionRoutingId
      description: |-
        Participant Enroll Info Dto for Express Api
    GenderType:
      type: integer
      description: "(Optional) Gender Expected values M-Male, F-Female OR U-Undisclosed."
      enum:
        - 0
        - 1
        - 2
      x-enumNames:
        - Item
        - M
        - F
        - U
    DollarAmountOrPercentageRateDTO:
      required:
        - Type
        - Value
      type: object
      properties:
        Value:
          type: number
          description: Value for dollar amount or Rate
          format: decimal
        Type:
          type: object
          description: Dollar Amount or Percent rate type
          allOf:
            - $ref: '#/components/schemas/DOPType'
      description: Dollar or percentage rate Dto
    DOPType:
      type: integer
      description: 'DOPType typically stands for "Date of Processing Type" or "Distribution Option Type," depending on the specific system or workflow.It is used to specify how and when a transaction or event (such as a retirement distribution, contribution, or account update) is processed within the system. Values: (0-PercentRate, 1-DollarAmount)'
      enum:
        - 0
        - 1
      x-enumNames:
        - PercentRate
        - DollarAmount
    TransactionHTTPEndpointDTO:
      type: object
      properties:
        TransURL:
          minLength: 1
          type: string
          description: (Optional) 'transurl' request parameter from RM SSO request, Optional if already configured.
        SID:
          type: string
          description: (Optional) 'sid' request parameter from RM SSO request
        Cookie:
          type: string
          description: (Optional) 'cookie' request parameter from RM SSO request
    ExpressForecastRequest:
      required:
      - ClientId
      - ParticipantXML
      type: object
      properties:
        ClientId:
          type: string
          description: (Required) Client identifier.
        ParticipantXML:
          type: string
          description: (Required) Participant XML.
        RetirementAge:
          type: integer
          description: (Optional) User specified retirement age. If specified, value
            will be overlayed on top of RK participant XML payload and treated as
            user entered.
          format: int32
        ForecastType:
            type: object
            description: (Optional) User specified ForecastType.If specified, value will be used to generate advice, by default it will be Revised. Optimized Strategy will solve for model portfolio, retirement age and savings rate while Revised Strategy will only solve for model portfolio.Expected values [Revised or Optimized].
            allOf:
            - $ref: '#/components/schemas/ForecastType'    
        SavingsRateDetails:
          type: array
          description: '(Optional) User specified savings granular rate details per
            money type. Note: if this value is passed, it is required for all plans/money
            types'
          items:
            $ref: '#/components/schemas/SavingsComponentDto'
        Salary:
          type: number
          description: (Optional) User specified override salary. If specified, value
            will be overlayed on top of RK participant XML payload and treated as
            user entered.
          format: decimal
        PensionTypes:
          type: array
          description: (Optional) User specified override Pensions. If specified,
            value will be overlayed on top of RK participant XML payload and treated
            as user entered.
          items:
            $ref: '#/components/schemas/PensionDto'
        ExcludeSocialSecurity:
          type: boolean
          description: (Optional) User specified if social Security is Excluded. If
            specified, value will be overlayed on top of RK participant XML payload
            and treated as user entered.
    SavingsComponentDto:
      type: object
      properties:
        PlanId:
          type: string
          description: Plan ID
        SavingsType:
          type: object
          description: Savings Type
          allOf:
            - $ref: '#/components/schemas/SavingsType'
        Value:
          type: number
          description: Savings rate value
          format: decimal
        DollarValue:
          type: number
          description: (Optional) Savings rate Dollar value
          format: decimal
        CatchupContriType:
          type: object
          description: (Optional) Catchup contribution type
          allOf:
            - $ref: '#/components/schemas/CatchupContriType'
      description: Savings component Dto for Express Api
    PensionDto:
      required:
        - Amount
        - Cola
        - StartYear
      type: object
      properties:
        Amount:
          type: number
          description: Pension Amount
          format: decimal
        StartYear:
          type: integer
          description: Pension Start Year
          format: int32
        IsFromRecordKeeper:
          type: boolean
          description: Is from record keeper
        Cola:
          type: boolean
          description: 'Cola '
    OptOutResponse:
      type: object
      properties:
        OptOutResult:
          $ref: '#/components/schemas/EnrollmentResultDTO'
        Transaction:
          type: string
    OptOutRequest:
      required:
        - ClientId
        - FirstName
        - LastName
        - ParticipantId
      type: object
      properties:
        ClientId:
          minLength: 1
          type: string
          description: (Required) Client Id
        ParticipantId:
          minLength: 1
          type: string
          description: (Required) Participant Id
        FirstName:
          minLength: 1
          type: string
          description: (Required) First Name
        MiddleName:
          type: string
          description: (Optional) Middle Name
        LastName:
          minLength: 1
          type: string
          description: (Required) Last Name
        Reason:
          type: string
          description: (Optional) Reason
        OptoutInfo:
          type: array
          description: (Optional) Plan and service level info for participant for Optout
          items:
            $ref: '#/components/schemas/ParticipantEnrollInfoDto'
        TransactionHTTPEndpoint:
          type: object
          description: >-
            (Optional) Realtime transaction endpoint metadata. Note: this is not
            applicable to clients integrated via SOAP or REST
          allOf:
            - $ref: '#/components/schemas/TransactionHTTPEndpointDTO'
    RMParticipantDataRequestDTO:
      required:
        - ClientId
        - ParticipantId
      type: object
      properties:
        ClientId:
          minLength: 1
          type: string
          description: Gets or Sets ClientId
        ParticipantId:
          minLength: 1
          type: string
          description: Gets or Sets ParticipantId
    EnrollImplementRequest:
      required:
      - EnrollmentInfo
      allOf:
      - $ref: '#/components/schemas/ExpressForecastRequest'
      - type: object
        properties:
          EnrollmentInfo:
            type: array
            description: Plan and service level info for participant
            items:
              $ref: '#/components/schemas/ParticipantEnrollInfoDto'
          DOB:
            type: string
            description: (Optional) Date of Birth
            format: date-time
          Gender:
            type: object
            description: "(Optional) Gender Expected values M-Male, F-Female OR U-Undisclosed."
            allOf:
            - $ref: '#/components/schemas/GenderType'
          StateOfResidence:
            type: string
            description: (Optional) State of residence
          DesiredRetirementIncome:
            type: object
            description: (Optional) Retirement Need
            allOf:
            - $ref: '#/components/schemas/DollarAmountOrPercentageRateDTO'
          TransactionHTTPEndpoint:
            type: object
            description: '(Optional) Realtime transaction endpoint metadata. Note:
              this is not applicable to clients integrated via SOAP or REST'
            allOf:
            - $ref: '#/components/schemas/TransactionHTTPEndpointDTO'        
    EnrollImplementResponseDTO:
      type: object
      properties:
        EnrollmentResult:
          $ref: '#/components/schemas/EnrollmentResultDTO'
        Strategy:
          $ref: '#/components/schemas/StrategyOutputDTO'
        Transaction:
          type: string
    ForecastCaseInformationRequest:
      required:
      - ClientId
      - DOB
      - RetirementAge
      - Salary
      allOf:
      - $ref: '#/components/schemas/ForecastCaseInformationRequest'
      - type: object
        properties:
          ClientId:
            type: string
            description: (Required) Client ID 
          DOB:
            type: string
            description: (Required) Date of Birth
            format: date-time
          RetirementAge:
            type: integer
            description: (Required) Retirement Age of user
          Salary:
            type: number
            description: (Required) User Salary
          Gender:
            type: object
            description: "(Optional) Gender Expected values M-Male, F-Female OR U-Undisclosed by default it be Female."
            allOf:
            - $ref: '#/components/schemas/GenderType'
          SSAgeOverride:
            type: array
            items:
              type: integer
            description: (Optional) An array of Social Security override ages, representing the values user have selected to override their Social Security start age. This is used to determine the Social Security amount at the specified override age.      
    ForecastCaseInformationResponseDTO:
      allOf:
      - $ref: '#/components/schemas/ForecastCaseInformationResponseDTO'
      - type: object
        properties:
          SocialSecurity:
            $ref: '#/components/schemas/SocialSecurityResponseDTO'
          LifeExpectancy:
            $ref: '#/components/schemas/LifeExpectancyResponseDTO'
    SocialSecurityResponseDTO:
      allOf:
      - $ref: '#/components/schemas/SocialSecurityResponseDTO'
      - type: object
        properties:
          Age:
            type: integer
            description: User Social Security Start Age
          Amount:
            type: number
            description: User Annual Social Security amount
          PenaltyAmount:
            type: number
            description: Social Security Penalty amount.                  
    LifeExpectancyResponseDTO:
      allOf:
      - $ref: '#/components/schemas/LifeExpectancyResponseDTO'
      - type: object
        properties:
          Age:
            type: integer
            description: User Life Expectancy Age
    ExpressServiceLevelType:
      type: object
      description: "(Optional) User specified ServiceOption. If specified, user will be enrolled in particular service option, by default it will be ManagedAccounts. ManagedAccounts service option will provide Quarterly account review and reallocation as necessary while Advice service option will provide One-time fund personalized investment recommendation.Expected values [ManagedAccounts or Advice]."
      enum:
      - 0
      - 1
      x-enumNames:
      - ManagedAccounts
      - Advice
    ForecastType:
      type: object
      description: "(Optional) User specified ForecastType.If specified, value will be used to generate advice, by default it will be Revised. Optimized Strategy will solve for model portfolio, retirement age and savings rate while Revised Strategy will only solve for model portfolio.Expected values [Revised or Optimized]"  
      enum:
      - 0
      - 1
      x-enumNames:
      - Revised
      - Optimized
x-generator: NSwag v13.1.3.0 (NJsonSchema v10.0.27.0 (Newtonsoft.Json v12.0.0.0))