1/**
2 * Copyright 2016 IBM Corp.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *    http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/**
18 * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY
19 */
20
21package services
22
23import (
24	"fmt"
25	"strings"
26
27	"github.com/softlayer/softlayer-go/datatypes"
28	"github.com/softlayer/softlayer-go/session"
29	"github.com/softlayer/softlayer-go/sl"
30)
31
32// The SoftLayer_User_Customer data type contains general information relating to a single SoftLayer customer portal user. Personal information in this type such as names, addresses, and phone numbers are not necessarily associated with the customer account the user is assigned to.
33type User_Customer struct {
34	Session *session.Session
35	Options sl.Options
36}
37
38// GetUserCustomerService returns an instance of the User_Customer SoftLayer service
39func GetUserCustomerService(sess *session.Session) User_Customer {
40	return User_Customer{Session: sess}
41}
42
43func (r User_Customer) Id(id int) User_Customer {
44	r.Options.Id = &id
45	return r
46}
47
48func (r User_Customer) Mask(mask string) User_Customer {
49	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
50		mask = fmt.Sprintf("mask[%s]", mask)
51	}
52
53	r.Options.Mask = mask
54	return r
55}
56
57func (r User_Customer) Filter(filter string) User_Customer {
58	r.Options.Filter = filter
59	return r
60}
61
62func (r User_Customer) Limit(limit int) User_Customer {
63	r.Options.Limit = &limit
64	return r
65}
66
67func (r User_Customer) Offset(offset int) User_Customer {
68	r.Options.Offset = &offset
69	return r
70}
71
72// no documentation yet
73func (r User_Customer) AcknowledgeSupportPolicy() (err error) {
74	var resp datatypes.Void
75	err = r.Session.DoRequest("SoftLayer_User_Customer", "acknowledgeSupportPolicy", nil, &r.Options, &resp)
76	return
77}
78
79// Create a user's API authentication key, allowing that user access to query the SoftLayer API. addApiAuthenticationKey() returns the users new API key. Each portal user is allowed a maximum of two API keys.
80func (r User_Customer) AddApiAuthenticationKey() (resp string, err error) {
81	err = r.Session.DoRequest("SoftLayer_User_Customer", "addApiAuthenticationKey", nil, &r.Options, &resp)
82	return
83}
84
85// Grants the user access to one or more dedicated host devices.  The user will only be allowed to see and access devices in both the portal and the API to which they have been granted access.  If the user's account has devices to which the user has not been granted access, then "not found" exceptions are thrown if the user attempts to access any of these devices.
86//
87// Users can assign device access to their child users, but not to themselves. An account's master has access to all devices on their customer account and can set dedicated host access for any of the other users on their account.
88func (r User_Customer) AddBulkDedicatedHostAccess(dedicatedHostIds []int) (resp bool, err error) {
89	params := []interface{}{
90		dedicatedHostIds,
91	}
92	err = r.Session.DoRequest("SoftLayer_User_Customer", "addBulkDedicatedHostAccess", params, &r.Options, &resp)
93	return
94}
95
96// Add multiple hardware to a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. addBulkHardwareAccess() does not attempt to add hardware access if the given user already has access to that hardware object.
97//
98// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account.
99func (r User_Customer) AddBulkHardwareAccess(hardwareIds []int) (resp bool, err error) {
100	params := []interface{}{
101		hardwareIds,
102	}
103	err = r.Session.DoRequest("SoftLayer_User_Customer", "addBulkHardwareAccess", params, &r.Options, &resp)
104	return
105}
106
107// Add multiple permissions to a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. addBulkPortalPermission() does not attempt to add permissions already assigned to the user.
108//
109// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account.
110//
111// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are removed based on the keyName property of the permission objects within the permissions parameter.
112func (r User_Customer) AddBulkPortalPermission(permissions []datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) {
113	params := []interface{}{
114		permissions,
115	}
116	err = r.Session.DoRequest("SoftLayer_User_Customer", "addBulkPortalPermission", params, &r.Options, &resp)
117	return
118}
119
120// no documentation yet
121func (r User_Customer) AddBulkRoles(roles []datatypes.User_Permission_Role) (err error) {
122	var resp datatypes.Void
123	params := []interface{}{
124		roles,
125	}
126	err = r.Session.DoRequest("SoftLayer_User_Customer", "addBulkRoles", params, &r.Options, &resp)
127	return
128}
129
130// Add multiple CloudLayer Computing Instances to a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's CloudLayer Computing Instance objects a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. addBulkVirtualGuestAccess() does not attempt to add CloudLayer Computing Instance access if the given user already has access to that CloudLayer Computing Instance object.
131//
132// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set CloudLayer Computing Instance access for any of the other users on their account.
133func (r User_Customer) AddBulkVirtualGuestAccess(virtualGuestIds []int) (resp bool, err error) {
134	params := []interface{}{
135		virtualGuestIds,
136	}
137	err = r.Session.DoRequest("SoftLayer_User_Customer", "addBulkVirtualGuestAccess", params, &r.Options, &resp)
138	return
139}
140
141// Grants the user access to a single dedicated host device.  The user will only be allowed to see and access devices in both the portal and the API to which they have been granted access.  If the user's account has devices to which the user has not been granted access, then "not found" exceptions are thrown if the user attempts to access any of these devices.
142//
143// Users can assign device access to their child users, but not to themselves. An account's master has access to all devices on their customer account and can set dedicated host access for any of the other users on their account.
144func (r User_Customer) AddDedicatedHostAccess(dedicatedHostId *int) (resp bool, err error) {
145	params := []interface{}{
146		dedicatedHostId,
147	}
148	err = r.Session.DoRequest("SoftLayer_User_Customer", "addDedicatedHostAccess", params, &r.Options, &resp)
149	return
150}
151
152// no documentation yet
153func (r User_Customer) AddExternalBinding(externalBinding *datatypes.User_External_Binding) (resp datatypes.User_Customer_External_Binding, err error) {
154	params := []interface{}{
155		externalBinding,
156	}
157	err = r.Session.DoRequest("SoftLayer_User_Customer", "addExternalBinding", params, &r.Options, &resp)
158	return
159}
160
161// Add hardware to a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user already has access to the hardware you're attempting to add then addHardwareAccess() returns true.
162//
163// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account.
164func (r User_Customer) AddHardwareAccess(hardwareId *int) (resp bool, err error) {
165	params := []interface{}{
166		hardwareId,
167	}
168	err = r.Session.DoRequest("SoftLayer_User_Customer", "addHardwareAccess", params, &r.Options, &resp)
169	return
170}
171
172// Create a notification subscription record for the user. If a subscription record exists for the notification, the record will be set to active, if currently inactive.
173func (r User_Customer) AddNotificationSubscriber(notificationKeyName *string) (resp bool, err error) {
174	params := []interface{}{
175		notificationKeyName,
176	}
177	err = r.Session.DoRequest("SoftLayer_User_Customer", "addNotificationSubscriber", params, &r.Options, &resp)
178	return
179}
180
181// Add a permission to a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. If the user already has the permission you're attempting to add then addPortalPermission() returns true.
182//
183// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account.
184//
185// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are added based on the keyName property of the permission parameter.
186func (r User_Customer) AddPortalPermission(permission *datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) {
187	params := []interface{}{
188		permission,
189	}
190	err = r.Session.DoRequest("SoftLayer_User_Customer", "addPortalPermission", params, &r.Options, &resp)
191	return
192}
193
194// no documentation yet
195func (r User_Customer) AddRole(role *datatypes.User_Permission_Role) (err error) {
196	var resp datatypes.Void
197	params := []interface{}{
198		role,
199	}
200	err = r.Session.DoRequest("SoftLayer_User_Customer", "addRole", params, &r.Options, &resp)
201	return
202}
203
204// Add a CloudLayer Computing Instance to a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's CloudLayer Computing Instance objects a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user already has access to the CloudLayer Computing Instance you're attempting to add then addVirtualGuestAccess() returns true.
205//
206// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set CloudLayer Computing Instance access for any of the other users on their account.
207func (r User_Customer) AddVirtualGuestAccess(virtualGuestId *int) (resp bool, err error) {
208	params := []interface{}{
209		virtualGuestId,
210	}
211	err = r.Session.DoRequest("SoftLayer_User_Customer", "addVirtualGuestAccess", params, &r.Options, &resp)
212	return
213}
214
215// Select a type of preference you would like to modify using [[SoftLayer_User_Customer::getPreferenceTypes|getPreferenceTypes]] and invoke this method using that preference type key name.
216func (r User_Customer) ChangePreference(preferenceTypeKeyName *string, value *string) (resp []datatypes.User_Preference, err error) {
217	params := []interface{}{
218		preferenceTypeKeyName,
219		value,
220	}
221	err = r.Session.DoRequest("SoftLayer_User_Customer", "changePreference", params, &r.Options, &resp)
222	return
223}
224
225// This service checks the result of a previously requested external authentication. [[SoftLayer_Container_User_Customer_External_Binding_Phone|Phone external binding]] container can be used for this service. Make sure to set the [[SoftLayer_Container_User_Customer_External_Binding_Phone::authenticationToken|authenticationToken]] that is generated by [[SoftLayer_User_Customer|initiateExternalAuthentication]] service.
226func (r User_Customer) CheckExternalAuthenticationStatus(authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
227	params := []interface{}{
228		authenticationContainer,
229	}
230	err = r.Session.DoRequest("SoftLayer_User_Customer", "checkExternalAuthenticationStatus", params, &r.Options, &resp)
231	return
232}
233
234// Add a description here
235//
236//
237func (r User_Customer) CheckPhoneFactorAuthenticationForPasswordSet(passwordSet *datatypes.Container_User_Customer_PasswordSet, authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp bool, err error) {
238	params := []interface{}{
239		passwordSet,
240		authenticationContainer,
241	}
242	err = r.Session.DoRequest("SoftLayer_User_Customer", "checkPhoneFactorAuthenticationForPasswordSet", params, &r.Options, &resp)
243	return
244}
245
246// Create a new subscriber for a given resource.
247func (r User_Customer) CreateNotificationSubscriber(keyName *string, resourceTableId *int) (resp bool, err error) {
248	params := []interface{}{
249		keyName,
250		resourceTableId,
251	}
252	err = r.Session.DoRequest("SoftLayer_User_Customer", "createNotificationSubscriber", params, &r.Options, &resp)
253	return
254}
255
256// Create a new user in the SoftLayer customer portal. createObject() creates a user's portal record and adds them into the SoftLayer community forums. It is not possible to set up SLL or PPTP enable flags during object creation. These flags are ignored during object creation. You will need to make a subsequent call to edit object in order to enable VPN access. An account's master user and sub-users who have the User Manage permission can add new users. createObject() creates users with a default permission set. After adding a user it may be helpful to set their permissions and hardware access.
257//
258// Note, neither password nor vpnPassword parameters are required.
259//
260// Password When a new user is created, an email will be sent to the new user's email address with a link to a url that will allow the new user to create or change their password for the SoftLayer customer portal.
261//
262// If the password parameter is provided and is not null, then that value will be validated. If it is a valid password, then the user will be created with this password.  This user will still receive a portal password email.  It can be used within 24 hours to change their password, or it can be allowed to expire, and the password provided during user creation will remain as the user's password.
263//
264// If the password parameter is not provided or the value is null, the user must set their portal password using the link sent in email within 24 hours.  If the user fails to set their password within 24 hours, then a non-master user can use the "Reset Password" link on the login page of the portal to request a new email.  A master user can use the link to retrieve a phone number to call to assist in resetting their password.
265//
266// The password parameter is ignored for VPN_ONLY users or for IBMid authenticated users.
267//
268// vpnPassword If the vpnPassword is provided, then the user's vpnPassword will be set to the provided password.  When creating a vpn only user, the vpnPassword MUST be supplied.  If the vpnPassword is not provided, then the user will need to use the portal to edit their profile and set the vpnPassword.
269//
270//
271func (r User_Customer) CreateObject(templateObject *datatypes.User_Customer, password *string, vpnPassword *string) (resp datatypes.User_Customer, err error) {
272	params := []interface{}{
273		templateObject,
274		password,
275		vpnPassword,
276	}
277	err = r.Session.DoRequest("SoftLayer_User_Customer", "createObject", params, &r.Options, &resp)
278	return
279}
280
281// Create delivery methods for a notification that the user is subscribed to. Multiple delivery method keyNames can be supplied to create multiple delivery methods for the specified notification. Available delivery methods - 'EMAIL'. Available notifications - 'PLANNED_MAINTENANCE', 'UNPLANNED_INCIDENT'.
282func (r User_Customer) CreateSubscriberDeliveryMethods(notificationKeyName *string, deliveryMethodKeyNames []string) (resp bool, err error) {
283	params := []interface{}{
284		notificationKeyName,
285		deliveryMethodKeyNames,
286	}
287	err = r.Session.DoRequest("SoftLayer_User_Customer", "createSubscriberDeliveryMethods", params, &r.Options, &resp)
288	return
289}
290
291// Create a new subscriber for a given resource.
292func (r User_Customer) DeactivateNotificationSubscriber(keyName *string, resourceTableId *int) (resp bool, err error) {
293	params := []interface{}{
294		keyName,
295		resourceTableId,
296	}
297	err = r.Session.DoRequest("SoftLayer_User_Customer", "deactivateNotificationSubscriber", params, &r.Options, &resp)
298	return
299}
300
301// Account master users and sub-users who have the User Manage permission in the SoftLayer customer portal can update other user's information. Use editObject() if you wish to edit a single user account. Users who do not have the User Manage permission can only update their own information.
302func (r User_Customer) EditObject(templateObject *datatypes.User_Customer) (resp bool, err error) {
303	params := []interface{}{
304		templateObject,
305	}
306	err = r.Session.DoRequest("SoftLayer_User_Customer", "editObject", params, &r.Options, &resp)
307	return
308}
309
310// Account master users and sub-users who have the User Manage permission in the SoftLayer customer portal can update other user's information. Use editObjects() if you wish to edit multiple users at once. Users who do not have the User Manage permission can only update their own information.
311func (r User_Customer) EditObjects(templateObjects []datatypes.User_Customer) (resp bool, err error) {
312	params := []interface{}{
313		templateObjects,
314	}
315	err = r.Session.DoRequest("SoftLayer_User_Customer", "editObjects", params, &r.Options, &resp)
316	return
317}
318
319// no documentation yet
320func (r User_Customer) FindUserPreference(profileName *string, containerKeyname *string, preferenceKeyname *string) (resp []datatypes.Layout_Profile, err error) {
321	params := []interface{}{
322		profileName,
323		containerKeyname,
324		preferenceKeyname,
325	}
326	err = r.Session.DoRequest("SoftLayer_User_Customer", "findUserPreference", params, &r.Options, &resp)
327	return
328}
329
330// Retrieve The customer account that a user belongs to.
331func (r User_Customer) GetAccount() (resp datatypes.Account, err error) {
332	err = r.Session.DoRequest("SoftLayer_User_Customer", "getAccount", nil, &r.Options, &resp)
333	return
334}
335
336// Retrieve
337func (r User_Customer) GetActions() (resp []datatypes.User_Permission_Action, err error) {
338	err = r.Session.DoRequest("SoftLayer_User_Customer", "getActions", nil, &r.Options, &resp)
339	return
340}
341
342// The getActiveExternalAuthenticationVendors method will return a list of available external vendors that a SoftLayer user can authenticate against.  The list will only contain vendors for which the user has at least one active external binding.
343func (r User_Customer) GetActiveExternalAuthenticationVendors() (resp []datatypes.Container_User_Customer_External_Binding_Vendor, err error) {
344	err = r.Session.DoRequest("SoftLayer_User_Customer", "getActiveExternalAuthenticationVendors", nil, &r.Options, &resp)
345	return
346}
347
348// Retrieve A portal user's additional email addresses. These email addresses are contacted when updates are made to support tickets.
349func (r User_Customer) GetAdditionalEmails() (resp []datatypes.User_Customer_AdditionalEmail, err error) {
350	err = r.Session.DoRequest("SoftLayer_User_Customer", "getAdditionalEmails", nil, &r.Options, &resp)
351	return
352}
353
354// no documentation yet
355func (r User_Customer) GetAllowedDedicatedHostIds() (resp []int, err error) {
356	err = r.Session.DoRequest("SoftLayer_User_Customer", "getAllowedDedicatedHostIds", nil, &r.Options, &resp)
357	return
358}
359
360// no documentation yet
361func (r User_Customer) GetAllowedHardwareIds() (resp []int, err error) {
362	err = r.Session.DoRequest("SoftLayer_User_Customer", "getAllowedHardwareIds", nil, &r.Options, &resp)
363	return
364}
365
366// no documentation yet
367func (r User_Customer) GetAllowedVirtualGuestIds() (resp []int, err error) {
368	err = r.Session.DoRequest("SoftLayer_User_Customer", "getAllowedVirtualGuestIds", nil, &r.Options, &resp)
369	return
370}
371
372// Retrieve A portal user's API Authentication keys. There is a max limit of two API keys per user.
373func (r User_Customer) GetApiAuthenticationKeys() (resp []datatypes.User_Customer_ApiAuthentication, err error) {
374	err = r.Session.DoRequest("SoftLayer_User_Customer", "getApiAuthenticationKeys", nil, &r.Options, &resp)
375	return
376}
377
378// no documentation yet
379func (r User_Customer) GetAuthenticationToken(token *datatypes.Container_User_Authentication_Token) (resp datatypes.Container_User_Authentication_Token, err error) {
380	params := []interface{}{
381		token,
382	}
383	err = r.Session.DoRequest("SoftLayer_User_Customer", "getAuthenticationToken", params, &r.Options, &resp)
384	return
385}
386
387// Retrieve The CDN accounts associated with a portal user.
388func (r User_Customer) GetCdnAccounts() (resp []datatypes.Network_ContentDelivery_Account, err error) {
389	err = r.Session.DoRequest("SoftLayer_User_Customer", "getCdnAccounts", nil, &r.Options, &resp)
390	return
391}
392
393// Retrieve A portal user's child users. Some portal users may not have child users.
394func (r User_Customer) GetChildUsers() (resp []datatypes.User_Customer, err error) {
395	err = r.Session.DoRequest("SoftLayer_User_Customer", "getChildUsers", nil, &r.Options, &resp)
396	return
397}
398
399// Retrieve An user's associated closed tickets.
400func (r User_Customer) GetClosedTickets() (resp []datatypes.Ticket, err error) {
401	err = r.Session.DoRequest("SoftLayer_User_Customer", "getClosedTickets", nil, &r.Options, &resp)
402	return
403}
404
405// Retrieve The dedicated hosts to which the user has been granted access.
406func (r User_Customer) GetDedicatedHosts() (resp []datatypes.Virtual_DedicatedHost, err error) {
407	err = r.Session.DoRequest("SoftLayer_User_Customer", "getDedicatedHosts", nil, &r.Options, &resp)
408	return
409}
410
411// This API gets the default account for the OpenIdConnect identity that is linked to the current SoftLayer user identity. If there is no default present, the API returns null, except in the special case where we find one active user linked to the IBMid. In that case, we will set the link from the IBMid to that user as default, and return the account of which that user is a member. Invoke this only on IBMid-authenticated users.
412func (r User_Customer) GetDefaultAccount(providerType *string) (resp datatypes.Account, err error) {
413	params := []interface{}{
414		providerType,
415	}
416	err = r.Session.DoRequest("SoftLayer_User_Customer", "getDefaultAccount", params, &r.Options, &resp)
417	return
418}
419
420// Retrieve The external authentication bindings that link an external identifier to a SoftLayer user.
421func (r User_Customer) GetExternalBindings() (resp []datatypes.User_External_Binding, err error) {
422	err = r.Session.DoRequest("SoftLayer_User_Customer", "getExternalBindings", nil, &r.Options, &resp)
423	return
424}
425
426// Retrieve A portal user's accessible hardware. These permissions control which hardware a user has access to in the SoftLayer customer portal.
427func (r User_Customer) GetHardware() (resp []datatypes.Hardware, err error) {
428	err = r.Session.DoRequest("SoftLayer_User_Customer", "getHardware", nil, &r.Options, &resp)
429	return
430}
431
432// Retrieve the number of servers that a portal user has access to. Portal users can have restrictions set to limit services for and to perform actions on hardware. You can set these permissions in the portal by clicking the "administrative" then "user admin" links.
433func (r User_Customer) GetHardwareCount() (resp int, err error) {
434	err = r.Session.DoRequest("SoftLayer_User_Customer", "getHardwareCount", nil, &r.Options, &resp)
435	return
436}
437
438// Retrieve Hardware notifications associated with this user. A hardware notification links a user to a piece of hardware, and that user will be notified if any monitors on that hardware fail, if the monitors have a status of 'Notify User'.
439func (r User_Customer) GetHardwareNotifications() (resp []datatypes.User_Customer_Notification_Hardware, err error) {
440	err = r.Session.DoRequest("SoftLayer_User_Customer", "getHardwareNotifications", nil, &r.Options, &resp)
441	return
442}
443
444// Retrieve Whether or not a user has acknowledged the support policy.
445func (r User_Customer) GetHasAcknowledgedSupportPolicyFlag() (resp bool, err error) {
446	err = r.Session.DoRequest("SoftLayer_User_Customer", "getHasAcknowledgedSupportPolicyFlag", nil, &r.Options, &resp)
447	return
448}
449
450// Retrieve Permission granting the user access to all Dedicated Host devices on the account.
451func (r User_Customer) GetHasFullDedicatedHostAccessFlag() (resp bool, err error) {
452	err = r.Session.DoRequest("SoftLayer_User_Customer", "getHasFullDedicatedHostAccessFlag", nil, &r.Options, &resp)
453	return
454}
455
456// Retrieve Whether or not a portal user has access to all hardware on their account.
457func (r User_Customer) GetHasFullHardwareAccessFlag() (resp bool, err error) {
458	err = r.Session.DoRequest("SoftLayer_User_Customer", "getHasFullHardwareAccessFlag", nil, &r.Options, &resp)
459	return
460}
461
462// Retrieve Whether or not a portal user has access to all hardware on their account.
463func (r User_Customer) GetHasFullVirtualGuestAccessFlag() (resp bool, err error) {
464	err = r.Session.DoRequest("SoftLayer_User_Customer", "getHasFullVirtualGuestAccessFlag", nil, &r.Options, &resp)
465	return
466}
467
468// no documentation yet
469func (r User_Customer) GetImpersonationToken() (resp string, err error) {
470	err = r.Session.DoRequest("SoftLayer_User_Customer", "getImpersonationToken", nil, &r.Options, &resp)
471	return
472}
473
474// Retrieve
475func (r User_Customer) GetLayoutProfiles() (resp []datatypes.Layout_Profile, err error) {
476	err = r.Session.DoRequest("SoftLayer_User_Customer", "getLayoutProfiles", nil, &r.Options, &resp)
477	return
478}
479
480// Retrieve A user's locale. Locale holds user's language and region information.
481func (r User_Customer) GetLocale() (resp datatypes.Locale, err error) {
482	err = r.Session.DoRequest("SoftLayer_User_Customer", "getLocale", nil, &r.Options, &resp)
483	return
484}
485
486// Retrieve A user's attempts to log into the SoftLayer customer portal.
487func (r User_Customer) GetLoginAttempts() (resp []datatypes.User_Customer_Access_Authentication, err error) {
488	err = r.Session.DoRequest("SoftLayer_User_Customer", "getLoginAttempts", nil, &r.Options, &resp)
489	return
490}
491
492// Attempt to authenticate a user to the SoftLayer customer portal using the provided authentication container. Depending on the specific type of authentication container that is used, this API will leverage the appropriate authentication protocol. If authentication is successful then the API returns a list of linked accounts for the user, a token containing the ID of the authenticated user and a hash key used by the SoftLayer customer portal to maintain authentication.
493func (r User_Customer) GetLoginToken(request *datatypes.Container_Authentication_Request_Contract) (resp datatypes.Container_Authentication_Response_Common, err error) {
494	params := []interface{}{
495		request,
496	}
497	err = r.Session.DoRequest("SoftLayer_User_Customer", "getLoginToken", params, &r.Options, &resp)
498	return
499}
500
501// An OpenIdConnect identity, for example an IBMid, can be linked or mapped to one or more individual SoftLayer users, but no more than one SoftLayer user per account. This effectively links the OpenIdConnect identity to those accounts. This API returns a list of all the accounts for which there is a link between the OpenIdConnect identity and a SoftLayer user. Invoke this only on IBMid-authenticated users.
502func (r User_Customer) GetMappedAccounts(providerType *string) (resp []datatypes.Account, err error) {
503	params := []interface{}{
504		providerType,
505	}
506	err = r.Session.DoRequest("SoftLayer_User_Customer", "getMappedAccounts", params, &r.Options, &resp)
507	return
508}
509
510// Retrieve A portal user's associated mobile device profiles.
511func (r User_Customer) GetMobileDevices() (resp []datatypes.User_Customer_MobileDevice, err error) {
512	err = r.Session.DoRequest("SoftLayer_User_Customer", "getMobileDevices", nil, &r.Options, &resp)
513	return
514}
515
516// Retrieve Notification subscription records for the user.
517func (r User_Customer) GetNotificationSubscribers() (resp []datatypes.Notification_Subscriber, err error) {
518	err = r.Session.DoRequest("SoftLayer_User_Customer", "getNotificationSubscribers", nil, &r.Options, &resp)
519	return
520}
521
522// getObject retrieves the SoftLayer_User_Customer object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_User_Customer service. You can only retrieve users that are assigned to the customer account belonging to the user making the API call.
523func (r User_Customer) GetObject() (resp datatypes.User_Customer, err error) {
524	err = r.Session.DoRequest("SoftLayer_User_Customer", "getObject", nil, &r.Options, &resp)
525	return
526}
527
528// This API returns a SoftLayer_Container_User_Customer_OpenIdConnect_MigrationState object containing the necessary information to determine what migration state the user is in. If the account is not OpenIdConnect authenticated, then an exception is thrown.
529func (r User_Customer) GetOpenIdConnectMigrationState() (resp datatypes.Container_User_Customer_OpenIdConnect_MigrationState, err error) {
530	err = r.Session.DoRequest("SoftLayer_User_Customer", "getOpenIdConnectMigrationState", nil, &r.Options, &resp)
531	return
532}
533
534// Retrieve An user's associated open tickets.
535func (r User_Customer) GetOpenTickets() (resp []datatypes.Ticket, err error) {
536	err = r.Session.DoRequest("SoftLayer_User_Customer", "getOpenTickets", nil, &r.Options, &resp)
537	return
538}
539
540// Retrieve A portal user's vpn accessible subnets.
541func (r User_Customer) GetOverrides() (resp []datatypes.Network_Service_Vpn_Overrides, err error) {
542	err = r.Session.DoRequest("SoftLayer_User_Customer", "getOverrides", nil, &r.Options, &resp)
543	return
544}
545
546// Retrieve A portal user's parent user. If a SoftLayer_User_Customer has a null parentId property then it doesn't have a parent user.
547func (r User_Customer) GetParent() (resp datatypes.User_Customer, err error) {
548	err = r.Session.DoRequest("SoftLayer_User_Customer", "getParent", nil, &r.Options, &resp)
549	return
550}
551
552// Retrieve A portal user's permissions. These permissions control that user's access to functions within the SoftLayer customer portal and API.
553func (r User_Customer) GetPermissions() (resp []datatypes.User_Customer_CustomerPermission_Permission, err error) {
554	err = r.Session.DoRequest("SoftLayer_User_Customer", "getPermissions", nil, &r.Options, &resp)
555	return
556}
557
558// Attempt to authenticate a username and password to the SoftLayer customer portal. Many portal user accounts are configured to require answering a security question on login. In this case getPortalLoginToken() also verifies the given security question ID and answer. If authentication is successful then the API returns a token containing the ID of the authenticated user and a hash key used by the SoftLayer customer portal to maintain authentication.
559func (r User_Customer) GetPortalLoginToken(username *string, password *string, securityQuestionId *int, securityQuestionAnswer *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
560	params := []interface{}{
561		username,
562		password,
563		securityQuestionId,
564		securityQuestionAnswer,
565	}
566	err = r.Session.DoRequest("SoftLayer_User_Customer", "getPortalLoginToken", params, &r.Options, &resp)
567	return
568}
569
570// Select a type of preference you would like to get using [[SoftLayer_User_Customer::getPreferenceTypes|getPreferenceTypes]] and invoke this method using that preference type key name.
571func (r User_Customer) GetPreference(preferenceTypeKeyName *string) (resp datatypes.User_Preference, err error) {
572	params := []interface{}{
573		preferenceTypeKeyName,
574	}
575	err = r.Session.DoRequest("SoftLayer_User_Customer", "getPreference", params, &r.Options, &resp)
576	return
577}
578
579// Use any of the preference types to fetch or modify user preferences using [[SoftLayer_User_Customer::getPreference|getPreference]] or [[SoftLayer_User_Customer::changePreference|changePreference]], respectively.
580func (r User_Customer) GetPreferenceTypes() (resp []datatypes.User_Preference_Type, err error) {
581	err = r.Session.DoRequest("SoftLayer_User_Customer", "getPreferenceTypes", nil, &r.Options, &resp)
582	return
583}
584
585// Retrieve
586func (r User_Customer) GetPreferences() (resp []datatypes.User_Preference, err error) {
587	err = r.Session.DoRequest("SoftLayer_User_Customer", "getPreferences", nil, &r.Options, &resp)
588	return
589}
590
591// Retrieve the authentication requirements for an outstanding password set/reset request.  The password key provided to the user in an email generated by the [[SoftLayer_User_Customer::newUserPassword|newUserPassword]]. Password recovery keys are valid for 24 hours after they're generated.
592func (r User_Customer) GetRequirementsForPasswordSet(passwordSet *datatypes.Container_User_Customer_PasswordSet) (resp datatypes.Container_User_Customer_PasswordSet, err error) {
593	params := []interface{}{
594		passwordSet,
595	}
596	err = r.Session.DoRequest("SoftLayer_User_Customer", "getRequirementsForPasswordSet", params, &r.Options, &resp)
597	return
598}
599
600// Retrieve
601func (r User_Customer) GetRoles() (resp []datatypes.User_Permission_Role, err error) {
602	err = r.Session.DoRequest("SoftLayer_User_Customer", "getRoles", nil, &r.Options, &resp)
603	return
604}
605
606// Retrieve
607func (r User_Customer) GetSalesforceUserLink() (resp datatypes.User_Customer_Link, err error) {
608	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSalesforceUserLink", nil, &r.Options, &resp)
609	return
610}
611
612// Retrieve A portal user's security question answers. Some portal users may not have security answers or may not be configured to require answering a security question on login.
613func (r User_Customer) GetSecurityAnswers() (resp []datatypes.User_Customer_Security_Answer, err error) {
614	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSecurityAnswers", nil, &r.Options, &resp)
615	return
616}
617
618// Retrieve A user's notification subscription records.
619func (r User_Customer) GetSubscribers() (resp []datatypes.Notification_User_Subscriber, err error) {
620	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSubscribers", nil, &r.Options, &resp)
621	return
622}
623
624// Retrieve A user's successful attempts to log into the SoftLayer customer portal.
625func (r User_Customer) GetSuccessfulLogins() (resp []datatypes.User_Customer_Access_Authentication, err error) {
626	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSuccessfulLogins", nil, &r.Options, &resp)
627	return
628}
629
630// Retrieve Whether or not a user is required to acknowledge the support policy for portal access.
631func (r User_Customer) GetSupportPolicyAcknowledgementRequiredFlag() (resp int, err error) {
632	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSupportPolicyAcknowledgementRequiredFlag", nil, &r.Options, &resp)
633	return
634}
635
636// no documentation yet
637func (r User_Customer) GetSupportPolicyDocument() (resp []byte, err error) {
638	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSupportPolicyDocument", nil, &r.Options, &resp)
639	return
640}
641
642// no documentation yet
643func (r User_Customer) GetSupportPolicyName() (resp string, err error) {
644	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSupportPolicyName", nil, &r.Options, &resp)
645	return
646}
647
648// no documentation yet
649func (r User_Customer) GetSupportedLocales() (resp []datatypes.Locale, err error) {
650	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSupportedLocales", nil, &r.Options, &resp)
651	return
652}
653
654// Retrieve Whether or not a user must take a brief survey the next time they log into the SoftLayer customer portal.
655func (r User_Customer) GetSurveyRequiredFlag() (resp bool, err error) {
656	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSurveyRequiredFlag", nil, &r.Options, &resp)
657	return
658}
659
660// Retrieve The surveys that a user has taken in the SoftLayer customer portal.
661func (r User_Customer) GetSurveys() (resp []datatypes.Survey, err error) {
662	err = r.Session.DoRequest("SoftLayer_User_Customer", "getSurveys", nil, &r.Options, &resp)
663	return
664}
665
666// Retrieve An user's associated tickets.
667func (r User_Customer) GetTickets() (resp []datatypes.Ticket, err error) {
668	err = r.Session.DoRequest("SoftLayer_User_Customer", "getTickets", nil, &r.Options, &resp)
669	return
670}
671
672// Retrieve A portal user's time zone.
673func (r User_Customer) GetTimezone() (resp datatypes.Locale_Timezone, err error) {
674	err = r.Session.DoRequest("SoftLayer_User_Customer", "getTimezone", nil, &r.Options, &resp)
675	return
676}
677
678// Retrieve A user's unsuccessful attempts to log into the SoftLayer customer portal.
679func (r User_Customer) GetUnsuccessfulLogins() (resp []datatypes.User_Customer_Access_Authentication, err error) {
680	err = r.Session.DoRequest("SoftLayer_User_Customer", "getUnsuccessfulLogins", nil, &r.Options, &resp)
681	return
682}
683
684// Retrieve a user object using a password token. When a new user is created or when a user has requested a password change using initiatePortalPasswordChange, they will have received an email that contains a url with a token.  That token is used as the parameter for getUserIdForPasswordSet.
685func (r User_Customer) GetUserIdForPasswordSet(key *string) (resp int, err error) {
686	params := []interface{}{
687		key,
688	}
689	err = r.Session.DoRequest("SoftLayer_User_Customer", "getUserIdForPasswordSet", params, &r.Options, &resp)
690	return
691}
692
693// Retrieve
694func (r User_Customer) GetUserLinks() (resp []datatypes.User_Customer_Link, err error) {
695	err = r.Session.DoRequest("SoftLayer_User_Customer", "getUserLinks", nil, &r.Options, &resp)
696	return
697}
698
699// no documentation yet
700func (r User_Customer) GetUserPreferences(profileName *string, containerKeyname *string) (resp []datatypes.Layout_Profile, err error) {
701	params := []interface{}{
702		profileName,
703		containerKeyname,
704	}
705	err = r.Session.DoRequest("SoftLayer_User_Customer", "getUserPreferences", params, &r.Options, &resp)
706	return
707}
708
709// Retrieve A portal user's status, which controls overall access to the SoftLayer customer portal and VPN access to the private network.
710func (r User_Customer) GetUserStatus() (resp datatypes.User_Customer_Status, err error) {
711	err = r.Session.DoRequest("SoftLayer_User_Customer", "getUserStatus", nil, &r.Options, &resp)
712	return
713}
714
715// Retrieve the number of CloudLayer Computing Instances that a portal user has access to. Portal users can have restrictions set to limit services for and to perform actions on CloudLayer Computing Instances. You can set these permissions in the portal by clicking the "administrative" then "user admin" links.
716func (r User_Customer) GetVirtualGuestCount() (resp int, err error) {
717	err = r.Session.DoRequest("SoftLayer_User_Customer", "getVirtualGuestCount", nil, &r.Options, &resp)
718	return
719}
720
721// Retrieve A portal user's accessible CloudLayer Computing Instances. These permissions control which CloudLayer Computing Instances a user has access to in the SoftLayer customer portal.
722func (r User_Customer) GetVirtualGuests() (resp []datatypes.Virtual_Guest, err error) {
723	err = r.Session.DoRequest("SoftLayer_User_Customer", "getVirtualGuests", nil, &r.Options, &resp)
724	return
725}
726
727// no documentation yet
728func (r User_Customer) InTerminalStatus() (resp bool, err error) {
729	err = r.Session.DoRequest("SoftLayer_User_Customer", "inTerminalStatus", nil, &r.Options, &resp)
730	return
731}
732
733// The service initiates an external authentication with the given external authentication vendor. The authentication container and its content will be verified before an attempt is made to initiate an external authentication. [[SoftLayer_Container_User_Customer_External_Binding_Phone|Phone external binding]] container can be used for this service.
734//
735// This service returns a unique authentication request token. You can use [[SoftLayer_User_Customer::checkExternalAuthenticationStatus|checkExternalAuthenticationStatus]] service to check if the authentication request is complete or not.
736func (r User_Customer) InitiateExternalAuthentication(authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp string, err error) {
737	params := []interface{}{
738		authenticationContainer,
739	}
740	err = r.Session.DoRequest("SoftLayer_User_Customer", "initiateExternalAuthentication", params, &r.Options, &resp)
741	return
742}
743
744// Sends password change email to the user containing url that allows the user the change their password. This is the first step when a user wishes to change their password.  The url that is generated contains a one-time use token that is valid for only 24-hours.
745//
746// If this is a new master user who has never logged into the portal, then password reset will be initiated. Once a master user has logged into the portal, they must setup their security questions prior to logging out because master users are required to answer a security question during the password reset process.  Should a master user not have security questions defined and not remember their password in order to define the security questions, then they will need to contact support at live chat or Revenue Services for assistance.
747//
748// Due to security reasons, the number reset requests per username are limited within a undisclosed timeframe.
749func (r User_Customer) InitiatePortalPasswordChange(username *string) (resp bool, err error) {
750	params := []interface{}{
751		username,
752	}
753	err = r.Session.DoRequest("SoftLayer_User_Customer", "initiatePortalPasswordChange", params, &r.Options, &resp)
754	return
755}
756
757// A Brand Agent that has permissions to Add Customer Accounts will be able to request the password email be sent to the Master User of a Customer Account created by the same Brand as the agent making the request. Due to security reasons, the number of reset requests are limited within an undisclosed timeframe.
758func (r User_Customer) InitiatePortalPasswordChangeByBrandAgent(username *string) (resp bool, err error) {
759	params := []interface{}{
760		username,
761	}
762	err = r.Session.DoRequest("SoftLayer_User_Customer", "initiatePortalPasswordChangeByBrandAgent", params, &r.Options, &resp)
763	return
764}
765
766// Send email invitation to a user to join a SoftLayer account and authenticate with OpenIdConnect. Throws an exception on error.
767func (r User_Customer) InviteUserToLinkOpenIdConnect(providerType *string) (err error) {
768	var resp datatypes.Void
769	params := []interface{}{
770		providerType,
771	}
772	err = r.Session.DoRequest("SoftLayer_User_Customer", "inviteUserToLinkOpenIdConnect", params, &r.Options, &resp)
773	return
774}
775
776// Portal users are considered master users if they don't have an associated parent user. The only users who don't have parent users are users whose username matches their SoftLayer account name. Master users have special permissions throughout the SoftLayer customer portal.
777func (r User_Customer) IsMasterUser() (resp bool, err error) {
778	err = r.Session.DoRequest("SoftLayer_User_Customer", "isMasterUser", nil, &r.Options, &resp)
779	return
780}
781
782// This method is deprecated! SoftLayer Community Forums no longer exist, therefore, any password verified will return false. In the future, this method will be completely removed.
783//
784// Determine if a string is the given user's login password to the SoftLayer community forums.
785func (r User_Customer) IsValidForumPassword(password *string) (err error) {
786	var resp datatypes.Void
787	params := []interface{}{
788		password,
789	}
790	err = r.Session.DoRequest("SoftLayer_User_Customer", "isValidForumPassword", params, &r.Options, &resp)
791	return
792}
793
794// Determine if a string is the given user's login password to the SoftLayer customer portal.
795func (r User_Customer) IsValidPortalPassword(password *string) (resp bool, err error) {
796	params := []interface{}{
797		password,
798	}
799	err = r.Session.DoRequest("SoftLayer_User_Customer", "isValidPortalPassword", params, &r.Options, &resp)
800	return
801}
802
803// The perform external authentication method will authenticate the given external authentication container with an external vendor.  The authentication container and its contents will be verified before an attempt is made to authenticate the contents of the container with an external vendor.
804func (r User_Customer) PerformExternalAuthentication(authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
805	params := []interface{}{
806		authenticationContainer,
807	}
808	err = r.Session.DoRequest("SoftLayer_User_Customer", "performExternalAuthentication", params, &r.Options, &resp)
809	return
810}
811
812// Set the password for a user who has an outstanding password request. A user with an outstanding password request will have an unused and unexpired password key.  The password key is part of the url provided to the user in the email sent to the user with information on how to set their password.  The email was generated by the [[SoftLayer_User_Customer::initiatePortalPasswordRequest|initiatePortalPasswordRequest]] method. Password recovery keys are valid for 24 hours after they're generated.
813//
814// User portal passwords must match the following restrictions. Portal passwords must...
815// * ...be over eight characters long.
816// * ...be under twenty characters long.
817// * ...contain at least one uppercase letter
818// * ...contain at least one lowercase letter
819// * ...contain at least one number
820// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ + =
821// * ...not match your username
822// * ...not match your forum password
823func (r User_Customer) ProcessPasswordSetRequest(passwordSet *datatypes.Container_User_Customer_PasswordSet, authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp bool, err error) {
824	params := []interface{}{
825		passwordSet,
826		authenticationContainer,
827	}
828	err = r.Session.DoRequest("SoftLayer_User_Customer", "processPasswordSetRequest", params, &r.Options, &resp)
829	return
830}
831
832// Revoke access to all dedicated hosts on the account for this user. The user will only be allowed to see and access devices in both the portal and the API to which they have been granted access.  If the user's account has devices to which the user has not been granted access or the access has been revoked, then "not found" exceptions are thrown if the user attempts to access any of these devices. If the current user does not have administrative privileges over this user, an inadequate permissions exception will get thrown.
833//
834// Users can call this function on child users, but not to themselves. An account's master has access to all users permissions on their account.
835func (r User_Customer) RemoveAllDedicatedHostAccessForThisUser() (resp bool, err error) {
836	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeAllDedicatedHostAccessForThisUser", nil, &r.Options, &resp)
837	return
838}
839
840// Remove all hardware from a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. If the current user does not have administrative privileges over this user, an inadequate permissions exception will get thrown.
841//
842// Users can call this function on child users, but not to themselves. An account's master has access to all users permissions on their account.
843func (r User_Customer) RemoveAllHardwareAccessForThisUser() (resp bool, err error) {
844	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeAllHardwareAccessForThisUser", nil, &r.Options, &resp)
845	return
846}
847
848// Remove all cloud computing instances from a portal user's instance access list. A user's instance access list controls which of an account's computing instance objects a user has access to in the SoftLayer customer portal and API. If the current user does not have administrative privileges over this user, an inadequate permissions exception will get thrown.
849//
850// Users can call this function on child users, but not to themselves. An account's master has access to all users permissions on their account.
851func (r User_Customer) RemoveAllVirtualAccessForThisUser() (resp bool, err error) {
852	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeAllVirtualAccessForThisUser", nil, &r.Options, &resp)
853	return
854}
855
856// Remove a user's API authentication key, removing that user's access to query the SoftLayer API.
857func (r User_Customer) RemoveApiAuthenticationKey(keyId *int) (resp bool, err error) {
858	params := []interface{}{
859		keyId,
860	}
861	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeApiAuthenticationKey", params, &r.Options, &resp)
862	return
863}
864
865// Revokes access for the user to one or more dedicated host devices.  The user will only be allowed to see and access devices in both the portal and the API to which they have been granted access.  If the user's account has devices to which the user has not been granted access or the access has been revoked, then "not found" exceptions are thrown if the user attempts to access any of these devices.
866//
867// Users can assign device access to their child users, but not to themselves. An account's master has access to all devices on their customer account and can set dedicated host access for any of the other users on their account.
868//
869// If the user has full dedicatedHost access, then it will provide access to "ALL but passed in" dedicatedHost ids.
870func (r User_Customer) RemoveBulkDedicatedHostAccess(dedicatedHostIds []int) (resp bool, err error) {
871	params := []interface{}{
872		dedicatedHostIds,
873	}
874	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeBulkDedicatedHostAccess", params, &r.Options, &resp)
875	return
876}
877
878// Remove multiple hardware from a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the hardware you're attempting remove add then removeBulkHardwareAccess() returns true.
879//
880// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account.
881//
882// If the user has full hardware access, then it will provide access to "ALL but passed in" hardware ids.
883func (r User_Customer) RemoveBulkHardwareAccess(hardwareIds []int) (resp bool, err error) {
884	params := []interface{}{
885		hardwareIds,
886	}
887	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeBulkHardwareAccess", params, &r.Options, &resp)
888	return
889}
890
891// Remove multiple permissions from a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. Removing a user's permission will affect that user's portal and API access. removePortalPermission() does not attempt to remove permissions that are not assigned to the user.
892//
893// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account.
894//
895// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are removed based on the keyName property of the permission objects within the permissions parameter.
896func (r User_Customer) RemoveBulkPortalPermission(permissions []datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) {
897	params := []interface{}{
898		permissions,
899	}
900	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeBulkPortalPermission", params, &r.Options, &resp)
901	return
902}
903
904// no documentation yet
905func (r User_Customer) RemoveBulkRoles(roles []datatypes.User_Permission_Role) (err error) {
906	var resp datatypes.Void
907	params := []interface{}{
908		roles,
909	}
910	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeBulkRoles", params, &r.Options, &resp)
911	return
912}
913
914// Remove multiple CloudLayer Computing Instances from a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's CloudLayer Computing Instance objects a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the CloudLayer Computing Instance you're attempting remove add then removeBulkVirtualGuestAccess() returns true.
915//
916// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set hardware access for any of the other users on their account.
917func (r User_Customer) RemoveBulkVirtualGuestAccess(virtualGuestIds []int) (resp bool, err error) {
918	params := []interface{}{
919		virtualGuestIds,
920	}
921	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeBulkVirtualGuestAccess", params, &r.Options, &resp)
922	return
923}
924
925// Revokes access for the user to a single dedicated host device.  The user will only be allowed to see and access devices in both the portal and the API to which they have been granted access.  If the user's account has devices to which the user has not been granted access or the access has been revoked, then "not found" exceptions are thrown if the user attempts to access any of these devices.
926//
927// Users can assign device access to their child users, but not to themselves. An account's master has access to all devices on their customer account and can set dedicated host access for any of the other users on their account.
928func (r User_Customer) RemoveDedicatedHostAccess(dedicatedHostId *int) (resp bool, err error) {
929	params := []interface{}{
930		dedicatedHostId,
931	}
932	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeDedicatedHostAccess", params, &r.Options, &resp)
933	return
934}
935
936// no documentation yet
937func (r User_Customer) RemoveExternalBinding(externalBinding *datatypes.User_External_Binding) (resp bool, err error) {
938	params := []interface{}{
939		externalBinding,
940	}
941	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeExternalBinding", params, &r.Options, &resp)
942	return
943}
944
945// Remove hardware from a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the hardware you're attempting remove add then removeHardwareAccess() returns true.
946//
947// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account.
948func (r User_Customer) RemoveHardwareAccess(hardwareId *int) (resp bool, err error) {
949	params := []interface{}{
950		hardwareId,
951	}
952	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeHardwareAccess", params, &r.Options, &resp)
953	return
954}
955
956// Remove a permission from a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. Removing a user's permission will affect that user's portal and API access. If the user does not have the permission you're attempting to remove then removePortalPermission() returns true.
957//
958// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account.
959//
960// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are removed based on the keyName property of the permission parameter.
961func (r User_Customer) RemovePortalPermission(permission *datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) {
962	params := []interface{}{
963		permission,
964	}
965	err = r.Session.DoRequest("SoftLayer_User_Customer", "removePortalPermission", params, &r.Options, &resp)
966	return
967}
968
969// no documentation yet
970func (r User_Customer) RemoveRole(role *datatypes.User_Permission_Role) (err error) {
971	var resp datatypes.Void
972	params := []interface{}{
973		role,
974	}
975	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeRole", params, &r.Options, &resp)
976	return
977}
978
979// Remove a CloudLayer Computing Instance from a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's computing instances a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the CloudLayer Computing Instance you're attempting remove add then removeVirtualGuestAccess() returns true.
980//
981// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set instance access for any of the other users on their account.
982func (r User_Customer) RemoveVirtualGuestAccess(virtualGuestId *int) (resp bool, err error) {
983	params := []interface{}{
984		virtualGuestId,
985	}
986	err = r.Session.DoRequest("SoftLayer_User_Customer", "removeVirtualGuestAccess", params, &r.Options, &resp)
987	return
988}
989
990// no documentation yet
991func (r User_Customer) SamlAuthenticate(accountId *string, samlResponse *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
992	params := []interface{}{
993		accountId,
994		samlResponse,
995	}
996	err = r.Session.DoRequest("SoftLayer_User_Customer", "samlAuthenticate", params, &r.Options, &resp)
997	return
998}
999
1000// no documentation yet
1001func (r User_Customer) SamlBeginAuthentication(accountId *int) (resp string, err error) {
1002	params := []interface{}{
1003		accountId,
1004	}
1005	err = r.Session.DoRequest("SoftLayer_User_Customer", "samlBeginAuthentication", params, &r.Options, &resp)
1006	return
1007}
1008
1009// no documentation yet
1010func (r User_Customer) SamlBeginLogout() (resp string, err error) {
1011	err = r.Session.DoRequest("SoftLayer_User_Customer", "samlBeginLogout", nil, &r.Options, &resp)
1012	return
1013}
1014
1015// no documentation yet
1016func (r User_Customer) SamlLogout(samlResponse *string) (err error) {
1017	var resp datatypes.Void
1018	params := []interface{}{
1019		samlResponse,
1020	}
1021	err = r.Session.DoRequest("SoftLayer_User_Customer", "samlLogout", params, &r.Options, &resp)
1022	return
1023}
1024
1025// An OpenIdConnect identity, for example an IBMid, can be linked or mapped to one or more individual SoftLayer users, but no more than one per account. If an OpenIdConnect identity is mapped to multiple accounts in this manner, one such account should be identified as the default account for that identity. Invoke this only on IBMid-authenticated users.
1026func (r User_Customer) SetDefaultAccount(providerType *string, accountId *int) (resp datatypes.Account, err error) {
1027	params := []interface{}{
1028		providerType,
1029		accountId,
1030	}
1031	err = r.Session.DoRequest("SoftLayer_User_Customer", "setDefaultAccount", params, &r.Options, &resp)
1032	return
1033}
1034
1035// As master user, calling this api for the IBMid provider type when there is an existing IBMid for the email on the SL account will silently (without sending an invitation email) create a link for the IBMid. NOTE: If the SoftLayer user is already linked to IBMid, this call will fail. If the IBMid specified by the email of this user, is already used in a link to another user in this account, this call will fail. If there is already an open invitation from this SoftLayer user to this or any IBMid, this call will fail. If there is already an open invitation from some other SoftLayer user in this account to this IBMid, then this call will fail.
1036func (r User_Customer) SilentlyMigrateUserOpenIdConnect(providerType *string) (resp bool, err error) {
1037	params := []interface{}{
1038		providerType,
1039	}
1040	err = r.Session.DoRequest("SoftLayer_User_Customer", "silentlyMigrateUserOpenIdConnect", params, &r.Options, &resp)
1041	return
1042}
1043
1044// This method is deprecated! SoftLayer Community Forums no longer exist, therefore, this method will return false. In the future, this method will be completely removed.
1045//
1046// Update a user's password on the SoftLayer community forums. As with portal passwords, user forum passwords must match the following restrictions. Forum passwords must...
1047// * ...be over eight characters long.
1048// * ...be under twenty characters long.
1049// * ...contain at least one uppercase letter
1050// * ...contain at least one lowercase letter
1051// * ...contain at least one number
1052// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ + =
1053// * ...not match your username
1054// * ...not match your portal password
1055// Finally, users can only update their own password.
1056func (r User_Customer) UpdateForumPassword(password *string) (err error) {
1057	var resp datatypes.Void
1058	params := []interface{}{
1059		password,
1060	}
1061	err = r.Session.DoRequest("SoftLayer_User_Customer", "updateForumPassword", params, &r.Options, &resp)
1062	return
1063}
1064
1065// Update the active status for a notification that the user is subscribed to. A notification along with an active flag can be supplied to update the active status for a particular notification subscription.
1066func (r User_Customer) UpdateNotificationSubscriber(notificationKeyName *string, active *int) (resp bool, err error) {
1067	params := []interface{}{
1068		notificationKeyName,
1069		active,
1070	}
1071	err = r.Session.DoRequest("SoftLayer_User_Customer", "updateNotificationSubscriber", params, &r.Options, &resp)
1072	return
1073}
1074
1075// Update a user's login security questions and answers on the SoftLayer customer portal. These questions and answers are used to optionally log into the SoftLayer customer portal using two-factor authentication. Each user must have three distinct questions set with a unique answer for each question, and each answer may only contain alphanumeric or the . , - _ ( ) [ ] : ; > < characters. Existing user security questions and answers are deleted before new ones are set, and users may only update their own security questions and answers.
1076func (r User_Customer) UpdateSecurityAnswers(questions []datatypes.User_Security_Question, answers []string) (resp bool, err error) {
1077	params := []interface{}{
1078		questions,
1079		answers,
1080	}
1081	err = r.Session.DoRequest("SoftLayer_User_Customer", "updateSecurityAnswers", params, &r.Options, &resp)
1082	return
1083}
1084
1085// Update a delivery method for a notification that the user is subscribed to. A delivery method keyName along with an active flag can be supplied to update the active status of the delivery methods for the specified notification. Available delivery methods - 'EMAIL'. Available notifications - 'PLANNED_MAINTENANCE', 'UNPLANNED_INCIDENT'.
1086func (r User_Customer) UpdateSubscriberDeliveryMethod(notificationKeyName *string, deliveryMethodKeyNames []string, active *int) (resp bool, err error) {
1087	params := []interface{}{
1088		notificationKeyName,
1089		deliveryMethodKeyNames,
1090		active,
1091	}
1092	err = r.Session.DoRequest("SoftLayer_User_Customer", "updateSubscriberDeliveryMethod", params, &r.Options, &resp)
1093	return
1094}
1095
1096// Update a user's VPN password on the SoftLayer customer portal. As with portal passwords, VPN passwords must match the following restrictions. VPN passwords must...
1097// * ...be over eight characters long.
1098// * ...be under twenty characters long.
1099// * ...contain at least one uppercase letter
1100// * ...contain at least one lowercase letter
1101// * ...contain at least one number
1102// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ =
1103// * ...not match your username
1104// * ...not match your forum password
1105// Finally, users can only update their own VPN password. An account's master user can update any of their account users' VPN passwords.
1106func (r User_Customer) UpdateVpnPassword(password *string) (resp bool, err error) {
1107	params := []interface{}{
1108		password,
1109	}
1110	err = r.Session.DoRequest("SoftLayer_User_Customer", "updateVpnPassword", params, &r.Options, &resp)
1111	return
1112}
1113
1114// Always call this function to enable changes when manually configuring VPN subnet access.
1115func (r User_Customer) UpdateVpnUser() (resp bool, err error) {
1116	err = r.Session.DoRequest("SoftLayer_User_Customer", "updateVpnUser", nil, &r.Options, &resp)
1117	return
1118}
1119
1120// no documentation yet
1121func (r User_Customer) ValidateAuthenticationToken(authenticationToken *datatypes.Container_User_Authentication_Token) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
1122	params := []interface{}{
1123		authenticationToken,
1124	}
1125	err = r.Session.DoRequest("SoftLayer_User_Customer", "validateAuthenticationToken", params, &r.Options, &resp)
1126	return
1127}
1128
1129// The SoftLayer_User_Customer_ApiAuthentication type contains user's authentication key(s).
1130type User_Customer_ApiAuthentication struct {
1131	Session *session.Session
1132	Options sl.Options
1133}
1134
1135// GetUserCustomerApiAuthenticationService returns an instance of the User_Customer_ApiAuthentication SoftLayer service
1136func GetUserCustomerApiAuthenticationService(sess *session.Session) User_Customer_ApiAuthentication {
1137	return User_Customer_ApiAuthentication{Session: sess}
1138}
1139
1140func (r User_Customer_ApiAuthentication) Id(id int) User_Customer_ApiAuthentication {
1141	r.Options.Id = &id
1142	return r
1143}
1144
1145func (r User_Customer_ApiAuthentication) Mask(mask string) User_Customer_ApiAuthentication {
1146	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1147		mask = fmt.Sprintf("mask[%s]", mask)
1148	}
1149
1150	r.Options.Mask = mask
1151	return r
1152}
1153
1154func (r User_Customer_ApiAuthentication) Filter(filter string) User_Customer_ApiAuthentication {
1155	r.Options.Filter = filter
1156	return r
1157}
1158
1159func (r User_Customer_ApiAuthentication) Limit(limit int) User_Customer_ApiAuthentication {
1160	r.Options.Limit = &limit
1161	return r
1162}
1163
1164func (r User_Customer_ApiAuthentication) Offset(offset int) User_Customer_ApiAuthentication {
1165	r.Options.Offset = &offset
1166	return r
1167}
1168
1169// no documentation yet
1170func (r User_Customer_ApiAuthentication) EditObject(templateObject *datatypes.User_Customer_ApiAuthentication) (resp datatypes.User_Customer_ApiAuthentication, err error) {
1171	params := []interface{}{
1172		templateObject,
1173	}
1174	err = r.Session.DoRequest("SoftLayer_User_Customer_ApiAuthentication", "editObject", params, &r.Options, &resp)
1175	return
1176}
1177
1178// getObject retrieves the SoftLayer_User_Customer_ApiAuthentication object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_User_Customer_ApiAuthentication service.
1179func (r User_Customer_ApiAuthentication) GetObject() (resp datatypes.User_Customer_ApiAuthentication, err error) {
1180	err = r.Session.DoRequest("SoftLayer_User_Customer_ApiAuthentication", "getObject", nil, &r.Options, &resp)
1181	return
1182}
1183
1184// Retrieve The user who owns the api authentication key.
1185func (r User_Customer_ApiAuthentication) GetUser() (resp datatypes.User_Customer, err error) {
1186	err = r.Session.DoRequest("SoftLayer_User_Customer_ApiAuthentication", "getUser", nil, &r.Options, &resp)
1187	return
1188}
1189
1190// Each SoftLayer portal account is assigned a series of permissions that determine what access the user has to functions within the SoftLayer customer portal. This status is reflected in the SoftLayer_User_Customer_Status data type. Permissions differ from user status in that user status applies globally to the portal while user permissions are applied to specific portal functions.
1191type User_Customer_CustomerPermission_Permission struct {
1192	Session *session.Session
1193	Options sl.Options
1194}
1195
1196// GetUserCustomerCustomerPermissionPermissionService returns an instance of the User_Customer_CustomerPermission_Permission SoftLayer service
1197func GetUserCustomerCustomerPermissionPermissionService(sess *session.Session) User_Customer_CustomerPermission_Permission {
1198	return User_Customer_CustomerPermission_Permission{Session: sess}
1199}
1200
1201func (r User_Customer_CustomerPermission_Permission) Id(id int) User_Customer_CustomerPermission_Permission {
1202	r.Options.Id = &id
1203	return r
1204}
1205
1206func (r User_Customer_CustomerPermission_Permission) Mask(mask string) User_Customer_CustomerPermission_Permission {
1207	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1208		mask = fmt.Sprintf("mask[%s]", mask)
1209	}
1210
1211	r.Options.Mask = mask
1212	return r
1213}
1214
1215func (r User_Customer_CustomerPermission_Permission) Filter(filter string) User_Customer_CustomerPermission_Permission {
1216	r.Options.Filter = filter
1217	return r
1218}
1219
1220func (r User_Customer_CustomerPermission_Permission) Limit(limit int) User_Customer_CustomerPermission_Permission {
1221	r.Options.Limit = &limit
1222	return r
1223}
1224
1225func (r User_Customer_CustomerPermission_Permission) Offset(offset int) User_Customer_CustomerPermission_Permission {
1226	r.Options.Offset = &offset
1227	return r
1228}
1229
1230// Retrieve all available permissions.
1231func (r User_Customer_CustomerPermission_Permission) GetAllObjects() (resp []datatypes.User_Customer_CustomerPermission_Permission, err error) {
1232	err = r.Session.DoRequest("SoftLayer_User_Customer_CustomerPermission_Permission", "getAllObjects", nil, &r.Options, &resp)
1233	return
1234}
1235
1236// getObject retrieves the SoftLayer_User_Customer_CustomerPermission_Permission object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_User_Customer_CustomerPermission_Permission service.
1237func (r User_Customer_CustomerPermission_Permission) GetObject() (resp datatypes.User_Customer_CustomerPermission_Permission, err error) {
1238	err = r.Session.DoRequest("SoftLayer_User_Customer_CustomerPermission_Permission", "getObject", nil, &r.Options, &resp)
1239	return
1240}
1241
1242// The SoftLayer_User_Customer_External_Binding data type contains general information for a single external binding.  This includes the 3rd party vendor, type of binding, and a unique identifier and password that is used to authenticate against the 3rd party service.
1243type User_Customer_External_Binding struct {
1244	Session *session.Session
1245	Options sl.Options
1246}
1247
1248// GetUserCustomerExternalBindingService returns an instance of the User_Customer_External_Binding SoftLayer service
1249func GetUserCustomerExternalBindingService(sess *session.Session) User_Customer_External_Binding {
1250	return User_Customer_External_Binding{Session: sess}
1251}
1252
1253func (r User_Customer_External_Binding) Id(id int) User_Customer_External_Binding {
1254	r.Options.Id = &id
1255	return r
1256}
1257
1258func (r User_Customer_External_Binding) Mask(mask string) User_Customer_External_Binding {
1259	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1260		mask = fmt.Sprintf("mask[%s]", mask)
1261	}
1262
1263	r.Options.Mask = mask
1264	return r
1265}
1266
1267func (r User_Customer_External_Binding) Filter(filter string) User_Customer_External_Binding {
1268	r.Options.Filter = filter
1269	return r
1270}
1271
1272func (r User_Customer_External_Binding) Limit(limit int) User_Customer_External_Binding {
1273	r.Options.Limit = &limit
1274	return r
1275}
1276
1277func (r User_Customer_External_Binding) Offset(offset int) User_Customer_External_Binding {
1278	r.Options.Offset = &offset
1279	return r
1280}
1281
1282// Delete an external authentication binding.  If the external binding currently has an active billing item associated you will be prevented from deleting the binding.  The alternative method to remove an external authentication binding is to use the service cancellation form.
1283func (r User_Customer_External_Binding) DeleteObject() (resp bool, err error) {
1284	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "deleteObject", nil, &r.Options, &resp)
1285	return
1286}
1287
1288// Disabling an external binding will allow you to keep the external binding on your SoftLayer account, but will not require you to authentication with our trusted 2 form factor vendor when logging into the SoftLayer customer portal.
1289//
1290// You may supply one of the following reason when you disable an external binding:
1291// *Unspecified
1292// *TemporarilyUnavailable
1293// *Lost
1294// *Stolen
1295func (r User_Customer_External_Binding) Disable(reason *string) (resp bool, err error) {
1296	params := []interface{}{
1297		reason,
1298	}
1299	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "disable", params, &r.Options, &resp)
1300	return
1301}
1302
1303// Enabling an external binding will activate the binding on your account and require you to authenticate with our trusted 3rd party 2 form factor vendor when logging into the SoftLayer customer portal.
1304//
1305// Please note that API access will be disabled for users that have an active external binding.
1306func (r User_Customer_External_Binding) Enable() (resp bool, err error) {
1307	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "enable", nil, &r.Options, &resp)
1308	return
1309}
1310
1311// Retrieve Attributes of an external authentication binding.
1312func (r User_Customer_External_Binding) GetAttributes() (resp []datatypes.User_External_Binding_Attribute, err error) {
1313	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getAttributes", nil, &r.Options, &resp)
1314	return
1315}
1316
1317// Retrieve Information regarding the billing item for external authentication.
1318func (r User_Customer_External_Binding) GetBillingItem() (resp datatypes.Billing_Item, err error) {
1319	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getBillingItem", nil, &r.Options, &resp)
1320	return
1321}
1322
1323// Retrieve An optional note for identifying the external binding.
1324func (r User_Customer_External_Binding) GetNote() (resp string, err error) {
1325	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getNote", nil, &r.Options, &resp)
1326	return
1327}
1328
1329// no documentation yet
1330func (r User_Customer_External_Binding) GetObject() (resp datatypes.User_Customer_External_Binding, err error) {
1331	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getObject", nil, &r.Options, &resp)
1332	return
1333}
1334
1335// Retrieve The type of external authentication binding.
1336func (r User_Customer_External_Binding) GetType() (resp datatypes.User_External_Binding_Type, err error) {
1337	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getType", nil, &r.Options, &resp)
1338	return
1339}
1340
1341// Retrieve The SoftLayer user that the external authentication binding belongs to.
1342func (r User_Customer_External_Binding) GetUser() (resp datatypes.User_Customer, err error) {
1343	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getUser", nil, &r.Options, &resp)
1344	return
1345}
1346
1347// Retrieve The vendor of an external authentication binding.
1348func (r User_Customer_External_Binding) GetVendor() (resp datatypes.User_External_Binding_Vendor, err error) {
1349	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getVendor", nil, &r.Options, &resp)
1350	return
1351}
1352
1353// Update the note of an external binding.  The note is an optional property that is used to store information about a binding.
1354func (r User_Customer_External_Binding) UpdateNote(text *string) (resp bool, err error) {
1355	params := []interface{}{
1356		text,
1357	}
1358	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "updateNote", params, &r.Options, &resp)
1359	return
1360}
1361
1362// The SoftLayer_User_Customer_External_Binding_Phone data type contains information about an external binding that uses a phone call, SMS or mobile app for 2 form factor authentication. The external binding information is used when a SoftLayer customer logs into the SoftLayer customer portal or VPN to authenticate them against a trusted 3rd party, in this case using a mobile phone, mobile phone application or land-line phone.
1363//
1364// SoftLayer users with an active external binding will be prohibited from using the API for security reasons.
1365type User_Customer_External_Binding_Phone struct {
1366	Session *session.Session
1367	Options sl.Options
1368}
1369
1370// GetUserCustomerExternalBindingPhoneService returns an instance of the User_Customer_External_Binding_Phone SoftLayer service
1371func GetUserCustomerExternalBindingPhoneService(sess *session.Session) User_Customer_External_Binding_Phone {
1372	return User_Customer_External_Binding_Phone{Session: sess}
1373}
1374
1375func (r User_Customer_External_Binding_Phone) Id(id int) User_Customer_External_Binding_Phone {
1376	r.Options.Id = &id
1377	return r
1378}
1379
1380func (r User_Customer_External_Binding_Phone) Mask(mask string) User_Customer_External_Binding_Phone {
1381	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1382		mask = fmt.Sprintf("mask[%s]", mask)
1383	}
1384
1385	r.Options.Mask = mask
1386	return r
1387}
1388
1389func (r User_Customer_External_Binding_Phone) Filter(filter string) User_Customer_External_Binding_Phone {
1390	r.Options.Filter = filter
1391	return r
1392}
1393
1394func (r User_Customer_External_Binding_Phone) Limit(limit int) User_Customer_External_Binding_Phone {
1395	r.Options.Limit = &limit
1396	return r
1397}
1398
1399func (r User_Customer_External_Binding_Phone) Offset(offset int) User_Customer_External_Binding_Phone {
1400	r.Options.Offset = &offset
1401	return r
1402}
1403
1404// Return a phone validation result.
1405func (r User_Customer_External_Binding_Phone) CheckPhoneValidationResult(token *string) (resp bool, err error) {
1406	params := []interface{}{
1407		token,
1408	}
1409	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "checkPhoneValidationResult", params, &r.Options, &resp)
1410	return
1411}
1412
1413// Delete an external authentication binding.  If the external binding currently has an active billing item associated you will be prevented from deleting the binding.  The alternative method to remove an external authentication binding is to use the service cancellation form.
1414func (r User_Customer_External_Binding_Phone) DeleteObject() (resp bool, err error) {
1415	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "deleteObject", nil, &r.Options, &resp)
1416	return
1417}
1418
1419// Disabling an external binding will allow you to keep the external binding on your SoftLayer account, but will not require you to authentication with our trusted 2 form factor vendor when logging into the SoftLayer customer portal.
1420//
1421// You may supply one of the following reason when you disable an external binding:
1422// *Unspecified
1423// *TemporarilyUnavailable
1424// *Lost
1425// *Stolen
1426func (r User_Customer_External_Binding_Phone) Disable(reason *string) (resp bool, err error) {
1427	params := []interface{}{
1428		reason,
1429	}
1430	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "disable", params, &r.Options, &resp)
1431	return
1432}
1433
1434// Enabling an external binding will activate the binding on your account and require you to authenticate with our trusted 3rd party 2 form factor vendor when logging into the SoftLayer customer portal.
1435//
1436// Please note that API access will be disabled for users that have an active external binding.
1437func (r User_Customer_External_Binding_Phone) Enable() (resp bool, err error) {
1438	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "enable", nil, &r.Options, &resp)
1439	return
1440}
1441
1442// This service returns key names of all available authentication modes. See [[SoftLayer_Container_User_Customer_External_Binding_Phone_Mode|authentication mode]] container for details.
1443func (r User_Customer_External_Binding_Phone) GetAllAuthenticationModes() (resp []string, err error) {
1444	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getAllAuthenticationModes", nil, &r.Options, &resp)
1445	return
1446}
1447
1448// This service returns key names of all available authentication modes. Refer to [[SoftLayer_User_Customer_External_Binding_Phone::getAllAuthenticationModes|getAllAuthenticationModes]] to retrieve authentication mode key names.
1449func (r User_Customer_External_Binding_Phone) GetAllAuthenticationPinModes(authenticationModeKeyName *string) (resp []string, err error) {
1450	params := []interface{}{
1451		authenticationModeKeyName,
1452	}
1453	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getAllAuthenticationPinModes", params, &r.Options, &resp)
1454	return
1455}
1456
1457// Retrieve Attributes of an external authentication binding.
1458func (r User_Customer_External_Binding_Phone) GetAttributes() (resp []datatypes.User_External_Binding_Attribute, err error) {
1459	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getAttributes", nil, &r.Options, &resp)
1460	return
1461}
1462
1463// no documentation yet
1464func (r User_Customer_External_Binding_Phone) GetAuthenticationMode() (resp datatypes.Container_User_Customer_External_Binding_Phone_Mode, err error) {
1465	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getAuthenticationMode", nil, &r.Options, &resp)
1466	return
1467}
1468
1469// Retrieve Information regarding the billing item for external authentication.
1470func (r User_Customer_External_Binding_Phone) GetBillingItem() (resp datatypes.Billing_Item, err error) {
1471	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getBillingItem", nil, &r.Options, &resp)
1472	return
1473}
1474
1475// Retrieve The current external binding status. It can be "ACTIVE" or "BLOCKED".
1476func (r User_Customer_External_Binding_Phone) GetBindingStatus() (resp string, err error) {
1477	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getBindingStatus", nil, &r.Options, &resp)
1478	return
1479}
1480
1481// Retrieve An optional note for identifying the external binding.
1482func (r User_Customer_External_Binding_Phone) GetNote() (resp string, err error) {
1483	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getNote", nil, &r.Options, &resp)
1484	return
1485}
1486
1487// no documentation yet
1488func (r User_Customer_External_Binding_Phone) GetObject() (resp datatypes.User_Customer_External_Binding_Phone, err error) {
1489	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getObject", nil, &r.Options, &resp)
1490	return
1491}
1492
1493// Some vendor's mobile app requires an activation code. Use this method to get an activation data.
1494func (r User_Customer_External_Binding_Phone) GetPhoneAppActivationCode() (resp []datatypes.User_External_Binding_Attribute, err error) {
1495	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getPhoneAppActivationCode", nil, &r.Options, &resp)
1496	return
1497}
1498
1499// no documentation yet
1500func (r User_Customer_External_Binding_Phone) GetPhoneData() (resp []datatypes.Container_User_Data_Phone, err error) {
1501	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getPhoneData", nil, &r.Options, &resp)
1502	return
1503}
1504
1505// Retrieve
1506func (r User_Customer_External_Binding_Phone) GetPinLength() (resp string, err error) {
1507	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getPinLength", nil, &r.Options, &resp)
1508	return
1509}
1510
1511// Retrieve The type of external authentication binding.
1512func (r User_Customer_External_Binding_Phone) GetType() (resp datatypes.User_External_Binding_Type, err error) {
1513	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getType", nil, &r.Options, &resp)
1514	return
1515}
1516
1517// Retrieve The SoftLayer user that the external authentication binding belongs to.
1518func (r User_Customer_External_Binding_Phone) GetUser() (resp datatypes.User_Customer, err error) {
1519	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getUser", nil, &r.Options, &resp)
1520	return
1521}
1522
1523// Retrieve The vendor of an external authentication binding.
1524func (r User_Customer_External_Binding_Phone) GetVendor() (resp datatypes.User_External_Binding_Vendor, err error) {
1525	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getVendor", nil, &r.Options, &resp)
1526	return
1527}
1528
1529// Initiates a phone validation requests and returns a unique token. Use [[SoftLayer_User_Customer_External_Binding_Phone::checkPhoneValidationResult|checkPhoneValidationResult]] to find the phone validation result.
1530func (r User_Customer_External_Binding_Phone) RequestPhoneValidation(phoneData *datatypes.Container_User_Data_Phone) (resp string, err error) {
1531	params := []interface{}{
1532		phoneData,
1533	}
1534	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "requestPhoneValidation", params, &r.Options, &resp)
1535	return
1536}
1537
1538// This service allow you to change your phone authentication mode. See [[SoftLayer_Container_User_Customer_External_Binding_Phone_Mode|authentication mode]] container for available modes.
1539func (r User_Customer_External_Binding_Phone) UpdateAuthenticationMode(mode *datatypes.Container_User_Customer_External_Binding_Phone_Mode) (resp bool, err error) {
1540	params := []interface{}{
1541		mode,
1542	}
1543	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "updateAuthenticationMode", params, &r.Options, &resp)
1544	return
1545}
1546
1547// Update the note of an external binding.  The note is an optional property that is used to store information about a binding.
1548func (r User_Customer_External_Binding_Phone) UpdateNote(text *string) (resp bool, err error) {
1549	params := []interface{}{
1550		text,
1551	}
1552	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "updateNote", params, &r.Options, &resp)
1553	return
1554}
1555
1556// Phone external binding supports a primary and a backup phone number. You can use this method to update your phone number used for the phone authentication. You can provide an array of [[SoftLayer_Container_User_Data_Phone|User Phone]] objects. You have to mark one as the primary phone number by setting "phoneType" to "PRIMARY".
1557//
1558//
1559// *countryCode: Country code number for the phone number. Default: 1 (United States & Canada +1)
1560// *phone: Phone number that 2 Form Factor system will call or text for user authentication.
1561// The phone number format must match the format selected in the Country Code.
1562// *extension: Specify the extension that will be dialed after the call is answered. Digits, commas, *, and #
1563// are allowed.  Commas can be used for a one second pause to navigate phone system menus.
1564// *phoneType: Specify the primary and backup phone number by setting this value to "PRIMARY" or "BACKUP".
1565// If omitted, it will be considered to be the primary phone number. If you are passing two Phone objects, you must specify the phone type of each phone number.
1566//
1567//
1568func (r User_Customer_External_Binding_Phone) UpdatePhone(phoneData []datatypes.Container_User_Data_Phone) (resp bool, err error) {
1569	params := []interface{}{
1570		phoneData,
1571	}
1572	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "updatePhone", params, &r.Options, &resp)
1573	return
1574}
1575
1576// The SoftLayer_User_Customer_External_Binding_Totp data type contains information about a single time-based one time password external binding.  The external binding information is used when a SoftLayer customer logs into the SoftLayer customer portal to authenticate them.
1577//
1578// The information provided by this external binding data type includes:
1579// * The type of credential
1580// * The current state of the credential
1581// ** Active
1582// ** Inactive
1583//
1584//
1585// SoftLayer users with an active external binding will be prohibited from using the API for security reasons.
1586type User_Customer_External_Binding_Totp struct {
1587	Session *session.Session
1588	Options sl.Options
1589}
1590
1591// GetUserCustomerExternalBindingTotpService returns an instance of the User_Customer_External_Binding_Totp SoftLayer service
1592func GetUserCustomerExternalBindingTotpService(sess *session.Session) User_Customer_External_Binding_Totp {
1593	return User_Customer_External_Binding_Totp{Session: sess}
1594}
1595
1596func (r User_Customer_External_Binding_Totp) Id(id int) User_Customer_External_Binding_Totp {
1597	r.Options.Id = &id
1598	return r
1599}
1600
1601func (r User_Customer_External_Binding_Totp) Mask(mask string) User_Customer_External_Binding_Totp {
1602	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1603		mask = fmt.Sprintf("mask[%s]", mask)
1604	}
1605
1606	r.Options.Mask = mask
1607	return r
1608}
1609
1610func (r User_Customer_External_Binding_Totp) Filter(filter string) User_Customer_External_Binding_Totp {
1611	r.Options.Filter = filter
1612	return r
1613}
1614
1615func (r User_Customer_External_Binding_Totp) Limit(limit int) User_Customer_External_Binding_Totp {
1616	r.Options.Limit = &limit
1617	return r
1618}
1619
1620func (r User_Customer_External_Binding_Totp) Offset(offset int) User_Customer_External_Binding_Totp {
1621	r.Options.Offset = &offset
1622	return r
1623}
1624
1625// no documentation yet
1626func (r User_Customer_External_Binding_Totp) Activate() (resp bool, err error) {
1627	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "activate", nil, &r.Options, &resp)
1628	return
1629}
1630
1631// no documentation yet
1632func (r User_Customer_External_Binding_Totp) Deactivate() (resp bool, err error) {
1633	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "deactivate", nil, &r.Options, &resp)
1634	return
1635}
1636
1637// Delete an external authentication binding.  If the external binding currently has an active billing item associated you will be prevented from deleting the binding.  The alternative method to remove an external authentication binding is to use the service cancellation form.
1638func (r User_Customer_External_Binding_Totp) DeleteObject() (resp bool, err error) {
1639	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "deleteObject", nil, &r.Options, &resp)
1640	return
1641}
1642
1643// Disabling an external binding will allow you to keep the external binding on your SoftLayer account, but will not require you to authentication with our trusted 2 form factor vendor when logging into the SoftLayer customer portal.
1644//
1645// You may supply one of the following reason when you disable an external binding:
1646// *Unspecified
1647// *TemporarilyUnavailable
1648// *Lost
1649// *Stolen
1650func (r User_Customer_External_Binding_Totp) Disable(reason *string) (resp bool, err error) {
1651	params := []interface{}{
1652		reason,
1653	}
1654	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "disable", params, &r.Options, &resp)
1655	return
1656}
1657
1658// Enabling an external binding will activate the binding on your account and require you to authenticate with our trusted 3rd party 2 form factor vendor when logging into the SoftLayer customer portal.
1659//
1660// Please note that API access will be disabled for users that have an active external binding.
1661func (r User_Customer_External_Binding_Totp) Enable() (resp bool, err error) {
1662	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "enable", nil, &r.Options, &resp)
1663	return
1664}
1665
1666// no documentation yet
1667func (r User_Customer_External_Binding_Totp) GenerateSecretKey() (resp string, err error) {
1668	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "generateSecretKey", nil, &r.Options, &resp)
1669	return
1670}
1671
1672// Retrieve Attributes of an external authentication binding.
1673func (r User_Customer_External_Binding_Totp) GetAttributes() (resp []datatypes.User_External_Binding_Attribute, err error) {
1674	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getAttributes", nil, &r.Options, &resp)
1675	return
1676}
1677
1678// Retrieve Information regarding the billing item for external authentication.
1679func (r User_Customer_External_Binding_Totp) GetBillingItem() (resp datatypes.Billing_Item, err error) {
1680	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getBillingItem", nil, &r.Options, &resp)
1681	return
1682}
1683
1684// Retrieve An optional note for identifying the external binding.
1685func (r User_Customer_External_Binding_Totp) GetNote() (resp string, err error) {
1686	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getNote", nil, &r.Options, &resp)
1687	return
1688}
1689
1690// no documentation yet
1691func (r User_Customer_External_Binding_Totp) GetObject() (resp datatypes.User_Customer_External_Binding_Totp, err error) {
1692	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getObject", nil, &r.Options, &resp)
1693	return
1694}
1695
1696// Retrieve The type of external authentication binding.
1697func (r User_Customer_External_Binding_Totp) GetType() (resp datatypes.User_External_Binding_Type, err error) {
1698	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getType", nil, &r.Options, &resp)
1699	return
1700}
1701
1702// Retrieve The SoftLayer user that the external authentication binding belongs to.
1703func (r User_Customer_External_Binding_Totp) GetUser() (resp datatypes.User_Customer, err error) {
1704	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getUser", nil, &r.Options, &resp)
1705	return
1706}
1707
1708// Retrieve The vendor of an external authentication binding.
1709func (r User_Customer_External_Binding_Totp) GetVendor() (resp datatypes.User_External_Binding_Vendor, err error) {
1710	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getVendor", nil, &r.Options, &resp)
1711	return
1712}
1713
1714// Update the note of an external binding.  The note is an optional property that is used to store information about a binding.
1715func (r User_Customer_External_Binding_Totp) UpdateNote(text *string) (resp bool, err error) {
1716	params := []interface{}{
1717		text,
1718	}
1719	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "updateNote", params, &r.Options, &resp)
1720	return
1721}
1722
1723// The SoftLayer_User_Customer_External_Binding_Vendor data type contains information for a single external binding vendor.  This information includes a user friendly vendor name, a unique version of the vendor name, and a unique internal identifier that can be used when creating a new external binding.
1724type User_Customer_External_Binding_Vendor struct {
1725	Session *session.Session
1726	Options sl.Options
1727}
1728
1729// GetUserCustomerExternalBindingVendorService returns an instance of the User_Customer_External_Binding_Vendor SoftLayer service
1730func GetUserCustomerExternalBindingVendorService(sess *session.Session) User_Customer_External_Binding_Vendor {
1731	return User_Customer_External_Binding_Vendor{Session: sess}
1732}
1733
1734func (r User_Customer_External_Binding_Vendor) Id(id int) User_Customer_External_Binding_Vendor {
1735	r.Options.Id = &id
1736	return r
1737}
1738
1739func (r User_Customer_External_Binding_Vendor) Mask(mask string) User_Customer_External_Binding_Vendor {
1740	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1741		mask = fmt.Sprintf("mask[%s]", mask)
1742	}
1743
1744	r.Options.Mask = mask
1745	return r
1746}
1747
1748func (r User_Customer_External_Binding_Vendor) Filter(filter string) User_Customer_External_Binding_Vendor {
1749	r.Options.Filter = filter
1750	return r
1751}
1752
1753func (r User_Customer_External_Binding_Vendor) Limit(limit int) User_Customer_External_Binding_Vendor {
1754	r.Options.Limit = &limit
1755	return r
1756}
1757
1758func (r User_Customer_External_Binding_Vendor) Offset(offset int) User_Customer_External_Binding_Vendor {
1759	r.Options.Offset = &offset
1760	return r
1761}
1762
1763// getAllObjects() will return a list of the available external binding vendors that SoftLayer supports.  Use this list to select the appropriate vendor when creating a new external binding.
1764func (r User_Customer_External_Binding_Vendor) GetAllObjects() (resp []datatypes.User_External_Binding_Vendor, err error) {
1765	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Vendor", "getAllObjects", nil, &r.Options, &resp)
1766	return
1767}
1768
1769// no documentation yet
1770func (r User_Customer_External_Binding_Vendor) GetObject() (resp datatypes.User_Customer_External_Binding_Vendor, err error) {
1771	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Vendor", "getObject", nil, &r.Options, &resp)
1772	return
1773}
1774
1775// The SoftLayer_User_Customer_External_Binding_Verisign data type contains information about a single VeriSign external binding.  The external binding information is used when a SoftLayer customer logs into the SoftLayer customer portal to authenticate them against a 3rd party, in this case VeriSign.
1776//
1777// The information provided by the VeriSign external binding data type includes:
1778// * The type of credential
1779// * The current state of the credential
1780// ** Enabled
1781// ** Disabled
1782// ** Locked
1783// * The credential's expiration date
1784// * The last time the credential was updated
1785//
1786//
1787// SoftLayer users with an active external binding will be prohibited from using the API for security reasons.
1788type User_Customer_External_Binding_Verisign struct {
1789	Session *session.Session
1790	Options sl.Options
1791}
1792
1793// GetUserCustomerExternalBindingVerisignService returns an instance of the User_Customer_External_Binding_Verisign SoftLayer service
1794func GetUserCustomerExternalBindingVerisignService(sess *session.Session) User_Customer_External_Binding_Verisign {
1795	return User_Customer_External_Binding_Verisign{Session: sess}
1796}
1797
1798func (r User_Customer_External_Binding_Verisign) Id(id int) User_Customer_External_Binding_Verisign {
1799	r.Options.Id = &id
1800	return r
1801}
1802
1803func (r User_Customer_External_Binding_Verisign) Mask(mask string) User_Customer_External_Binding_Verisign {
1804	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1805		mask = fmt.Sprintf("mask[%s]", mask)
1806	}
1807
1808	r.Options.Mask = mask
1809	return r
1810}
1811
1812func (r User_Customer_External_Binding_Verisign) Filter(filter string) User_Customer_External_Binding_Verisign {
1813	r.Options.Filter = filter
1814	return r
1815}
1816
1817func (r User_Customer_External_Binding_Verisign) Limit(limit int) User_Customer_External_Binding_Verisign {
1818	r.Options.Limit = &limit
1819	return r
1820}
1821
1822func (r User_Customer_External_Binding_Verisign) Offset(offset int) User_Customer_External_Binding_Verisign {
1823	r.Options.Offset = &offset
1824	return r
1825}
1826
1827// Delete a VeriSign external binding.  The only VeriSign external binding that can be deleted through this method is the free VeriSign external binding for the master user of a SoftLayer account. All other external bindings must be canceled using the SoftLayer service cancellation form.
1828//
1829// When a VeriSign external binding is deleted the credential is deactivated in VeriSign's system for use on the SoftLayer site and the $0 billing item associated with the free VeriSign external binding is cancelled.
1830func (r User_Customer_External_Binding_Verisign) DeleteObject() (resp bool, err error) {
1831	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "deleteObject", nil, &r.Options, &resp)
1832	return
1833}
1834
1835// Disabling an external binding will allow you to keep the external binding on your SoftLayer account, but will not require you to authentication with our trusted 2 form factor vendor when logging into the SoftLayer customer portal.
1836//
1837// You may supply one of the following reason when you disable an external binding:
1838// *Unspecified
1839// *TemporarilyUnavailable
1840// *Lost
1841// *Stolen
1842func (r User_Customer_External_Binding_Verisign) Disable(reason *string) (resp bool, err error) {
1843	params := []interface{}{
1844		reason,
1845	}
1846	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "disable", params, &r.Options, &resp)
1847	return
1848}
1849
1850// Enabling an external binding will activate the binding on your account and require you to authenticate with our trusted 3rd party 2 form factor vendor when logging into the SoftLayer customer portal.
1851//
1852// Please note that API access will be disabled for users that have an active external binding.
1853func (r User_Customer_External_Binding_Verisign) Enable() (resp bool, err error) {
1854	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "enable", nil, &r.Options, &resp)
1855	return
1856}
1857
1858// An activation code is required when provisioning a new mobile credential from Verisign.  This method will return the required activation code.
1859func (r User_Customer_External_Binding_Verisign) GetActivationCodeForMobileClient() (resp string, err error) {
1860	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getActivationCodeForMobileClient", nil, &r.Options, &resp)
1861	return
1862}
1863
1864// Retrieve Attributes of an external authentication binding.
1865func (r User_Customer_External_Binding_Verisign) GetAttributes() (resp []datatypes.User_External_Binding_Attribute, err error) {
1866	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getAttributes", nil, &r.Options, &resp)
1867	return
1868}
1869
1870// Retrieve Information regarding the billing item for external authentication.
1871func (r User_Customer_External_Binding_Verisign) GetBillingItem() (resp datatypes.Billing_Item, err error) {
1872	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getBillingItem", nil, &r.Options, &resp)
1873	return
1874}
1875
1876// Retrieve The date that a VeriSign credential expires.
1877func (r User_Customer_External_Binding_Verisign) GetCredentialExpirationDate() (resp string, err error) {
1878	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getCredentialExpirationDate", nil, &r.Options, &resp)
1879	return
1880}
1881
1882// Retrieve The last time a VeriSign credential was updated.
1883func (r User_Customer_External_Binding_Verisign) GetCredentialLastUpdateDate() (resp string, err error) {
1884	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getCredentialLastUpdateDate", nil, &r.Options, &resp)
1885	return
1886}
1887
1888// Retrieve The current state of a VeriSign credential. This can be 'Enabled', 'Disabled', or 'Locked'.
1889func (r User_Customer_External_Binding_Verisign) GetCredentialState() (resp string, err error) {
1890	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getCredentialState", nil, &r.Options, &resp)
1891	return
1892}
1893
1894// Retrieve The type of VeriSign credential. This can be either 'Hardware' or 'Software'.
1895func (r User_Customer_External_Binding_Verisign) GetCredentialType() (resp string, err error) {
1896	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getCredentialType", nil, &r.Options, &resp)
1897	return
1898}
1899
1900// Retrieve An optional note for identifying the external binding.
1901func (r User_Customer_External_Binding_Verisign) GetNote() (resp string, err error) {
1902	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getNote", nil, &r.Options, &resp)
1903	return
1904}
1905
1906// no documentation yet
1907func (r User_Customer_External_Binding_Verisign) GetObject() (resp datatypes.User_Customer_External_Binding_Verisign, err error) {
1908	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getObject", nil, &r.Options, &resp)
1909	return
1910}
1911
1912// Retrieve The type of external authentication binding.
1913func (r User_Customer_External_Binding_Verisign) GetType() (resp datatypes.User_External_Binding_Type, err error) {
1914	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getType", nil, &r.Options, &resp)
1915	return
1916}
1917
1918// Retrieve The SoftLayer user that the external authentication binding belongs to.
1919func (r User_Customer_External_Binding_Verisign) GetUser() (resp datatypes.User_Customer, err error) {
1920	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getUser", nil, &r.Options, &resp)
1921	return
1922}
1923
1924// Retrieve The vendor of an external authentication binding.
1925func (r User_Customer_External_Binding_Verisign) GetVendor() (resp datatypes.User_External_Binding_Vendor, err error) {
1926	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getVendor", nil, &r.Options, &resp)
1927	return
1928}
1929
1930// If a VeriSign credential becomes locked because of too many failed login attempts the unlock method can be used to unlock a VeriSign credential. As a security precaution a valid security code generated by the credential will be required before the credential is unlocked.
1931func (r User_Customer_External_Binding_Verisign) Unlock(securityCode *string) (resp bool, err error) {
1932	params := []interface{}{
1933		securityCode,
1934	}
1935	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "unlock", params, &r.Options, &resp)
1936	return
1937}
1938
1939// Update the note of an external binding.  The note is an optional property that is used to store information about a binding.
1940func (r User_Customer_External_Binding_Verisign) UpdateNote(text *string) (resp bool, err error) {
1941	params := []interface{}{
1942		text,
1943	}
1944	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "updateNote", params, &r.Options, &resp)
1945	return
1946}
1947
1948// Validate the user id and VeriSign credential id used to create an external authentication binding.
1949func (r User_Customer_External_Binding_Verisign) ValidateCredentialId(userId *int, externalId *string) (resp bool, err error) {
1950	params := []interface{}{
1951		userId,
1952		externalId,
1953	}
1954	err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "validateCredentialId", params, &r.Options, &resp)
1955	return
1956}
1957
1958// no documentation yet
1959type User_Customer_Invitation struct {
1960	Session *session.Session
1961	Options sl.Options
1962}
1963
1964// GetUserCustomerInvitationService returns an instance of the User_Customer_Invitation SoftLayer service
1965func GetUserCustomerInvitationService(sess *session.Session) User_Customer_Invitation {
1966	return User_Customer_Invitation{Session: sess}
1967}
1968
1969func (r User_Customer_Invitation) Id(id int) User_Customer_Invitation {
1970	r.Options.Id = &id
1971	return r
1972}
1973
1974func (r User_Customer_Invitation) Mask(mask string) User_Customer_Invitation {
1975	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
1976		mask = fmt.Sprintf("mask[%s]", mask)
1977	}
1978
1979	r.Options.Mask = mask
1980	return r
1981}
1982
1983func (r User_Customer_Invitation) Filter(filter string) User_Customer_Invitation {
1984	r.Options.Filter = filter
1985	return r
1986}
1987
1988func (r User_Customer_Invitation) Limit(limit int) User_Customer_Invitation {
1989	r.Options.Limit = &limit
1990	return r
1991}
1992
1993func (r User_Customer_Invitation) Offset(offset int) User_Customer_Invitation {
1994	r.Options.Offset = &offset
1995	return r
1996}
1997
1998// no documentation yet
1999func (r User_Customer_Invitation) GetObject() (resp datatypes.User_Customer_Invitation, err error) {
2000	err = r.Session.DoRequest("SoftLayer_User_Customer_Invitation", "getObject", nil, &r.Options, &resp)
2001	return
2002}
2003
2004// Retrieve
2005func (r User_Customer_Invitation) GetUser() (resp datatypes.User_Customer, err error) {
2006	err = r.Session.DoRequest("SoftLayer_User_Customer_Invitation", "getUser", nil, &r.Options, &resp)
2007	return
2008}
2009
2010// This class represents a mobile device belonging to a user.  The device can be a phone, tablet, or possibly even some Android based net books.  The purpose is to tie just enough info with the device and the user to enable push notifications through non-softlayer entities (Google, Apple, RIM).
2011type User_Customer_MobileDevice struct {
2012	Session *session.Session
2013	Options sl.Options
2014}
2015
2016// GetUserCustomerMobileDeviceService returns an instance of the User_Customer_MobileDevice SoftLayer service
2017func GetUserCustomerMobileDeviceService(sess *session.Session) User_Customer_MobileDevice {
2018	return User_Customer_MobileDevice{Session: sess}
2019}
2020
2021func (r User_Customer_MobileDevice) Id(id int) User_Customer_MobileDevice {
2022	r.Options.Id = &id
2023	return r
2024}
2025
2026func (r User_Customer_MobileDevice) Mask(mask string) User_Customer_MobileDevice {
2027	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
2028		mask = fmt.Sprintf("mask[%s]", mask)
2029	}
2030
2031	r.Options.Mask = mask
2032	return r
2033}
2034
2035func (r User_Customer_MobileDevice) Filter(filter string) User_Customer_MobileDevice {
2036	r.Options.Filter = filter
2037	return r
2038}
2039
2040func (r User_Customer_MobileDevice) Limit(limit int) User_Customer_MobileDevice {
2041	r.Options.Limit = &limit
2042	return r
2043}
2044
2045func (r User_Customer_MobileDevice) Offset(offset int) User_Customer_MobileDevice {
2046	r.Options.Offset = &offset
2047	return r
2048}
2049
2050// Create a new mobile device association for a user.
2051func (r User_Customer_MobileDevice) CreateObject(templateObject *datatypes.User_Customer_MobileDevice) (resp datatypes.User_Customer_MobileDevice, err error) {
2052	params := []interface{}{
2053		templateObject,
2054	}
2055	err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "createObject", params, &r.Options, &resp)
2056	return
2057}
2058
2059// Delete a mobile device association for a user.
2060func (r User_Customer_MobileDevice) DeleteObject() (resp bool, err error) {
2061	err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "deleteObject", nil, &r.Options, &resp)
2062	return
2063}
2064
2065// Edit the object by passing in a modified instance of the object
2066func (r User_Customer_MobileDevice) EditObject(templateObject *datatypes.User_Customer_MobileDevice) (resp bool, err error) {
2067	params := []interface{}{
2068		templateObject,
2069	}
2070	err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "editObject", params, &r.Options, &resp)
2071	return
2072}
2073
2074// Retrieve Notification subscriptions available to a mobile device.
2075func (r User_Customer_MobileDevice) GetAvailablePushNotificationSubscriptions() (resp []datatypes.Notification, err error) {
2076	err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "getAvailablePushNotificationSubscriptions", nil, &r.Options, &resp)
2077	return
2078}
2079
2080// Retrieve The user this mobile device belongs to.
2081func (r User_Customer_MobileDevice) GetCustomer() (resp datatypes.User_Customer, err error) {
2082	err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "getCustomer", nil, &r.Options, &resp)
2083	return
2084}
2085
2086// no documentation yet
2087func (r User_Customer_MobileDevice) GetObject() (resp datatypes.User_Customer_MobileDevice, err error) {
2088	err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "getObject", nil, &r.Options, &resp)
2089	return
2090}
2091
2092// Retrieve The operating system this device is using
2093func (r User_Customer_MobileDevice) GetOperatingSystem() (resp datatypes.User_Customer_MobileDevice_OperatingSystem, err error) {
2094	err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "getOperatingSystem", nil, &r.Options, &resp)
2095	return
2096}
2097
2098// Retrieve Notification subscriptions attached to a mobile device.
2099func (r User_Customer_MobileDevice) GetPushNotificationSubscriptions() (resp []datatypes.Notification_User_Subscriber, err error) {
2100	err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "getPushNotificationSubscriptions", nil, &r.Options, &resp)
2101	return
2102}
2103
2104// Retrieve The type of device this user is using
2105func (r User_Customer_MobileDevice) GetType() (resp datatypes.User_Customer_MobileDevice_Type, err error) {
2106	err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "getType", nil, &r.Options, &resp)
2107	return
2108}
2109
2110// This class represents the mobile operating system installed on a user's registered mobile device. It assists us when determining the how to get a push notification to the user.
2111type User_Customer_MobileDevice_OperatingSystem struct {
2112	Session *session.Session
2113	Options sl.Options
2114}
2115
2116// GetUserCustomerMobileDeviceOperatingSystemService returns an instance of the User_Customer_MobileDevice_OperatingSystem SoftLayer service
2117func GetUserCustomerMobileDeviceOperatingSystemService(sess *session.Session) User_Customer_MobileDevice_OperatingSystem {
2118	return User_Customer_MobileDevice_OperatingSystem{Session: sess}
2119}
2120
2121func (r User_Customer_MobileDevice_OperatingSystem) Id(id int) User_Customer_MobileDevice_OperatingSystem {
2122	r.Options.Id = &id
2123	return r
2124}
2125
2126func (r User_Customer_MobileDevice_OperatingSystem) Mask(mask string) User_Customer_MobileDevice_OperatingSystem {
2127	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
2128		mask = fmt.Sprintf("mask[%s]", mask)
2129	}
2130
2131	r.Options.Mask = mask
2132	return r
2133}
2134
2135func (r User_Customer_MobileDevice_OperatingSystem) Filter(filter string) User_Customer_MobileDevice_OperatingSystem {
2136	r.Options.Filter = filter
2137	return r
2138}
2139
2140func (r User_Customer_MobileDevice_OperatingSystem) Limit(limit int) User_Customer_MobileDevice_OperatingSystem {
2141	r.Options.Limit = &limit
2142	return r
2143}
2144
2145func (r User_Customer_MobileDevice_OperatingSystem) Offset(offset int) User_Customer_MobileDevice_OperatingSystem {
2146	r.Options.Offset = &offset
2147	return r
2148}
2149
2150// no documentation yet
2151func (r User_Customer_MobileDevice_OperatingSystem) GetAllObjects() (resp []datatypes.User_Customer_MobileDevice_OperatingSystem, err error) {
2152	err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice_OperatingSystem", "getAllObjects", nil, &r.Options, &resp)
2153	return
2154}
2155
2156// no documentation yet
2157func (r User_Customer_MobileDevice_OperatingSystem) GetObject() (resp datatypes.User_Customer_MobileDevice_OperatingSystem, err error) {
2158	err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice_OperatingSystem", "getObject", nil, &r.Options, &resp)
2159	return
2160}
2161
2162// Describes a supported class of mobile device. In this the word class is used in the context of classes of consumer electronic devices, the two most prominent examples being mobile phones and tablets.
2163type User_Customer_MobileDevice_Type struct {
2164	Session *session.Session
2165	Options sl.Options
2166}
2167
2168// GetUserCustomerMobileDeviceTypeService returns an instance of the User_Customer_MobileDevice_Type SoftLayer service
2169func GetUserCustomerMobileDeviceTypeService(sess *session.Session) User_Customer_MobileDevice_Type {
2170	return User_Customer_MobileDevice_Type{Session: sess}
2171}
2172
2173func (r User_Customer_MobileDevice_Type) Id(id int) User_Customer_MobileDevice_Type {
2174	r.Options.Id = &id
2175	return r
2176}
2177
2178func (r User_Customer_MobileDevice_Type) Mask(mask string) User_Customer_MobileDevice_Type {
2179	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
2180		mask = fmt.Sprintf("mask[%s]", mask)
2181	}
2182
2183	r.Options.Mask = mask
2184	return r
2185}
2186
2187func (r User_Customer_MobileDevice_Type) Filter(filter string) User_Customer_MobileDevice_Type {
2188	r.Options.Filter = filter
2189	return r
2190}
2191
2192func (r User_Customer_MobileDevice_Type) Limit(limit int) User_Customer_MobileDevice_Type {
2193	r.Options.Limit = &limit
2194	return r
2195}
2196
2197func (r User_Customer_MobileDevice_Type) Offset(offset int) User_Customer_MobileDevice_Type {
2198	r.Options.Offset = &offset
2199	return r
2200}
2201
2202// no documentation yet
2203func (r User_Customer_MobileDevice_Type) GetAllObjects() (resp []datatypes.User_Customer_MobileDevice_Type, err error) {
2204	err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice_Type", "getAllObjects", nil, &r.Options, &resp)
2205	return
2206}
2207
2208// no documentation yet
2209func (r User_Customer_MobileDevice_Type) GetObject() (resp datatypes.User_Customer_MobileDevice_Type, err error) {
2210	err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice_Type", "getObject", nil, &r.Options, &resp)
2211	return
2212}
2213
2214// The Customer_Notification_Hardware object stores links between customers and the hardware devices they wish to monitor.  This link is not enough, the user must be sure to also create SoftLayer_Network_Monitor_Version1_Query_Host instance with the response action set to "notify users" in order for the users linked to that hardware object to be notified on failure.
2215type User_Customer_Notification_Hardware struct {
2216	Session *session.Session
2217	Options sl.Options
2218}
2219
2220// GetUserCustomerNotificationHardwareService returns an instance of the User_Customer_Notification_Hardware SoftLayer service
2221func GetUserCustomerNotificationHardwareService(sess *session.Session) User_Customer_Notification_Hardware {
2222	return User_Customer_Notification_Hardware{Session: sess}
2223}
2224
2225func (r User_Customer_Notification_Hardware) Id(id int) User_Customer_Notification_Hardware {
2226	r.Options.Id = &id
2227	return r
2228}
2229
2230func (r User_Customer_Notification_Hardware) Mask(mask string) User_Customer_Notification_Hardware {
2231	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
2232		mask = fmt.Sprintf("mask[%s]", mask)
2233	}
2234
2235	r.Options.Mask = mask
2236	return r
2237}
2238
2239func (r User_Customer_Notification_Hardware) Filter(filter string) User_Customer_Notification_Hardware {
2240	r.Options.Filter = filter
2241	return r
2242}
2243
2244func (r User_Customer_Notification_Hardware) Limit(limit int) User_Customer_Notification_Hardware {
2245	r.Options.Limit = &limit
2246	return r
2247}
2248
2249func (r User_Customer_Notification_Hardware) Offset(offset int) User_Customer_Notification_Hardware {
2250	r.Options.Offset = &offset
2251	return r
2252}
2253
2254// Passing in an unsaved instances of a Customer_Notification_Hardware object into this function will create the object and return the results to the user.
2255func (r User_Customer_Notification_Hardware) CreateObject(templateObject *datatypes.User_Customer_Notification_Hardware) (resp datatypes.User_Customer_Notification_Hardware, err error) {
2256	params := []interface{}{
2257		templateObject,
2258	}
2259	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "createObject", params, &r.Options, &resp)
2260	return
2261}
2262
2263// Passing in a collection of unsaved instances of Customer_Notification_Hardware objects into this function will create all objects and return the results to the user.
2264func (r User_Customer_Notification_Hardware) CreateObjects(templateObjects []datatypes.User_Customer_Notification_Hardware) (resp []datatypes.Dns_Domain, err error) {
2265	params := []interface{}{
2266		templateObjects,
2267	}
2268	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "createObjects", params, &r.Options, &resp)
2269	return
2270}
2271
2272// Like any other API object, the customer notification objects can be deleted by passing an instance of them into this function.  The ID on the object must be set.
2273func (r User_Customer_Notification_Hardware) DeleteObjects(templateObjects []datatypes.User_Customer_Notification_Hardware) (resp bool, err error) {
2274	params := []interface{}{
2275		templateObjects,
2276	}
2277	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "deleteObjects", params, &r.Options, &resp)
2278	return
2279}
2280
2281// This method returns all Customer_Notification_Hardware objects associated with the passed in hardware ID as long as that hardware ID is owned by the current user's account.
2282//
2283// This behavior can also be accomplished by simply tapping monitoringUserNotification on the Hardware_Server object.
2284func (r User_Customer_Notification_Hardware) FindByHardwareId(hardwareId *int) (resp []datatypes.User_Customer_Notification_Hardware, err error) {
2285	params := []interface{}{
2286		hardwareId,
2287	}
2288	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "findByHardwareId", params, &r.Options, &resp)
2289	return
2290}
2291
2292// Retrieve The hardware object that will be monitored.
2293func (r User_Customer_Notification_Hardware) GetHardware() (resp datatypes.Hardware, err error) {
2294	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "getHardware", nil, &r.Options, &resp)
2295	return
2296}
2297
2298// getObject retrieves the SoftLayer_User_Customer_Notification_Hardware object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_User_Customer_Notification_Hardware service. You can only retrieve hardware notifications attached to hardware and users that belong to your account
2299func (r User_Customer_Notification_Hardware) GetObject() (resp datatypes.User_Customer_Notification_Hardware, err error) {
2300	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "getObject", nil, &r.Options, &resp)
2301	return
2302}
2303
2304// Retrieve The user that will be notified when the associated hardware object fails a monitoring instance.
2305func (r User_Customer_Notification_Hardware) GetUser() (resp datatypes.User_Customer, err error) {
2306	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "getUser", nil, &r.Options, &resp)
2307	return
2308}
2309
2310// The SoftLayer_User_Customer_Notification_Virtual_Guest object stores links between customers and the virtual guests they wish to monitor.  This link is not enough, the user must be sure to also create SoftLayer_Network_Monitor_Version1_Query_Host instance with the response action set to "notify users" in order for the users linked to that hardware object to be notified on failure.
2311type User_Customer_Notification_Virtual_Guest struct {
2312	Session *session.Session
2313	Options sl.Options
2314}
2315
2316// GetUserCustomerNotificationVirtualGuestService returns an instance of the User_Customer_Notification_Virtual_Guest SoftLayer service
2317func GetUserCustomerNotificationVirtualGuestService(sess *session.Session) User_Customer_Notification_Virtual_Guest {
2318	return User_Customer_Notification_Virtual_Guest{Session: sess}
2319}
2320
2321func (r User_Customer_Notification_Virtual_Guest) Id(id int) User_Customer_Notification_Virtual_Guest {
2322	r.Options.Id = &id
2323	return r
2324}
2325
2326func (r User_Customer_Notification_Virtual_Guest) Mask(mask string) User_Customer_Notification_Virtual_Guest {
2327	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
2328		mask = fmt.Sprintf("mask[%s]", mask)
2329	}
2330
2331	r.Options.Mask = mask
2332	return r
2333}
2334
2335func (r User_Customer_Notification_Virtual_Guest) Filter(filter string) User_Customer_Notification_Virtual_Guest {
2336	r.Options.Filter = filter
2337	return r
2338}
2339
2340func (r User_Customer_Notification_Virtual_Guest) Limit(limit int) User_Customer_Notification_Virtual_Guest {
2341	r.Options.Limit = &limit
2342	return r
2343}
2344
2345func (r User_Customer_Notification_Virtual_Guest) Offset(offset int) User_Customer_Notification_Virtual_Guest {
2346	r.Options.Offset = &offset
2347	return r
2348}
2349
2350// Passing in an unsaved instance of a SoftLayer_Customer_Notification_Virtual_Guest object into this function will create the object and return the results to the user.
2351func (r User_Customer_Notification_Virtual_Guest) CreateObject(templateObject *datatypes.User_Customer_Notification_Virtual_Guest) (resp datatypes.User_Customer_Notification_Virtual_Guest, err error) {
2352	params := []interface{}{
2353		templateObject,
2354	}
2355	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "createObject", params, &r.Options, &resp)
2356	return
2357}
2358
2359// Passing in a collection of unsaved instances of SoftLayer_Customer_Notification_Virtual_Guest objects into this function will create all objects and return the results to the user.
2360func (r User_Customer_Notification_Virtual_Guest) CreateObjects(templateObjects []datatypes.User_Customer_Notification_Virtual_Guest) (resp []datatypes.User_Customer_Notification_Virtual_Guest, err error) {
2361	params := []interface{}{
2362		templateObjects,
2363	}
2364	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "createObjects", params, &r.Options, &resp)
2365	return
2366}
2367
2368// Like any other API object, the customer notification objects can be deleted by passing an instance of them into this function.  The ID on the object must be set.
2369func (r User_Customer_Notification_Virtual_Guest) DeleteObjects(templateObjects []datatypes.User_Customer_Notification_Virtual_Guest) (resp bool, err error) {
2370	params := []interface{}{
2371		templateObjects,
2372	}
2373	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "deleteObjects", params, &r.Options, &resp)
2374	return
2375}
2376
2377// This method returns all SoftLayer_User_Customer_Notification_Virtual_Guest objects associated with the passed in ID as long as that hardware ID is owned by the current user's account.
2378//
2379// This behavior can also be accomplished by simply tapping monitoringUserNotification on the Virtual_Guest object.
2380func (r User_Customer_Notification_Virtual_Guest) FindByGuestId(id *int) (resp []datatypes.User_Customer_Notification_Virtual_Guest, err error) {
2381	params := []interface{}{
2382		id,
2383	}
2384	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "findByGuestId", params, &r.Options, &resp)
2385	return
2386}
2387
2388// Retrieve The virtual guest object that will be monitored.
2389func (r User_Customer_Notification_Virtual_Guest) GetGuest() (resp datatypes.Virtual_Guest, err error) {
2390	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "getGuest", nil, &r.Options, &resp)
2391	return
2392}
2393
2394// getObject retrieves the SoftLayer_User_Customer_Notification_Virtual_Guest object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_User_Customer_Notification_Virtual_Guest service. You can only retrieve guest notifications attached to virtual guests and users that belong to your account
2395func (r User_Customer_Notification_Virtual_Guest) GetObject() (resp datatypes.User_Customer_Notification_Virtual_Guest, err error) {
2396	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "getObject", nil, &r.Options, &resp)
2397	return
2398}
2399
2400// Retrieve The user that will be notified when the associated virtual guest object fails a monitoring instance.
2401func (r User_Customer_Notification_Virtual_Guest) GetUser() (resp datatypes.User_Customer, err error) {
2402	err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "getUser", nil, &r.Options, &resp)
2403	return
2404}
2405
2406// no documentation yet
2407type User_Customer_OpenIdConnect struct {
2408	Session *session.Session
2409	Options sl.Options
2410}
2411
2412// GetUserCustomerOpenIdConnectService returns an instance of the User_Customer_OpenIdConnect SoftLayer service
2413func GetUserCustomerOpenIdConnectService(sess *session.Session) User_Customer_OpenIdConnect {
2414	return User_Customer_OpenIdConnect{Session: sess}
2415}
2416
2417func (r User_Customer_OpenIdConnect) Id(id int) User_Customer_OpenIdConnect {
2418	r.Options.Id = &id
2419	return r
2420}
2421
2422func (r User_Customer_OpenIdConnect) Mask(mask string) User_Customer_OpenIdConnect {
2423	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
2424		mask = fmt.Sprintf("mask[%s]", mask)
2425	}
2426
2427	r.Options.Mask = mask
2428	return r
2429}
2430
2431func (r User_Customer_OpenIdConnect) Filter(filter string) User_Customer_OpenIdConnect {
2432	r.Options.Filter = filter
2433	return r
2434}
2435
2436func (r User_Customer_OpenIdConnect) Limit(limit int) User_Customer_OpenIdConnect {
2437	r.Options.Limit = &limit
2438	return r
2439}
2440
2441func (r User_Customer_OpenIdConnect) Offset(offset int) User_Customer_OpenIdConnect {
2442	r.Options.Offset = &offset
2443	return r
2444}
2445
2446// no documentation yet
2447func (r User_Customer_OpenIdConnect) AcknowledgeSupportPolicy() (err error) {
2448	var resp datatypes.Void
2449	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "acknowledgeSupportPolicy", nil, &r.Options, &resp)
2450	return
2451}
2452
2453// Completes invitation process for an OpenIdConnect user created by Bluemix Unified User Console.
2454func (r User_Customer_OpenIdConnect) ActivateOpenIdConnectUser(verificationCode *string, userInfo *datatypes.User_Customer) (err error) {
2455	var resp datatypes.Void
2456	params := []interface{}{
2457		verificationCode,
2458		userInfo,
2459	}
2460	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "activateOpenIdConnectUser", params, &r.Options, &resp)
2461	return
2462}
2463
2464// Create a user's API authentication key, allowing that user access to query the SoftLayer API. addApiAuthenticationKey() returns the users new API key. Each portal user is allowed a maximum of two API keys.
2465func (r User_Customer_OpenIdConnect) AddApiAuthenticationKey() (resp string, err error) {
2466	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addApiAuthenticationKey", nil, &r.Options, &resp)
2467	return
2468}
2469
2470// Grants the user access to one or more dedicated host devices.  The user will only be allowed to see and access devices in both the portal and the API to which they have been granted access.  If the user's account has devices to which the user has not been granted access, then "not found" exceptions are thrown if the user attempts to access any of these devices.
2471//
2472// Users can assign device access to their child users, but not to themselves. An account's master has access to all devices on their customer account and can set dedicated host access for any of the other users on their account.
2473func (r User_Customer_OpenIdConnect) AddBulkDedicatedHostAccess(dedicatedHostIds []int) (resp bool, err error) {
2474	params := []interface{}{
2475		dedicatedHostIds,
2476	}
2477	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addBulkDedicatedHostAccess", params, &r.Options, &resp)
2478	return
2479}
2480
2481// Add multiple hardware to a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. addBulkHardwareAccess() does not attempt to add hardware access if the given user already has access to that hardware object.
2482//
2483// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account.
2484func (r User_Customer_OpenIdConnect) AddBulkHardwareAccess(hardwareIds []int) (resp bool, err error) {
2485	params := []interface{}{
2486		hardwareIds,
2487	}
2488	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addBulkHardwareAccess", params, &r.Options, &resp)
2489	return
2490}
2491
2492// Add multiple permissions to a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. addBulkPortalPermission() does not attempt to add permissions already assigned to the user.
2493//
2494// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account.
2495//
2496// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are removed based on the keyName property of the permission objects within the permissions parameter.
2497func (r User_Customer_OpenIdConnect) AddBulkPortalPermission(permissions []datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) {
2498	params := []interface{}{
2499		permissions,
2500	}
2501	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addBulkPortalPermission", params, &r.Options, &resp)
2502	return
2503}
2504
2505// no documentation yet
2506func (r User_Customer_OpenIdConnect) AddBulkRoles(roles []datatypes.User_Permission_Role) (err error) {
2507	var resp datatypes.Void
2508	params := []interface{}{
2509		roles,
2510	}
2511	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addBulkRoles", params, &r.Options, &resp)
2512	return
2513}
2514
2515// Add multiple CloudLayer Computing Instances to a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's CloudLayer Computing Instance objects a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. addBulkVirtualGuestAccess() does not attempt to add CloudLayer Computing Instance access if the given user already has access to that CloudLayer Computing Instance object.
2516//
2517// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set CloudLayer Computing Instance access for any of the other users on their account.
2518func (r User_Customer_OpenIdConnect) AddBulkVirtualGuestAccess(virtualGuestIds []int) (resp bool, err error) {
2519	params := []interface{}{
2520		virtualGuestIds,
2521	}
2522	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addBulkVirtualGuestAccess", params, &r.Options, &resp)
2523	return
2524}
2525
2526// Grants the user access to a single dedicated host device.  The user will only be allowed to see and access devices in both the portal and the API to which they have been granted access.  If the user's account has devices to which the user has not been granted access, then "not found" exceptions are thrown if the user attempts to access any of these devices.
2527//
2528// Users can assign device access to their child users, but not to themselves. An account's master has access to all devices on their customer account and can set dedicated host access for any of the other users on their account.
2529func (r User_Customer_OpenIdConnect) AddDedicatedHostAccess(dedicatedHostId *int) (resp bool, err error) {
2530	params := []interface{}{
2531		dedicatedHostId,
2532	}
2533	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addDedicatedHostAccess", params, &r.Options, &resp)
2534	return
2535}
2536
2537// no documentation yet
2538func (r User_Customer_OpenIdConnect) AddExternalBinding(externalBinding *datatypes.User_External_Binding) (resp datatypes.User_Customer_External_Binding, err error) {
2539	params := []interface{}{
2540		externalBinding,
2541	}
2542	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addExternalBinding", params, &r.Options, &resp)
2543	return
2544}
2545
2546// Add hardware to a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user already has access to the hardware you're attempting to add then addHardwareAccess() returns true.
2547//
2548// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account.
2549func (r User_Customer_OpenIdConnect) AddHardwareAccess(hardwareId *int) (resp bool, err error) {
2550	params := []interface{}{
2551		hardwareId,
2552	}
2553	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addHardwareAccess", params, &r.Options, &resp)
2554	return
2555}
2556
2557// Create a notification subscription record for the user. If a subscription record exists for the notification, the record will be set to active, if currently inactive.
2558func (r User_Customer_OpenIdConnect) AddNotificationSubscriber(notificationKeyName *string) (resp bool, err error) {
2559	params := []interface{}{
2560		notificationKeyName,
2561	}
2562	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addNotificationSubscriber", params, &r.Options, &resp)
2563	return
2564}
2565
2566// Add a permission to a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. If the user already has the permission you're attempting to add then addPortalPermission() returns true.
2567//
2568// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account.
2569//
2570// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are added based on the keyName property of the permission parameter.
2571func (r User_Customer_OpenIdConnect) AddPortalPermission(permission *datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) {
2572	params := []interface{}{
2573		permission,
2574	}
2575	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addPortalPermission", params, &r.Options, &resp)
2576	return
2577}
2578
2579// no documentation yet
2580func (r User_Customer_OpenIdConnect) AddRole(role *datatypes.User_Permission_Role) (err error) {
2581	var resp datatypes.Void
2582	params := []interface{}{
2583		role,
2584	}
2585	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addRole", params, &r.Options, &resp)
2586	return
2587}
2588
2589// Add a CloudLayer Computing Instance to a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's CloudLayer Computing Instance objects a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user already has access to the CloudLayer Computing Instance you're attempting to add then addVirtualGuestAccess() returns true.
2590//
2591// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set CloudLayer Computing Instance access for any of the other users on their account.
2592func (r User_Customer_OpenIdConnect) AddVirtualGuestAccess(virtualGuestId *int) (resp bool, err error) {
2593	params := []interface{}{
2594		virtualGuestId,
2595	}
2596	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addVirtualGuestAccess", params, &r.Options, &resp)
2597	return
2598}
2599
2600// Select a type of preference you would like to modify using [[SoftLayer_User_Customer::getPreferenceTypes|getPreferenceTypes]] and invoke this method using that preference type key name.
2601func (r User_Customer_OpenIdConnect) ChangePreference(preferenceTypeKeyName *string, value *string) (resp []datatypes.User_Preference, err error) {
2602	params := []interface{}{
2603		preferenceTypeKeyName,
2604		value,
2605	}
2606	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "changePreference", params, &r.Options, &resp)
2607	return
2608}
2609
2610// This service checks the result of a previously requested external authentication. [[SoftLayer_Container_User_Customer_External_Binding_Phone|Phone external binding]] container can be used for this service. Make sure to set the [[SoftLayer_Container_User_Customer_External_Binding_Phone::authenticationToken|authenticationToken]] that is generated by [[SoftLayer_User_Customer|initiateExternalAuthentication]] service.
2611func (r User_Customer_OpenIdConnect) CheckExternalAuthenticationStatus(authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
2612	params := []interface{}{
2613		authenticationContainer,
2614	}
2615	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "checkExternalAuthenticationStatus", params, &r.Options, &resp)
2616	return
2617}
2618
2619// Add a description here
2620//
2621//
2622func (r User_Customer_OpenIdConnect) CheckPhoneFactorAuthenticationForPasswordSet(passwordSet *datatypes.Container_User_Customer_PasswordSet, authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp bool, err error) {
2623	params := []interface{}{
2624		passwordSet,
2625		authenticationContainer,
2626	}
2627	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "checkPhoneFactorAuthenticationForPasswordSet", params, &r.Options, &resp)
2628	return
2629}
2630
2631// no documentation yet
2632func (r User_Customer_OpenIdConnect) CompleteInvitationAfterLogin(providerType *string, accessToken *string, emailRegistrationCode *string) (err error) {
2633	var resp datatypes.Void
2634	params := []interface{}{
2635		providerType,
2636		accessToken,
2637		emailRegistrationCode,
2638	}
2639	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "completeInvitationAfterLogin", params, &r.Options, &resp)
2640	return
2641}
2642
2643// Create a new subscriber for a given resource.
2644func (r User_Customer_OpenIdConnect) CreateNotificationSubscriber(keyName *string, resourceTableId *int) (resp bool, err error) {
2645	params := []interface{}{
2646		keyName,
2647		resourceTableId,
2648	}
2649	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "createNotificationSubscriber", params, &r.Options, &resp)
2650	return
2651}
2652
2653// Create a new user in the SoftLayer customer portal. createObject() creates a user's portal record and adds them into the SoftLayer community forums. It is not possible to set up SLL or PPTP enable flags during object creation. These flags are ignored during object creation. You will need to make a subsequent call to edit object in order to enable VPN access. An account's master user and sub-users who have the User Manage permission can add new users. createObject() creates users with a default permission set. After adding a user it may be helpful to set their permissions and hardware access.
2654//
2655// Note, neither password nor vpnPassword parameters are required.
2656//
2657// Password When a new user is created, an email will be sent to the new user's email address with a link to a url that will allow the new user to create or change their password for the SoftLayer customer portal.
2658//
2659// If the password parameter is provided and is not null, then that value will be validated. If it is a valid password, then the user will be created with this password.  This user will still receive a portal password email.  It can be used within 24 hours to change their password, or it can be allowed to expire, and the password provided during user creation will remain as the user's password.
2660//
2661// If the password parameter is not provided or the value is null, the user must set their portal password using the link sent in email within 24 hours.  If the user fails to set their password within 24 hours, then a non-master user can use the "Reset Password" link on the login page of the portal to request a new email.  A master user can use the link to retrieve a phone number to call to assist in resetting their password.
2662//
2663// The password parameter is ignored for VPN_ONLY users or for IBMid authenticated users.
2664//
2665// vpnPassword If the vpnPassword is provided, then the user's vpnPassword will be set to the provided password.  When creating a vpn only user, the vpnPassword MUST be supplied.  If the vpnPassword is not provided, then the user will need to use the portal to edit their profile and set the vpnPassword.
2666//
2667//
2668func (r User_Customer_OpenIdConnect) CreateObject(templateObject *datatypes.User_Customer_OpenIdConnect, password *string, vpnPassword *string) (resp datatypes.User_Customer_OpenIdConnect, err error) {
2669	params := []interface{}{
2670		templateObject,
2671		password,
2672		vpnPassword,
2673	}
2674	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "createObject", params, &r.Options, &resp)
2675	return
2676}
2677
2678// no documentation yet
2679func (r User_Customer_OpenIdConnect) CreateOpenIdConnectUserAndCompleteInvitation(providerType *string, user *datatypes.User_Customer, password *string, registrationCode *string) (resp string, err error) {
2680	params := []interface{}{
2681		providerType,
2682		user,
2683		password,
2684		registrationCode,
2685	}
2686	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "createOpenIdConnectUserAndCompleteInvitation", params, &r.Options, &resp)
2687	return
2688}
2689
2690// Create delivery methods for a notification that the user is subscribed to. Multiple delivery method keyNames can be supplied to create multiple delivery methods for the specified notification. Available delivery methods - 'EMAIL'. Available notifications - 'PLANNED_MAINTENANCE', 'UNPLANNED_INCIDENT'.
2691func (r User_Customer_OpenIdConnect) CreateSubscriberDeliveryMethods(notificationKeyName *string, deliveryMethodKeyNames []string) (resp bool, err error) {
2692	params := []interface{}{
2693		notificationKeyName,
2694		deliveryMethodKeyNames,
2695	}
2696	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "createSubscriberDeliveryMethods", params, &r.Options, &resp)
2697	return
2698}
2699
2700// Create a new subscriber for a given resource.
2701func (r User_Customer_OpenIdConnect) DeactivateNotificationSubscriber(keyName *string, resourceTableId *int) (resp bool, err error) {
2702	params := []interface{}{
2703		keyName,
2704		resourceTableId,
2705	}
2706	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "deactivateNotificationSubscriber", params, &r.Options, &resp)
2707	return
2708}
2709
2710// Declines an invitation to link an OpenIdConnect identity to a SoftLayer (Atlas) identity and account. Note that this uses a registration code that is likely a one-time-use-only token, so if an invitation has already been processed (accepted or previously declined) it will not be possible to process it a second time.
2711func (r User_Customer_OpenIdConnect) DeclineInvitation(providerType *string, registrationCode *string) (err error) {
2712	var resp datatypes.Void
2713	params := []interface{}{
2714		providerType,
2715		registrationCode,
2716	}
2717	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "declineInvitation", params, &r.Options, &resp)
2718	return
2719}
2720
2721// Account master users and sub-users who have the User Manage permission in the SoftLayer customer portal can update other user's information. Use editObject() if you wish to edit a single user account. Users who do not have the User Manage permission can only update their own information.
2722func (r User_Customer_OpenIdConnect) EditObject(templateObject *datatypes.User_Customer) (resp bool, err error) {
2723	params := []interface{}{
2724		templateObject,
2725	}
2726	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "editObject", params, &r.Options, &resp)
2727	return
2728}
2729
2730// Account master users and sub-users who have the User Manage permission in the SoftLayer customer portal can update other user's information. Use editObjects() if you wish to edit multiple users at once. Users who do not have the User Manage permission can only update their own information.
2731func (r User_Customer_OpenIdConnect) EditObjects(templateObjects []datatypes.User_Customer) (resp bool, err error) {
2732	params := []interface{}{
2733		templateObjects,
2734	}
2735	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "editObjects", params, &r.Options, &resp)
2736	return
2737}
2738
2739// no documentation yet
2740func (r User_Customer_OpenIdConnect) FindUserPreference(profileName *string, containerKeyname *string, preferenceKeyname *string) (resp []datatypes.Layout_Profile, err error) {
2741	params := []interface{}{
2742		profileName,
2743		containerKeyname,
2744		preferenceKeyname,
2745	}
2746	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "findUserPreference", params, &r.Options, &resp)
2747	return
2748}
2749
2750// Retrieve The customer account that a user belongs to.
2751func (r User_Customer_OpenIdConnect) GetAccount() (resp datatypes.Account, err error) {
2752	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAccount", nil, &r.Options, &resp)
2753	return
2754}
2755
2756// Retrieve
2757func (r User_Customer_OpenIdConnect) GetActions() (resp []datatypes.User_Permission_Action, err error) {
2758	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getActions", nil, &r.Options, &resp)
2759	return
2760}
2761
2762// The getActiveExternalAuthenticationVendors method will return a list of available external vendors that a SoftLayer user can authenticate against.  The list will only contain vendors for which the user has at least one active external binding.
2763func (r User_Customer_OpenIdConnect) GetActiveExternalAuthenticationVendors() (resp []datatypes.Container_User_Customer_External_Binding_Vendor, err error) {
2764	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getActiveExternalAuthenticationVendors", nil, &r.Options, &resp)
2765	return
2766}
2767
2768// Retrieve A portal user's additional email addresses. These email addresses are contacted when updates are made to support tickets.
2769func (r User_Customer_OpenIdConnect) GetAdditionalEmails() (resp []datatypes.User_Customer_AdditionalEmail, err error) {
2770	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAdditionalEmails", nil, &r.Options, &resp)
2771	return
2772}
2773
2774// no documentation yet
2775func (r User_Customer_OpenIdConnect) GetAllowedDedicatedHostIds() (resp []int, err error) {
2776	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAllowedDedicatedHostIds", nil, &r.Options, &resp)
2777	return
2778}
2779
2780// no documentation yet
2781func (r User_Customer_OpenIdConnect) GetAllowedHardwareIds() (resp []int, err error) {
2782	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAllowedHardwareIds", nil, &r.Options, &resp)
2783	return
2784}
2785
2786// no documentation yet
2787func (r User_Customer_OpenIdConnect) GetAllowedVirtualGuestIds() (resp []int, err error) {
2788	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAllowedVirtualGuestIds", nil, &r.Options, &resp)
2789	return
2790}
2791
2792// Retrieve A portal user's API Authentication keys. There is a max limit of two API keys per user.
2793func (r User_Customer_OpenIdConnect) GetApiAuthenticationKeys() (resp []datatypes.User_Customer_ApiAuthentication, err error) {
2794	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getApiAuthenticationKeys", nil, &r.Options, &resp)
2795	return
2796}
2797
2798// no documentation yet
2799func (r User_Customer_OpenIdConnect) GetAuthenticationToken(token *datatypes.Container_User_Authentication_Token) (resp datatypes.Container_User_Authentication_Token, err error) {
2800	params := []interface{}{
2801		token,
2802	}
2803	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAuthenticationToken", params, &r.Options, &resp)
2804	return
2805}
2806
2807// Retrieve The CDN accounts associated with a portal user.
2808func (r User_Customer_OpenIdConnect) GetCdnAccounts() (resp []datatypes.Network_ContentDelivery_Account, err error) {
2809	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getCdnAccounts", nil, &r.Options, &resp)
2810	return
2811}
2812
2813// Retrieve A portal user's child users. Some portal users may not have child users.
2814func (r User_Customer_OpenIdConnect) GetChildUsers() (resp []datatypes.User_Customer, err error) {
2815	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getChildUsers", nil, &r.Options, &resp)
2816	return
2817}
2818
2819// Retrieve An user's associated closed tickets.
2820func (r User_Customer_OpenIdConnect) GetClosedTickets() (resp []datatypes.Ticket, err error) {
2821	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getClosedTickets", nil, &r.Options, &resp)
2822	return
2823}
2824
2825// Retrieve The dedicated hosts to which the user has been granted access.
2826func (r User_Customer_OpenIdConnect) GetDedicatedHosts() (resp []datatypes.Virtual_DedicatedHost, err error) {
2827	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getDedicatedHosts", nil, &r.Options, &resp)
2828	return
2829}
2830
2831// This API gets the default account for the OpenIdConnect identity that is linked to the current SoftLayer user identity. If there is no default present, the API returns null, except in the special case where we find one active user linked to the IBMid. In that case, we will set the link from the IBMid to that user as default, and return the account of which that user is a member. Invoke this only on IBMid-authenticated users.
2832func (r User_Customer_OpenIdConnect) GetDefaultAccount(providerType *string) (resp datatypes.Account, err error) {
2833	params := []interface{}{
2834		providerType,
2835	}
2836	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getDefaultAccount", params, &r.Options, &resp)
2837	return
2838}
2839
2840// Retrieve The external authentication bindings that link an external identifier to a SoftLayer user.
2841func (r User_Customer_OpenIdConnect) GetExternalBindings() (resp []datatypes.User_External_Binding, err error) {
2842	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getExternalBindings", nil, &r.Options, &resp)
2843	return
2844}
2845
2846// Retrieve A portal user's accessible hardware. These permissions control which hardware a user has access to in the SoftLayer customer portal.
2847func (r User_Customer_OpenIdConnect) GetHardware() (resp []datatypes.Hardware, err error) {
2848	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHardware", nil, &r.Options, &resp)
2849	return
2850}
2851
2852// Retrieve the number of servers that a portal user has access to. Portal users can have restrictions set to limit services for and to perform actions on hardware. You can set these permissions in the portal by clicking the "administrative" then "user admin" links.
2853func (r User_Customer_OpenIdConnect) GetHardwareCount() (resp int, err error) {
2854	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHardwareCount", nil, &r.Options, &resp)
2855	return
2856}
2857
2858// Retrieve Hardware notifications associated with this user. A hardware notification links a user to a piece of hardware, and that user will be notified if any monitors on that hardware fail, if the monitors have a status of 'Notify User'.
2859func (r User_Customer_OpenIdConnect) GetHardwareNotifications() (resp []datatypes.User_Customer_Notification_Hardware, err error) {
2860	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHardwareNotifications", nil, &r.Options, &resp)
2861	return
2862}
2863
2864// Retrieve Whether or not a user has acknowledged the support policy.
2865func (r User_Customer_OpenIdConnect) GetHasAcknowledgedSupportPolicyFlag() (resp bool, err error) {
2866	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHasAcknowledgedSupportPolicyFlag", nil, &r.Options, &resp)
2867	return
2868}
2869
2870// Retrieve Permission granting the user access to all Dedicated Host devices on the account.
2871func (r User_Customer_OpenIdConnect) GetHasFullDedicatedHostAccessFlag() (resp bool, err error) {
2872	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHasFullDedicatedHostAccessFlag", nil, &r.Options, &resp)
2873	return
2874}
2875
2876// Retrieve Whether or not a portal user has access to all hardware on their account.
2877func (r User_Customer_OpenIdConnect) GetHasFullHardwareAccessFlag() (resp bool, err error) {
2878	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHasFullHardwareAccessFlag", nil, &r.Options, &resp)
2879	return
2880}
2881
2882// Retrieve Whether or not a portal user has access to all hardware on their account.
2883func (r User_Customer_OpenIdConnect) GetHasFullVirtualGuestAccessFlag() (resp bool, err error) {
2884	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHasFullVirtualGuestAccessFlag", nil, &r.Options, &resp)
2885	return
2886}
2887
2888// no documentation yet
2889func (r User_Customer_OpenIdConnect) GetImpersonationToken() (resp string, err error) {
2890	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getImpersonationToken", nil, &r.Options, &resp)
2891	return
2892}
2893
2894// Retrieve
2895func (r User_Customer_OpenIdConnect) GetLayoutProfiles() (resp []datatypes.Layout_Profile, err error) {
2896	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getLayoutProfiles", nil, &r.Options, &resp)
2897	return
2898}
2899
2900// Retrieve A user's locale. Locale holds user's language and region information.
2901func (r User_Customer_OpenIdConnect) GetLocale() (resp datatypes.Locale, err error) {
2902	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getLocale", nil, &r.Options, &resp)
2903	return
2904}
2905
2906// Validates a supplied OpenIdConnect access token to the SoftLayer customer portal and returns the default account name and id for the active user. An exception will be thrown if no matching customer is found.
2907func (r User_Customer_OpenIdConnect) GetLoginAccountInfoOpenIdConnect(providerType *string, accessToken *string) (resp datatypes.Container_User_Customer_OpenIdConnect_LoginAccountInfo, err error) {
2908	params := []interface{}{
2909		providerType,
2910		accessToken,
2911	}
2912	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getLoginAccountInfoOpenIdConnect", params, &r.Options, &resp)
2913	return
2914}
2915
2916// Retrieve A user's attempts to log into the SoftLayer customer portal.
2917func (r User_Customer_OpenIdConnect) GetLoginAttempts() (resp []datatypes.User_Customer_Access_Authentication, err error) {
2918	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getLoginAttempts", nil, &r.Options, &resp)
2919	return
2920}
2921
2922// Attempt to authenticate a user to the SoftLayer customer portal using the provided authentication container. Depending on the specific type of authentication container that is used, this API will leverage the appropriate authentication protocol. If authentication is successful then the API returns a list of linked accounts for the user, a token containing the ID of the authenticated user and a hash key used by the SoftLayer customer portal to maintain authentication.
2923func (r User_Customer_OpenIdConnect) GetLoginToken(request *datatypes.Container_Authentication_Request_Contract) (resp datatypes.Container_Authentication_Response_Common, err error) {
2924	params := []interface{}{
2925		request,
2926	}
2927	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getLoginToken", params, &r.Options, &resp)
2928	return
2929}
2930
2931// An OpenIdConnect identity, for example an IBMid, can be linked or mapped to one or more individual SoftLayer users, but no more than one SoftLayer user per account. This effectively links the OpenIdConnect identity to those accounts. This API returns a list of all the accounts for which there is a link between the OpenIdConnect identity and a SoftLayer user. Invoke this only on IBMid-authenticated users.
2932func (r User_Customer_OpenIdConnect) GetMappedAccounts(providerType *string) (resp []datatypes.Account, err error) {
2933	params := []interface{}{
2934		providerType,
2935	}
2936	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getMappedAccounts", params, &r.Options, &resp)
2937	return
2938}
2939
2940// Retrieve A portal user's associated mobile device profiles.
2941func (r User_Customer_OpenIdConnect) GetMobileDevices() (resp []datatypes.User_Customer_MobileDevice, err error) {
2942	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getMobileDevices", nil, &r.Options, &resp)
2943	return
2944}
2945
2946// Retrieve Notification subscription records for the user.
2947func (r User_Customer_OpenIdConnect) GetNotificationSubscribers() (resp []datatypes.Notification_Subscriber, err error) {
2948	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getNotificationSubscribers", nil, &r.Options, &resp)
2949	return
2950}
2951
2952// no documentation yet
2953func (r User_Customer_OpenIdConnect) GetObject() (resp datatypes.User_Customer_OpenIdConnect, err error) {
2954	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getObject", nil, &r.Options, &resp)
2955	return
2956}
2957
2958// This API returns a SoftLayer_Container_User_Customer_OpenIdConnect_MigrationState object containing the necessary information to determine what migration state the user is in. If the account is not OpenIdConnect authenticated, then an exception is thrown.
2959func (r User_Customer_OpenIdConnect) GetOpenIdConnectMigrationState() (resp datatypes.Container_User_Customer_OpenIdConnect_MigrationState, err error) {
2960	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getOpenIdConnectMigrationState", nil, &r.Options, &resp)
2961	return
2962}
2963
2964// no documentation yet
2965func (r User_Customer_OpenIdConnect) GetOpenIdRegistrationInfoFromCode(providerType *string, registrationCode *string) (resp datatypes.Account_Authentication_OpenIdConnect_RegistrationInformation, err error) {
2966	params := []interface{}{
2967		providerType,
2968		registrationCode,
2969	}
2970	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getOpenIdRegistrationInfoFromCode", params, &r.Options, &resp)
2971	return
2972}
2973
2974// Retrieve An user's associated open tickets.
2975func (r User_Customer_OpenIdConnect) GetOpenTickets() (resp []datatypes.Ticket, err error) {
2976	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getOpenTickets", nil, &r.Options, &resp)
2977	return
2978}
2979
2980// Retrieve A portal user's vpn accessible subnets.
2981func (r User_Customer_OpenIdConnect) GetOverrides() (resp []datatypes.Network_Service_Vpn_Overrides, err error) {
2982	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getOverrides", nil, &r.Options, &resp)
2983	return
2984}
2985
2986// Retrieve A portal user's parent user. If a SoftLayer_User_Customer has a null parentId property then it doesn't have a parent user.
2987func (r User_Customer_OpenIdConnect) GetParent() (resp datatypes.User_Customer, err error) {
2988	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getParent", nil, &r.Options, &resp)
2989	return
2990}
2991
2992// Retrieve A portal user's permissions. These permissions control that user's access to functions within the SoftLayer customer portal and API.
2993func (r User_Customer_OpenIdConnect) GetPermissions() (resp []datatypes.User_Customer_CustomerPermission_Permission, err error) {
2994	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPermissions", nil, &r.Options, &resp)
2995	return
2996}
2997
2998// Attempt to authenticate a username and password to the SoftLayer customer portal. Many portal user accounts are configured to require answering a security question on login. In this case getPortalLoginToken() also verifies the given security question ID and answer. If authentication is successful then the API returns a token containing the ID of the authenticated user and a hash key used by the SoftLayer customer portal to maintain authentication.
2999func (r User_Customer_OpenIdConnect) GetPortalLoginToken(username *string, password *string, securityQuestionId *int, securityQuestionAnswer *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
3000	params := []interface{}{
3001		username,
3002		password,
3003		securityQuestionId,
3004		securityQuestionAnswer,
3005	}
3006	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPortalLoginToken", params, &r.Options, &resp)
3007	return
3008}
3009
3010// Attempt to authenticate a supplied OpenIdConnect access token to the SoftLayer customer portal. If authentication is successful then the API returns a token containing the ID of the authenticated user and a hash key used by the SoftLayer customer portal to maintain authentication.
3011func (r User_Customer_OpenIdConnect) GetPortalLoginTokenOpenIdConnect(providerType *string, accessToken *string, accountId *int, securityQuestionId *int, securityQuestionAnswer *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
3012	params := []interface{}{
3013		providerType,
3014		accessToken,
3015		accountId,
3016		securityQuestionId,
3017		securityQuestionAnswer,
3018	}
3019	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPortalLoginTokenOpenIdConnect", params, &r.Options, &resp)
3020	return
3021}
3022
3023// Select a type of preference you would like to get using [[SoftLayer_User_Customer::getPreferenceTypes|getPreferenceTypes]] and invoke this method using that preference type key name.
3024func (r User_Customer_OpenIdConnect) GetPreference(preferenceTypeKeyName *string) (resp datatypes.User_Preference, err error) {
3025	params := []interface{}{
3026		preferenceTypeKeyName,
3027	}
3028	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPreference", params, &r.Options, &resp)
3029	return
3030}
3031
3032// Use any of the preference types to fetch or modify user preferences using [[SoftLayer_User_Customer::getPreference|getPreference]] or [[SoftLayer_User_Customer::changePreference|changePreference]], respectively.
3033func (r User_Customer_OpenIdConnect) GetPreferenceTypes() (resp []datatypes.User_Preference_Type, err error) {
3034	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPreferenceTypes", nil, &r.Options, &resp)
3035	return
3036}
3037
3038// Retrieve
3039func (r User_Customer_OpenIdConnect) GetPreferences() (resp []datatypes.User_Preference, err error) {
3040	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPreferences", nil, &r.Options, &resp)
3041	return
3042}
3043
3044// Retrieve the authentication requirements for an outstanding password set/reset request.  The password key provided to the user in an email generated by the [[SoftLayer_User_Customer::newUserPassword|newUserPassword]]. Password recovery keys are valid for 24 hours after they're generated.
3045func (r User_Customer_OpenIdConnect) GetRequirementsForPasswordSet(passwordSet *datatypes.Container_User_Customer_PasswordSet) (resp datatypes.Container_User_Customer_PasswordSet, err error) {
3046	params := []interface{}{
3047		passwordSet,
3048	}
3049	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getRequirementsForPasswordSet", params, &r.Options, &resp)
3050	return
3051}
3052
3053// Retrieve
3054func (r User_Customer_OpenIdConnect) GetRoles() (resp []datatypes.User_Permission_Role, err error) {
3055	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getRoles", nil, &r.Options, &resp)
3056	return
3057}
3058
3059// Retrieve
3060func (r User_Customer_OpenIdConnect) GetSalesforceUserLink() (resp datatypes.User_Customer_Link, err error) {
3061	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSalesforceUserLink", nil, &r.Options, &resp)
3062	return
3063}
3064
3065// Retrieve A portal user's security question answers. Some portal users may not have security answers or may not be configured to require answering a security question on login.
3066func (r User_Customer_OpenIdConnect) GetSecurityAnswers() (resp []datatypes.User_Customer_Security_Answer, err error) {
3067	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSecurityAnswers", nil, &r.Options, &resp)
3068	return
3069}
3070
3071// Retrieve A user's notification subscription records.
3072func (r User_Customer_OpenIdConnect) GetSubscribers() (resp []datatypes.Notification_User_Subscriber, err error) {
3073	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSubscribers", nil, &r.Options, &resp)
3074	return
3075}
3076
3077// Retrieve A user's successful attempts to log into the SoftLayer customer portal.
3078func (r User_Customer_OpenIdConnect) GetSuccessfulLogins() (resp []datatypes.User_Customer_Access_Authentication, err error) {
3079	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSuccessfulLogins", nil, &r.Options, &resp)
3080	return
3081}
3082
3083// Retrieve Whether or not a user is required to acknowledge the support policy for portal access.
3084func (r User_Customer_OpenIdConnect) GetSupportPolicyAcknowledgementRequiredFlag() (resp int, err error) {
3085	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSupportPolicyAcknowledgementRequiredFlag", nil, &r.Options, &resp)
3086	return
3087}
3088
3089// no documentation yet
3090func (r User_Customer_OpenIdConnect) GetSupportPolicyDocument() (resp []byte, err error) {
3091	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSupportPolicyDocument", nil, &r.Options, &resp)
3092	return
3093}
3094
3095// no documentation yet
3096func (r User_Customer_OpenIdConnect) GetSupportPolicyName() (resp string, err error) {
3097	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSupportPolicyName", nil, &r.Options, &resp)
3098	return
3099}
3100
3101// no documentation yet
3102func (r User_Customer_OpenIdConnect) GetSupportedLocales() (resp []datatypes.Locale, err error) {
3103	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSupportedLocales", nil, &r.Options, &resp)
3104	return
3105}
3106
3107// Retrieve Whether or not a user must take a brief survey the next time they log into the SoftLayer customer portal.
3108func (r User_Customer_OpenIdConnect) GetSurveyRequiredFlag() (resp bool, err error) {
3109	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSurveyRequiredFlag", nil, &r.Options, &resp)
3110	return
3111}
3112
3113// Retrieve The surveys that a user has taken in the SoftLayer customer portal.
3114func (r User_Customer_OpenIdConnect) GetSurveys() (resp []datatypes.Survey, err error) {
3115	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSurveys", nil, &r.Options, &resp)
3116	return
3117}
3118
3119// Retrieve An user's associated tickets.
3120func (r User_Customer_OpenIdConnect) GetTickets() (resp []datatypes.Ticket, err error) {
3121	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getTickets", nil, &r.Options, &resp)
3122	return
3123}
3124
3125// Retrieve A portal user's time zone.
3126func (r User_Customer_OpenIdConnect) GetTimezone() (resp datatypes.Locale_Timezone, err error) {
3127	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getTimezone", nil, &r.Options, &resp)
3128	return
3129}
3130
3131// Retrieve A user's unsuccessful attempts to log into the SoftLayer customer portal.
3132func (r User_Customer_OpenIdConnect) GetUnsuccessfulLogins() (resp []datatypes.User_Customer_Access_Authentication, err error) {
3133	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUnsuccessfulLogins", nil, &r.Options, &resp)
3134	return
3135}
3136
3137// Returns an IMS User Object from the provided OpenIdConnect User ID or IBMid Unique Identifier for the Account of the active user. Enforces the User Management permissions for the Active User. An exception will be thrown if no matching IMS User is found. NOTE that providing IBMid Unique Identifier is optional, but it will be preferred over OpenIdConnect User ID if provided.
3138func (r User_Customer_OpenIdConnect) GetUserForUnifiedInvitation(openIdConnectUserId *string, ibmIdUniqueIdentifier *string) (resp datatypes.User_Customer_OpenIdConnect, err error) {
3139	params := []interface{}{
3140		openIdConnectUserId,
3141		ibmIdUniqueIdentifier,
3142	}
3143	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserForUnifiedInvitation", params, &r.Options, &resp)
3144	return
3145}
3146
3147// Retrieve a user object using a password token. When a new user is created or when a user has requested a password change using initiatePortalPasswordChange, they will have received an email that contains a url with a token.  That token is used as the parameter for getUserIdForPasswordSet.
3148func (r User_Customer_OpenIdConnect) GetUserIdForPasswordSet(key *string) (resp int, err error) {
3149	params := []interface{}{
3150		key,
3151	}
3152	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserIdForPasswordSet", params, &r.Options, &resp)
3153	return
3154}
3155
3156// Retrieve
3157func (r User_Customer_OpenIdConnect) GetUserLinks() (resp []datatypes.User_Customer_Link, err error) {
3158	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserLinks", nil, &r.Options, &resp)
3159	return
3160}
3161
3162// no documentation yet
3163func (r User_Customer_OpenIdConnect) GetUserPreferences(profileName *string, containerKeyname *string) (resp []datatypes.Layout_Profile, err error) {
3164	params := []interface{}{
3165		profileName,
3166		containerKeyname,
3167	}
3168	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserPreferences", params, &r.Options, &resp)
3169	return
3170}
3171
3172// Retrieve A portal user's status, which controls overall access to the SoftLayer customer portal and VPN access to the private network.
3173func (r User_Customer_OpenIdConnect) GetUserStatus() (resp datatypes.User_Customer_Status, err error) {
3174	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserStatus", nil, &r.Options, &resp)
3175	return
3176}
3177
3178// Retrieve the number of CloudLayer Computing Instances that a portal user has access to. Portal users can have restrictions set to limit services for and to perform actions on CloudLayer Computing Instances. You can set these permissions in the portal by clicking the "administrative" then "user admin" links.
3179func (r User_Customer_OpenIdConnect) GetVirtualGuestCount() (resp int, err error) {
3180	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getVirtualGuestCount", nil, &r.Options, &resp)
3181	return
3182}
3183
3184// Retrieve A portal user's accessible CloudLayer Computing Instances. These permissions control which CloudLayer Computing Instances a user has access to in the SoftLayer customer portal.
3185func (r User_Customer_OpenIdConnect) GetVirtualGuests() (resp []datatypes.Virtual_Guest, err error) {
3186	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getVirtualGuests", nil, &r.Options, &resp)
3187	return
3188}
3189
3190// no documentation yet
3191func (r User_Customer_OpenIdConnect) InTerminalStatus() (resp bool, err error) {
3192	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "inTerminalStatus", nil, &r.Options, &resp)
3193	return
3194}
3195
3196// The service initiates an external authentication with the given external authentication vendor. The authentication container and its content will be verified before an attempt is made to initiate an external authentication. [[SoftLayer_Container_User_Customer_External_Binding_Phone|Phone external binding]] container can be used for this service.
3197//
3198// This service returns a unique authentication request token. You can use [[SoftLayer_User_Customer::checkExternalAuthenticationStatus|checkExternalAuthenticationStatus]] service to check if the authentication request is complete or not.
3199func (r User_Customer_OpenIdConnect) InitiateExternalAuthentication(authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp string, err error) {
3200	params := []interface{}{
3201		authenticationContainer,
3202	}
3203	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "initiateExternalAuthentication", params, &r.Options, &resp)
3204	return
3205}
3206
3207// Sends password change email to the user containing url that allows the user the change their password. This is the first step when a user wishes to change their password.  The url that is generated contains a one-time use token that is valid for only 24-hours.
3208//
3209// If this is a new master user who has never logged into the portal, then password reset will be initiated. Once a master user has logged into the portal, they must setup their security questions prior to logging out because master users are required to answer a security question during the password reset process.  Should a master user not have security questions defined and not remember their password in order to define the security questions, then they will need to contact support at live chat or Revenue Services for assistance.
3210//
3211// Due to security reasons, the number reset requests per username are limited within a undisclosed timeframe.
3212func (r User_Customer_OpenIdConnect) InitiatePortalPasswordChange(username *string) (resp bool, err error) {
3213	params := []interface{}{
3214		username,
3215	}
3216	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "initiatePortalPasswordChange", params, &r.Options, &resp)
3217	return
3218}
3219
3220// A Brand Agent that has permissions to Add Customer Accounts will be able to request the password email be sent to the Master User of a Customer Account created by the same Brand as the agent making the request. Due to security reasons, the number of reset requests are limited within an undisclosed timeframe.
3221func (r User_Customer_OpenIdConnect) InitiatePortalPasswordChangeByBrandAgent(username *string) (resp bool, err error) {
3222	params := []interface{}{
3223		username,
3224	}
3225	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "initiatePortalPasswordChangeByBrandAgent", params, &r.Options, &resp)
3226	return
3227}
3228
3229// Send email invitation to a user to join a SoftLayer account and authenticate with OpenIdConnect. Throws an exception on error.
3230func (r User_Customer_OpenIdConnect) InviteUserToLinkOpenIdConnect(providerType *string) (err error) {
3231	var resp datatypes.Void
3232	params := []interface{}{
3233		providerType,
3234	}
3235	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "inviteUserToLinkOpenIdConnect", params, &r.Options, &resp)
3236	return
3237}
3238
3239// Portal users are considered master users if they don't have an associated parent user. The only users who don't have parent users are users whose username matches their SoftLayer account name. Master users have special permissions throughout the SoftLayer customer portal.
3240func (r User_Customer_OpenIdConnect) IsMasterUser() (resp bool, err error) {
3241	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "isMasterUser", nil, &r.Options, &resp)
3242	return
3243}
3244
3245// This method is deprecated! SoftLayer Community Forums no longer exist, therefore, any password verified will return false. In the future, this method will be completely removed.
3246//
3247// Determine if a string is the given user's login password to the SoftLayer community forums.
3248func (r User_Customer_OpenIdConnect) IsValidForumPassword(password *string) (err error) {
3249	var resp datatypes.Void
3250	params := []interface{}{
3251		password,
3252	}
3253	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "isValidForumPassword", params, &r.Options, &resp)
3254	return
3255}
3256
3257// Determine if a string is the given user's login password to the SoftLayer customer portal.
3258func (r User_Customer_OpenIdConnect) IsValidPortalPassword(password *string) (resp bool, err error) {
3259	params := []interface{}{
3260		password,
3261	}
3262	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "isValidPortalPassword", params, &r.Options, &resp)
3263	return
3264}
3265
3266// The perform external authentication method will authenticate the given external authentication container with an external vendor.  The authentication container and its contents will be verified before an attempt is made to authenticate the contents of the container with an external vendor.
3267func (r User_Customer_OpenIdConnect) PerformExternalAuthentication(authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
3268	params := []interface{}{
3269		authenticationContainer,
3270	}
3271	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "performExternalAuthentication", params, &r.Options, &resp)
3272	return
3273}
3274
3275// Set the password for a user who has an outstanding password request. A user with an outstanding password request will have an unused and unexpired password key.  The password key is part of the url provided to the user in the email sent to the user with information on how to set their password.  The email was generated by the [[SoftLayer_User_Customer::initiatePortalPasswordRequest|initiatePortalPasswordRequest]] method. Password recovery keys are valid for 24 hours after they're generated.
3276//
3277// User portal passwords must match the following restrictions. Portal passwords must...
3278// * ...be over eight characters long.
3279// * ...be under twenty characters long.
3280// * ...contain at least one uppercase letter
3281// * ...contain at least one lowercase letter
3282// * ...contain at least one number
3283// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ + =
3284// * ...not match your username
3285// * ...not match your forum password
3286func (r User_Customer_OpenIdConnect) ProcessPasswordSetRequest(passwordSet *datatypes.Container_User_Customer_PasswordSet, authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp bool, err error) {
3287	params := []interface{}{
3288		passwordSet,
3289		authenticationContainer,
3290	}
3291	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "processPasswordSetRequest", params, &r.Options, &resp)
3292	return
3293}
3294
3295// Revoke access to all dedicated hosts on the account for this user. The user will only be allowed to see and access devices in both the portal and the API to which they have been granted access.  If the user's account has devices to which the user has not been granted access or the access has been revoked, then "not found" exceptions are thrown if the user attempts to access any of these devices. If the current user does not have administrative privileges over this user, an inadequate permissions exception will get thrown.
3296//
3297// Users can call this function on child users, but not to themselves. An account's master has access to all users permissions on their account.
3298func (r User_Customer_OpenIdConnect) RemoveAllDedicatedHostAccessForThisUser() (resp bool, err error) {
3299	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeAllDedicatedHostAccessForThisUser", nil, &r.Options, &resp)
3300	return
3301}
3302
3303// Remove all hardware from a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. If the current user does not have administrative privileges over this user, an inadequate permissions exception will get thrown.
3304//
3305// Users can call this function on child users, but not to themselves. An account's master has access to all users permissions on their account.
3306func (r User_Customer_OpenIdConnect) RemoveAllHardwareAccessForThisUser() (resp bool, err error) {
3307	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeAllHardwareAccessForThisUser", nil, &r.Options, &resp)
3308	return
3309}
3310
3311// Remove all cloud computing instances from a portal user's instance access list. A user's instance access list controls which of an account's computing instance objects a user has access to in the SoftLayer customer portal and API. If the current user does not have administrative privileges over this user, an inadequate permissions exception will get thrown.
3312//
3313// Users can call this function on child users, but not to themselves. An account's master has access to all users permissions on their account.
3314func (r User_Customer_OpenIdConnect) RemoveAllVirtualAccessForThisUser() (resp bool, err error) {
3315	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeAllVirtualAccessForThisUser", nil, &r.Options, &resp)
3316	return
3317}
3318
3319// Remove a user's API authentication key, removing that user's access to query the SoftLayer API.
3320func (r User_Customer_OpenIdConnect) RemoveApiAuthenticationKey(keyId *int) (resp bool, err error) {
3321	params := []interface{}{
3322		keyId,
3323	}
3324	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeApiAuthenticationKey", params, &r.Options, &resp)
3325	return
3326}
3327
3328// Revokes access for the user to one or more dedicated host devices.  The user will only be allowed to see and access devices in both the portal and the API to which they have been granted access.  If the user's account has devices to which the user has not been granted access or the access has been revoked, then "not found" exceptions are thrown if the user attempts to access any of these devices.
3329//
3330// Users can assign device access to their child users, but not to themselves. An account's master has access to all devices on their customer account and can set dedicated host access for any of the other users on their account.
3331//
3332// If the user has full dedicatedHost access, then it will provide access to "ALL but passed in" dedicatedHost ids.
3333func (r User_Customer_OpenIdConnect) RemoveBulkDedicatedHostAccess(dedicatedHostIds []int) (resp bool, err error) {
3334	params := []interface{}{
3335		dedicatedHostIds,
3336	}
3337	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeBulkDedicatedHostAccess", params, &r.Options, &resp)
3338	return
3339}
3340
3341// Remove multiple hardware from a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the hardware you're attempting remove add then removeBulkHardwareAccess() returns true.
3342//
3343// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account.
3344//
3345// If the user has full hardware access, then it will provide access to "ALL but passed in" hardware ids.
3346func (r User_Customer_OpenIdConnect) RemoveBulkHardwareAccess(hardwareIds []int) (resp bool, err error) {
3347	params := []interface{}{
3348		hardwareIds,
3349	}
3350	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeBulkHardwareAccess", params, &r.Options, &resp)
3351	return
3352}
3353
3354// Remove multiple permissions from a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. Removing a user's permission will affect that user's portal and API access. removePortalPermission() does not attempt to remove permissions that are not assigned to the user.
3355//
3356// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account.
3357//
3358// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are removed based on the keyName property of the permission objects within the permissions parameter.
3359func (r User_Customer_OpenIdConnect) RemoveBulkPortalPermission(permissions []datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) {
3360	params := []interface{}{
3361		permissions,
3362	}
3363	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeBulkPortalPermission", params, &r.Options, &resp)
3364	return
3365}
3366
3367// no documentation yet
3368func (r User_Customer_OpenIdConnect) RemoveBulkRoles(roles []datatypes.User_Permission_Role) (err error) {
3369	var resp datatypes.Void
3370	params := []interface{}{
3371		roles,
3372	}
3373	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeBulkRoles", params, &r.Options, &resp)
3374	return
3375}
3376
3377// Remove multiple CloudLayer Computing Instances from a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's CloudLayer Computing Instance objects a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the CloudLayer Computing Instance you're attempting remove add then removeBulkVirtualGuestAccess() returns true.
3378//
3379// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set hardware access for any of the other users on their account.
3380func (r User_Customer_OpenIdConnect) RemoveBulkVirtualGuestAccess(virtualGuestIds []int) (resp bool, err error) {
3381	params := []interface{}{
3382		virtualGuestIds,
3383	}
3384	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeBulkVirtualGuestAccess", params, &r.Options, &resp)
3385	return
3386}
3387
3388// Revokes access for the user to a single dedicated host device.  The user will only be allowed to see and access devices in both the portal and the API to which they have been granted access.  If the user's account has devices to which the user has not been granted access or the access has been revoked, then "not found" exceptions are thrown if the user attempts to access any of these devices.
3389//
3390// Users can assign device access to their child users, but not to themselves. An account's master has access to all devices on their customer account and can set dedicated host access for any of the other users on their account.
3391func (r User_Customer_OpenIdConnect) RemoveDedicatedHostAccess(dedicatedHostId *int) (resp bool, err error) {
3392	params := []interface{}{
3393		dedicatedHostId,
3394	}
3395	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeDedicatedHostAccess", params, &r.Options, &resp)
3396	return
3397}
3398
3399// no documentation yet
3400func (r User_Customer_OpenIdConnect) RemoveExternalBinding(externalBinding *datatypes.User_External_Binding) (resp bool, err error) {
3401	params := []interface{}{
3402		externalBinding,
3403	}
3404	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeExternalBinding", params, &r.Options, &resp)
3405	return
3406}
3407
3408// Remove hardware from a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the hardware you're attempting remove add then removeHardwareAccess() returns true.
3409//
3410// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account.
3411func (r User_Customer_OpenIdConnect) RemoveHardwareAccess(hardwareId *int) (resp bool, err error) {
3412	params := []interface{}{
3413		hardwareId,
3414	}
3415	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeHardwareAccess", params, &r.Options, &resp)
3416	return
3417}
3418
3419// Remove a permission from a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. Removing a user's permission will affect that user's portal and API access. If the user does not have the permission you're attempting to remove then removePortalPermission() returns true.
3420//
3421// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account.
3422//
3423// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are removed based on the keyName property of the permission parameter.
3424func (r User_Customer_OpenIdConnect) RemovePortalPermission(permission *datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) {
3425	params := []interface{}{
3426		permission,
3427	}
3428	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removePortalPermission", params, &r.Options, &resp)
3429	return
3430}
3431
3432// no documentation yet
3433func (r User_Customer_OpenIdConnect) RemoveRole(role *datatypes.User_Permission_Role) (err error) {
3434	var resp datatypes.Void
3435	params := []interface{}{
3436		role,
3437	}
3438	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeRole", params, &r.Options, &resp)
3439	return
3440}
3441
3442// Remove a CloudLayer Computing Instance from a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's computing instances a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the CloudLayer Computing Instance you're attempting remove add then removeVirtualGuestAccess() returns true.
3443//
3444// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set instance access for any of the other users on their account.
3445func (r User_Customer_OpenIdConnect) RemoveVirtualGuestAccess(virtualGuestId *int) (resp bool, err error) {
3446	params := []interface{}{
3447		virtualGuestId,
3448	}
3449	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeVirtualGuestAccess", params, &r.Options, &resp)
3450	return
3451}
3452
3453// no documentation yet
3454func (r User_Customer_OpenIdConnect) SamlAuthenticate(accountId *string, samlResponse *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
3455	params := []interface{}{
3456		accountId,
3457		samlResponse,
3458	}
3459	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "samlAuthenticate", params, &r.Options, &resp)
3460	return
3461}
3462
3463// no documentation yet
3464func (r User_Customer_OpenIdConnect) SamlBeginAuthentication(accountId *int) (resp string, err error) {
3465	params := []interface{}{
3466		accountId,
3467	}
3468	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "samlBeginAuthentication", params, &r.Options, &resp)
3469	return
3470}
3471
3472// no documentation yet
3473func (r User_Customer_OpenIdConnect) SamlBeginLogout() (resp string, err error) {
3474	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "samlBeginLogout", nil, &r.Options, &resp)
3475	return
3476}
3477
3478// no documentation yet
3479func (r User_Customer_OpenIdConnect) SamlLogout(samlResponse *string) (err error) {
3480	var resp datatypes.Void
3481	params := []interface{}{
3482		samlResponse,
3483	}
3484	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "samlLogout", params, &r.Options, &resp)
3485	return
3486}
3487
3488// An OpenIdConnect identity, for example an IBMid, can be linked or mapped to one or more individual SoftLayer users, but no more than one per account. If an OpenIdConnect identity is mapped to multiple accounts in this manner, one such account should be identified as the default account for that identity. Invoke this only on IBMid-authenticated users.
3489func (r User_Customer_OpenIdConnect) SetDefaultAccount(providerType *string, accountId *int) (resp datatypes.Account, err error) {
3490	params := []interface{}{
3491		providerType,
3492		accountId,
3493	}
3494	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "setDefaultAccount", params, &r.Options, &resp)
3495	return
3496}
3497
3498// As master user, calling this api for the IBMid provider type when there is an existing IBMid for the email on the SL account will silently (without sending an invitation email) create a link for the IBMid. NOTE: If the SoftLayer user is already linked to IBMid, this call will fail. If the IBMid specified by the email of this user, is already used in a link to another user in this account, this call will fail. If there is already an open invitation from this SoftLayer user to this or any IBMid, this call will fail. If there is already an open invitation from some other SoftLayer user in this account to this IBMid, then this call will fail.
3499func (r User_Customer_OpenIdConnect) SilentlyMigrateUserOpenIdConnect(providerType *string) (resp bool, err error) {
3500	params := []interface{}{
3501		providerType,
3502	}
3503	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "silentlyMigrateUserOpenIdConnect", params, &r.Options, &resp)
3504	return
3505}
3506
3507// This method is deprecated! SoftLayer Community Forums no longer exist, therefore, this method will return false. In the future, this method will be completely removed.
3508//
3509// Update a user's password on the SoftLayer community forums. As with portal passwords, user forum passwords must match the following restrictions. Forum passwords must...
3510// * ...be over eight characters long.
3511// * ...be under twenty characters long.
3512// * ...contain at least one uppercase letter
3513// * ...contain at least one lowercase letter
3514// * ...contain at least one number
3515// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ + =
3516// * ...not match your username
3517// * ...not match your portal password
3518// Finally, users can only update their own password.
3519func (r User_Customer_OpenIdConnect) UpdateForumPassword(password *string) (err error) {
3520	var resp datatypes.Void
3521	params := []interface{}{
3522		password,
3523	}
3524	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateForumPassword", params, &r.Options, &resp)
3525	return
3526}
3527
3528// Update the active status for a notification that the user is subscribed to. A notification along with an active flag can be supplied to update the active status for a particular notification subscription.
3529func (r User_Customer_OpenIdConnect) UpdateNotificationSubscriber(notificationKeyName *string, active *int) (resp bool, err error) {
3530	params := []interface{}{
3531		notificationKeyName,
3532		active,
3533	}
3534	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateNotificationSubscriber", params, &r.Options, &resp)
3535	return
3536}
3537
3538// Update a user's login security questions and answers on the SoftLayer customer portal. These questions and answers are used to optionally log into the SoftLayer customer portal using two-factor authentication. Each user must have three distinct questions set with a unique answer for each question, and each answer may only contain alphanumeric or the . , - _ ( ) [ ] : ; > < characters. Existing user security questions and answers are deleted before new ones are set, and users may only update their own security questions and answers.
3539func (r User_Customer_OpenIdConnect) UpdateSecurityAnswers(questions []datatypes.User_Security_Question, answers []string) (resp bool, err error) {
3540	params := []interface{}{
3541		questions,
3542		answers,
3543	}
3544	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateSecurityAnswers", params, &r.Options, &resp)
3545	return
3546}
3547
3548// Update a delivery method for a notification that the user is subscribed to. A delivery method keyName along with an active flag can be supplied to update the active status of the delivery methods for the specified notification. Available delivery methods - 'EMAIL'. Available notifications - 'PLANNED_MAINTENANCE', 'UNPLANNED_INCIDENT'.
3549func (r User_Customer_OpenIdConnect) UpdateSubscriberDeliveryMethod(notificationKeyName *string, deliveryMethodKeyNames []string, active *int) (resp bool, err error) {
3550	params := []interface{}{
3551		notificationKeyName,
3552		deliveryMethodKeyNames,
3553		active,
3554	}
3555	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateSubscriberDeliveryMethod", params, &r.Options, &resp)
3556	return
3557}
3558
3559// Update a user's VPN password on the SoftLayer customer portal. As with portal passwords, VPN passwords must match the following restrictions. VPN passwords must...
3560// * ...be over eight characters long.
3561// * ...be under twenty characters long.
3562// * ...contain at least one uppercase letter
3563// * ...contain at least one lowercase letter
3564// * ...contain at least one number
3565// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ =
3566// * ...not match your username
3567// * ...not match your forum password
3568// Finally, users can only update their own VPN password. An account's master user can update any of their account users' VPN passwords.
3569func (r User_Customer_OpenIdConnect) UpdateVpnPassword(password *string) (resp bool, err error) {
3570	params := []interface{}{
3571		password,
3572	}
3573	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateVpnPassword", params, &r.Options, &resp)
3574	return
3575}
3576
3577// Always call this function to enable changes when manually configuring VPN subnet access.
3578func (r User_Customer_OpenIdConnect) UpdateVpnUser() (resp bool, err error) {
3579	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateVpnUser", nil, &r.Options, &resp)
3580	return
3581}
3582
3583// no documentation yet
3584func (r User_Customer_OpenIdConnect) ValidateAuthenticationToken(authenticationToken *datatypes.Container_User_Authentication_Token) (resp datatypes.Container_User_Customer_Portal_Token, err error) {
3585	params := []interface{}{
3586		authenticationToken,
3587	}
3588	err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "validateAuthenticationToken", params, &r.Options, &resp)
3589	return
3590}
3591
3592// Contains user information for Service Provider Enrollment.
3593type User_Customer_Prospect_ServiceProvider_EnrollRequest struct {
3594	Session *session.Session
3595	Options sl.Options
3596}
3597
3598// GetUserCustomerProspectServiceProviderEnrollRequestService returns an instance of the User_Customer_Prospect_ServiceProvider_EnrollRequest SoftLayer service
3599func GetUserCustomerProspectServiceProviderEnrollRequestService(sess *session.Session) User_Customer_Prospect_ServiceProvider_EnrollRequest {
3600	return User_Customer_Prospect_ServiceProvider_EnrollRequest{Session: sess}
3601}
3602
3603func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Id(id int) User_Customer_Prospect_ServiceProvider_EnrollRequest {
3604	r.Options.Id = &id
3605	return r
3606}
3607
3608func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Mask(mask string) User_Customer_Prospect_ServiceProvider_EnrollRequest {
3609	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
3610		mask = fmt.Sprintf("mask[%s]", mask)
3611	}
3612
3613	r.Options.Mask = mask
3614	return r
3615}
3616
3617func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Filter(filter string) User_Customer_Prospect_ServiceProvider_EnrollRequest {
3618	r.Options.Filter = filter
3619	return r
3620}
3621
3622func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Limit(limit int) User_Customer_Prospect_ServiceProvider_EnrollRequest {
3623	r.Options.Limit = &limit
3624	return r
3625}
3626
3627func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Offset(offset int) User_Customer_Prospect_ServiceProvider_EnrollRequest {
3628	r.Options.Offset = &offset
3629	return r
3630}
3631
3632// Create a new Service Provider Enrollment
3633func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Enroll(templateObject *datatypes.User_Customer_Prospect_ServiceProvider_EnrollRequest) (resp datatypes.User_Customer_Prospect_ServiceProvider_EnrollRequest, err error) {
3634	params := []interface{}{
3635		templateObject,
3636	}
3637	err = r.Session.DoRequest("SoftLayer_User_Customer_Prospect_ServiceProvider_EnrollRequest", "enroll", params, &r.Options, &resp)
3638	return
3639}
3640
3641// Retrieve Catalyst company types.
3642func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) GetCompanyType() (resp datatypes.Catalyst_Company_Type, err error) {
3643	err = r.Session.DoRequest("SoftLayer_User_Customer_Prospect_ServiceProvider_EnrollRequest", "getCompanyType", nil, &r.Options, &resp)
3644	return
3645}
3646
3647// no documentation yet
3648func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) GetObject() (resp datatypes.User_Customer_Prospect_ServiceProvider_EnrollRequest, err error) {
3649	err = r.Session.DoRequest("SoftLayer_User_Customer_Prospect_ServiceProvider_EnrollRequest", "getObject", nil, &r.Options, &resp)
3650	return
3651}
3652
3653// The SoftLayer_User_Customer_Security_Answer type contains user's answers to security questions.
3654type User_Customer_Security_Answer struct {
3655	Session *session.Session
3656	Options sl.Options
3657}
3658
3659// GetUserCustomerSecurityAnswerService returns an instance of the User_Customer_Security_Answer SoftLayer service
3660func GetUserCustomerSecurityAnswerService(sess *session.Session) User_Customer_Security_Answer {
3661	return User_Customer_Security_Answer{Session: sess}
3662}
3663
3664func (r User_Customer_Security_Answer) Id(id int) User_Customer_Security_Answer {
3665	r.Options.Id = &id
3666	return r
3667}
3668
3669func (r User_Customer_Security_Answer) Mask(mask string) User_Customer_Security_Answer {
3670	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
3671		mask = fmt.Sprintf("mask[%s]", mask)
3672	}
3673
3674	r.Options.Mask = mask
3675	return r
3676}
3677
3678func (r User_Customer_Security_Answer) Filter(filter string) User_Customer_Security_Answer {
3679	r.Options.Filter = filter
3680	return r
3681}
3682
3683func (r User_Customer_Security_Answer) Limit(limit int) User_Customer_Security_Answer {
3684	r.Options.Limit = &limit
3685	return r
3686}
3687
3688func (r User_Customer_Security_Answer) Offset(offset int) User_Customer_Security_Answer {
3689	r.Options.Offset = &offset
3690	return r
3691}
3692
3693// getObject retrieves the SoftLayer_User_Customer_Security_Answer object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_User_Customer_Security_Answer service.
3694func (r User_Customer_Security_Answer) GetObject() (resp datatypes.User_Customer_Security_Answer, err error) {
3695	err = r.Session.DoRequest("SoftLayer_User_Customer_Security_Answer", "getObject", nil, &r.Options, &resp)
3696	return
3697}
3698
3699// Retrieve The question the security answer is associated with.
3700func (r User_Customer_Security_Answer) GetQuestion() (resp datatypes.User_Security_Question, err error) {
3701	err = r.Session.DoRequest("SoftLayer_User_Customer_Security_Answer", "getQuestion", nil, &r.Options, &resp)
3702	return
3703}
3704
3705// Retrieve The user who the security answer belongs to.
3706func (r User_Customer_Security_Answer) GetUser() (resp datatypes.User_Customer, err error) {
3707	err = r.Session.DoRequest("SoftLayer_User_Customer_Security_Answer", "getUser", nil, &r.Options, &resp)
3708	return
3709}
3710
3711// Each SoftLayer portal account is assigned a status code that determines how it's treated in the customer portal. This status is reflected in the SoftLayer_User_Customer_Status data type. Status differs from user permissions in that user status applies globally to the portal while user permissions are applied to specific portal functions.
3712type User_Customer_Status struct {
3713	Session *session.Session
3714	Options sl.Options
3715}
3716
3717// GetUserCustomerStatusService returns an instance of the User_Customer_Status SoftLayer service
3718func GetUserCustomerStatusService(sess *session.Session) User_Customer_Status {
3719	return User_Customer_Status{Session: sess}
3720}
3721
3722func (r User_Customer_Status) Id(id int) User_Customer_Status {
3723	r.Options.Id = &id
3724	return r
3725}
3726
3727func (r User_Customer_Status) Mask(mask string) User_Customer_Status {
3728	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
3729		mask = fmt.Sprintf("mask[%s]", mask)
3730	}
3731
3732	r.Options.Mask = mask
3733	return r
3734}
3735
3736func (r User_Customer_Status) Filter(filter string) User_Customer_Status {
3737	r.Options.Filter = filter
3738	return r
3739}
3740
3741func (r User_Customer_Status) Limit(limit int) User_Customer_Status {
3742	r.Options.Limit = &limit
3743	return r
3744}
3745
3746func (r User_Customer_Status) Offset(offset int) User_Customer_Status {
3747	r.Options.Offset = &offset
3748	return r
3749}
3750
3751// Retrieve all user status objects.
3752func (r User_Customer_Status) GetAllObjects() (resp []datatypes.User_Customer_Status, err error) {
3753	err = r.Session.DoRequest("SoftLayer_User_Customer_Status", "getAllObjects", nil, &r.Options, &resp)
3754	return
3755}
3756
3757// getObject retrieves the SoftLayer_User_Customer_Status object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_User_Customer_Status service.
3758func (r User_Customer_Status) GetObject() (resp datatypes.User_Customer_Status, err error) {
3759	err = r.Session.DoRequest("SoftLayer_User_Customer_Status", "getObject", nil, &r.Options, &resp)
3760	return
3761}
3762
3763// The SoftLayer_User_External_Binding data type contains general information for a single external binding.  This includes the 3rd party vendor, type of binding, and a unique identifier and password that is used to authenticate against the 3rd party service.
3764type User_External_Binding struct {
3765	Session *session.Session
3766	Options sl.Options
3767}
3768
3769// GetUserExternalBindingService returns an instance of the User_External_Binding SoftLayer service
3770func GetUserExternalBindingService(sess *session.Session) User_External_Binding {
3771	return User_External_Binding{Session: sess}
3772}
3773
3774func (r User_External_Binding) Id(id int) User_External_Binding {
3775	r.Options.Id = &id
3776	return r
3777}
3778
3779func (r User_External_Binding) Mask(mask string) User_External_Binding {
3780	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
3781		mask = fmt.Sprintf("mask[%s]", mask)
3782	}
3783
3784	r.Options.Mask = mask
3785	return r
3786}
3787
3788func (r User_External_Binding) Filter(filter string) User_External_Binding {
3789	r.Options.Filter = filter
3790	return r
3791}
3792
3793func (r User_External_Binding) Limit(limit int) User_External_Binding {
3794	r.Options.Limit = &limit
3795	return r
3796}
3797
3798func (r User_External_Binding) Offset(offset int) User_External_Binding {
3799	r.Options.Offset = &offset
3800	return r
3801}
3802
3803// Delete an external authentication binding.  If the external binding currently has an active billing item associated you will be prevented from deleting the binding.  The alternative method to remove an external authentication binding is to use the service cancellation form.
3804func (r User_External_Binding) DeleteObject() (resp bool, err error) {
3805	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "deleteObject", nil, &r.Options, &resp)
3806	return
3807}
3808
3809// Retrieve Attributes of an external authentication binding.
3810func (r User_External_Binding) GetAttributes() (resp []datatypes.User_External_Binding_Attribute, err error) {
3811	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getAttributes", nil, &r.Options, &resp)
3812	return
3813}
3814
3815// Retrieve Information regarding the billing item for external authentication.
3816func (r User_External_Binding) GetBillingItem() (resp datatypes.Billing_Item, err error) {
3817	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getBillingItem", nil, &r.Options, &resp)
3818	return
3819}
3820
3821// Retrieve An optional note for identifying the external binding.
3822func (r User_External_Binding) GetNote() (resp string, err error) {
3823	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getNote", nil, &r.Options, &resp)
3824	return
3825}
3826
3827// no documentation yet
3828func (r User_External_Binding) GetObject() (resp datatypes.User_External_Binding, err error) {
3829	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getObject", nil, &r.Options, &resp)
3830	return
3831}
3832
3833// Retrieve The type of external authentication binding.
3834func (r User_External_Binding) GetType() (resp datatypes.User_External_Binding_Type, err error) {
3835	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getType", nil, &r.Options, &resp)
3836	return
3837}
3838
3839// Retrieve The vendor of an external authentication binding.
3840func (r User_External_Binding) GetVendor() (resp datatypes.User_External_Binding_Vendor, err error) {
3841	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getVendor", nil, &r.Options, &resp)
3842	return
3843}
3844
3845// Update the note of an external binding.  The note is an optional property that is used to store information about a binding.
3846func (r User_External_Binding) UpdateNote(text *string) (resp bool, err error) {
3847	params := []interface{}{
3848		text,
3849	}
3850	err = r.Session.DoRequest("SoftLayer_User_External_Binding", "updateNote", params, &r.Options, &resp)
3851	return
3852}
3853
3854// The SoftLayer_User_External_Binding_Vendor data type contains information for a single external binding vendor.  This information includes a user friendly vendor name, a unique version of the vendor name, and a unique internal identifier that can be used when creating a new external binding.
3855type User_External_Binding_Vendor struct {
3856	Session *session.Session
3857	Options sl.Options
3858}
3859
3860// GetUserExternalBindingVendorService returns an instance of the User_External_Binding_Vendor SoftLayer service
3861func GetUserExternalBindingVendorService(sess *session.Session) User_External_Binding_Vendor {
3862	return User_External_Binding_Vendor{Session: sess}
3863}
3864
3865func (r User_External_Binding_Vendor) Id(id int) User_External_Binding_Vendor {
3866	r.Options.Id = &id
3867	return r
3868}
3869
3870func (r User_External_Binding_Vendor) Mask(mask string) User_External_Binding_Vendor {
3871	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
3872		mask = fmt.Sprintf("mask[%s]", mask)
3873	}
3874
3875	r.Options.Mask = mask
3876	return r
3877}
3878
3879func (r User_External_Binding_Vendor) Filter(filter string) User_External_Binding_Vendor {
3880	r.Options.Filter = filter
3881	return r
3882}
3883
3884func (r User_External_Binding_Vendor) Limit(limit int) User_External_Binding_Vendor {
3885	r.Options.Limit = &limit
3886	return r
3887}
3888
3889func (r User_External_Binding_Vendor) Offset(offset int) User_External_Binding_Vendor {
3890	r.Options.Offset = &offset
3891	return r
3892}
3893
3894// getAllObjects() will return a list of the available external binding vendors that SoftLayer supports.  Use this list to select the appropriate vendor when creating a new external binding.
3895func (r User_External_Binding_Vendor) GetAllObjects() (resp []datatypes.User_External_Binding_Vendor, err error) {
3896	err = r.Session.DoRequest("SoftLayer_User_External_Binding_Vendor", "getAllObjects", nil, &r.Options, &resp)
3897	return
3898}
3899
3900// no documentation yet
3901func (r User_External_Binding_Vendor) GetObject() (resp datatypes.User_External_Binding_Vendor, err error) {
3902	err = r.Session.DoRequest("SoftLayer_User_External_Binding_Vendor", "getObject", nil, &r.Options, &resp)
3903	return
3904}
3905
3906// no documentation yet
3907type User_Permission_Action struct {
3908	Session *session.Session
3909	Options sl.Options
3910}
3911
3912// GetUserPermissionActionService returns an instance of the User_Permission_Action SoftLayer service
3913func GetUserPermissionActionService(sess *session.Session) User_Permission_Action {
3914	return User_Permission_Action{Session: sess}
3915}
3916
3917func (r User_Permission_Action) Id(id int) User_Permission_Action {
3918	r.Options.Id = &id
3919	return r
3920}
3921
3922func (r User_Permission_Action) Mask(mask string) User_Permission_Action {
3923	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
3924		mask = fmt.Sprintf("mask[%s]", mask)
3925	}
3926
3927	r.Options.Mask = mask
3928	return r
3929}
3930
3931func (r User_Permission_Action) Filter(filter string) User_Permission_Action {
3932	r.Options.Filter = filter
3933	return r
3934}
3935
3936func (r User_Permission_Action) Limit(limit int) User_Permission_Action {
3937	r.Options.Limit = &limit
3938	return r
3939}
3940
3941func (r User_Permission_Action) Offset(offset int) User_Permission_Action {
3942	r.Options.Offset = &offset
3943	return r
3944}
3945
3946// no documentation yet
3947func (r User_Permission_Action) GetAllObjects() (resp []datatypes.User_Permission_Action, err error) {
3948	err = r.Session.DoRequest("SoftLayer_User_Permission_Action", "getAllObjects", nil, &r.Options, &resp)
3949	return
3950}
3951
3952// no documentation yet
3953func (r User_Permission_Action) GetObject() (resp datatypes.User_Permission_Action, err error) {
3954	err = r.Session.DoRequest("SoftLayer_User_Permission_Action", "getObject", nil, &r.Options, &resp)
3955	return
3956}
3957
3958// no documentation yet
3959type User_Permission_Group struct {
3960	Session *session.Session
3961	Options sl.Options
3962}
3963
3964// GetUserPermissionGroupService returns an instance of the User_Permission_Group SoftLayer service
3965func GetUserPermissionGroupService(sess *session.Session) User_Permission_Group {
3966	return User_Permission_Group{Session: sess}
3967}
3968
3969func (r User_Permission_Group) Id(id int) User_Permission_Group {
3970	r.Options.Id = &id
3971	return r
3972}
3973
3974func (r User_Permission_Group) Mask(mask string) User_Permission_Group {
3975	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
3976		mask = fmt.Sprintf("mask[%s]", mask)
3977	}
3978
3979	r.Options.Mask = mask
3980	return r
3981}
3982
3983func (r User_Permission_Group) Filter(filter string) User_Permission_Group {
3984	r.Options.Filter = filter
3985	return r
3986}
3987
3988func (r User_Permission_Group) Limit(limit int) User_Permission_Group {
3989	r.Options.Limit = &limit
3990	return r
3991}
3992
3993func (r User_Permission_Group) Offset(offset int) User_Permission_Group {
3994	r.Options.Offset = &offset
3995	return r
3996}
3997
3998// no documentation yet
3999func (r User_Permission_Group) AddAction(action *datatypes.User_Permission_Action) (err error) {
4000	var resp datatypes.Void
4001	params := []interface{}{
4002		action,
4003	}
4004	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "addAction", params, &r.Options, &resp)
4005	return
4006}
4007
4008// no documentation yet
4009func (r User_Permission_Group) AddBulkActions(actions []datatypes.User_Permission_Action) (err error) {
4010	var resp datatypes.Void
4011	params := []interface{}{
4012		actions,
4013	}
4014	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "addBulkActions", params, &r.Options, &resp)
4015	return
4016}
4017
4018// no documentation yet
4019func (r User_Permission_Group) AddBulkResourceObjects(resourceObjects []datatypes.Entity, resourceTypeKeyName *string) (resp bool, err error) {
4020	params := []interface{}{
4021		resourceObjects,
4022		resourceTypeKeyName,
4023	}
4024	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "addBulkResourceObjects", params, &r.Options, &resp)
4025	return
4026}
4027
4028// no documentation yet
4029func (r User_Permission_Group) AddResourceObject(resourceObject *datatypes.Entity, resourceTypeKeyName *string) (resp bool, err error) {
4030	params := []interface{}{
4031		resourceObject,
4032		resourceTypeKeyName,
4033	}
4034	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "addResourceObject", params, &r.Options, &resp)
4035	return
4036}
4037
4038// no documentation yet
4039func (r User_Permission_Group) CreateObject(templateObject *datatypes.User_Permission_Group) (resp datatypes.User_Permission_Group, err error) {
4040	params := []interface{}{
4041		templateObject,
4042	}
4043	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "createObject", params, &r.Options, &resp)
4044	return
4045}
4046
4047// no documentation yet
4048func (r User_Permission_Group) DeleteObject() (resp bool, err error) {
4049	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "deleteObject", nil, &r.Options, &resp)
4050	return
4051}
4052
4053// no documentation yet
4054func (r User_Permission_Group) EditObject(templateObject *datatypes.User_Permission_Group) (resp datatypes.User_Permission_Group, err error) {
4055	params := []interface{}{
4056		templateObject,
4057	}
4058	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "editObject", params, &r.Options, &resp)
4059	return
4060}
4061
4062// Retrieve
4063func (r User_Permission_Group) GetAccount() (resp datatypes.Account, err error) {
4064	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "getAccount", nil, &r.Options, &resp)
4065	return
4066}
4067
4068// Retrieve
4069func (r User_Permission_Group) GetActions() (resp []datatypes.User_Permission_Action, err error) {
4070	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "getActions", nil, &r.Options, &resp)
4071	return
4072}
4073
4074// no documentation yet
4075func (r User_Permission_Group) GetObject() (resp datatypes.User_Permission_Group, err error) {
4076	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "getObject", nil, &r.Options, &resp)
4077	return
4078}
4079
4080// Retrieve
4081func (r User_Permission_Group) GetRoles() (resp []datatypes.User_Permission_Role, err error) {
4082	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "getRoles", nil, &r.Options, &resp)
4083	return
4084}
4085
4086// Retrieve The type of the permission group.
4087func (r User_Permission_Group) GetType() (resp datatypes.User_Permission_Group_Type, err error) {
4088	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "getType", nil, &r.Options, &resp)
4089	return
4090}
4091
4092// no documentation yet
4093func (r User_Permission_Group) LinkRole(role *datatypes.User_Permission_Role) (err error) {
4094	var resp datatypes.Void
4095	params := []interface{}{
4096		role,
4097	}
4098	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "linkRole", params, &r.Options, &resp)
4099	return
4100}
4101
4102// no documentation yet
4103func (r User_Permission_Group) RemoveAction(action *datatypes.User_Permission_Action) (err error) {
4104	var resp datatypes.Void
4105	params := []interface{}{
4106		action,
4107	}
4108	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "removeAction", params, &r.Options, &resp)
4109	return
4110}
4111
4112// no documentation yet
4113func (r User_Permission_Group) RemoveBulkActions(actions []datatypes.User_Permission_Action) (err error) {
4114	var resp datatypes.Void
4115	params := []interface{}{
4116		actions,
4117	}
4118	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "removeBulkActions", params, &r.Options, &resp)
4119	return
4120}
4121
4122// no documentation yet
4123func (r User_Permission_Group) RemoveBulkResourceObjects(resourceObjects []datatypes.Entity, resourceTypeKeyName *string) (resp bool, err error) {
4124	params := []interface{}{
4125		resourceObjects,
4126		resourceTypeKeyName,
4127	}
4128	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "removeBulkResourceObjects", params, &r.Options, &resp)
4129	return
4130}
4131
4132// no documentation yet
4133func (r User_Permission_Group) RemoveResourceObject(resourceObject *datatypes.Entity, resourceTypeKeyName *string) (resp bool, err error) {
4134	params := []interface{}{
4135		resourceObject,
4136		resourceTypeKeyName,
4137	}
4138	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "removeResourceObject", params, &r.Options, &resp)
4139	return
4140}
4141
4142// no documentation yet
4143func (r User_Permission_Group) UnlinkRole(role *datatypes.User_Permission_Role) (err error) {
4144	var resp datatypes.Void
4145	params := []interface{}{
4146		role,
4147	}
4148	err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "unlinkRole", params, &r.Options, &resp)
4149	return
4150}
4151
4152// no documentation yet
4153type User_Permission_Group_Type struct {
4154	Session *session.Session
4155	Options sl.Options
4156}
4157
4158// GetUserPermissionGroupTypeService returns an instance of the User_Permission_Group_Type SoftLayer service
4159func GetUserPermissionGroupTypeService(sess *session.Session) User_Permission_Group_Type {
4160	return User_Permission_Group_Type{Session: sess}
4161}
4162
4163func (r User_Permission_Group_Type) Id(id int) User_Permission_Group_Type {
4164	r.Options.Id = &id
4165	return r
4166}
4167
4168func (r User_Permission_Group_Type) Mask(mask string) User_Permission_Group_Type {
4169	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
4170		mask = fmt.Sprintf("mask[%s]", mask)
4171	}
4172
4173	r.Options.Mask = mask
4174	return r
4175}
4176
4177func (r User_Permission_Group_Type) Filter(filter string) User_Permission_Group_Type {
4178	r.Options.Filter = filter
4179	return r
4180}
4181
4182func (r User_Permission_Group_Type) Limit(limit int) User_Permission_Group_Type {
4183	r.Options.Limit = &limit
4184	return r
4185}
4186
4187func (r User_Permission_Group_Type) Offset(offset int) User_Permission_Group_Type {
4188	r.Options.Offset = &offset
4189	return r
4190}
4191
4192// Retrieve
4193func (r User_Permission_Group_Type) GetGroups() (resp []datatypes.User_Permission_Group, err error) {
4194	err = r.Session.DoRequest("SoftLayer_User_Permission_Group_Type", "getGroups", nil, &r.Options, &resp)
4195	return
4196}
4197
4198// no documentation yet
4199func (r User_Permission_Group_Type) GetObject() (resp datatypes.User_Permission_Group_Type, err error) {
4200	err = r.Session.DoRequest("SoftLayer_User_Permission_Group_Type", "getObject", nil, &r.Options, &resp)
4201	return
4202}
4203
4204// no documentation yet
4205type User_Permission_Role struct {
4206	Session *session.Session
4207	Options sl.Options
4208}
4209
4210// GetUserPermissionRoleService returns an instance of the User_Permission_Role SoftLayer service
4211func GetUserPermissionRoleService(sess *session.Session) User_Permission_Role {
4212	return User_Permission_Role{Session: sess}
4213}
4214
4215func (r User_Permission_Role) Id(id int) User_Permission_Role {
4216	r.Options.Id = &id
4217	return r
4218}
4219
4220func (r User_Permission_Role) Mask(mask string) User_Permission_Role {
4221	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
4222		mask = fmt.Sprintf("mask[%s]", mask)
4223	}
4224
4225	r.Options.Mask = mask
4226	return r
4227}
4228
4229func (r User_Permission_Role) Filter(filter string) User_Permission_Role {
4230	r.Options.Filter = filter
4231	return r
4232}
4233
4234func (r User_Permission_Role) Limit(limit int) User_Permission_Role {
4235	r.Options.Limit = &limit
4236	return r
4237}
4238
4239func (r User_Permission_Role) Offset(offset int) User_Permission_Role {
4240	r.Options.Offset = &offset
4241	return r
4242}
4243
4244// no documentation yet
4245func (r User_Permission_Role) AddUser(user *datatypes.User_Customer) (err error) {
4246	var resp datatypes.Void
4247	params := []interface{}{
4248		user,
4249	}
4250	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "addUser", params, &r.Options, &resp)
4251	return
4252}
4253
4254// no documentation yet
4255func (r User_Permission_Role) CreateObject(templateObject *datatypes.User_Permission_Role) (resp datatypes.User_Permission_Role, err error) {
4256	params := []interface{}{
4257		templateObject,
4258	}
4259	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "createObject", params, &r.Options, &resp)
4260	return
4261}
4262
4263// no documentation yet
4264func (r User_Permission_Role) DeleteObject() (resp bool, err error) {
4265	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "deleteObject", nil, &r.Options, &resp)
4266	return
4267}
4268
4269// no documentation yet
4270func (r User_Permission_Role) EditObject(templateObject *datatypes.User_Permission_Role) (resp datatypes.User_Permission_Role, err error) {
4271	params := []interface{}{
4272		templateObject,
4273	}
4274	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "editObject", params, &r.Options, &resp)
4275	return
4276}
4277
4278// Retrieve
4279func (r User_Permission_Role) GetAccount() (resp datatypes.Account, err error) {
4280	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "getAccount", nil, &r.Options, &resp)
4281	return
4282}
4283
4284// Retrieve
4285func (r User_Permission_Role) GetActions() (resp []datatypes.User_Permission_Action, err error) {
4286	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "getActions", nil, &r.Options, &resp)
4287	return
4288}
4289
4290// Retrieve
4291func (r User_Permission_Role) GetGroups() (resp []datatypes.User_Permission_Group, err error) {
4292	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "getGroups", nil, &r.Options, &resp)
4293	return
4294}
4295
4296// no documentation yet
4297func (r User_Permission_Role) GetObject() (resp datatypes.User_Permission_Role, err error) {
4298	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "getObject", nil, &r.Options, &resp)
4299	return
4300}
4301
4302// Retrieve
4303func (r User_Permission_Role) GetUsers() (resp []datatypes.User_Customer, err error) {
4304	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "getUsers", nil, &r.Options, &resp)
4305	return
4306}
4307
4308// no documentation yet
4309func (r User_Permission_Role) LinkGroup(group *datatypes.User_Permission_Group) (err error) {
4310	var resp datatypes.Void
4311	params := []interface{}{
4312		group,
4313	}
4314	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "linkGroup", params, &r.Options, &resp)
4315	return
4316}
4317
4318// no documentation yet
4319func (r User_Permission_Role) RemoveUser(user *datatypes.User_Customer) (err error) {
4320	var resp datatypes.Void
4321	params := []interface{}{
4322		user,
4323	}
4324	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "removeUser", params, &r.Options, &resp)
4325	return
4326}
4327
4328// no documentation yet
4329func (r User_Permission_Role) UnlinkGroup(group *datatypes.User_Permission_Group) (err error) {
4330	var resp datatypes.Void
4331	params := []interface{}{
4332		group,
4333	}
4334	err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "unlinkGroup", params, &r.Options, &resp)
4335	return
4336}
4337
4338// The SoftLayer_User_Security_Question data type contains questions.
4339type User_Security_Question struct {
4340	Session *session.Session
4341	Options sl.Options
4342}
4343
4344// GetUserSecurityQuestionService returns an instance of the User_Security_Question SoftLayer service
4345func GetUserSecurityQuestionService(sess *session.Session) User_Security_Question {
4346	return User_Security_Question{Session: sess}
4347}
4348
4349func (r User_Security_Question) Id(id int) User_Security_Question {
4350	r.Options.Id = &id
4351	return r
4352}
4353
4354func (r User_Security_Question) Mask(mask string) User_Security_Question {
4355	if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) {
4356		mask = fmt.Sprintf("mask[%s]", mask)
4357	}
4358
4359	r.Options.Mask = mask
4360	return r
4361}
4362
4363func (r User_Security_Question) Filter(filter string) User_Security_Question {
4364	r.Options.Filter = filter
4365	return r
4366}
4367
4368func (r User_Security_Question) Limit(limit int) User_Security_Question {
4369	r.Options.Limit = &limit
4370	return r
4371}
4372
4373func (r User_Security_Question) Offset(offset int) User_Security_Question {
4374	r.Options.Offset = &offset
4375	return r
4376}
4377
4378// Retrieve all viewable security questions.
4379func (r User_Security_Question) GetAllObjects() (resp []datatypes.User_Security_Question, err error) {
4380	err = r.Session.DoRequest("SoftLayer_User_Security_Question", "getAllObjects", nil, &r.Options, &resp)
4381	return
4382}
4383
4384// getAllObjects retrieves all the SoftLayer_User_Security_Question objects where it is set to be viewable.
4385func (r User_Security_Question) GetObject() (resp datatypes.User_Security_Question, err error) {
4386	err = r.Session.DoRequest("SoftLayer_User_Security_Question", "getObject", nil, &r.Options, &resp)
4387	return
4388}
4389