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  }