1description: >
2    This interface defines methods and properties required for Time-based
3    One-time Password (TOTP) multi-factor authentication at user level to
4    support multi-factor authentication secret key setup for each user. This
5    interface implemented by each user object to support TOTP based
6    authenticators like google, microsoft, etc.
7
8methods:
9    - name: CreateSecretKey
10      description: >
11          This method setup Time-based One-time Password (TOTP) authenticator
12          secret key for the given user and returns secret key string to share
13          secret key to user.
14      returns:
15          - name: SecretKey
16            type: string
17            description: >
18                Secret key string which will be shared to user to setup TOTP
19                applications to generate TOTP token.
20
21    - name: VerifyOTP
22      description: >
23          This method verifies OTP with Time-based One-time Password
24          authenticator secret key for the given user and returns weather this
25          OTP is valid or not which make sure user has setup valid secret key
26          for two factor authentication.
27      parameters:
28          - name: OTP
29            type: string
30            description: >
31                One-time password string
32      returns:
33          - name: Status
34            type: boolean
35            description: >
36                Returns true if provided OTP is valid otherwise returns false.
37
38properties:
39    - name: SecretKeyIsValid
40      type: boolean
41      default: false
42      description: >
43          This property indicates whether TOTP authenticator secret key setup
44          for the given user
45
46    - name: BypassedProtocol
47      type: enum[xyz.openbmc_project.User.MultiFactorAuthConfiguration.Type]
48      default: None
49      description: >
50          User level multi-factor authentication bypass settings. This interface
51          will be implemented by user D-bus object to support user's MFA bypass
52          configuration.
53