# duo

### Create Duo MFA method <a href="#create-duo-mfa-method" id="create-duo-mfa-method"></a>

This endpoint creates a new MFA method of type Duo.

| Method | Path                       |
| ------ | -------------------------- |
| `POST` | `/identity/mfa/method/duo` |

#### Parameters <a href="#parameters" id="parameters"></a>

* `method_name` `(string)` - The unique name identifier for this MFA method. Supported from Vault 1.13.0.
* `username_format` `(string)` - A template string for mapping Identity names to MFA methods. Values to substitute should be placed in `{{}}`. For example, `"{{identity.entity.name}}"`. If blank, the Entity's Name field is used as-is.
* `secret_key` `(string: <required>)` - Secret key for Duo.
* `integration_key` `(string: <required>)` - Integration key for Duo.
* `api_hostname` `(string: <required>)` - API hostname for Duo.
* `push_info` `(string)` - Push information for Duo.
* `use_passcode` `(bool: false)` - If true, the user is reminded to use the passcode upon MFA validation.

#### Sample payload <a href="#sample-payload" id="sample-payload"></a>

```json
{
  "username_format": "{{identity.entity.aliases.auth_userpass_1793464a.name}}",
  "secret_key": "BIACEUEAXI20BNWTEYXT",
  "integration_key": "8C7THtrIigh2rPZQMbguugt8IUftWhMRCOBzbuyz",
  "api_hostname": "api-2b5c39f5.duosecurity.com",
  "method_name": "ns1_duo"
}
```

#### Sample request <a href="#sample-request" id="sample-request"></a>

```shell-session
$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/identity/mfa/method/duo
```

#### Sample response <a href="#sample-response" id="sample-response"></a>

```json
{
  "data": {
    "method_id": "0888fd69-4ea2-91d7-415e-c4bba548529b"
  }
}
```

### Update Duo MFA method <a href="#update-duo-mfa-method" id="update-duo-mfa-method"></a>

This endpoint updates the configuration of an MFA method of type Duo.

| Method | Path                                  |
| ------ | ------------------------------------- |
| `POST` | `/identity/mfa/method/duo/:method_id` |

#### Parameters <a href="#parameters-1" id="parameters-1"></a>

* `method_id` `(string: <required>)` - UUID of the MFA method.
* and all of the parameters documented under the preceding "Create" endpoint.

#### Sample payload <a href="#sample-payload-1" id="sample-payload-1"></a>

Identical to the preceding "Create" endpoint.

#### Sample request <a href="#sample-request-1" id="sample-request-1"></a>

```shell-session
$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/identity/mfa/method/duo/4194659f-139b-400b-b5dd-86bfb726759d
```

### Read Duo MFA method <a href="#read-duo-mfa-method" id="read-duo-mfa-method"></a>

This endpoint queries the MFA configuration of Duo type for a given method ID.

| Method | Path                                  |
| ------ | ------------------------------------- |
| `GET`  | `/identity/mfa/method/duo/:method_id` |

#### Parameters <a href="#parameters-2" id="parameters-2"></a>

* `id` `(string: <required>)` – UUID of the MFA method.

#### Sample request <a href="#sample-request-2" id="sample-request-2"></a>

```shell-session
$ curl \
    --header "X-Vault-Token: ..." \
    --request GET \
    http://127.0.0.1:8200/v1/identity/mfa/method/duo/4194659f-139b-400b-b5dd-86bfb726759d
```

#### Sample response <a href="#sample-response-1" id="sample-response-1"></a>

```json
{
  "data": {
    "api_hostname": "api-2b5c39f5.duosecurity.com",
    "id": "4194659f-139b-400b-b5dd-86bfb726759d",
    "integration_key": "BIACEUEAXI20BNWTEYXT",
    "pushinfo": "",
    "secret_key": "8C7THtrIigh2rPZQMbguugt8IUftWhMRCOBzbuyz",
    "type": "duo",
    "username_format": "{{identity.entity.aliases.auth_userpass_1793464a.name}}",
    "use_passcode": false
  }
}
```

### Delete Duo MFA method <a href="#delete-duo-mfa-method" id="delete-duo-mfa-method"></a>

This endpoint deletes a Duo MFA method. MFA methods can only be deleted if they're not currently in use by a login enforcement.

| Method   | Path                                  |
| -------- | ------------------------------------- |
| `DELETE` | `/identity/mfa/method/duo/:method_id` |

#### Parameters <a href="#parameters-3" id="parameters-3"></a>

* `method_id` `(string: <required>)` - UUID of the MFA method.

#### Sample request <a href="#sample-request-3" id="sample-request-3"></a>

```shell-session
$ curl \
    --header "X-Vault-Token: ..." \
    --request DELETE \
    http://127.0.0.1:8200/v1/identity/mfa/method/duo/4194659f-139b-400b-b5dd-86bfb726759d
```

### List Duo MFA methods <a href="#list-duo-mfa-methods" id="list-duo-mfa-methods"></a>

This endpoint lists Duo MFA methods that are visible in the current namespace or in parent namespaces.

| Method | Path                       |
| ------ | -------------------------- |
| `LIST` | `/identity/mfa/method/duo` |

#### Sample request <a href="#sample-request-4" id="sample-request-4"></a>

```shell-session
$ curl \
    --header "X-Vault-Token: ..." \
    --request LIST \
    http://127.0.0.1:8200/v1/identity/mfa/method/duo
```

#### Sample response <a href="#sample-response-2" id="sample-response-2"></a>

```json
{
  "data": {
    "keys": [
      "4194659f-139b-400b-b5dd-86bfb726759d"
    ]
  }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.enclaive.cloud/vault/api/secrets-engines/identity/mfa/duo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
