github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/identity/v3/users/CreateMfaDevice.go (about) 1 package users 2 3 import ( 4 golangsdk "github.com/opentelekomcloud/gophertelekomcloud" 5 "github.com/opentelekomcloud/gophertelekomcloud/internal/build" 6 "github.com/opentelekomcloud/gophertelekomcloud/internal/extract" 7 ) 8 9 type CreateMfaDeviceOpts struct { 10 // Device name. 11 // Minimum length: 1 character 12 // Maximum length: 64 characters 13 Name string `json:"name"` 14 // ID of the user for whom you will create the MFA device. 15 UserId string `json:"user_id"` 16 } 17 18 func CreateMfaDevice(client *golangsdk.ServiceClient, opts CreateMfaDeviceOpts) (*CreateMfaDeviceResponse, error) { 19 b, err := build.RequestBody(opts, "virtual_mfa_device") 20 if err != nil { 21 return nil, err 22 } 23 24 // POST /v3.0/OS-MFA/virtual-mfa-devices 25 raw, err := client.Post(v30(client.ServiceURL("OS-MFA", "virtual-mfa-devices")), b, nil, nil) 26 if err != nil { 27 return nil, err 28 } 29 30 var res CreateMfaDeviceResponse 31 return &res, extract.IntoStructPtr(raw.Body, &res, "virtual_mfa_device") 32 } 33 34 type CreateMfaDeviceResponse struct { 35 // Serial number of the MFA device. 36 SerialNumber string `json:"serial_number"` 37 // Base32 seed, which a third-party system can use to generate a CAPTCHA code. 38 Base32StringSeed string `json:"base32_string_seed"` 39 }