github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/identity/v3.0/security/UpdateLoginAuthPolicy.go (about)

     1  package security
     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 UpdateLoginPolicyOpts struct {
    10  	// Validity period (days) to disable users if they have not logged in within the period. Value range: 0-240.
    11  	// Validity period (days) to disable users if they have not logged in within the period.
    12  	// If this parameter is set to 0, no users will be disabled.
    13  	AccountValidityPeriod *int `json:"account_validity_period,omitempty"`
    14  	// Custom information that will be displayed upon successful login.
    15  	CustomInfoForLogin string `json:"custom_info_for_login,omitempty"`
    16  	// Duration (minutes) to lock users out.
    17  	LockoutDuration int `json:"lockout_duration,omitempty"`
    18  	// Number of unsuccessful login attempts to lock users out.
    19  	LoginFailedTimes int `json:"login_failed_times,omitempty"`
    20  	// Period (minutes) to count the number of unsuccessful login attempts.
    21  	PeriodWithLoginFailures int `json:"period_with_login_failures,omitempty"`
    22  	// Session timeout (minutes) that will apply if you or users created using your account
    23  	// do not perform any operations within a specific period.
    24  	SessionTimeout int `json:"session_timeout,omitempty"`
    25  	// Indicates whether to display last login information upon successful login.
    26  	ShowRecentLoginInfo *bool `json:"show_recent_login_info,omitempty"`
    27  }
    28  
    29  func UpdateLoginAuthPolicy(client *golangsdk.ServiceClient, id string, opts UpdateLoginPolicyOpts) (*LoginPolicy, error) {
    30  	b, err := build.RequestBody(opts, "login_policy")
    31  	if err != nil {
    32  		return nil, err
    33  	}
    34  
    35  	// PUT /v3.0/OS-SECURITYPOLICY/domains/{domain_id}/login-policy
    36  	raw, err := client.Put(client.ServiceURL("OS-SECURITYPOLICY", "domains", id, "login-policy"), b, nil, &golangsdk.RequestOpts{
    37  		OkCodes: []int{200},
    38  	})
    39  	if err != nil {
    40  		return nil, err
    41  	}
    42  
    43  	var res LoginPolicy
    44  	return &res, extract.IntoStructPtr(raw.Body, &res, "login_policy")
    45  }